آموزش, توصیه شده, رزبری پای, مقاله های سیسوگ

حمله نهایی ! – قسمت دوم فتح سرزمین‌ سیم‌ها با رزبری پای

فتح سرزمین‌ سیم‌ها با رزبری پای قسمت دوم

توی قسمت اول مقاله تونستیم یک پروژه آزمایشی رو با یه زبان سطح بالا روی برد رزبری پای راه اندازی کنیم. حالا قبل از اینکه حمله نهایی رو انجام بدیم درباره این فکر می‌کنیم که تا اینجا کاری که انجام دادیم چقدر اهمیت داشته.

 

کار چندان مهمی نکردیم

اگه یکم بدبین یا به قول فرنگی‌ها پسیمیست باشیم، از یک زاویه خاص این حرف خیلی هم اشتباه نیست. واقعیتش اینه که ما هنوز داریم به صورت معمولی برنامه نویسی خودمون رو انجام میدیم و شاید فقط بشه گفت توی هزینه‌هامون صرفه جویی کردیم!
یعنی جای اینکه هزینه خرید کامپیوتر و سرور یا اجاره VPS پرداخت کنیم روی یک برد نسبتاً ارزان‌ قیمت پروژه رو اجرا کردیم، ولی تغییر ماهوی هنوز اتفاق نیفتاده.

شاید برای شما مفید باشد: آموزش رزبری پای از 0 تا 100 از مقدماتی تا پیشرفته

کار مهمی کردیم

چطور کار مهمی نکردیم؟ دقیقا مثل تصویر مقاله اول (تصویر واقعی از D-Day برای کسانی که مثل خود من علاقه به موضوعات مربوط به جنگ جهانی دارند!) این فقط تصرف ساحل نرماندی نیست، مقدمه‌ای هست برای پیروزی‌های بعدی!

 

حمله اصلی چیه؟

هرچند احتمالاً باید قابل حدس باشه اما حمله اصلی ما از روی اون ماسماسک‌های سوزنی روی برد که بهشون پین میگن اتفاق میفته!

ما سعی می‌کنیم بتونیم با همون زبان سطح بالا پین‌ها رو کنترل کنیم، مقدار بدیم و یا مقادیرشون رو بررسی کنیم.

و این تقریباً یعنی تمام کاری که الکترونیکی‌ها میتونند با رزبری پای انجام بدند، با این تفاوت که ما ابزار بهتری داریم. پیروزی با ماست رفقا!

 

خطر تخصصی شدن مطلب، با دنده سنگین حرکت کنید!

 البته که من قرار نیست درباره سورس و نحوه نوشتن پروژه توضیح بدم (هرچی نباشه ناسلامتی اینجا یه وبلاگ الکترونیکیه!) و مثل همیشه کسانی که علاقه داشته باشن میتونند سورس کامل رو اینجا روی گیت هاب من ببینند اما چند خط اون رو برای نمونه قرار میدم.

 

 

همین چند خط نشون میده ما از کتابخونه‌ای استفاده کردیم که  تونستیم به پین‌های GPIO دسترسی پیدا کنیم و با دریافت شماره پین از کاربر میتونیم اون رو فعال کنیم.
برای سادگی بیشتر از متد GET استفاده شده، یعنی اگه ما چند تا LED رو متصل کنیم به پایه‌های رزبری پایمون، با وارد کردن چیزی شبیه این توی مرورگرمون میتونیم هرکدوم که دوست داشتیم رو روشن کنیم!

منظور از [RP IP] آی پی رزبری شما توی شبکه هست
 

همینطور دو تا تابع دیگه قرار دادم که تقریباً به همین صورت عمل میکنه اگه جای کلمه on کلمه off رو قرار بدین پین مورد نظرتون رو غیرفعال میکنه و اگه از کلمه status استفاده کنید وضعیت فعلی پین رو بهتون توی خروجی نمایش میده.

 

خوب دیگه مگه چیز دیگه ای هم لازم داریم؟

 

نکته مهم

خیلی از کتابخونه هایی که کمک میکنه زبان‌های سطح بالا با GPIO ها ارتباط بگیرند بر اساس این کتابخونه نوشته شدند (http://wiringpi.com) و نکته مهمی این جاست که ایشون به دلایلی که خودش توضیحش رو داده تصمیم گرفته شماره گذاری رو برای پین‌ها انتخاب کنه که با شماره گذاری استاندارد و رسمی رزبری پای متفاوته!
یعنی اگه مثلاً پین شماره ۲ رو فعال می‌کنید باید LED مربوط رو بر اساس این نقشه به پین متصل کنید نه اونی که رزبری پای اعلام کرده! البته نهایتاً توی نتیجه تأثیر نمی‌گذاره اما باعث یکی دو روز تلف شدن وقت من شد!

 

 GPIO connector in Raspberry

 

پیروزی…!

 

پیروزی رزبری پای

 

جنگ جهانی دوم با انفجار بمب اتمی توی هیروشیما و ناکازاکی تموم شد و جنگ ما با روشن کردن LED روی برد بورد!

اینجا دقیقاً جایی هست که توی قسمت اول وعده داده بودم! ما الان کارهایی رو می تونیم با رزبری پای انجام بدیم که تقریباً برای اکثر مهندسین الکترونیک ممکن نیست!

مثلاً شما بگید من لازم دارم با تلفن همراهم درخواست بدم که دوربینی که به رزبری پای متصل شده عکس بگیره و همون لحظه روی مثلاً سرور گوگل آپلودش کنه تا بتونم ببینمش، چقدر طول میکشه؟

یا مثلاً هر موقع دکمه ای که بهش وصل شده فشار داده شد بررسی کنه چه ایمیل‌هایی براش ارسال شده و متنشون رو چاپ کنه!

جواب احتمالی خیلی از اونها یا ممکنه از لحاظ قیمت و مدت، برق از سر شما بپرونه و یا جواب هرگز باشه!

در حالی که برای برنامه نویس نسبتاً خوب .Net Core نباید زمان زیادی بگیره، و اون لحظه شیرین پیروزیه!

 

این پایان تلخ مهندسین الکترونیکه؟

 البته که نه! یادتون باشه درسته که آلمان‌ها جنگ جهانی دوم رو باختند اما هنوز هم توی آلمان پر از آلمانیه!

کسانی که پروژه هایی توی سبک مثال‌های بالا دارن احتمالاً برای انجام کارهاشون به الکترونیکی ها مراجعه می‌کنند چون از نظرشون این یه کار الکترونیکیه نه نرم افزاری و نرم‌افزار یعنی فقط برنامه ویندوز و موبایل!

بنابراین هنوز بازار دست اون‌هاست و طول میکشه تا شما بتونید رابطه‌هایی رو پیدا کنید که پروژه‌های مناسب توی این زمینه بگیرید.

 

مشکل دوم اینه که بردهای رزبری پای با وضع فعلی مملکت کم کم دارند بزرگترین مزیتشون یعنی قیمت پایین رو از دست میدن، وقتی خرید یک برد رزبری پای ۳ در حدود 400-500 هزارتومان قیمت داشته باشه (تازه اون هم فعلا!) احتمالاً منطقی نیست برای کاری که مثلاً نیاز به ۲۰ برد رزبری پای داره به ما مراجعه کنه و فکر می‌کنم طراحی یک برد توسط بچه‌های الکترونیک هزینه کمتری داشته باشه (یا شاید هم اینطور نباشه!)

 

اما اصلاً نا امید کننده نیست! چون هم‌چنان ما برتری ویژه خودمون رو داریم، کارهایی با رزبری پای و اینترنت میتونیم انجام بدیم که از توان مهندسین الکترونیک خارجه، پس احتمالاً با خوندن این مقاله یا تصمیم به یادگیری زبان‌های سطح بالا می‌گیرند و یا برای پروژه هایی که بهشون مراجعه شده به مهندسین نرم‌افزار مراجعه می‌کنند!

 

تا اون موقع ما کلی کار هیجان انگیز داریم برای انجام دادن با رزبری پای دوست داشتنیمون!

 

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

7 دیدگاه در “حمله نهایی ! – قسمت دوم فتح سرزمین‌ سیم‌ها با رزبری پای

  1. Avatar for رضا رضا گفت:

    خیلی جالب بود ، برخلاف آموزش هایی که در سطح اینترنت فراوان هست سراغ پایتون نرفتید. و یک حرکت انقلابی در راستای C# روی لینوکس کردید. که خود من میدونستم میشه ولی هیچوقت سراغش نرفته بودم . همچنین قابلیت ارتباطش با سخت افزار جالب بود. راجب ظاهر گرافیکی برای c# روی لینوکس هم یه چیزی به اسم mono هست که یه کارای جالبی میکنه کاملا نشدنی نیست.
    البته نتونستم قسمت دوم را کامل جواب بگیرم باید بیشتر روش وقت بزارم. مثل تمام آموزش ها ، همین چند خط حاصل زحمت زیادی بوده در پشت پرده بوده که به راحتی بدست نمیاد.
    ممنون از وقتی که میزارید

  2. Avatar for Aarmn Aarmn گفت:

    در حضور حضرت پایتون dotnet چیه اصلا؟
    من مدتیه برنامه نویسم و میگم پایتون dotnet رو خورده و برتری های dotnet مثل gui و vs راحت و server و async درست حسابی هم تا یه مدت دیگه میان و به حول قوه الهی dotnet جمع میشه

    1. Avatar photo meisam گفت:

      شاید لازم باشه مدت بیشتری برنامه نویس باشید! ??

  3. Avatar for تسلا تسلا گفت:

    سلام مجدد دوست عزیز،
    بردهای مختلف تحت لینوکس که عنوان میکنید کلی طراحی الکترونیکی روش انجام شده که به یک بستر تبدیل بشه تا ابتدا به ساکن لینوکس یا هر سیستم عامل دیگری روش پورت بشه. کارهای بزرگ ترکیب سخت افزار و نرم افزار هست و اگر فکر کردید با صرف توانایی های نرم افزاری میتونید واردی دنیای سیستم های نهفته بشید باید بگم که بر عبث می پایید. البته تقصیر از شما نیست کلا ما ایرانی ها در کار گروهی ضعیف هستیم.
    در مورد سوالی که پرسیدی تقریبا صد در صد افرادی که در صنعت مشغول هستند و از این کار درآمد کسب میکنند.
    بنده به عنوان یک فرد با تجربه در صنعت خدمتتون عرض میکنم کار با رزبری و … برای آموزش بسیار عالی است ولی فکر این که از این دست بردها در صنعت استفاده کنید و بدون نیاز به علوم سخت افزاری کار جدی انجام دهید را لااقل فعلا فراموش کنید.
    در نهایت این فقط تجربه من بود خواه پند گیرید خواه ملال.

    1. Avatar photo meisam گفت:

      سلام،
      در مورد قسمت اول توضیحتون کامپیوترها و لپ تاپ های فعلی هم که ما استفاده میکنیم کلی طراحی الکترونیکی روی اونها انجام شده تا الان، من جایی ادعا کردم نرم افزارها میتونند بدون نیاز به سخت افزار اجرا بشن؟ یا همین بردهای رزبری بدون طراحی از سمت خدایان برای ما ارسال شدن؟
      حرف من این بود که زبان های سطح بالای فعلی میتونند فراتر از محیط معمول روی بردهای مبتنی بر لینوکس با کارکردی متفاوت نسبت به قبل کار کنند و امکاناتی در اختیار برنامه نویس ها قرار بدن که اونها رو قادر میکنه کارهایی انجام بدن که مهندسین الکترونیک بدون تسلط به این زبان ها قادر به انجامش نیستن.
      این بردها میتونه یه برد رزبری ساده باشه یا برد مبتنی بر لینوکس یک اتومبیل خودران، که بعد طراحی آماده است که ببرنامه نویسی بشه.
      و در مورد دوم که فرمودید 100 درصد مهندسین الکترونیک ایران دارن از طریق طراحی برد برای دکل های مخابراتی و خودروها و صنایع پزشکی و برندهای معتبر کسب درآمد میکنند، احتمالا تعریف شما از مرزهای کشور ایران با تعریف فعلی متفاوته!
      با این حال ممنون از اینکه نظرتون رو با ما به اشتراک گذاشتید.

  4. Avatar for تسلا تسلا گفت:

    سلام دوست عزیز،
    این جایی رو که فتح کردی یک جزیره متروکه هست نه آلمان :)))
    پروژه های که در انتها بهشون اشاره کردی رو همونطور که میدونی در حد سرگرمی های خوبی هستند برای دوستانی که وقت آزاد مناسبی دارند. البته من اگر قرار باشه چنین کاری انجام بدم ترجیح میدم اینجور کارها رو به جای #C با پایتون انجام بدم.
    اما در مورد صحبت هات در مورد برد رزبری همونطور که میدونی یا شایدم نمیدونی این برد و سایر بردهای مشابه بیشتر برای موارد آموزشی، تحقیقاتی و سرگرمی استفاده میشن هر وقت یک دستگاه از یک برند معروف که مثلا توی یک دکل مخابراتی، یه خودرو، دستگاه پزشکی یا … استفاده شده باشه دیدی که از رزبری استفاده میکنه اونوقت بیا در موردش با هم صحبت میکنیم.

    1. Avatar photo meisam گفت:

      سلام دوست احتمالا الکترونیکی من!
      در درجه اول همونطور که توی قسمت اول مقاله دیدید، تمرکز اصلی روی خروجی گرفتن .Net Core روی یک برد لینوکسی بود و رزبری فقط به عنوان یک نمونه مشهور و در دسترس مطرح شده و همونطور که میدونید یا شایدم ندونید! امروزه توی بیشتر صنایع از دستگاه های گیرنده و تلویزیون گرفته تا ماشین های خود ران و … (که حداقل به نظر من پروژه های سرگرمی نیستند!) از بردهای مختلف تحت لینوکس استفاده میشه.
      نکته دوم اینکه علی رغم نکته اول! من جایی توی مقاله عنوان نکردم که قراره از این به بعد پروژه های صنعتی رو نرم افزاری ها با رزبری پای بنویسن، و البته اطلاعی ندارم چند درصد از جامعه مهندسین الکترونیک ایران از جمله شما تا الان پروژه هایی برای برندهای معروف توی دکل های مخابراتی، خودروها و صنایع پزشکی انجام دادند که بقیه پروژه ها از نظر شما جزیره متروکه هستن!
      و نکته آخر اینکه پایتون قطعا به عنوان یه زبان برنامه نویسی سطح بالا از دنیای نرم افزار(که خیلی از الکترونیکی ها بهش علاقه مند هستند) یکی از محبوب ترین زبان ها برای نوشتن پروژه های مبتنی بر رزبری هست اما نوع و پیچیدگی پروژه هایی که با .Net Core به عنوان یک API میشه ایجاد کرد جنس متفاوتی از پروژه های پایتون به عنوان یک زبان اسکریپتی داره.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *