فهرست مطالب:

RPi 3 Starboard / Particle Generator: 6 مرحله (همراه با تصاویر)
RPi 3 Starboard / Particle Generator: 6 مرحله (همراه با تصاویر)

تصویری: RPi 3 Starboard / Particle Generator: 6 مرحله (همراه با تصاویر)

تصویری: RPi 3 Starboard / Particle Generator: 6 مرحله (همراه با تصاویر)
تصویری: Stepping into the Future: Linnaeus University's IoT & AI Live Stream Marathon⚡🤩 2024, جولای
Anonim
Image
Image
برد LED را مونتاژ کنید
برد LED را مونتاژ کنید

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

این آموزش نحوه مونتاژ و راه اندازی نمایشگر تولید ذرات با استفاده از رزبری پای 3 و برخی از پنل های ماتریس RGB را به شما نشان می دهد. باید بین یک تا دو ساعت طول بکشد و محصول نهایی تقریباً 30 اینچ x8 (بدون Pi) و قابل نصب روی دیوار خواهد بود. این یک دکوراسیون بسیار زیبا برای یک اتاق نشیمن ، دفتر ، اتاق بازی یا هرجای دیگری که می خواهید آن را قرار دهید ایجاد می کند.

قبل از شروع کار ، موارد مورد نیاز و هزینه های تقریبی آن به شرح زیر است:

  • Rpi 3 + کارت SD + کیف + منبع تغذیه: 70 دلار (از Canakit ، اما احتمالاً اگر قطعات را جداگانه خریداری کنید ، می توانید قطعات را ارزان تر تهیه کنید)
  • ماتریس LED 4x 32x32 RGB (ترجیحاً p6 داخلی با اسکن 1/16): 80 تا 100 دلار در Alibaba یا Aliexpress ارسال می شود. 160 دلار برای Adafruit یا Sparkfun.
  • کلاه ماتریس RGB Adafruit: 25 دلار
  • منبع تغذیه 5V 4A: 15 دلار
  • گیره های چاپ سه بعدی: 1 دلار (اینها برای اتصال تابلوها و آویختن آنها به دیوار است ؛ اگر به چاپگر سه بعدی دسترسی ندارید ، می توانید از یک نوار خزدار برای نگه داشتن آنها در کنار هم و چند براکت از فروشگاه سخت افزار به آن را از دیوار آویزان کنید. من سعی کردم فایلهای طراحی یا.stls اینها را بیابم ، اما به نظر می رسد که آنها از روی زمین عبور کرده اند. هرچند مدل کلیپ ها بسیار آسان است.)
  • پیچ و مهره 14x M4x10: 5 دلار
  • چهار کابل IDC 4x8 و سه کابل تغذیه برای ماتریس RGB (نمی دانم اینها چه نامیده می شوند!). اینها باید همراه با پنل های LED شما باشد.
  • مجموع: حدود 200 دلار ، بدهید یا بگیرید.

این پروژه نیازی به لحیم کاری یا داشتن دانش برنامه نویسی خاصی ندارد. این فرض می کند که می دانید چگونه یک تصویر را روی کارت microSD بنویسید. اگر مطمئن نیستید چگونه این کار را انجام دهید ، بنیاد Raspberry Pi یک آموزش خوب در اینجا دارد.

