فهرست مطالب:
- مرحله 1: Pi Zero W چیست؟
- مرحله 2: اسکاتی ، ما به قدرت بیشتری نیاز داریم
- مرحله 3: قرار دادن سنسور و نرم افزار
- مرحله 4: تنظیم Pi
- مرحله 5: زمان WiFi
- مرحله 6: ورود به سیستم
- مرحله 7: سیم
- مرحله 8: روشن کنید
- مرحله 9: گام اختیاری و دستورات مفید
تصویری: سیستم کمک پارکینگ مبتنی بر Pi: 9 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
سلام! در اینجا یک پروژه کوچک جالب وجود دارد که می توانید در یک بعد از ظهر تهیه کنید و سپس روزانه از آن استفاده کنید. این بر اساس Raspberry Pi Zero W طراحی شده است و به شما کمک می کند تا ماشین خود را در هر زمان کاملاً پارک کنید.
در اینجا لیست کاملی از قطعات مورد نیاز وجود دارد:
- Raspberry Pi Zero W (ما در این مقاله به آن "rpi" یا "pi" می گوییم)
- کارت حافظه میکرو SD 4 گیگابایت یا بیشتر برای سیستم عامل pi
- دو ماژول سنسور tinyLiDAR زمان پرواز
- پانل LED 32x32 RGB (سازندگان زیادی برای این کار با نقاط مختلف وجود دارند ، برای مثال می توانید از Adafruit 1484 یا مشابه آن استفاده کنید ، فقط "32x32 LED Matrix" را در Google جستجو کنید). پانل ما دارای گام 6 میلی متری بود.
- 25 فوت کابل CAT5
- تقریباً 22 سیم رنگی بلوز نر تا نر هیدر
- منبع تغذیه 5 ولت 2 آمپر microUSB (شارژر تلفن همراه) همه چیز آماده است؟ بیا بریم!
TL ؛ خلاصه DR
- سیستم عامل Raspbian Lite را برای rpi بارگیری کنید
- پی را طوری پیکربندی کنید که بدون سر از طریق WiFi با IP ثابت کار کند
- محیط برنامه نویسی رایانه خود را با PuTTY ، WinSCP و اختیاری SublimeText با افزونه FTP تنظیم کنید
- درایور پنل LED را بارگیری ، ساخت و اتصال دهید
- pigpio را بارگیری و نصب کنید
- کد پایتون ما را بارگیری کنید
- صفحه نمایش LED 32x32 را سیم کشی کنید
- کابل فرمت CAT5 را برای سنسور tinyLiDAR جانبی بسازید
- مرحله اختیاری (اما فقط برای کاربران پیشرفته): وقتی همه چیز در حال کار است یک رقص شاد سریع انجام دهید ؛)
مرحله 1: Pi Zero W چیست؟
شما بدون شک نام Raspberry Pi را شنیده اید ، اما Pi 'Zero W چیست؟
Raspberry Pi Zero و Zero W افزودنی های اخیر به خانواده Pi بودند که بیشتر برای IoT و دیگر برنامه های کاربردی کم هزینه تعبیه شده بود. آنها نسخه های اصلی برد pi را حذف کرده اند اما هنوز دارای پردازنده قدرتمند 1 گیگاهرتز هستند. در اینجا مقایسه خوبی با همه مدل ها وجود دارد.
مزیت ما برای انتخاب Pi Zero W در اینجا در مقایسه با سایر بردهای کنترل این است که ما می توانیم آن را به راحتی در سطح بالاتری از زبان پایتون برنامه ریزی کنیم در حالی که هنوز از درایورهای سریع پنل LED C/C ++ استفاده می کنیم. همچنین قیمت آن فقط 10 دلار آمریکا است.
به خاطر داشته باشید که از آنجایی که این صفحه یک نسخه محروم از یک pi کامل است - برخی چیزها تغییر کرده است. به طور خاص ، جک اترنت حذف شده است ، کانکتور HDMI به اندازه کوچک تغییر کرده و چهار پورت USB به یک نوع میکرو USB ساده شده است. یک کانکتور micro USB دیگر نیز روی برد وجود دارد ، اما فقط برای تغذیه برد است. حذف همه اتصالات USB با اندازه کامل پیچیدگی هایی را ایجاد می کند. یعنی ، چگونه می توانید صفحه کلید و موس را به هم متصل کنید؟ تجهیزات جانبی و هاب USB استاندارد از اتصالات نوع A استفاده می کنند نه از نوع میکرو.
پس چه می توانیم بکنیم؟
ما می توانیم بدون سر برویم!
نه ، منظور ما دیوانه شدن نیست ، بلکه استفاده از جایگزینی برای راه اندازی سیم معمولی معمولی است. بدون سر به معنای "تونل" به پی از راه دور با استفاده از اتصال شبکه امن (SSH) است. برای این پروژه ما از روش بدون سر بر روی WiFi استفاده می کنیم. از این رو دلیل ما برای انتخاب نسخه W پی صفر به جای هزینه کمتر حتی صفر پی است.
توجه داشته باشید که روش دیگری برای اجرای pi در حالت بدون سر با استفاده از چیزی به نام VNC وجود دارد. این نرم افزار نیاز به نرم افزار VNC ویژه ای دارد که روی رایانه شما اجرا می شود ، زیرا یک دسکتاپ گرافیکی مجازی کامل در رایانه شما ارائه می دهد. ما برای پروژه خود به دسکتاپ نیاز نداریم (و واقعاً نمی خواهیم) بنابراین ما به روش ساده تر SSH پایبند خواهیم بود.
مرحله 2: اسکاتی ، ما به قدرت بیشتری نیاز داریم
پنل ماتریس LED 32x32 می تواند به تنهایی چندین آمپر جریان را مصرف کند. شوخی نکن! به همین دلیل است که اکثر این پنل ها شامل برخی از کابل های قدرت قوی برای تغذیه آن هستند. خوشبختانه برای ما گرچه نیازی به تأمین منبع تغذیه عظیم برای این پروژه نداریم. ما توانستیم کل این سیستم را فقط از یک شارژر یدکی 5 ولت/2 آمپر microUSB تلفن همراه که در اطراف داشتیم تغذیه کنیم. دلیل جریان کمتر این است که ما از گرافیک نسبتاً ساده استفاده می کنیم و بنابراین اکثر LED ها را روشن نمی کنیم. اگر به فکر ساختن انیمیشن یا استفاده از ویدئو/گرافیک روشن هستید ، قطعاً باید منبع تغذیه پنل را از منبع تغذیه جداگانه در نظر بگیرید.
مرحله 3: قرار دادن سنسور و نرم افزار
آیا توجه کرده اید که ما در این سیستم به جای یکی از دو tinyLiDAR استفاده می کنیم؟ همانطور که در نمودار تنظیم گاراژ نشان داده شده است ، یکی در جلوی ماشین و دیگری در امتداد یک طرف خودرو قرار گرفته است.
سنسور جانبی تشخیص می دهد که هنگام پارک خودرو از مرکز منحرف شده اید و البته قسمت جلویی زمان توقف را به شما می گوید.
نمایشگر LED 32 32 32 با نشان دادن فلش ها برای حرکت به جلو ، چپ یا راست و یک صفحه شمارش معکوس با گوشه های رنگی به شما کمک می کند تا نشان دهید که هنوز چقدر باید رانندگی کنید. به ویدیوی کوتاه ما برای همه حالت های نمایش نگاه کنید.
نقشه بازی
به طور خلاصه ، ما از کتابخانه hzeller C محبوب برای درایور LED ، Python برای کد کنترل و کتابخانه pipgpio C برای کنترل مناسب I2C سنسورهای خود استفاده می کنیم.
پایتون یک زبان فوق العاده آسان سطح بالا است که می توانید به راحتی در هر ویرایشگر متن آن را ویرایش کنید. ما معمولاً از SublimeText استفاده می کنیم و برای این پروژه نیز از یک افزونه FTP بسیار مفید استفاده کردیم که به ما اجازه می دهد فایل های اسکریپت را مستقیماً در pi ویرایش کنیم. این یک مرحله اختیاری است زیرا فقط در صورت نیاز به ویرایش کد مورد نیاز است. جزئیات بیشتر در انتهای این مقاله موجود است.
همه صفحات rpi ، همانطور که ممکن است بدانید ، بطور طبیعی از کشش ساعت I2C پشتیبانی نمی کنند. بنابراین ما مجدداً از کتابخانه pigpio برای این پروژه برای کنترل سنسورهای tinyLiDAR استفاده کردیم اما این بار با کمی پیچش…
چندین LiDAR کوچک
هنگام خرید tinyLiDAR ، همیشه روی آدرس برده پیش فرض 0x10 تنظیم می شود. این برای زمانی که از یک سنسور استفاده می کنید خوب است ، اما اگر بیش از یک سنسور در اتوبوس دارید ، اگر یک دستور به 0x10 بنویسید و همه آنها پاسخ دهند ممکن است مشکل ایجاد کند!
بنابراین ما 3 گزینه در اینجا داریم:
ابتدا می توانیم از دستور (tinyLiDAR) "R" برای نوشتن آدرس برده جدید به سنسور متصل به گذرگاه I2C استفاده کنیم. سپس این کار را برای هر سنسور تکرار کنید. برای انجام این روش ، هر سنسور را به صورت فیزیکی وصل کنید ، بنویسید و جدا کنید. tinyLiDAR آدرس داده شده را در حافظه غیر فرار پردازنده خود ذخیره می کند. این آدرس حتی پس از دوچرخه سواری برق نیز باقی می ماند تا زمانی که آن را با صدور دستور RESET پاک کنید.
گزینه دوم این است که از ویژگی مناسب Auto Assign که در کمپین IGG ایجاد کردیم ، استفاده کنیم. این شامل ارسال دستور "AR" و سپس اشاره انگشت به هر سنسور به صورت جداگانه برای اختصاص خودکار آدرس های پی در پی I2C به حسگرهای فردی مشابه گزینه اول است ، اما برای انجام این کار نیازی به قطع فیزیکی هر سنسور ندارید.
گزینه سوم گزینه ای است که ما در این پروژه از آن استفاده می کنیم و به لطف کتابخانه pigpio امکان پذیر است. برای پیاده سازی صحیح استاندارد I2C ، pigpio bitbangs GPIO. بنابراین به همین دلیل ، ما به راحتی می توانیم گذرگاه های جداگانه I2C را روی تقریباً هر جفت پین یدکی GPIO ایجاد کنیم.
بنابراین نیازی به برنامه ریزی مجدد آدرس های برده برای چند سنسور LiDAR نیست. ما فقط می توانیم برای هر یک از یک اتوبوس جداگانه استفاده کنیم:)
توجه داشته باشید که گذرگاه I2C با سرعت 100 کیلوبیت بر ثانیه بسیار قوی است. ما از کابل اترنت ساده CAT5 قدیمی برای گذراندن گذرگاه I2C به سمت سنسور tinyLiDAR جانبی استفاده می کنیم که در فاصله 25 فوتی کامل و بدون هیچ گونه اجزای تکرار کننده فعال قرار دارد! جزئیات سیم کشی سنسور در بالا نشان داده شده است.
خوب ، کافی است ، بارگیری کد را شروع کنیم!
مرحله 4: تنظیم Pi
احتیاط: pi از سیستم فایل لینوکس استفاده می کند ، بنابراین بهتر است مراحل زیر را بر روی سیستم مبتنی بر لینوکس انجام دهید. اگر این کار را در ویندوز انجام دهید ، ممکن است کارت SD خود را مجدداً قالب بندی کنید. ما از دسکتاپ عالی و رایگان Ubuntu 18.04 که در محیط مجازی بر روی رایانه Windows 10 اجرا می شود استفاده کردیم ، اما شما می توانید چیزی مشابه را امتحان کنید.
ابتدا باید سیستم عامل را از raspberrypi.org بارگیری کرده و سپس آن را روی کارت microSD خود بسوزانید. بنابراین این مراحل را دنبال کنید:
(1) در اوبونتو به اینجا بروید و تصویر Raspbian Lite را بگیرید. آن را در پوشه بارگیری خود ذخیره کنید.
(2) سپس ابزار نوشتن کارت SD Etcher را بارگیری کنید. FYI - لینک دانلود رسمی Etcher برای نسخه لینوکس در صفحه اصلی آنها برای ما کار نمی کند ، بنابراین ما به جای آن از روشی که در اینجا شرح داده شده استفاده کردیم:
به طور خلاصه مراحل شرح داده شده در پیوند عبارت بودند از:
مخزن دبیان Etcher را اضافه کنید:
echo "deb https://dl.bintray.com/resin-io/debian stable etcher" | sudo tee /etc/apt/sources.list.d/etcher.list
به کلید GPG Bintray.com اعتماد کنید:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61
بروزرسانی و نصب:
sudo apt-get update
sudo apt-get install etcher-electron
پس از اتمام ، می توانید Etcher را از دسکتاپ اوبونتو خود راه اندازی کنید. این فایل اصلی را از شما می خواهد (که در پوشه بارگیری قرار داده اید). مرحله بعدی در Etcher انتخاب هدف مناسب است. Etcher کار خوبی در تشخیص کارت میکرو SD شما انجام می دهد ، اما شما باید در اینجا پارانوئید باشید. برای تأیید یافتن مقصد مناسب - سعی کنید کارت microSD را با کلیک بر روی eject در پنجره Explorer فایل اوبونتو خارج کرده و تأیید کنید که به عنوان گزینه هدف در Etcher از بین می رود. سپس آن را باز کرده و به مرحله نهایی بروید ، یعنی نوشتن فایل روی این کارت microSD.
مدتی صبر کنید تا کار تمام شود و سپس ادامه دهید.
مرحله 5: زمان WiFi
بسیار خوب ، اکنون وقت آن است که مشخصات WiFi خود را وارد کنید.
نکته: همیشه می توانید اطلاعات (Ctrl+C) و (راست کلیک ، چسباندن) این مقاله را به جای تایپ کردن دستورات ، روی صفحه پایانه PuTTY کپی و جایگذاری کنید. در پایان این مقاله چندین دستور مفید لینوکس را نیز بررسی کنید.
پس از اتمام نوشتن Etcher روی کارت micro SD ، 2 درایو مانند تصویر بالا ظاهر می شود. یکی بوت نامیده می شود و دیگری rootfs نامیده می شود
ما باید از فایل منیجر برای رفتن به پوشه بوت و ایجاد فایلی به نام wpa_supplicant.conf استفاده کنیم.
برای انجام این مرحله ، فقط می توانید روی سمت چپ که در آن boot نوشته شده است کلیک کنید و سپس در سمت راست صفحه می توانید بر روی backgroud سفید راست کلیک کرده و Open in Terminal را انتخاب کنید.
با این کار پنجره ترمینال (مشابه CMD در ویندوز) باز می شود که در آن می توانید موارد زیر را تایپ کنید:
sudo nano wpa_supplicant.conf نکته: باید رمز سیستم لینوکس خود را وارد کنید تا بتواند به عنوان کاربر فوق العاده اجرا شود. این مورد ضروری است در غیر اینصورت پس از اتمام ویرایش نمی توانید فایل ها را ذخیره کنید
دستور بالا سپس ویرایشگر متن "nano" را راه اندازی می کند که در آن می توانید اطلاعات زیر را وارد کنید:
کشور = آمریکا
ctrl_interface = DIR = /var /run /wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "WiFi_SSID" scan_ssid = 1 psk = "WiFi_Password" key_mgmt = WPA - PSK}
توجه: فراموش نکنید که نام و رمز عبور WiFi خود را جایگزین WiFi_SSID و WiFi_Password کنید.
پس از اتمام کار ، فقط برای خروج روی Ctrl+X کلیک کنید و هنگام نوشتن فایل را هنگام خروج بله پاسخ دهید.
گام بعدی ما ایجاد یک فایل خالی به نام ssh است. برای انجام این کار ، ما فقط موارد زیر را در پنجره ترمینال تایپ می کنیم:
ssh را لمس کنید
در حال حاضر ما باید آدرس IP ثابت خود را به pi خود بدهیم تا هر بار که می خواهیم به آن متصل شویم بدانیم کجاست. موارد زیر را در پنجره ترمینال تایپ کنید:
sudo nano /etc/dhcpcd.conf
این باید ویرایشگر متن نانو را دوباره باز کند و ما می توانیم این متن را به انتهای فایل اضافه کنیم:
رابط wlan0
استاتیک ip_address = 192.168.0. روترهای استاتیک = 192.168.0.1 سرورهای_نام_استاتیک = 192.168.0.1 8.8.8.8
توجه: این فرض می کند که پیشوند شبکه شما 192.168.0.0 است. اگر 192.168.1 و غیره دارید ، به جای آن از شبکه خود استفاده کنید. سرور نام دامنه 8.8.8.8 مخصوص Google است و در اینجا اختیاری است.
در ترمینال عبارت 'exit' را تایپ کنید تا خاموش شود. سپس روی نام بوت در سمت چپ پنجره Files manager راست کلیک کرده و Eject را انتخاب کنید.
اکنون می توانید این کارت microSD را به pi خود وصل کرده و کابل برق microUSB را برای تغذیه pi خود وصل کنید.
اگر همه چیز خوب پیش رفت ، چراغ سبز برای مدتی چشمک می زند مانند دسترسی به هارد دیسک و باید شما را به شبکه WiFi وارد کند. حدود یک دقیقه به آن زمان دهید تا جا بیفتد و منتظر بمانید تا LED سبز سبز شود.
برای تأیید اینکه همه چیز کار کرده است ، می توانیم آن را پینگ کنیم.
بنابراین فقط خط زیر را تایپ کرده و پاسخ را بررسی کنید.
پینگ 192.168.0.200
در اوبونتو باید چیزی شبیه به این دریافت کنید:
پینگ 192.168.0.200
PING 192.168.0.200 (192.168.0.200) 56 (84) بایت داده. 64 بایت از 192.168.0.200: icmp_seq = 1 ttl = 128 زمان = 752 ms 64 بایت از 192.168.0.200: icmp_seq = 2 ttl = 128 زمان = 5.77 ms 64 بایت از 192.168.0.200: icmp_seq = 3 ttl = 128 زمان = 7.33 ms ^C --- 192.168.0.200 آمار پینگ --- 3 بسته منتقل ، 3 دریافت ، 0٪ از دست دادن بسته ، زمان 2001ms rtt min/avg/max/mdev = 5.777/255.346/752.922/351.839 ms 5.777
توجه داشته باشید که پینگ تا زمانی که کلید Ctrl+C را فشار ندهید به کار خود ادامه می دهد.
در ویندوز شما باید چیزی شبیه به این را دریافت کنید:
پینگ 192.168.0.200
پینگ 192.168.0.200 با 32 بایت داده: پاسخ از 192.168.0.200: بایت = 32 زمان = 4ms TTL = 64 پاسخ از 192.168.0.200: بایت = 32 زمان = 5ms TTL = 64 پاسخ از 192.168.0.200: بایت = 32 زمان = 6ms TTL = 64 پاسخ از 192.168.0.200: بایت = 32 زمان = 5ms TTL = 64 آمار پینگ برای 192.168.0.200: بسته ها: ارسال شده = 4 ، دریافت = 4 ، از دست رفته = 0 (0٪ ضرر) ، زمان تقریبی رفت و برگشت در میلی ثانیه: حداقل = 4ms ، حداکثر = 6ms ، متوسط = 5ms
همه خوبن؟ به بعد…
مرحله 6: ورود به سیستم
اکنون که اتصال pi را داریم ، می خواهیم دستوراتی را برای آن ارسال کنیم. اما چگونه؟ البته PuTTY! می توانید PuTTY را از اینجا بارگیری کنید راه اندازی PuTTY پس از بارگیری نرم افزار PuTTY ، با اطلاعات زیر یک پروفایل برای pi خود ایجاد کنید:
نام میزبان (یا آدرس IP): 192.168.0.200 نوع اتصال: SSH در قسمت Saved Sessions یک نام به این نمایه بدهید و گزینه Save را بزنید. می توانید از هر نامی که دوست دارید استفاده کنید به عنوان مثال "rpizw_200"
برای ورود ، کافی است آن را از لیست انتخاب کرده و Load را بزنید. سپس Open را فشار دهید. نام کاربری و رمز عبور را برای ورود وارد کنید:
نام ورود: pi
رمز عبور Defalt: تمشک
در اینجا یک جلسه نمونه در PuTTY هنگام ورود به سیستم نشان داده شده است:
ورود به سیستم: pi
گذرواژه [email protected]: Linux raspberrypi 4.14.34+ #1110 دوشنبه 16 آوریل 14:51:42 BST 2018 armv6l برنامه های موجود با سیستم Debian GNU/Linux نرم افزار رایگان هستند. شرایط دقیق توزیع برای هر برنامه در فایلهای جداگانه در/usr/share/doc/*/copyright توضیح داده شده است. دبیان گنو/لینوکس مطلقاً بدون ضمانت ، تا حدی که توسط قوانین قابل اجرا مجاز است ، ارائه می شود. آخرین ورود: [تاریخ و زمان] از 192.168.0. [آدرس IP] SSH فعال است و رمز عبور پیش فرض برای کاربر 'pi' تغییر نکرده است. این یک خطر امنیتی است - لطفاً به عنوان کاربر 'pi' وارد شوید و برای تعیین رمز عبور جدید 'passwd' را تایپ کنید.
در اولین ورود ، به شما هشدار می دهد که هنوز رمز عبور را تغییر نداده اید. شما باید آن را به چیزی قوی اما ساده برای یادآوری تغییر دهید ، بنابراین پیش بروید و آن را با تایپ passwd تغییر دهید و دستورات را دنبال کنید.
ما باید نرم افزار pi را با تایپ کردن این مورد به روز کنیم:
sudo apt-get update && sudo apt-get upgrade
با این کار هر گونه به روزرسانی مورد نیاز از اتصال اینترنت شما بارگیری می شود. اگر از شما خواسته شد اجازه دهید ادامه یابد ، بله پاسخ دهید و سپس مدتی به آن زمان دهید تا به روز شود.
در این زمان ما احتمالاً باید صدا را نیز در pi خاموش کنیم ، زیرا در کتابخانه درایور LED دارای صدای بدی است. کپی کنید ، خطوط زیر را یکی یکی بچسبانید و بعد از هر خط enter را فشار دهید:
سی دی
گربه << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf لیست سیاه snd_bcm2835 EOF sudo update-initramfs -u
خروجی چیزی شبیه به این خواهد بود:
pi@raspberrypi: ~ $ cd
pi@raspberrypi: ~ $ cat <> لیست سیاه snd_bcm2835>> لیست سیاه EOF snd_bcm2835 pi@raspberrypi: ~ $ sudo update -initramfs -u pi@raspberrypi: ~ $
سپس باید pi را راه اندازی مجدد کنیم تا تغییرات اعمال شوند ، بنابراین موارد زیر را تایپ کنید:
sudo را دوباره راه اندازی کنید
البته با راه اندازی مجدد pi ارتباط قطع می شود تا بتوانید PuTTY را ببندید. سعی کنید یک دقیقه بعد دوباره وارد سیستم شوید.
اکنون وقت آن است که یک مدیر فایل گرافیکی FTP به نام WinSCP دریافت کنید. می توانید WinSCP را از اینجا بارگیری کنید
WinSCP شباهت زیادی به مدیریت فایل در ویندوز و اوبونتو دارد. به ما این امکان را می دهد که به راحتی فایل ها را به & از pi بکشید و رها کنید و تنها با یک کلیک راست ماوس ، دستوراتی ایجاد کنید.
پس از بارگیری ، باید یک پروفایل برای pi خود تنظیم کنید.
WinSCP Setup در پنجره ورود به سیستم ، New Site را انتخاب کنید. از تنظیمات زیر برای جلسه استفاده کنید:
پروتکل فایل: SFTP نام میزبان: 192.168.0.200 نام کاربری: pi رمز عبور: {هر گذرواژه ای را که در مرحله PuTTY بالا به طور پیش فرض تغییر داده اید}
در تنظیمات پیشرفته سایت به محیط | برای فهرست راهنمای راه دور و هر چیزی که دوست دارید برای تنظیمات Local Directory دایرکتوری ها را وارد کنید /home /pi.
در تنظیمات پیشرفته سایت به محیط | Shell را انتخاب کنید و sudo su را انتخاب کنید - در لیست کشویی Shell.
سپس Save را بزنید.
هنگام انجام مراحل زیر ، WinSCP و PuTTY را باز نگه دارید
به پایانه PuTTY بروید و موارد زیر را وارد کنید:
سی دی
این ما را به فهرست اصلی ما در داخل pi می رساند.
اکنون می توانیم کتابخانه درایور LED را از github بگیریم. برای استفاده از آخرین کد ، ما باید repo را بکشیم ، بنابراین باید ابزار git را نصب کنیم.
این را در PuTTY وارد کنید:
sudo apt-get git install
پاسخ Y را ادامه دهید و چند ثانیه طول می کشد تا git را از طریق اینترنت برای ما نصب کنید.
خروجی باید چیزی شبیه به این باشد:
pi@raspberrypi: su $ sudo apt-get git install
خواندن لیست بسته ها … انجام شد ساختمان وابستگی درخت خواندن اطلاعات وضعیت … انجام شد بسته های اضافی زیر نصب می شود: git-man liberror-perl بسته های پیشنهادی: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn بسته های جدید زیر نصب خواهد شد: git git-man liberror-perl 0 ارتقا یافته ، 3 تازه نصب شده ، 0 برای حذف و 0 ارتقا نیافته است. باید 4 ، 848 کیلوبایت بایگانی تهیه کنید. پس از این عملیات ، 26.4 مگابایت فضای دیسک اضافی استفاده می شود. می خواهید ادامه دهید؟ [Y/n] y دریافت: 1 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf liberror-perl all 0.17024-1 [26.9 کیلوبایت] دریافت: 2 https://muug.ca/mirror/ raspbian/raspbian stretch/main armhf git-man all 1: 2.11.0-3+deb9u3 [1، 433 kB] دریافت: 3 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf git armhf 1: 2.11.0-3+deb9u3 [3 ، 388 کیلوبایت] 4 ، 848 کیلو بایت در 5 ثانیه (878 کیلوبایت بر ثانیه) انتخاب بسته انتخاب liberror-perl که قبلاً انتخاب نشده بود.(در حال خواندن پایگاه داده … 34363 فایل و دایرکتوری در حال حاضر نصب شده است.) در حال آماده سازی برای بازکردن بسته… آماده شدن برای باز کردن بسته… در حال آماده سازی برای باز کردن…/git_1٪ 3a2.11.0-3+deb9u3_armhf.deb… باز کردن بسته بندی git (1: 2.11.0-3+deb9u3)… راه اندازی git-man (1: 2.11.0-3+deb9u3)… راه اندازی liberror-perl (0.17024-1)… محرکهای پردازش برای man-db (2.7.6.1-2)… راه اندازی git (1: 2.11.0-3+deb9u3)…
اکنون به WinSCP بازگردید و به پوشه /home /pi بروید. سپس در سمت راست این پنجره WinScp ، راست کلیک کرده و انتخاب کنید تا یک Directory جدید به نام "parking" ایجاد شود.
در صفحه PuTTY می توانید ls را تایپ کنید تا تأیید شود که فقط یک پوشه جدید در pi ایجاد کرده اید. سپس این را وارد کنید:
سی دی p [TAB]نکته: با فشار دادن کلید TAB نام جزئی برای شما تکمیل می شود
کلید ورود را فشار دهید تا وارد این فهرست شوید.
pi@raspberrypi: parking $ cd پارکینگ/
pi@raspberrypi: ~/پارک $ ls
اکنون می توانیم فایل های درایور را با وارد کردن موارد زیر در PuTTY دریافت کنیم:
git clone
خروجی چیزی شبیه به این خواهد بود:
pi@raspberrypi: ~/پارک $ git clone
شبیه سازی به 'rpi-rgb-led-matrix'… از راه دور: شمارش اشیاء: 3740 ، انجام شد. از راه دور: مجموع 3740 (دلتا 0) ، استفاده مجدد 0 (دلتا 0) ، بسته مجدد 3740 دریافت اشیاء: 100٪ (3740/3740) ، 20.61 MiB | 1.32 MiB/s ، انجام شد. حل دلتا: 100 ((2550/2550) ، انجام شد.
اکنون فایل های درایور LED را با رفتن به این فهرست جدید 'rpi-rgb-led-matrix' و تایپ دستور make کامپایل کنید:
cd r [TAB]
بساز و این چیزی است که روی تخته ما به نظر می رسید
pi@raspberrypi: ~/پارکینگ $ cd rpi-rgb-led-matrix/
pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $ make -C./lib make [1]: وارد دایرکتوری '/home/pi/parking/rpi-rgb-led-matrix/lib' g ++- I. -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = "" معمولی "-Wextra -Wno -unused -parameter -fno -استثنا -c -o -led -matrix.o led-matrix.cc g ++ -I../ شامل - دیوار -O3 -g -fPIC -DDEFAULT_HARDWARE = "" معمولی "-Wextra -Wno -unused -parameter -fno -استثنا -c -o options -initialize.o options-initialize.cc g ++ -I../ شامل -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = "" معمولی "-Wextra -Wno -unused -parameter -fno -استثنا -c -o framebuffer.o framebuffer.cc g ++ -I../ شامل -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE = '"معمولی" -Extra -Wno -unused -parameter -fno -استثنا -c -o thread.o thread.cc g ++ -I../ شامل -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE =' "معمولی" -Wextra -Wno -unused -parameter -fno -استثنا -c -o bdf -font.o bdf -fon t.cc g ++ -I../ شامل -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = "" معمولی "-موارد اضافی -بدون پارامتر استفاده نشده -fno -استثنا -c -o graphics.o graphics.cc g ++ -.. -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = "" معمولی "-Wextra -Wno -unused -parameter -fno -استثنائات -c -o led -matrix -co led-matrix-c.cc cc -I../ شامل -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = "" معمولی "-Wextra -Wno -unused -parameter -c -o -hardware -mapping.o hardware -mapping.c g ++ -I../ شامل -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"معمولی" -Wextra -Wno -unused -parameter -fno -استثنا -c -o content -streamer.o content-streamer.cc g ++ -I../ شامل -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE = '"معمولی" -Exxtra -Wno -unused -parameter -fno -استثنا -c -o pixel -mapper.o pixel-mapper.cc g ++ -I../ شامل -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"معمولی" -Wextra -Wno -unused -parameter -fno -excep tions -c -o multiplex-mappers.o multiplex-mappers.cc ar rcs librgbmatrix.a gpio.o led-matrix.o options-initialize.o framebuffer.o thread.o bdf-font.o graphics.o transformer.o led-matrix-co hardware-mapping.o content-streamer.o pixel-mapper.o multiplex-mappers.o g ++ -shared -Wl، -soname، librgbmatrix.so.1 -o librgbmatrix.so.1 gpio.o led -matrix.o options-initialize.o framebuffer.o thread.o bdf-font.o graphics.o transformer.o led-matrix-co hardware-mapping.o content-streamer.o pixel-mapper.o multiplex-mappers. o -lpthread -lrt -lm -lpthread make [1]: خروج از فهرست '/home/pi/parking/rpi -rgb -led -matrix/lib' make -C samples -api -use make [1]: ورود به فهرست /home/pi/parking/rpi -rgb -led -matrix/samples -api -use 'g ++ -I../ شامل -Wall -O3 -g -Wextra -Wno -unused -parameter -c -c -o demo -main. o demo-main.cc make -C../lib make [2]: وارد دایرکتوری '/home/pi/parking/rpi-rgb-led-matrix/lib' make [2]: خروج از دایرکتوری '/home/pi /parking/rpi-rgb-led-matrix/lib 'g ++ demo-main.o -o demo -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ شامل -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o -minimal -example.o minimal-example.cc g ++ minimal -example.o - o minimal -example -L../ lib -lrgbmatrix -lrt -lm -lpthread cc -I../ شامل -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o -o -c -example.o c- example.c cc c -example.o -o c -example -L../ lib -lrgbmatrix -lrt -lm -lpthread -lstdc ++ g ++ -I../ شامل -Wall -O3 -g -Wextra -Wno -unused- پارامتر -c -o text -example.o text-example.cc g ++ text -example.o -o text -example -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ شامل -Wall - O3 -g -Wextra -Wno-unused-parameter -c -o scrolling-text-example.o scrolling-text-example.cc g ++ scrolling-text-example.o -o scrolling-text-example -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ شامل -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o -clock.o clock.cc g ++ clock.o -o clock -L.. /lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ شامل -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o ledcat.o ledcat.cc g ++ le dcat.o -o ledcat -L../ lib -lrgbmatrix -lrt -lm -lpthread make [1]: خروج از دایرکتوری '/home/pi/parking/rpi -rgb -led -matrix/samples -api -use' pi raspberrypi: ~/parking/rpi-rgb-led-matrix $
گام بعدی ما اتصال کتابخانه ماتریس RGB به پایتون خواهد بود. ما برای این پروژه از پایتون 2 پیش فرض استفاده کردیم. بنابراین برای انجام این صحافی ، خطوط زیر را هربار مانند قبل وارد می کنیم:
sudo apt-get update && sudo apt-get python2.7-dev python-pillow -y
ساخت build-python sudo ساخت install-python
توجه: می توانید با خیال راحت یکی از هشدارهای مربوط به "-Wstrict-prototype" را که هنگام اجرای دو دستور اظهار می شود ، نادیده بگیرید. اجرای دستورات چند دقیقه طول می کشد و در حالی که مشغول کار هستند چیزی نمی گویند. پس نترسید - پی شما باید زود برگردد ؛)
در اینجا خروجی جزئی در اولین عبارت make است:
ساخت پسوند "گرافیک"
arm -linux -gnueabihf -gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototypes -fno -strict -aliasing -Wdate -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefix -map =/build/python2.7-kKRR4y/python2.7-2.7.13 =. -fstack -protector -strong -Wformat -Werror = format -security -fPIC -I../../ شامل -I/usr/include/python2.7 -c rgbmatrix/graphics.cpp -o build/temp.linux- armv6l-2.7/rgbmatrix/graphics.o -O3 -Wall cc1plus: اخطار: گزینه خط فرمان '-Wstrict-prototypes' برای C/ObjC معتبر است اما برای C ++ arm-linux-gnueabihf-g ++ -pthread -shared -Wl ، -O1 -Wl ، -Bsymbolic- توابع -Wl ، -z ، relro -fno -strict -aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototypes -Wdate -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefix -map =/build/python2.7-kKRR4y/python2.7-2.7.13 =. -fstack -protector -strong -Wformat -Werror = format -security -Wl، -z، relro -Wdate -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefix -map =/build/python2.7 -kKRR4y/python2.7 -2.7.13 =. -fstack -protector -strong -Wformat -Werror = format -security build/temp.linux -armv6l -2.7/rgbmatrix/graphics.o -L../../ lib -lrgbmatrix -o./rgbmatrix/graphics.so را [1]: خروج از دایرکتوری '/home/pi/parking/rpi-rgb-led-matrix/bindings/python' pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $
در مرحله بعد کتابخانه pigpio C را نصب می کنیم. برای انجام صحیح این کار ، باید آن را از منبع تهیه کنیم ، بنابراین فقط خطوط زیر را وارد کنید:
سی دی
sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip unzip pigpio.zip cd PIGPIO ساخت sudo make install rm pigpio.zip
نصب بالا حدود 3 دقیقه طول می کشد.
اکنون وقت آن است که فایل های پروژه پایتون خود را دریافت کنیم. زیر را وارد کنید:
سی دی
cd/home/pi/parking/rpi-rgb-led-matrix/bindings/python/sample wget https://s3.amazonaws.com/microedco/tinyLiDAR/Raspberry+Pi/tinyL_parking.zip unzip -j tinyL_parking.zip rm tinyL_parking.zip
سپس برای اجرای آن موارد زیر را تایپ کنید:
sudo python parking.py
اما شما نیازی به انجام این کار ندارید ، زیرا ما هنوز باید همه چیز را به هم متصل کنیم…
مرحله 7: سیم
همانطور که قبلاً ذکر شد ، ما پنل LED را از همان آداپتور برق تغذیه می کنیم که pi را تغذیه می کند. برای انجام این کار ، شما باید سیم های سنگین قرمز و سیاه را به پین هدر نر متصل کنید تا بتوان آنها را به پین 2 و 9 اتصال 40pin pi متصل کرد.
حالا برق را به pi وصل کنید و طبق نمودار تصویر بالا پنل LED را وصل کنید. در حال حاضر پین 2 را قطع نگه دارید.
توجه: پانل ماتریس LED گاهی اوقات می تواند در حالت بد بو فعال شود. اگر این اتفاق بیفتد ، می تواند منبع تغذیه شما را بدون توجه به ظرفیت فعلی آن به شدت بارگیری کند. ما در حین توسعه در منبع تغذیه نیمکت خود که می تواند بیش از 4 آمپر را ارائه دهد ، متوجه این موضوع شدیم. راه حل این است که ابتدا کد pi را اجرا کرده و سپس پین 2 را وصل کنید تا پنل LED روشن شود. به این ترتیب ، صفحه باید در حالت قدرت کم قرار گیرد زیرا حالت های تصادفی LED را خارج می کند. جریان آرام (همه LED ها خاموش) برای پنل LED ما فقط 50 میلی آمپر در 5 ولت بود.
CAT5
ما از یک کابل اترنت 25 فوت CAT5 استفاده کردیم و آن را تغییر دادیم تا از یک طرف به پین های سربرگ pi متصل شود و در طرف دیگر پین های اتصال GROVE را بپذیریم تا بتوانیم فاصله را برای قرار دادن سنسور tinyLiDAR سمت خود افزایش دهیم. عکسهای بالا این کابل را قبل و بعد از تغییرات نشان می دهد. رنگ سیم های پین هدر را نادیده بگیرید زیرا با نمودارها ارتباطی ندارند. فقط مطمئن شوید که سیستم خود را همانطور که در نمودارهای اتصال تصویری که قبلاً در مرحله 3 نشان داده شده است ، سیم کشی کنید.
مرحله 8: روشن کنید
توالی اولیه مناسب برای بالا بردن شارژر microUSB به pi و منتظر ماندن LED های آبی روی سنسورهای tinyLiDAR است که به سرعت چشمک می زند و نشان می دهد که اندازه گیری ها را انجام می دهند. این ثابت می کند که کد به درستی کار می کند.
سپس می توانید پین 2 را برای منبع پنل LED به آرامی اما محکم وصل کنید. مراقب باشید هنگام انجام این کار آن را خراب نکنید! اگر پانل LED چند LED روشن منجمد نشان می دهد ، احتمالاً خرابی دارد ، بنابراین microUSB را از pi جدا کرده و چند ثانیه منتظر بمانید تا دوباره دنبال کنید.
برای اجرای کد ، موارد زیر را وارد کنید:
cd/home/pi/parking/rpi-rgb-led-matrix/bindings/python/نمونه
sudo python parking.py
اگر همه چیز خوب پیش رفت ، باید یک صفحه نمایش مشابه آنچه در ویدیو نشان داده شده است دریافت کنید.
یک نگاه سریع به کد parking.py داشته باشید تا متوجه شوید از چه محدودیت هایی استفاده می کنیم. سنسور جلو به طور پیش فرض 200 میلی متر است. از آنجا که محدوده سنسور 11 میلی متر تا 2 متر است ، بهتر است فاصله nom_parked_Front را در 200 میلی متر یا بیشتر حفظ کنید. سنسور جانبی nom_parked_Side روی 600 میلی متر تنظیم شده است. تصویر بالا را برای کد پایتون مشاهده کنید که این گزینه های پیکربندی را نشان می دهد.
اگر همه چیز کار می کند ، می توانید سیستم را در گاراژ خود نصب کرده و پارامترهای فوق را در صورت نیاز تنظیم کنید. از آنجا که pi به وای فای شما متصل است ، همیشه می توانید وارد شوید و تنظیمات فاصله خود را همانطور که برای راه اندازی گاراژ خود نیاز دارید در حالی که هنوز نصب شده است ویرایش کنید.
این الان هست؟
چرا بله ، بله همینطور است! - زمان انجام رقص شاد شما:)
از خواندن شما متشکریم و از دستیار جدید پارکینگ خود لذت ببرید!
مرحله 9: گام اختیاری و دستورات مفید
مرحله اختیاری - افزونه FTP برای Sublime Text
برای ویرایش مستقیم فایل های اسکریپت پایتون بر روی pi ، می توانیم افزونه FTP به نام Sublime SFTP by Wbond را نصب کنیم. با دنبال کردن دستورالعمل های اینجا ، می توانید این افزونه را بارگیری کنید
برای راه اندازی این افزونه ، باید اعتبار FTP را در زیر File | پیکربندی کنیم SFTP/FTP | صفحه راه اندازی سرور…
برای راه اندازی ما از موارد زیر استفاده کردیم:
"type": "sftp"، "sync_down_on_open": true ، "sync_same_age": true ، "host": "192.168.0.200" ، "user": "pi" ، "password": "YOUR_RPI_PASSWORD_HERE" ، "port": "22" ، "remote_path": "/home/pi/" ، "file_permissions": "664" ، "dir_permissions": "775" ،
از Ctrl+S یا File | استفاده کنید ذخیره کنید تا این اطلاعات ذخیره شود. از شما خواسته می شود که نامی را برای این تنظیمات فراخوانی کنید. ما به سادگی آن را "rpizw_0_200" نامیدیم
حالا برای ورود به pi از SublimeText ، به File | بروید SFTP/FTP | مرور سرور…
از لیست گزینه های باز شده را انتخاب کنید. شما می خواهید نمایه ای را با نامی که در بالا مشخص کرده اید انتخاب کنید ؛) برای حرکت در پوشه ها و ویرایش فایل مورد نظر ، دستورات را دنبال کنید.
موارد اضافی مفید
دستورات مفید لینوکس برای استفاده در pi.
قبل از اینکه pi را از برق بکشید ، همیشه آن را خاموش کنید تا فایل کارت microSD خود خراب نشود. این دستور را وارد کنید:
sudo تعطیل کن
و منتظر بمانید تا چراغ سبز قبل از قطع برق خاموش شود. به طور مشابه برای راه اندازی مجدد آن ، می توانید وارد کنید:
sudo را دوباره راه اندازی کنید
برای فهرست بندی پرونده ها در فهرست ، از این موارد استفاده کنید:
ls
در اینجا می توانید دستورات مفید دیگر لینوکس را پیدا کنید
توصیه شده:
سیستم پارکینگ هوشمند مبتنی بر اینترنت اشیا با استفاده از NodeMCU ESP8266: 5 مرحله
سیستم پارک هوشمند مبتنی بر اینترنت اشیا با استفاده از NodeMCU ESP8266: امروزه پیدا کردن پارکینگ در مناطق شلوغ بسیار دشوار است و هیچ سیستمی برای جزییات موجود بودن پارکینگ به صورت آنلاین وجود ندارد. تصور کنید اگر می توانید اطلاعات موجود بودن محل پارکینگ را در تلفن خود دریافت کنید و در اطراف خود رومینگ ندارید تا بررسی کنید
پارکینگ هوشمند مبتنی بر IOT: 7 مرحله
پارکینگ هوشمند مبتنی بر IOT: توسط Tanmay Pathak و Utkarsh Mishra. دانشجویان @ موسسه بین المللی فناوری اطلاعات ، حیدرآباد (IIITH) چکیده ما با موفقیت یک سیستم پارک هوشمند مبتنی بر IOT را پیاده سازی کردیم. با کمک گره های جداگانه (سنسورهای مجاورت) در
سیستم مرتب سازی رنگ: سیستم مبتنی بر آردوینو با دو کمربند: 8 مرحله
سیستم مرتب سازی رنگ: سیستم مبتنی بر آردوینو با دو کمربند: حمل و/یا بسته بندی محصولات و اقلام در زمینه صنعتی با استفاده از خطوط ساخته شده با استفاده از تسمه نقاله انجام می شود. این کمربندها به جابجایی مورد از نقطه ای به نقطه دیگر با سرعت خاصی کمک می کند. برخی از وظایف پردازش یا شناسایی ممکن است
کمک پارکینگ معکوس در گاراژ با استفاده از سنسور ایمنی موجود و مدار آنالوگ: 5 مرحله
کمک پارک معکوس در گاراژ با استفاده از سنسور ایمنی موجود و مدار آنالوگ: من گمان می کنم که اختراعات زیادی در تاریخ بشریت به دلیل همسرهای شکایت کننده ایجاد شده است. ماشین لباسشویی و یخچال و فریزر مطمئناً گزینه های مناسبی به نظر می رسند. کوچک & quot؛ اختراع & quot؛ توضیح داده شده در این دستورالعمل یک دستگاه الکترونیکی است
کمک پارکینگ گاراژ با آردوینو: 5 مرحله (همراه با تصاویر)
هنگام پارک کردن در گاراژ ، فضا بسیار محدود است. واقعاً. ماشین من (MPV خانواده) حدود 10 سانتی متر کوتاهتر از فضای موجود است. من در ماشین خود سنسورهای پارک دارم اما بسیار محدود هستند: در زیر 20 سانتی متر هشدار قرمز نشان می دهند بنابراین