Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
Salom! Mana, kichkina loyiha, siz uni tushdan keyin qilishingiz mumkin va keyin uni har kuni ishlatishingiz mumkin. U Raspberry Pi Zero W -ga asoslangan va har doim mashinangizni mukammal park qilishga yordam beradi.
Sizga kerak bo'ladigan qismlarning to'liq ro'yxati:
- Raspberry Pi Zero W (biz bu maqolada buni "rpi" yoki "pi" deb ataymiz)
- Pi OS uchun 4 Gb yoki undan katta micro SD karta
- Parvoz masofasining ikkita tinyLiDAR vaqti moduli
- 32x32 RGB LED paneli (nuqta balandligi har xil bo'lgan ko'plab ishlab chiqaruvchilar bor, masalan, Adafruit 1484 yoki shunga o'xshashlardan foydalanishingiz mumkin, faqat "32x32 LED matritsasi" ni Google -da qidiring). Bizning paneli 6 mm balandlikda edi.
- 25 fut CAT5 kabeli
- taxminan 22 ta rangli erkakdan erkakning boshli pinli o'tish simlari
- 5V 2Amp microUSB quvvat manbai (uyali telefon zaryadlovchi) Hammasi tayyormi? Qani ketdik!
DR; Xulosa
- Rpi uchun Raspbian Lite OS -ni yuklab oling
- Statik IP bilan Wi -Fi orqali boshsiz ishlash uchun pi -ni sozlang
- PuTTY, WinSCP va ixtiyoriy ravishda SublimeText w/ FTP qo'shimchasi yordamida shaxsiy kompyuter muhitini sozlang.
- LED paneli drayverini yuklab oling, yarating va bog'lang
- Pigpio -ni yuklab oling va o'rnating
- Python kodimizni yuklab oling
- 32x32 LED displey panelini sim bilan ulang
- Yon tinyLiDAR sensori uchun CAT5 uzatma kabelini yarating
- Ixtiyoriy qadam (lekin faqat ilg'or foydalanuvchilar uchun): hamma ishlayotganda tez baxtli raqs qiling;)
1 -qadam: Pi Zero W nima?
Siz, shubhasiz, Raspberry Pi haqida eshitgansiz, lekin "Zero W" pi nima?
Raspberry Pi Zero va Zero W - bu Pi oilasining so'nggi qo'shimchalari bo'lib, ular IoT va boshqa arzon narxlardagi ilovalar uchun ko'proq ma'noga ega edi. Ular asl pi kartaning versiyalarini olib tashlagan, ammo baribir kuchli 1 gigagertsli protsessorga ega. Bu erda barcha modellarni yaxshi taqqoslash.
Bizga Pi Zero W ni tanlashning boshqa boshqaruv platalaridan afzalligi shundaki, biz uni yuqori darajadagi Python tilida osongina dasturlashimiz mumkin, shu bilan birga LED C/C ++ tez LED panelli drayverlaridan foydalanamiz. Bundan tashqari, uning narxi atigi 10 dollar.
Shuni yodda tutingki, bu taxta to'liq pi -ning o'chirilgan versiyasi bo'lgani uchun, ba'zi narsalar o'zgardi. Xususan, chekilgan uyasi olib tashlandi, HDMI ulagichi mini -o'lchamga o'zgartirildi va to'rtta USB -port bitta mikro USB turiga soddalashtirildi. Bortda boshqa mikro USB ulagichi bor, lekin u faqat kartani quvvatlantirish uchun. USB ulagichlarining to'liq o'lchamlarini yo'q qilish ba'zi murakkabliklarni keltirib chiqaradi. Ya'ni, klaviatura va sichqonchani qanday ulash mumkin? Standart USB qo'shimcha qurilmalari va uyalari A tipli ulagichlardan foydalanadilar, mikro tipli emas.
Xo'sh, biz nima qila olamiz?
Biz boshsiz yura olamiz!
Yo'q, biz aqldan ozishni emas, balki oddiy simli sozlamalarga alternativani ishlatishni xohlaymiz. Boshsiz - xavfsiz qobiq (SSH) tarmoq ulanishi yordamida masofadan turib pi -ga "tunnel" kiritish. Ushbu loyiha uchun biz Wi -Fi orqali boshsiz yondashuvdan foydalanamiz. Shuning uchun biz pi nolining W versiyasini arzonroq narx o'rniga tanlashimizga sabab.
E'tibor bering, pi ni VNC deb nomlangan boshsiz rejimda ishlatishning yana bir usuli bor. Bu sizning kompyuteringizda ishlaydigan VNC uchun maxsus dasturiy ta'minotni talab qiladi, lekin u sizning kompyuteringizda to'liq virtual grafikli ish stolini ta'minlaydi. Bizga loyihamiz uchun ish stoli kerak emas (va umuman xohlamayman), shuning uchun biz oddiy SSH usuliga tayanamiz.
2 -qadam: Skotti, bizga ko'proq kuch kerak
32x32 LED matritsali panel, o'z -o'zidan, bir necha amperlik tokni olishi mumkin. Bexazil! Shuning uchun, bu panellarning ko'pchiligida uni quvvatlantirish uchun og'ir ko'rinadigan kuch kabellari mavjud. Yaxshiyamki, biz uchun bu loyiha uchun katta quvvat manbai kerak emas. Biz butun tizimni 5V/2ampli microUSB zaryadlangan zaryadlovchidan zaryad olgandik. Pastki oqimning sababi shundaki, biz nisbatan oddiy grafikadan foydalanamiz va shuning uchun LEDlarning ko'pini yoqmaymiz. Agar siz animatsiya yoki video/yorqin grafikadan foydalanmoqchi bo'lsangiz, panelni alohida quvvat manbaidan quvvatlantirish haqida o'ylashingiz kerak.
3 -qadam: Sensorni joylashtirish va dasturiy ta'minot
Siz bu tizimda bitta emas, ikkita tinyLiDARdan foydalanayotganimizni payqadingizmi? Garajni o'rnatish sxemasida ko'rsatilgandek, biri mashinaning oldiga, ikkinchisi esa mashinaning bir tomoniga joylashtirilgan.
Yon sensori, siz mashinani to'xtab turganingizda, markazdan burilib ketayotganingizni aniqlaydi va, albatta, old tomondan qachon to'xtash kerakligini aytadi.
32x32 LED displeyi sizga oldinga, chapga yoki o'ngga harakatlanish uchun o'qlarni ko'rsatib, qancha burchakda haydash kerakligini ko'rsatadi. Barcha ko'rsatiladigan holatlar uchun bizning qisqa videomizga qarang.
O'yin rejasi
Xulosa qilib aytganda, biz LED drayveri uchun har doim mashhur bo'lgan hzeller C kutubxonasidan, boshqaruv kodi uchun Pythondan va sensorlarimizni I2C ni to'g'ri boshqarish uchun pipgpio C kutubxonasidan foydalanamiz.
Python - bu har qanday matn muharririda osongina tahrir qilish mumkin bo'lgan juda oson yuqori darajadagi til. Biz odatda SublimeText -dan foydalanamiz va bu loyihada biz skript fayllarini to'g'ridan -to'g'ri pi -da tahrirlashga imkon beradigan juda foydali FTP plaginini ishlatdik. Bu ixtiyoriy qadam, chunki agar siz kodni tahrir qilmoqchi bo'lsangiz. Batafsil ma'lumotni maqolaning oxirida olish mumkin.
Siz bilganingizdek, barcha rpi platalari I2C soatini uzatishni qo'llab -quvvatlamaydi. Shunday qilib, biz kichkina LiDAR sensorlarini boshqarish uchun ushbu loyiha uchun yana cho'chqachilik kutubxonasidan foydalandik, lekin bu safar engil burilish bilan …
Ko'p sonliLiDAR
Agar siz tinyLiDARni sotib olsangiz, u har doim standart xizmat ko'rsatuvchi 0x10 manziliga o'rnatiladi. Bu bitta sensordan foydalansangiz yaxshi bo'ladi, lekin agar sizda avtobusda bir nechta bo'lsa, 0x10 ga buyruq yozsangiz hammasi javob bersa muammo bo'lishi mumkin!
Shunday qilib, bizda bu erda 3 ta variant bor:
Birinchidan, biz (tinyLiDAR) "R" buyrug'i yordamida I2C avtobusiga ulangan bitta sensorga yangi qul manzilini yozishimiz mumkin. Keyin buni har bir sensor uchun takrorlang. Ushbu protsedura uchun har bir sensorni jismonan biriktirish, yozish va ajratish. tinyLiDAR berilgan manzilni doimiy xotirada saqlaydi. Manzil, RESET buyrug'i bilan o'chirilmaguncha, elektr aylanishidan keyin ham saqlanib qoladi.
Ikkinchi variant - biz IGG kampaniyasida cho'zilgan maqsad sifatida yaratgan qulay Avtomatik tayinlash xususiyatidan foydalanish. Bu "AR" buyrug'ini yuborishni, so'ngra har bir sensorga barmog'ingizni ko'rsatishni o'z ichiga oladi, chunki birinchi variantga o'xshash individual sensorlarga ketma -ket I2C manzillarini avtomatik ravishda belgilashingiz mumkin, lekin buning uchun har bir sensorni jismonan uzishingiz shart emas.
Uchinchi variant - bu loyihada biz foydalanayotgan variant va bu cho'chqachilik kutubxonasi tufayli mumkin. I2C standartini to'g'ri amalga oshirish uchun pigpio GPIO -ni chaqiradi. Shunday qilib, biz har qanday zaxira GPIO pinlarida har bir alohida I2C avtobusini osongina yaratishimiz mumkin.
Shuning uchun bir nechta LiDAR sensorlari uchun qul manzillarini qayta dasturlashning hojati yo'q. Biz har biri uchun alohida avtobusdan foydalanishimiz mumkin:)
E'tibor bering, 100 Kbit / s tezlikda ishlaydigan I2C avtobusi aslida juda mustahkam. Biz eski CAT5 chekilgan kabelidan foydalanamiz, I2C avtobusini 25 metr uzoqlikdagi tinyLiDAR sensori yonida, faol takrorlovchi komponentlarsiz ishlatish uchun! Sensor simlarining tafsilotlari yuqorida ko'rsatilgan.
Yaxshi, jibber jabber, kodni yuklab olishni boshlaylik!
4 -qadam: Pi -ni sozlash
Ogohlantirish: pi Linux fayl tizimidan foydalanadi, shuning uchun Linux asosidagi tizimda quyidagi amallarni bajarish yaxshidir. Agar siz buni Windows -da qilsangiz, SD -kartani qayta formatlashingiz mumkin. Biz Windows 10 -da virtual muhitda ishlaydigan ajoyib va bepul Ubuntu 18.04 ish stolidan foydalandik, lekin siz shunga o'xshash narsani sinab ko'rishingiz mumkin.
Avval OSni raspberrypi.org saytidan yuklab olishingiz va keyin uni microSD kartangizga yozishingiz kerak bo'ladi. Shunday qilib, quyidagi bosqichlarni bajaring:
(1) Ubuntu -da bu erga o'ting va Raspbian Lite tasvirini oling. Yuklab olishlar papkasida saqlang.
(2) Keyin Etcher SD -karta yozish yordam dasturini yuklab oling. Ma'lumot - Linux -ning asosiy sahifasidagi Etcher -ni rasmiy yuklab olish havolasi biz uchun ishlamadi, shuning uchun biz bu erda tasvirlangan usuldan foydalandik:
Xulosa qilib, havolada tasvirlangan qadamlar:
Etcher debian omborini qo'shing:
echo "deb https://dl.bintray.com/resin-io/debian barqaror etcher" | sudo tee /etc/apt/sources.list.d/etcher.list
Bintray.com GPG kalitiga ishoning:
sudo apt-key adv --keyserver keyserver.ubuntu.com-recv kalitlari 379CE192D401AB61
Yangilash va o'rnatish:
sudo apt-get yangilanishi
sudo apt-get etcher-electron ni o'rnating
Tugatgandan so'ng, siz Ubuntu ish stolidan Etcher -ni ishga tushirishingiz mumkin. U sizdan manba faylini so'raydi (yuklashlar papkasiga qo'yasiz). Etcher -da keyingi qadam to'g'ri maqsadni tanlashdir. Etcher sizning micro SD -kartangizni yaxshi aniqlaydi, lekin siz bu erda paranoid bo'lishingiz kerak. U to'g'ri manzilni topganini tekshirish uchun - Ubuntu faylini qidirish oynasida chiqarish tugmachasini bosib, microSD kartasini chiqarib oling va uning Etcher ichidagi maqsadli variant sifatida yo'qolganligini tekshiring. Keyin uni joyiga qo'ying va oxirgi bosqichga o'ting, ya'ni faylni ushbu microSD kartasiga yozing.
Ish tugaguncha biroz kutib turing va keyin davom eting.
5 -qadam: WiFi vaqti
Yaxshi, endi Wi -Fi ma'lumotlarini kiritish vaqti keldi.
Maslahat: buyruqlarni yozish o'rniga har doim ushbu maqoladagi ma'lumotlarni (Ctrl+C) nusxalash va (o'ng bosish, joylashtirish) PuTTY terminal ekraniga joylashtirish mumkin. Linuxning bir nechta foydali buyruqlari uchun ushbu maqolaning oxirini tekshiring.
Etcher micro SD kartaga yozishni tugatgandan so'ng, yuqorida ko'rsatilgan 2 ta disk paydo bo'ladi. Biri yuklash, ikkinchisi rootfs deb ataladi
Biz yuklash papkasiga kirish va wpa_supplicant.conf nomli faylni yaratish uchun fayllar menejeridan foydalanishimiz kerak.
Buni amalga oshirish uchun siz yuklash yoziladigan chap tomonni bosishingiz mumkin, so'ngra ekranning o'ng tomonida oq fonni o'ng tugmasini bosing va terminalda ochish -ni tanlang.
Bu terminal oynasini ochadi (Windows -dagi CMD -ga o'xshash), siz quyidagilarni yozishingiz mumkin:
sudo nano wpa_supplicant.conf Maslahat: Linux tizim parolini kiritishingiz kerak, shunda u super foydalanuvchi sifatida ishlaydi. Bu talab qilinadi, aks holda siz tahrirni tugatgandan so'ng fayllarni saqlay olmaysiz
Keyin yuqoridagi buyruq "nano" matn muharririni ishga tushiradi, u erda siz quyidagi ma'lumotlarni kiritishingiz mumkin:
mamlakat = AQSh
ctrl_interface = DIR = /var /run /wpa_supplicant GROUP = netdev update_config = 1 tarmoq = {ssid = "WiFi_SSID" scan_ssid = 1 psk = "WiFi_Password" key_mgmt = WPA - PSK}
Eslatma: WiFi_SSID va WiFi_Password -ni o'z Wi -Fi tarmog'i nomi va parol bilan almashtirishni unutmang.
Ishingiz tugagach, chiqish uchun Ctrl+X tugmalarini bosing va chiqishda faylni yozishga Ha deb javob bering.
Bizning keyingi qadamimiz ssh deb nomlangan bo'sh faylni yaratishdir. Buning uchun terminal oynasida quyidagilarni yozamiz:
ssh ga teging
Endi biz pi -ga statik IP -manzilni berishimiz kerak, shuning uchun har safar unga ulanishni xohlaganimizda uning qaerdaligini bilib olamiz. Terminal oynasida quyidagilarni kiriting:
sudo nano /etc/dhcpcd.conf
Bu nano matn muharririni qayta ochishi kerak va biz bu matnni faylning pastki qismiga qo'shishimiz mumkin:
wlan0 interfeysi
statik ip_adress = 192.168.0. statik yo'riqnoma = 192.168.0.1 statik domen_adi_servers = 192.168.0.1 8.8.8.8
Eslatma: Bu sizning tarmoq prefiksi 192.168.0. Agar sizda 192.168.1 va boshqalar bo'lsa, uning o'rniga tarmoqdan foydalaning. Domen nomi serveri 8.8.8.8 Google uchun va bu ixtiyoriy.
Uni o'chirish uchun terminalga "chiqish" yozing. Keyin Fayllar menejeri oynasining chap tomonidagi yuklash nomini o'ng tugmasini bosing va O'chirish -ni tanlang.
Endi siz ushbu microSD kartani pi -ga ulashingiz va micro -USB quvvat kabelini ulashingiz mumkin.
Agar hamma narsa yaxshi bo'lsa, yashil LED bir muncha vaqt yonib -o'chib turadi, chunki u qattiq diskka kirgandek bo'ladi va u sizni Wi -Fi tarmog'iga kiritadi. O'tirishga bir daqiqa vaqt bering va LEDning yashil rangda yonishini kuting.
Hammasi ishlaganligini tekshirish uchun biz uni ping qilib ko'rishga harakat qilishimiz mumkin.
Shunday qilib, quyidagi qatorni kiriting va javobni tekshiring.
ping 192.168.0.200
Ubuntu -da siz shunga o'xshash narsani olishingiz kerak:
ping 192.168.0.200
PING 192.168.0.200 (192.168.0.200) 56 (84) bayt ma'lumot. 192.168.0.200 dan 64 bayt: icmp_seq = 1 ttl = 128 vaqt = 752 ms 192.168.0.200 dan 64 bayt: icmp_seq = 2 ttl = 128 vaqt = 5.77 ms 192.168.0.200 dan 64 bayt: icmp_seq = 3 ttl = 128 vaqt = 7.33 ms ^C --- 192.168.0.200 ping statistikasi --- 3 ta paket uzatildi, 3 ta qabul qilindi, 0% paket yo'qolishi, 2001ms rtt min/avg/max/mdev = 5.777/255.346/752.922/351.839 ms
E'tibor bering, chiqish uchun Ctrl+C tugmalarini bosmaguningizcha ping ishlashda davom etadi.
Windows -da siz shunga o'xshash narsani olishingiz kerak:
ping 192.168.0.200
192.168.0.200 ni 32 baytli ma'lumotlar bilan to'ldirish: 192.168.0.200 dan javob: bayt = 32 vaqt = 4ms TTL = 64 192.168.0.200 dan javob: bayt = 32 vaqt = 5ms TTL = 64 192.168.0.200 dan javob: bayt = 32 marta = 6ms TTL = 64 192.168.0.200 dan javob: bayt = 32 vaqt = 5ms TTL = 64 Ping statistikasi uchun 192.168.0.200: Paketlar: Yuborilgan = 4, Qabul qilingan = 4, Yo'qotilgan = 0 (0% yo'qotish), Taxminan qaytish vaqti milli-soniyalarda: Minimal = 4ms, Maksimal = 6ms, O'rtacha = 5ms
Hammasi yaxshi? Boshlab…
6 -qadam: Kirish
Endi biz pi -ga ulanishimiz mumkin, biz unga buyruqlar yubormoqchimiz. Lekin qanday? PuTTY, albatta! PuTTY -ni bu erdan yuklab olishingiz mumkin PuTTY -ni o'rnatish PuTTY dasturini yuklaganingizdan so'ng, pi ma'lumotlarini quyidagi ma'lumotlarni o'z ichiga olgan profil yarating:
Xost nomi (yoki IP -manzili): 192.168.0.200 Ulanish turi: SSHBu profilga Saqlangan sessiyalar ostida nom bering va Saqlash -ni bosing. Siz xohlagan ismni ishlatishingiz mumkin, masalan "rpizw_200"
Kirish uchun uni ro'yxatdan tanlang va "Yuklash" ni bosing. Keyin Ochish -ni bosing. Kirish uchun foydalanuvchi nomi va parolni kiriting:
Kirish nomi: pi
Defol parol: malina
Siz kirganingizda PuTTY -da ko'rsatiladigan sessiya namunasi:
Kirish: pi
[email protected] ning paroli: Linux raspberrypi 4.14.34+ #1110 Mon Apr 16 14:51:42 BST 2018 armv6l Debian GNU/Linux tizimiga kiritilgan dasturlar - bepul dasturiy ta'minot; har bir dastur uchun aniq tarqatish shartlari/usr/share/doc/*/mualliflik huquqidagi alohida fayllarda tasvirlangan. Debian GNU/Linux, amaldagi qonunlar ruxsat bergan darajada, KAFSATSIZ YO'Q. Oxirgi kirish: [sana va vaqt] 192.168.0 dan. [Ip -manzil] SSH yoqilgan va 'pi' foydalanuvchisi uchun standart parol o'zgarmagan. Bu xavfsizlik xavfi - iltimos, 'pi' foydalanuvchisi sifatida kiring va yangi parol o'rnatish uchun 'passwd' kiriting.
Birinchi kirishda siz hali parolni o'zgartirmaganligingiz haqida ogohlantirasiz. Siz uni kuchli, ammo esda qolarli narsaga o'zgartirishingiz kerak, shuning uchun passwd yozib, ko'rsatmalarga amal qilib, o'zgartiring.
Keyingi dasturni pi orqali yangilashimiz kerak:
sudo apt-get update && sudo apt-get upgrade
Bu Internetga ulanishdan kerakli yangilanishlarni yuklab oladi. Agar davom ettirish so'ralsa, "Ha" deb javob bering va keyin uni yangilash uchun biroz vaqt bering.
Bu vaqtda biz, ehtimol, pi -dagi ovozni o'chirib qo'yishimiz kerak, chunki u LED drayverlar kutubxonasida yomon juju bor. Nusxalash, quyidagi satrlarni birma -bir joylashtirish va har bir satrdan keyin Enter ni bosing:
CD ~
mushuk << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf qora ro'yxati snd_bcm2835 EOF sudo update-initramfs -u
Chiqish shunday bo'ladi:
pi@malina: ~ $ cd ~
pi@raspberrypi: ~ $ cat <> qora ro'yxat snd_bcm2835>> EOF qora ro'yxati snd_bcm2835 pi@raspberrypi: ~ $ sudo update -initramfs -u pi@raspberrypi: ~ $
O'zgarishlar kuchga kirishi uchun biz pi -ni qayta ishga tushirishimiz kerak, shuning uchun quyidagilarni yozing:
sudo hozir qayta yoqing
Albatta, ulanish o'chadi, chunki pi qayta yuklanadi, shuning uchun siz PuTTY -ni yopishingiz mumkin. Bir daqiqadan so'ng qayta kirishga harakat qiling.
Endi WinSCP deb nomlangan grafik FTP fayl boshqaruvchisini olish vaqti keldi. WinSCP -ni bu erdan yuklab olishingiz mumkin
WinSCP Windows va Ubuntu -da fayl boshqaruvchisiga juda o'xshaydi. Bu bizga sichqonchaning o'ng tugmachasini bosish orqali fayllarni pi -ga osongina tortib olib tashlash va katalog yaratish imkonini beradi.
Yuklab olingandan so'ng, siz pi uchun profil o'rnatishingiz kerak bo'ladi.
WinSCP ni sozlash Kirish oynasida Yangi saytni tanlang. Sessiya uchun quyidagi sozlamalardan foydalaning:
Fayl protokoli: SFTP Xost nomi: 192.168.0.200 Foydalanuvchi nomi: pi Parol: {PuTTY qadamidagi standart parolni o'zgartirgan parolingiz}
Kengaytirilgan sayt sozlamalarida Atrof -muhit | ga o'ting Kataloglar va Masofadagi katalog uchun /home /pi kiriting va Mahalliy katalog sozlamalari uchun xohlagan narsangizni kiriting.
Kengaytirilgan sayt sozlamalarida Atrof -muhit | ga o'ting Shell va sudo su ni tanlang - Shell ochiladigan ro'yxatida.
Keyin Saqlash -ni bosing.
Quyidagi amallarni bajarayotganda WinSCP va PuTTY -ni ochiq tuting
PuTTY terminaliga o'ting va quyidagilarni kiriting:
CD ~
Bu bizni pi ichidagi uy katalogimizga olib boradi.
Endi biz LED haydovchilar kutubxonasini github -dan olishimiz mumkin. Oxirgi kodni ishlatish uchun biz repo -ni tortib olishimiz kerak, shuning uchun git yordam dasturini o'rnatishimiz kerak.
Buni PuTTY -ga kiriting:
sudo apt-get install git
davom ettirish uchun Y ga javob bering va bizdan internetni o'rnatish uchun bir necha soniya kerak bo'ladi.
Chiqish shunday bo'lishi kerak:
pi@raspberrypi: ~ $ sudo apt-get install git
Paketlar ro'yxati o'qilmoqda… Bajarildi Bog'liqlik daraxtining holati to'g'risidagi ma'lumotlar o'qilmoqda… Bajarildi Quyidagi qo'shimcha paketlar o'rnatiladi: git-man liberror-perl Tavsiya etilgan paketlar: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn Quyidagi YANGI paketlar o'rnatiladi: git git-man liberror-perl 0 yangilangan, 3 yangi o'rnatilgan, o'chirish uchun 0 va yangilanmagan. 4, 848 kB arxivlarni olish kerak. Ushbu operatsiyadan so'ng 26,4 MB qo'shimcha disk maydoni ishlatiladi. Davom etishni xohlaysizmi? [Y/n] y olish: 1 https://muug.ca/mirror/raspbian/raspbian strech/main armhf liberror-perl all 0.17024-1 [26.9 kB] Get: 2 https://muug.ca/mirror/ raspbian/raspbian streç/main armhf git-man all 1: 2.11.0-3+deb9u3 [1, 433 kB] Oling: 3 https://muug.ca/mirror/raspbian/raspbian streç/main armhf git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] 5 sekundda (878 kB/s) 4, 848 kB yuklandi, oldinroq tanlanmagan liberror-perl paketini tanlash.(Ma'lumotlar bazasi o'qilmoqda… hozirda 34363 ta fayl va katalog o'rnatilgan.) Ochishga tayyorlanmoqda…/liberror-perl_0.17024-1_all.deb… liberror-perl (0.17024-1) ochilmoqda… Oldindan tanlanmagan git-man to'plami tanlanmoqda. Ochishga tayyorlanmoqdamiz…/git-man_1%3a2.11.0-3+deb9u3_all.deb… Ochishga tayyorlanmoqdamiz…/git_1%3a2.11.0-3+deb9u3_armhf.deb… Git paketdan chiqarilmoqda (1: 2.11.0-3+deb9u3)… git-man sozlanmoqda (1: 2.11.0-3+deb9u3)… O'rnatilmoqda liberror-perl (0.17024-1)… man-db (2.7.6.1-2) uchun tetiklarni qayta ishlash … gitni sozlash (1: 2.11.0-3+deb9u3)…
Endi WinSCP -ga qayting va /home /pi papkasiga o'ting. Keyin WinScp oynasining o'ng tomonida sichqonchaning o'ng tugmachasini bosing va "mashinalar" deb nomlangan yangi katalog yaratishni tanlang.
PuTTY ekranining orqasida siz pi -da yangi papka yaratganingizni tasdiqlash uchun ls -ni yozishingiz mumkin. Keyin buni kiriting:
CD p [TAB]Maslahat: TAB tugmachasini bosish sizning nomingizni avtomatik ravishda to'ldiradi
Ushbu katalogga kirish uchun Enter tugmasini bosing.
pi@raspberrypi: ~ $ CD mashinalar/
pi@raspberrypi: ~/mashinalar $ ls
Endi biz PuTTY -ga quyidagilarni kiritish orqali haydovchi fayllarini olishimiz mumkin:
git klon
Chiqish quyidagicha ko'rinadi:
pi@raspberrypi: ~/park $ git clone
"Rpi-rgb-led-matrix" ga klonlash … masofadan boshqarish: Ob'ektlarni sanash: 3740, bajarildi. uzoqdan: Hammasi 3740 (delta 0), qayta ishlatilgan 0 (delta 0), qayta ishlatilgan 3740 Qabul qilinadigan ob'ektlar: 100% (3740/3740), 20.61 MiB | 1,32 MiB/s, bajarildi. Deltalarni hal qilish: 100% (2550/2550), bajarilgan.
Endi LED drayveri fayllarini yangi "rpi-rgb-led-matrix" katalogiga kirib, make buyrug'ini yozib kompilyatsiya qiling:
CD r [TAB]
qilmoq Va bu bizning taxtamizda shunday ko'rinardi
pi@raspberrypi: ~/mashinalar $ 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 ++ katalogiga kirish- I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"muntazam" -Wextra -Wno -unused -parameter -fno -exceptions -c -o gpio.o gpio.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"muntazam" -Wextra -Wno -unused -parameter -fno -exceptions -c -o led -matrix.o led-matrix.cc g ++ -I../ include - Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"muntazam" -Wextra -Wno -unused -parameter -fno -exceptions -c -o options -initialize.o options-initialize.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"muntazam" -Wextra -Wno -unused -parameter -fno -exceptions -c -o framebuffer.o framebuffer.cc g ++ -I../ include -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE = '"muntazam" -Wextra -Wno -unused -parameter -fno -exceptions -c -o thread.o thread.cc g ++ -I../ include -W3 -g -fPIC -DDEFAULT_HARDWARE =' "muntazam" '-Wextra -No -ishlatilmaydigan -fno -istisnolar -c -o bdf -font.o bdf -fon t.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = 'muntazam Men../ o'z ichiga -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"muntazam" -Wextra -Wno -unused un -parameter -fno -exceptions -c -o transformator.o transformator.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"muntazam" -Wextra -Wno -unused -parameter -fno -exceptions -c -o led -matrix -co led-matrix-c.cc cc -I../ -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"muntazam" -Wextra -Wno -unused un -parameter -c -o apparat -mapping.o apparat -mapping.c g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"muntazam" -Wextra -Wno -unno -used -parameter -fno -exceptions -c -o content -streamer.o content-streamer.cc g ++ -I../ include -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE = 'muntazam -fPIC -DDEFAULT_HARDWARE = '"muntazam" -Wextra -Wno -unused -parameter -fno -excep tc -o -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 grafika.o transformator.o led-matrix-co apparat-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 variantlari-initialize.o framebuffer.o thread.o bdf-shrift.o grafika.o transformator.o led-matritsa-apparat-xaritalash.o kontent-oqimchi.o piksel-xaritachi.o multipleks-xaritalash. o -lpthread -lrt -lm -lpthread make [1]: '/home/pi/parking/rpi -rgb -led -matrix/lib' katalogidan chiqish -C misollari -api -foydalanish make [1]: katalogga kirish ' /home/pi/parking/rpi -rgb -led -matrix/misollar -api -use 'g ++ -I../ include -Wall -O3 -g -Wextra -Wno -ishlatilmaydigan -c -o demo -main. o demo-main.cc make -C../lib make [2]: '/home/pi/parking/rpi-rgb-led-matrix/lib' katalogiga kirish [2]: '/home/pi katalogidan chiqish /parking/rpi-rgb-led-matrix/lib 'g ++ demo-main.o -o demo -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ o'z ichiga -Wall -O3 -g -Wextra -Wno -unused un -parameter -c -o minimal -example.o minimal-example.cc g ++ minimal -example.o - u minimal -misol -L../ lib -lrgbmatrix -lrt -lm -lpthread cc -I../ o'z ichiga -Wall -O3 -g -Wextra -Wno -ishlatilmaydigan parametr -c -o c -example.o c- example.c cc c -example.o -o c -example -L../ lib -lrgbmatrix -lrt -lm -lpthread -lstdc ++ g ++ -I../ include -Wall -O3 -g -Wextra -Wno -unused - parametr -c -o matn -misol.o matn- misol.cc g ++ matn -misol.o -o matn -misol -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ o'z ichiga -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../ o'z ichiga -Wall -O3 -g -Wextra -Wno -ishlatilmaydigan parametr -c -o soat.o soat.cc g ++ soat.o -o soat -L.. /lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ o'z ichiga -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]: katalogdan chiqish '/home/pi/parking/rpi -rgb -led -matrix/misollar -api -use' pi @raspberrypi: ~/parking/rpi-rgb-led-matrix $
Bizning keyingi qadamimiz RGB matritsa kutubxonasini Python bilan bog'lash bo'ladi. Biz ushbu loyiha uchun standart Python 2 dan foydalanganmiz. Shunday qilib, bu majburiylikni bajarish uchun biz avvalgi kabi bir vaqtning o'zida quyidagi qatorni kiritamiz:
sudo apt-get update && sudo apt-get install python2.7-dev python-yostiq -y
build-python sudo make install-python qiling
Eslatma: "-Wstrict-prototip" haqidagi ikkita ogohlantirishni ishga tushirganda ko'rsatiladigan bitta ogohlantirishni e'tiborsiz qoldirishingiz mumkin. Buyruqlarni bajarish bir necha daqiqa davom etadi va ular band bo'lgan paytda hech narsa demaydilar. Shunday qilib, qo'rqmang - sizning pi tez orada qaytib kelishi kerak;)
Bu erda birinchi make bayonotining qisman chiqishi:
"grafik" kengaytmasini yaratish
arm -linux -gnueabihf -gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototiplari -fno -qat'iy -aliasing -Wdate -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefiks -map =/build/python2.7-kKRR4y/python2.7-2.7.13 =. -fstack -protector -strong -Wformat -Werror = format -security -fPIC -I../../ include -I/usr/include/python2.7 -c rgbmatrix/graphics.cpp -o build/temp.linux- armv6l-2.7/rgbmatrix/graphics.o -O3 -Wall cc1plus: ogohlantirish: buyruq qatori opsiyasi '-Wstrict-prototiplari' C/ObjC uchun amal qiladi, lekin C ++ uchun emas arm-linux-gnueabihf-g ++ -pthread -shared -Wl, -O1 -Wl, -Bsymbolic -funktsiyalari -Wl, -z, relro -fno -qat'iy -aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototiplari -Wdate -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefiksi -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 make [1]: katalogdan chiqish '/home/pi/parking/rpi-rgb-led-matrix/bindings/python' pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $
Keyin biz pigpio C kutubxonasini o'rnatamiz. Buni to'g'ri bajarish uchun biz uni manbadan qilishimiz kerak, shuning uchun quyidagi satrlarni kiriting:
CD ~
sudo rm --rf PIGPIO
Yuqoridagi o'rnatish taxminan 3 daqiqa davom etadi.
Endi Python loyiha fayllarini olish vaqti keldi. Quyidagilarni kiriting:
CD ~
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
Keyin uni bajarish uchun quyidagilarni kiriting:
sudo python to'xtash joyi
Ammo buni hozir qilishning hojati yo'q, chunki biz hali hammasini bog'lashimiz kerak …
7 -qadam: simlar
Yuqorida aytib o'tganimizdek, biz LED panelni pi quvvatlaydigan quvvat adapteridan quvvat oldik. Buni amalga oshirish uchun siz katta qizil va qora simlarni erkak bosh pimlarga ulashingiz kerak bo'ladi, shunda ular 40 -pinli ulagichning 2 va 9 -pinlariga ulanishi mumkin.
Quvvatni hozir pi -ga ulang va LED panelini yuqoridagi rasmda ko'rsatilganidek ulang. 2 -pinni hozircha uzib qo'ying.
QAYD: LED matritsali panel ba'zida kulgili holatda yoqilishi mumkin. Agar shunday bo'ladigan bo'lsa, u qanday quvvatga ega bo'lishidan qat'i nazar, sizning elektr ta'minotingizni keskin kamaytirishi mumkin. Biz buni 4 amperdan ortiq quvvatni ta'minlaydigan dastgoh ta'minotini ishlab chiqish jarayonida payqadik. Buning echimi - avval pi kodini ishga tushirish va keyin LED panelini quvvatlantirish uchun 2 -pinni ulash. Shunday qilib, panel kam quvvatli holatda bo'lishi kerak, chunki u tasodifiy LED holatini o'chiradi. LED paneli uchun sokin oqim (barcha LEDlar o'chirilgan) 5vda atigi 50mA edi.
CAT5
Biz 25 futli CAT5 chekilgan kabelidan foydalanganmiz va uni bir uchida pi sarlavhasi pimlariga ulash uchun, boshqa tarafdagi GROVE ulagichlarini qabul qilish uchun o'zgartirdik, shunda biz yonimizdagi tinyLiDAR sensorini joylashtirish uchun masofani uzaytira olamiz. Yuqoridagi fotosuratlar ushbu kabelni o'zgartirishdan oldin va keyin ko'rsatadi. Sarlavha pin simlarining ranglariga e'tibor bermang, chunki ular diagrammalar bilan bog'liq emas. 3 -bosqichda ilgari ko'rsatilgan rasmli ulanish diagrammalarida ko'rsatilganidek, tizimni sim bilan ulashingizga ishonch hosil qiling.
8 -qadam: Chiroqni yoqing
Quvvatni to'g'ri ishga tushirishning to'g'ri ketma -ketligi microUSB zaryadlovchisini pi -ga ulash va tinyLiDAR datchiklaridagi ko'k LEDlarning tez yonib -o'chib turishini o'lchashni kutish bo'lishi kerak. Bu kod to'g'ri ishlayotganligini isbotlaydi.
Keyin siz LED panelini etkazib berish uchun pin 2 -ni sekin, lekin mahkam bog'lab qo'yishingiz mumkin. Buni qilayotganda xato qilmaslik uchun ehtiyot bo'ling! Agar LED paneli bir nechta muzlatilgan yorqin LEDni ko'rsatsa, u yonib ketgan bo'lishi mumkin, shuning uchun microUSB quvvatini pi -dan chiqarib oling va qayta yoqish ketma -ketligini bir necha soniya kuting.
Kodni ishga tushirish uchun quyidagilarni kiriting:
cd/home/pi/parking/rpi-rgb-led-matrix/bindings/python/namunalari
sudo python to'xtash joyi
Agar hamma narsa yaxshi bo'lsa, siz videoda ko'rsatilgandek ekranga ega bo'lishingiz kerak.
Qaysi chegaralarni ishlatganimizni tushunish uchun parking.py kodini tezda ko'rib chiqing. Old sensor uchun standart 200 mm. Sensor diapazoni 11 mm dan 2 m gacha bo'lgani uchun nom_parked_Front masofasini 200 mm yoki undan yuqori masofada saqlash yaxshi bo'ladi. Yon sensori nom_parked_Side 600 mm ga o'rnatiladi. Python kodini ko'rish uchun yuqoridagi rasmga qarang.
Agar hamma narsa yaxshi bo'lsa, siz tizimni garajingizga o'rnatishingiz va kerak bo'lganda yuqoridagi parametrlarni sozlashingiz mumkin. Agar siz Wi -Fi tarmog'iga ulangan bo'lsangiz, siz har doim kirishingiz va masofaviy sozlamalarni o'zgartirishingiz mumkin, garaj o'rnatilgan bo'lsa ham.
Bu hozirmi?
Nega ha, ha shunday! - baxtli raqs qilish vaqti:)
O'qiganingiz uchun tashakkur va yangi mashinalar yordamchisidan zavqlaning!
9 -qadam: ixtiyoriy qadam va foydali buyruqlar
Ixtiyoriy qadam - yuqori matn uchun FTP qo'shimchasi
Python skript fayllarini to'g'ridan -to'g'ri pi -da tahrir qilish uchun biz Wbond by Sublime SFTP deb nomlangan FTP qo'shimchasini o'rnatishimiz mumkin. Bu qo'shimchani bu erdagi ko'rsatmalarga amal qilib yuklab olishingiz mumkin
Ushbu qo'shimchani o'rnatish uchun biz Fayl | ostida FTP hisob ma'lumotlarini sozlashimiz kerak SFTP/FTP | Serverni sozlash … sahifasi.
O'rnatish uchun biz quyidagilarni ishlatdik:
"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 yoki Fayl | dan foydalaning Ushbu ma'lumotni saqlash uchun saqlash. Sizdan ushbu konfiguratsiyani chaqirish uchun ism so'raladi. Biz uni "rpizw_0_200" deb atadik
Endi SublimeText -dan pi -ga kirish uchun Fayl | ga o'ting SFTP/FTP | Serverni ko'rib chiqish…
Ochilgan variantlar ro'yxatidan tanlang. Siz yuqorida ko'rsatilgan ismga ega profilni tanlashni xohlaysiz;) Papkalarda harakat qilish va kerakli faylni tahrir qilish uchun ko'rsatmalarga amal qiling.
Foydali qo'shimchalar
Pi -da foydalanish uchun foydali Linux buyruqlari.
Pi -ni o'chirishdan oldin, microSD kartangizda fayl buzilmasligi uchun uni har doim o'chirib qo'ying. Bu buyruqni kiriting:
sudo hozir yopiladi
va quvvatni o'chirishdan oldin yashil chiroqning o'chishini kuting. Xuddi shunday, uni qayta ishga tushirish uchun siz quyidagilarni kiritishingiz mumkin:
sudo hozir qayta yoqing
Katalogdagi fayllarni ro'yxatga olish uchun quyidagilarni ishlating:
ls
Bu erda boshqa foydali Linux buyruqlarini topishingiz mumkin
Tavsiya:
Qishloq xo'jaligi uchun LoRa-ga asoslangan vizual monitoring tizimi - Firebase va burchak yordamida oldingi ilovani loyihalash: 10 qadam
Qishloq xo'jaligi uchun LoRa-ga asoslangan vizual monitoring tizimi | Firebase va burchak yordamida oldingi ilovani loyihalash: Oldingi bobda biz sensorlar loRa moduli bilan ishlayotgani haqida gaplashamiz va real vaqt rejimida olov bazasini to'ldiramiz va biz butun loyihamiz qanday ishlayotganini ko'rdik. Bu bobda biz qanday qilib qila olishimiz haqida gaplashamiz
NodeMCU ESP8266 yordamida IoT asosli aqlli mashinalar tizimi: 5 qadam
NodeMCU ESP8266 yordamida IoT -ga asoslangan aqlli mashinalar tizimi: Hozir gavjum joylarda mashinalar to'xtash joyini topish juda qiyin va Internetda to'xtash joylari haqida ma'lumot olish uchun tizim yo'q. Tasavvur qiling -a, siz telefoningizda to'xtab turish joyi haqida ma'lumot olishingiz mumkinmi va sizda rouming yo'qligini tekshirish uchun
Garajda mavjud xavfsizlik sensori va analog sxemasi yordamida teskari mashinalar yordami: 5 qadam
Garajda mavjud xavfsizlik sensori va analog sxemasi yordamida teskari to'xtash joyi yordamchisi: Men shubhalanamanki, insoniyat tarixida ko'plab ixtirolar xotinlarning shikoyatlari tufayli qilingan. Kir yuvish mashinasi va muzlatgich, albatta, munosib nomzodlarga o'xshaydi. Mening kichkina " ixtiro " Ushbu yo'riqnomada tasvirlangan elektron
Eski disket/kompakt -diskli dvigatelli robotli mashinalar uchun aqlli boshqaruv tizimi: 8 qadam (rasmlar bilan)
Qadimgi floppi/CD drayverini ishlatadigan robotli avtoulovlar uchun aqlli boshqaruv tizimi: Robotli avtomashinalar uchun aqlli boshqaruv tizimi robot -mashinangiz uchun yaxshi boshqaruv tizimini yaratishdan xavotirlanyapsizmi? Bu eski disket/ CD/ DVD drayverlarini ishlatish uchun ajoyib echim. buni kuzatib turing va bu haqda tasavvurga ega bo'ling georgeraveen.blogspot.com saytiga tashrif buyuring
Rotary mashinalar tizimi: 18 qadam
Aylanadigan avtoturargoh tizimi: haydovchining to'xtab turish joyi bilan ishlash va avtomobilni tizim darajasida qoldirish oson. Haydovchi o'rnatilgan xavfsizlik zonasidan chiqib ketgandan so'ng, avtotransport vositasi to'xtab turgan mashinani olib tashlash uchun avtomatik ravishda aylanadi