همچنین فرض می شود که شما از نحوه انجام کارها در خط فرمان در لینوکس دانش اساسی دارید ، و فرض بر این است که اصول اولیه پایتون را می دانید (اما - برای ساختن و ساختن نیازی نیست که از دستورالعمل کد پیروی کنید. در صورت گیر افتادن در هر یک از مراحل ، با خیال راحت س aال یا پست خود را در /r /raspberry_pi (که من نیز فرض می کنم مخاطب اصلی این دستورالعمل است) بپرسید.

مرحله 1: برد LED را جمع کنید

برد LED را مونتاژ کنید
برد LED را مونتاژ کنید

ابتدا ، شما می خواهید پنل های LED 32x32 را در یک پانل بزرگ 128x32 مونتاژ کنید. شما باید به تابلوهای خود نگاه کنید و پیکان های کوچکی را که نشان دهنده ترتیب اتصال است ، بیابید. روی من آنها دقیقاً در نزدیکی اتصالات HUB75/2x8 IDC هستند. اطمینان حاصل کنید که فلش ها از جایی که Rpi به آن متصل می شود (به سمت راست در عکس بالا) به طول تخته اشاره کنید.

همچنین باید کابل های برق را وصل کنید. اکثر این کابل ها دارای دو کانکتور زن هستند که به بردها متصل می شوند و یک مجموعه پایانه بیل که به منبع تغذیه متصل می شود. پنل هایی که با آنها کار می کنم دارای نشانگرهای 5V و GND هستند که تقریباً کاملاً در زیر کانکتورها پنهان شده اند ، اما کابل ها فقط در یک جهت متصل می شوند. شما باید مطمئن شوید که همه 5V ها را با هم و همه GND ها را با هم وصل می کنید ، زیرا اگر این دستگاه ها را به صورت عقب فعال کنید ، مطمئناً آنها را سرخ می کنید.

از آنجا که کابل های برق موجود در تابلوهای من بسیار کوتاه بودند ، مجبور شدم با قرار دادن شاخک های ترمینال بیل در اتصال دیگری ، یکی را گسترش دهم (این بسیار ساده است - ممکن است مجبور شوید پایانه های بیل را کمی به سمت داخل خم کنید ، اما من یک عکس برای هر مورد گنجانده اید) من با دو مجموعه پایانه بیل و یک کانکتور IDC 2x8 در سمت راست صفحه LED من که در حال حاضر کشیده شده است ، خاتمه داد.

همچنین متوجه خواهید شد که من دو پیچ دارم که به هیچ وجه در دو طرف تخته متصل نشده اند. وقتی همه چیز روی هم بریزد ، روی آنها قرار می گیرد و برای اتصال آن به دیوار استفاده می شود.

بنابراین - هنگامی که همه پانل ها را با کلیپس ، کابل IDC 2x8 و کابل های برق متصل کردید ، آماده حرکت به مرحله بعدی هستید!

مرحله 2: Raspberry Pi را آماده کنید

در مرحله بعد ، شما قصد دارید برد LED را کنار بگذارید (فعلاً) و Pi 3 را آماده اجرا کنید. ما از Raspbian Stretch Lite و کتابخانه ماتریس RGB hzeller (به جای کتابخانه ماتریس Adafruit ، که قدیمی تر و نگهداری نشده است) استفاده خواهیم کرد.

ابتدا ، می خواهید تصویر Raspbian Lite را روی کارت SD بنویسید. پس از انجام این کار ، مانیتور و صفحه کلید را به pi متصل کرده و آن را بوت کنید. (همچنین می توانید این کار را بدون سر یا بر روی ssh یا اتصال سریال انجام دهید ، اما اگر این راه را دارید ، احتمالاً نیازی ندارید که من نحوه انجام آن را به شما بگویم.) برای این کار به اتصال اینترنت نیاز دارید. ؛ اگر وای فای دارید ، Pi را با ویرایش /etc/wpa_supplicant/wpa_supplicant.conf و اجرای مجدد wpa_cli -i wlan0 پیکربندی کنید ، به شبکه بی سیم خود وصل کنید. (اگر هرگز این کار را نکرده اید ، می توانید دستورالعمل ها را در اینجا دریافت کنید).

پس از اتصال به اینترنت ، تنظیمات مخزن dpkg را به روز می کنیم و با اجرای دستورات زیر کتابخانه های مورد نیاز خود را بارگیری می کنیم:

sudo apt-get update

sudo apt-get git python-dev python-pil را نصب کنید

git clone

حالا ما باید کد ماتریس را کامپایل و نصب کنیم. بنابراین وارد پوشه حاوی کتابخانه می شوید:

cd rpi-rgb-led-matrix

و آن را کامپایل کنید (ممکن است یک دقیقه طول بکشد):

make && build-python

و اتصالات پایتون را نصب کنید:

sudo make install-python

اگر هنگام تدوین کد کتابخانه خطایی دریافت کردید ، به عقب برگردید و مطمئن شوید که python-dev و python-pil را به درستی نصب کرده اید! پیوندهای پایتون بدون نصب هر دو بسته ، کامپایل نمی شوند.

همچنین باید با ویرایش /boot/config.txt خروجی صدای Pi خود را (صدای روی تخته با کد ماتریس تداخل دارد) غیرفعال کنید. به دنبال خطی باشید که می گوید dtparam = audio = on و آن را به dtparam = audio = off تغییر دهید.

اگر همه چیز خوب باشد (چند هشدار در مورد Wstrict-protoypes دریافت خواهید کرد) pi شما باید برای اجرای برد ماتریس آماده باشد. پیش بروید و آن را خاموش کنید (sudo shutdown now) ، آن را از برق بکشید ، و ما در مرحله بعد تخته نور را به pi متصل می کنیم.

مرحله 3: Pi + Matrix Hat + LED Board را وصل کنید

Pi + Matrix Hat + LED Board را وصل کنید
Pi + Matrix Hat + LED Board را وصل کنید

بنابراین ، اکنون که Pi شما خاموش و وصل شده است ، بیایید کلاه ماتریس را به pi و برد LED را به کلاه ماتریس متصل کنیم. اگر Pi شما در حال حاضر در مورد آن نیست ، اکنون زمان مناسبی برای قرار دادن آن است.

کلاه ماتریس را با قرار دادن آن با پایه های GPIO در Pi و فشار دادن آن به آرامی به سمت پایین با نیروی یکنواخت در هر دو طرف نصب کنید. اطمینان حاصل کنید که پین ها به درستی ردیف شده اند ، به طوری که سربرگ های زن روی کلاه دقیقاً پین های GPIO روی pi را می پوشانند. اگر آن را به اشتباه تنظیم کنید ، فاجعه نیست. فقط آن را به آرامی عقب بکشید و هر سنجاق خم شده ای را صاف کنید.

پس از پوشیدن کلاه ، Pi را در سمت راست صفحه مونتاژ LED قرار دهید (دوباره اتصالات برق را مجدداً بررسی کنید و مطمئن شوید که فلش ها از Pi به طول برد برمی گردند) و IDC را وصل کنید کابل به کلاه ماتریس

در مرحله بعد ، شما می خواهید پایانه های بیل برای برق را به بلوک ترمینال کلاه ماتریس متصل کنید. شما دو اتصال بیل در هر طرف دارید ، اما هر دو باید به خوبی در آنجا قرار بگیرند. ابتدا پیچ ها را باز کنید و - این باید بدون گفتن باشد - مطمئن شوید که پایانه های 5 ولت را در کنار برچسب + قرار داده اید (اینها باید قرمز باشند ، اما - دوباره - اتصالات خود را دوباره بررسی کنید و تصور نکنید که آنها درست ساخته شده اند) و پایانه های GND (اینها باید سیاه باشند) در کنار برچسب -. هنگامی که آنها در آنجا هستند ، پیچ های بالای بلوک ترمینال را محکم کنید ، و باید چیزی شبیه تصویر سرصفحه برای این مرحله داشته باشید.

در حال حاضر - شاید متوجه شده باشید که این پیکربندی خاص ، نیمی از ترمینال بیل را در هر دو طرف در معرض دید قرار می دهد و فقط میلی متر بر روی کلاه ماتریس (و نه خیلی دورتر از یکدیگر) قرار دارد و - پایانه های بیل به زودی دارای چندین ولت و چند آمپر Raw Power. آیا این (من می توانم صدای شما را از طرف دیگر صفحه بپرسید) واقعاً راه درست انجام آن است؟ آیا ، (نزدیک تر تکیه می دهید و زمزمه می کنید) ، ایده خوبی است؟

و پاسخ این است (من شانه هایم را بالا انداختم) - نه ، اینطور نیست. روش صحیح انجام این کار این است که پایانه های بیل را از کابل های برق جدا کرده و مجدداً آنها را در اتصال صحیح آن بلوک ترمینال فشار دهید (یا آنها را به صورت سیم های برهنه رها کرده و آنها را بدون اتصال به بلوک وصل کنید). در غیر این صورت ، می توانید مقداری لوله کوچک کننده را در قسمت نمایان شده کانکتور بیل قرار دهید یا فقط آن را در نوار برقی بپیچید. اما جهان سقوط کرده و انسان تنبل و بیهوده است ، بنابراین من این کار را نکرده ام.

اما - پیچیده یا باز نشده - پایانه های بیل به بلوک ترمینال متصل شده اند ، و ما آماده حرکت به مرحله بعدی هستیم.

مرحله 4: ماتریس RGB را آزمایش کنید

حالا که Pi شما به برد نور متصل است ، تخته را برگردانید و Pi را دوباره روشن کنید. شما می توانید کلاه ماتریس را بعد از اتصال Pi به برق متصل کنید. اگر کلاه را قبل از Pi قرار دهید ، Pi سعی می کند با جریان کافی بوت نشود و به شدت شکایت خواهد کرد (و ممکن است باعث وحشت هسته شما شود و اصلا بوت نشود.)

اگر برای راه اندازی Pi با کلاه ماتریس مشکل دارید ، مطمئن شوید که از منبع تغذیه کافی برای Pi استفاده می کنید (2A+ باید خوب باشد) و سعی کنید هم منبع تغذیه کلاه و هم کلاه را وصل کنید. Pii را در یک نوار برق یا سیم اضافی قرار دهید و آنها را با هم تغذیه کنید.

پس از بوت شدن Pi ، ما آماده آزمایش ماتریس ها هستیم. به جایی که نمونه های اتصال دهنده پایتون (cd/rpi-rgb-led-matrix/bindings/python/sample) هستند بروید و ژنراتور بلوک دوار را با دستور زیر امتحان کنید:

sudo./rotating-block-generator.py -m adafruit-hat --led-chain 4

شما باید آن را به صورت sudo اجرا کنید زیرا کتابخانه ماتریس هنگام راه اندازی نیاز به دسترسی سطح پایین به سخت افزار دارد. -m نحوه اتصال صفحات به pi (در این مورد ، یک کلاه adafruit) و زنجیره ای -که شما حدس زده اید -تعداد پنل هایی را که با هم زنجیر کرده ایم مشخص می کند. سطرها و ستون ها در هر پانل هر دو به طور پیش فرض روی 32 قرار دارند ، بنابراین ما در آنجا خوب هستیم.

اکنون - هنگامی که برنامه را اجرا کردید ، یکی از دو (یا واقعاً یکی از سه) اتفاق می افتد:

  • هیچ اتفاقی نمی افتد
  • شما یک بلوک دوار خوب در وسط تخته نور خود دریافت می کنید.
  • من فکر می کنم تخته نور کار می کند ، اما به نظر می رسد … عجیب است (نیمی از آن سبز است ، برخی از ردیف ها روشن نمی شوند و غیره)

اگر اتفاقی نیفتاد ، یا اگر پنل عجیب به نظر می رسد ، برای خروج از برنامه نمونه ctrl+c را فشار دهید ، pi را خاموش کنید و تمام اتصالات خود را بررسی کنید (کابل IDC ، برق ، مطمئن شوید که هر دو منبع تغذیه به برق متصل هستند و غیره) همچنین مطمئن شوید که کلاه به درستی متصل شده است. اگر این مشکل برطرف نشد ، آن را به یک پانل ببرید (هنگام تست آن حتماً از -led-chain 1 استفاده کنید) و ببینید آیا ممکن است یکی از پنل ها خراب باشد. اگر این کار نمی کند ، نکات عیب یابی hzeller را بررسی کنید. اگر هنوز هم کار نمی کند ، ارسال کنید به /r /raspberry_pi (یا انجمن های Adafruit ، اگر پانل های خود را از Adafruit دریافت کرده اید ، یا مبادله پشته ، و غیره ، و غیره)

اگر به نوعی کار می کند اما پس از بررسی اتصالات همچنان عجیب به نظر می رسد (شاید مانند تصویر سرصفحه این بخش) ، ممکن است همه چیز را به درستی وصل کرده باشید ، پانل ها به درستی کار کنند ، اما چیزی دیگر در حال انجام است بر. که ما را به مرحله بعدی ما می برد - بیشتر یک انحراف است تا یک مرحله - در مورد نرخهای چندگانه و اسکن. (اگر تابلوی LED شما خوب کار می کند و به عملکرد داخلی این پانل ها علاقه ای ندارید ، قدم بعدی را کنار بگذارید.)

مرحله 5: نرخ چندگانه و اسکن (یا: انحراف لحظه ای در راه قبر)

بنابراین ، یکی از اشتباهاتی که هنگام سفارش اولین مجموعه پانل های خود در خارج از علی بابا مرتکب شدم این است که پانل های خارجی دریافت کردم (چرا که نه ، تصور می کردم - آنها ضد آب و روشن تر هستند!). و وقتی آنها را به کلاه ماتریسم وصل کردم ، همه چیز درست به نظر نمی رسید.

برای درک دلیل این امر ، ما یک دقیقه وقت می گذاریم تا به بررسی فیل بارجس از توضیحات آدافروت در مورد نحوه عملکرد این پانل ها بپردازیم. باید توجه داشته باشید که برگس اشاره می کند که پنل ها همه LED های خود را به طور همزمان روشن نمی کنند - آنها مجموعه ای از ردیف ها را روشن می کنند. رابطه بین ارتفاع صفحه در پیکسل و تعداد ردیف هایی که به طور همزمان روشن می شوند ، نرخ اسکن نامیده می شود. به عنوان مثال - در یک صفحه 32x32 با اسکن 1/16 ، دو ردیف (1 و 17 ، 2 و 18 ، 3 و 19 و غیره) به طور همزمان ، تا انتهای صفحه روشن می شوند و سپس کنترل کننده تکرار می کند به بیشتر کتابخانه هایی که ماتریس RGB را هدایت می کنند برای پانل هایی ساخته شده اند که میزان اسکن آنها 1/2 ارتفاع بر حسب پیکسل است - یعنی دو ردیف LED را به طور همزمان هدایت می کنند.

پانل های فضای باز (و برخی از پانل های داخلی - مطمئن شوید که قبل از سفارش به مشخصات آن توجه کنید) دارای نرخ اسکن 1/4 ارتفاع در پیکسل هستند ، این بدان معناست که آنها انتظار دارند چهار خط به طور همزمان رانده شوند. این آنها را روشن تر می کند (که خوب است) اما باعث می شود بسیاری از کد های استاندارد با آنها کار نکنند (که بد است). علاوه بر این ، آنها تمایل دارند پیکسل ها از نظر داخلی بی نظم باشند ، که برای تغییر پیکسل های مناسب نیاز به تغییر مقادیر x و y در نرم افزار دارد. چرا اینجوری ساخته شده؟ هیچ نظری ندارم. میدونی؟ اگر چنین است ، لطفاً به من بگویید. در غیر این صورت فقط باید یک راز باقی بماند.

بنابراین ، اگر یکی از این پنل های عجیب و غریب در فضای باز دارید ، (احتمالاً) خوش شانس هستید! هزلر به تازگی پشتیبانی از پیکربندی های رایج این نوع تابلوها را به کتابخانه خود اضافه کرده است. می توانید در مورد پروژه در صفحه github بیشتر بخوانید ، اما می توانید --led-multiplexing = {0، 1، 2، 3} را به کد نمونه منتقل کنید (همچنین ممکن است لازم باشد تظاهر کنید که یک مدرک دارید زنجیر دو طول از پانل های نیم طول) و باید کار کند.

برخی از الگوهای تغییر پیکسل وجود دارد که پشتیبانی نمی شوند - و (حدس بزنید) پنل های من یکی از آنها را دارند! بنابراین ، من مجبور شدم کد تحول خود را بنویسم (من همچنین - به هر دلیلی - باید به کتابخانه بگویم طوری عمل کند که من هشت پنل 16x32 را با هم زنجیر کرده ام). که به شرح زیر است:

پیکسل ها (j ، k): effJ = j٪ 32

effK = k٪ 32

modY = k

modX = j

#modX و modY عبارتند از X و Y اصلاح شده ؛

#effJ و effK قبل از فشار دادن مطمئن شوید که در یک ماتریس 32x32 تغییر شکل می دهیم

اگر ((effJ)> 15):

modX = modX + 16

اگر ((effK)> 7):

modY = modY - 8

modX = modX + 16

اگر ((effK)> 15):

modX = modX - 16

اگر ((effK)> 23):

modY = modY - 8

modX = modX + 16

#سپس ، آنها را به مکان صحیح فشار می دهیم (هر x+32 یک صفحه را حرکت می دهد)

اگر (j> 31):

modX += 32

اگر (j> 63):

modX += 32

اگر (j> 95):

modX += 32

بازگشت (modX ، modY)

اگر پانلی مانند پنل خود دارید ، این ممکن است برای آن کار کند. اگر اینطور نیست ، باید خودتان بنویسید - بنابراین ، می دانید ، موفق و سربلند باشید.

مرحله 6: برنامه Starboard (یا: بازگشت به مسیر و آماده پیکسل)

اکنون که ماتریس های خود را عملیاتی کرده اید و آماده کار هستید ، تنها کاری که باید انجام دهید این است که برنامه سمت راست را روی Pi خود قرار دهید و آن را برای حرکت آماده کنید. مطمئن شوید که در فهرست اصلی کاربر pi (cd /home /pi) هستید و دستور زیر را اجرا کنید:

git clone

شما باید یک پوشه جدید ، راست ، داشته باشید که شامل سه فایل باشد: LICENSE.md ، README.md و starboard_s16.py. برنامه راست را با اجرای آن از طریق پایتون امتحان کنید:

sudo python./starboard_s16.py

و شما باید دسته ای از ذرات را که با سرعت های مختلف حرکت می کنند و با سرعت های مختلف پوسیده می شوند ، دریافت کنید. هر 10 ، 000 تیک یا بیشتر (برای ویرایش/تغییر این حالت می توانید به اسکریپت پایتون بروید) حالت ها تغییر می کند (چهار حالت وجود دارد: RGB ، HSV ، Rainbow و Greyscale).

بنابراین ، اکنون تنها کاری که باید انجام دهید این است که کد راست را هنگام راه اندازی اجرا کنید. این کار را با ویرایش (با sudo) /etc/rc.local انجام می دهیم. کاری که می خواهید انجام دهید این است که خط زیر را درست قبل از "خروج 0" در اسکریپت اضافه کنید:

python /home/pi/starboard/starboard_s16.py &

پس از انجام این کار ، pi را مجدداً راه اندازی کنید - پس از اجرای توالی بوت ، اسکریپت starboard_s16.py باید درست شروع شود!

اگر می خواهید در اسکریپت صحبت کنید ، این کار را انجام دهید - این مجوز تحت GNU GPL 3.0 دارای مجوز است. اگر اسکریپت برای شما اجرا نمی شود یا با آن مشکل دارید ، با خیال راحت به من اطلاع دهید یا اشکالی را در github ارسال کنید ، و ببینم برای رفع آن چه می توانم انجام دهم!

(بسیار) آخرین کاری که ممکن است بخواهید انجام دهید این است که SSH را روی pi تنظیم کنید تا بتوانید از راه دور وارد شده و با خیال راحت آن را خاموش کنید. شما می خواهید / قطعا / می خواهید گذرواژه خود را تغییر دهید (از طریق دستور passwd) ، و می توانید دستورالعمل های فعال کردن ssh (همچنین از خط فرمان) را در اینجا بیابید.

توصیه شده: