Sadržaj:
- Korak 1: Što je Pi Zero W?
- Korak 2: Scotty, treba nam više snage
- Korak 3: Postavljanje senzora i softver
- Korak 4: Postavljanje Pi
- Korak 5: Vrijeme WiFi -a
- Korak 6: Prijava
- Korak 7: Žice
- Korak 8: Osvijetlite
- Korak 9: Izborni korak i korisne naredbe
Video: Sustav pomoći pri parkiranju na temelju Pi: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Hej tamo! Evo jednog cool projekta koji možete napraviti u jednom popodnevu, a zatim ga koristiti svakodnevno. Temelji se na Raspberry Pi Zero W i pomoći će vam da svaki put savršeno parkirate automobil.
Evo potpunog popisa dijelova koji će vam trebati:
- Raspberry Pi Zero W (u ovom članku ćemo to nazvati 'rpi' ili 'pi')
- 4 GB ili veća mikro SD kartica za pi OS
- Dva miniLiDAR modula osjetnika udaljenosti leta
- 32x32 RGB LED ploča (za to postoji mnogo proizvođača s različitim visinama točaka, možete, na primjer, koristiti Adafruit 1484 ili slično, samo potražite "32x32 LED Matrix" na Googleu). Naš panel imao je korak od 6 mm.
- 25 stopa kabela CAT5
- otprilike 22 žice kratkospojnika za zaglavlje u boji za muškarce
- 5v 2Amp microUSB napajanje (punjač za mobitel) Sve je spremno? Idemo!
TL; DR Sažetak
- Preuzmite Raspbian Lite OS za rpi
- Konfigurirajte pi da radi bez glave preko WiFi -a sa statičkim IP -om
- Postavite okruženje za razvoj računala s PuTTY, WinSCP i opcionalno SublimeText w/ FTP dodatkom
- Preuzmite, napravite i povežite upravljački program LED ploče
- Preuzmite i instalirajte pigpio
- Preuzmite naš Python kod
- Ožičite LED ploču zaslona 32x32
- Napravite produžni kabel CAT5 za bočni osjetnik tinyLiDAR
- Izborni korak (ali samo za napredne korisnike): otplešite na brzinu kad svi rade;)
Korak 1: Što je Pi Zero W?
Nesumnjivo ste čuli za Raspberry Pi, ali što je dovraga pi 'Zero W'?
Raspberry Pi Zero i Zero W noviji su dodaci obitelji Pi koji su više značili za IoT i druge jeftine ugrađene aplikacije. Skinute su verzije izvorne pi ploče, ali i dalje s moćnim procesorom od 1 GHz. Evo dobre usporedbe svih modela.
Prednost za nas pri odabiru Pi Zero W ovdje u odnosu na druge upravljačke ploče je ta što ga možemo lako programirati na jeziku više razine Python, a još uvijek koristiti brze upravljačke programe za C/C ++ LED ploče. Također je atraktivne cijene samo 10 USD.
Imajte na umu da su se neke stvari promijenile budući da je ova ploča skraćena verzija punog pi -ja. Konkretno, eliminiran je ethernet priključak, HDMI priključak promijenjen je u mini veličinu, a četiri USB priključka pojednostavljena su na samo jedan mikro USB tip. Ugrađen je još jedan mikro USB priključak, ali služi samo za napajanje ploče. Uklanjanje svih USB priključaka pune veličine unosi neke složenosti. Naime, kako možete spojiti tipkovnicu i miša? Standardni USB perfiferali i čvorišta koriste priključke tipa A, a ne mikro.
Što možemo učiniti?
Možemo bez glave!
Ne, ne mislimo poludjeti nego koristiti alternativu uobičajenom izravnom ožičenom postavljanju. Bezglavo znači "tunel" u pi daljinski pomoću mrežne veze sa sigurnom ljuskom (SSH). Za ovaj projekt koristit ćemo pristup bez glave putem WiFi -a. Otuda razlog zašto smo odabrali W verziju pi nule umjesto još niže cijene pi nule.
Imajte na umu da postoji i drugi način pokretanja pi u modu bez glave pomoću nečega što se zove VNC. Potreban je poseban VNC softver koji radi na vašem računalu jer pruža potpunu virtualnu grafičku radnu površinu na vašem računalu. Ne zahtijevamo (i stvarno ne želimo) radnu površinu za naš projekt pa ćemo se držati jednostavnije SSH metode.
Korak 2: Scotty, treba nam više snage
LED matrična ploča 32x32 može, sama po sebi, uzeti nekoliko pojačala struje. Bez šale! Zato većina ovih ploča uključuje snažne kablove za napajanje koji ga napajaju. Na našu sreću, za ovaj projekt nećemo morati nabaviti snažno napajanje. Cijeli ovaj sustav smo mogli napajati samo sa rezervnog 5US/2Amp mikroUSB punjača za mobitele koji smo imali okolo. Razlog slabije struje je taj što koristimo relativno jednostavnu grafiku i stoga ne palimo većinu LED dioda. Ako razmišljate o animaciji ili korištenju video/svijetle grafike, svakako razmislite o napajanju ploče iz zasebnog izvora napajanja.
Korak 3: Postavljanje senzora i softver
Jeste li primijetili da koristimo dva tinyLiDAR -a u ovom sustavu umjesto samo jednog? Kao što je prikazano na dijagramu postavljanja garaže, jedan je postavljen ispred automobila, a drugi uz jednu stranu automobila.
Bočni senzor će otkriti ako skrenete s centra dok parkirate automobil i naravno prednji će vam reći kada treba stati.
LED zaslon 32x32 pomoći će vam pokazujući strelice za kretanje naprijed, lijevo ili desno i zaslon za odbrojavanje s kutovima u boji koji označava koliko još morate voziti. Za sva stanja prikaza pogledajte naš kratki video zapis.
Plan igre
Ukratko, koristimo uvijek popularnu hzeller C knjižnicu za LED upravljački program, Python za kontrolni kod i pipgpio C knjižnicu za ispravnu I2C kontrolu naših senzora.
Python je super jednostavan jezik visoke razine koji možete jednostavno urediti u bilo kojem uređivaču teksta. Obično koristimo SublimeText, a za ovaj projekt koristili smo i vrlo koristan FTP dodatak koji nam omogućuje uređivanje datoteka skripti izravno na pi. Ovo je izborni korak jer je potreban samo ako želite urediti kôd. Više detalja dostupno je na kraju ovog članka.
Sve rpi ploče, kao što možda znate, izvorno ne podržavaju I2C istezanje sata. Stoga smo za ovaj projekt ponovno koristili biblioteku pigpio za kontrolu sitnih senzora LiDAR, ali ovaj put s laganim zavojem …
Više malihLiDAR -ova
Kada kupujete tinyLiDAR, uvijek je postavljen na zadanu podređenu adresu 0x10. To je u redu kada koristite jedan senzor, ali ako imate više od jednog u sabirnici, možda će biti problem ako napišete naredbu na 0x10 i svi oni odgovore natrag!
Dakle, ovdje imamo 3 mogućnosti:
Prvo, možemo koristiti (tinyLiDAR) "R" naredbu za pisanje nove slave adrese na jedan senzor spojen na I2C sabirnicu. Zatim ponovite ovo za svaki senzor. Fizički pričvršćivanje, pisanje i odvajanje svakog senzora za ovaj postupak. tinyLiDAR će pohraniti zadanu adresu u svoju stalnu memoriju. Adresa će se zadržati i nakon uključivanja napajanja sve dok je ne obrišete izdavanjem naredbe RESET.
Druga je mogućnost korištenje prikladne značajke automatskog dodjeljivanja koju smo stvorili kao cilj rastezanja u IGG kampanji. To uključuje slanje naredbe "AR", a zatim pokazivanje prsta na svaki senzor pojedinačno za automatsko dodjeljivanje sekvencijalnih I2C adresa pojedinačnim senzorima, slično prvoj opciji, ali ne morate fizički isključiti svaki senzor da biste to učinili.
Treća opcija je ona koju koristimo ovdje u ovom projektu, a moguća je zahvaljujući biblioteci pigpio. Za pravilnu primjenu standarda I2C, pigpio bitbangs GPIO. Zbog toga lako možemo stvoriti zasebne I2C sabirnice na gotovo svakom paru rezervnih GPIO pinova.
Stoga nema potrebe za ponovnim programiranjem adresa slave za više LiDAR senzora. Za svaki možemo jednostavno koristiti zasebni autobus:)
Imajte na umu da je I2C sabirnica koja radi na 100Kbps zapravo prilično robusna. Koristimo običan stari CAT5 ethernet kabel za pokretanje I2C sabirnice prema bočnom senzoru tinyLiDAR koji je udaljen 25 stopa bez ikakvih aktivnih komponenti repetitora! Detalji ožičenja senzora prikazani su gore.
U redu, dosta šalabera, počnimo preuzimati kôd!
Korak 4: Postavljanje Pi
Oprez: Pi koristi Linux datotečni sustav pa je najbolje izvršiti sljedeće korake na sustavu temeljenom na Linuxu. Možda ćete na kraju ponovno formatirati SD karticu ako to učinite u sustavu Windows. Koristili smo izvrsnu i besplatnu radnu površinu Ubuntu 18.04 koja radi u virtualnom okruženju na računalu sa sustavom Windows 10, ali možete isprobati nešto slično.
Morat ćete prvo preuzeti OS s raspberrypi.org, a zatim ga snimiti na svoju microSD karticu. Stoga slijedite ove korake:
(1) U Ubuntuu idite ovdje i uzmite sliku Raspbian Lite. Spremite ga u mapu za preuzimanje.
(2) Zatim preuzmite uslužni program za pisanje Etcher SD kartice. FYI - službena Etcher veza za preuzimanje verzije Linuxa na njihovoj početnoj stranici nije nam uspjela pa smo umjesto toga koristili ovdje opisanu metodu:
Ukratko, koraci opisani na linku bili su:
Dodajte Etcher debian spremište:
echo "deb https://dl.bintray.com/resin-io/debian stable etcher" | sudo tee /etc/apt/sources.list.d/etcher.list
Vjerujte GPG ključu Bintray.com:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61
Ažurirajte i instalirajte:
sudo apt-get ažuriranje
sudo apt-get install etcher-electron
Nakon dovršetka možete pokrenuti Etcher sa svoje Ubuntu radne površine. Od vas će se tražiti izvorna datoteka (koju ste stavili u mapu za preuzimanje). Sljedeći korak u Etcheru je odabir ispravnog cilja. Etcher dobro otkriva vašu mikro SD karticu, ali ovdje biste trebali biti paranoični. Da biste provjerili pronalazi li odgovarajuće odredište - pokušajte izbaciti microSD karticu klikom na izbaci u prozoru Ubuntu istraživača datoteka i provjerite je li nestala kao ciljna opcija unutar Etchera. Zatim ga ponovno umetnite i nastavite na posljednji korak, a to je upisivanje datoteke na ovu microSD karticu.
Pričekajte neko vrijeme dok ne završi pa nastavite dalje.
Korak 5: Vrijeme WiFi -a
U redu, sada je vrijeme da unesete svoje WiFi podatke.
Savjet: uvijek možete kopirati (Ctrl+C) i zalijepiti (Desni klik, Zalijepi) podatke iz ovog članka na zaslon terminala PuTTY umjesto da upisujete naredbe. Na kraju ovog članka potražite i nekoliko korisnih naredbi za Linux.
Kada Etcher završi s pisanjem na mikro SD karticu, prikazat će se 2 pogona kao što je prikazano gore. Jedan se zove boot, a drugi rootfs
Moramo upotrijebiti upravitelj datoteka za ulazak u mapu za pokretanje i izradu datoteke pod nazivom wpa_supplicant.conf.
Da biste učinili ovaj korak, samo kliknite na lijevu stranu gdje piše boot, a zatim na desnoj strani zaslona možete desnom tipkom miša kliknuti bijelu pozadinu i odabrati Otvori u terminalu.
Ovo će otvoriti prozor terminala (slično CMD -u u sustavu Windows) u koji možete upisati sljedeće:
sudo nano wpa_supplicant.conf Savjet: Morat ćete unijeti lozinku za sustav Linux kako bi se mogla izvoditi kao super korisnik. To je potrebno ili inače nećete moći spremiti datoteke kada završite s uređivanjem
Gore navedena naredba tada će pokrenuti "nano" uređivač teksta u koji možete unijeti sljedeće podatke:
zemlja = SAD
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}
Napomena: Ne zaboravite zamijeniti WiFi_SSID i WiFi_Password vlastitim imenom i lozinkom WiFi mreže.
Kada završite, samo pritisnite Ctrl+X za izlaz i odgovorite Da na pisanje datoteke po izlasku.
Naš sljedeći korak je stvaranje prazne datoteke pod nazivom ssh. Da bismo to učinili, samo u prozor terminala upisujemo sljedeće:
dodirni ssh
Sada svom pi -u moramo dati statičku IP adresu kako bismo znali gdje se nalazi svaki put kad se želimo povezati s njim. U prozor terminala upišite sljedeće:
sudo nano /etc/dhcpcd.conf
Ovo bi trebalo ponovno otvoriti uređivač nano teksta i možemo dodati ovaj tekst na dno datoteke:
sučelje wlan0
statička ip_adresa = 192.168.0.statički usmjerivači = 192.168.0.1 statički poslužitelji_ime_domene_192.168.0.1 8.8.8.8
Napomena: Ovo pretpostavlja da je vaš mrežni prefiks 192.168.0. Ako imate 192.168.1 itd., Umjesto toga upotrijebite svoju mrežu. Poslužitelj naziva domene 8.8.8.8 je za Google i ovdje nije obavezan.
Upišite 'exit' u terminal kako biste ga zatvorili. Zatim desnom tipkom miša kliknite naziv za podizanje sustava s lijeve strane prozora Upravitelj datoteka i odaberite Izbaci.
Sada možete priključiti ovu microSD karticu u svoj pi i priključiti kabel za napajanje microUSB za napajanje vašeg pi.
Ako sve prođe u redu, zelena LED dioda će treperiti neko vrijeme kao da pristupa tvrdom disku i trebala bi vas prijaviti na vašu WiFi mrežu. Dajte mu minutu da se smiri i pričekajte da LED svijetli stalno zeleno.
Da bismo provjerili funkcionira li sve, možemo pokušati provjeriti ping.
Zato samo upišite donji redak i provjerite ima li odgovora.
ping 192.168.0.200
U Ubuntuu biste trebali dobiti nešto slično ovome:
ping 192.168.0.200
PING 192.168.0.200 (192.168.0.200) 56 (84) bajtova podataka. 64 bajta iz 192.168.0.200: icmp_seq = 1 ttl = 128 vrijeme = 752 ms 64 bajta iz 192.168.0.200: icmp_seq = 2 ttl = 128 vrijeme = 5,77 ms 64 bajta iz 192.168.0.200: icmp_seq = 3 ttl = 128 vrijeme = 7,33 ms ^C --- 192.168.0.200 statistika pinga --- 3 poslana paketa, 3 primljena, 0% gubitka paketa, vrijeme 2001ms rtt min/avg/max/mdev = 5.777/255.346/752.922/351.839 ms
Imajte na umu da ping nastavlja raditi sve dok ne pritisnete Ctrl+C za izlaz.
U sustavu Windows trebali biste dobiti nešto poput ovoga:
ping 192.168.0.200
Ping 192.168.0.200 sa 32 bajta podataka: Odgovor od 192.168.0.200: bajti = 32 vrijeme = 4ms TTL = 64 Odgovor od 192.168.0.200: bajtovi = 32 vrijeme = 5 ms TTL = 64 Odgovor od 192.168.0.200: bajti = 32 vrijeme = 6ms TTL = 64 Odgovor od 192.168.0.200: bajtovi = 32 vremena = 5ms TTL = 64 Statistika pinga za 192.168.0.200: Paketi: Poslano = 4, Primljeno = 4, Izgubljeno = 0 (gubitak od 0%), Približna vremena povratnog putovanja u milli-sekundama: Minimum = 4ms, Maksimum = 6ms, Prosjek = 5ms
Sve dobro? Naprijed…
Korak 6: Prijava
Sada kada imamo mogućnost povezivanja s pi, želimo mu poslati naredbe. Ali kako? PuTTY naravno! PuTTY možete preuzeti odavde Postavljanje PuTTY -a Nakon preuzimanja softvera PuTTY napravite profil za svoj pi sa sljedećim podacima:
Naziv hosta (ili IP adresa): 192.168.0.200 Vrsta veze: SSHDajte ovom profilu ime pod Spremljene sesije i pritisnite Spremi. Možete koristiti bilo koji naziv koji vam se sviđa, na primjer "rpizw_200"
Da biste se prijavili, samo ga odaberite s popisa i pritisnite Učitaj. Zatim pritisnite Otvori. Unesite korisničko ime i lozinku za prijavu:
ime za prijavu: pi
Lozinka za defalt: malina
Evo primjera sesije prikazane u PuTTY -u kada se prijavite:
prijavite se kao: pi
[email protected] lozinka: Linux raspberrypi 4.14.34+ #1110 pon. travnja 16 14:51:42 BST 2018. armv6l Programi uključeni u Debian GNU/Linux sustav besplatni su softver; točni uvjeti distribucije za svaki program opisani su u pojedinačnim datotekama u/usr/share/doc/*/copyright. Debian GNU/Linux dolazi s APSOLUTNO BEZ JAMSTVA, u mjeri dopuštenoj važećim zakonom. Zadnja prijava: [datum i vrijeme] od 192.168.0. [Ip adresa] SSH je omogućen, a zadana lozinka za korisnika 'pi' nije promijenjena. Ovo je sigurnosni rizik - prijavite se kao 'pi' korisnik i upišite 'passwd' za postavljanje nove lozinke.
Prilikom prve prijave upozorit će vas da još niste promijenili lozinku. Trebali biste ga promijeniti u nešto jako, ali jednostavno za pamćenje, pa ga promijenite upisivanjem passwd i slijedite upute.
Sljedeće bismo trebali ažurirati softver na pi upisivanjem ovoga:
sudo apt-get update && sudo apt-get upgrade
Time ćete s internetske veze preuzeti sva potrebna ažuriranja. Odgovorite s DA ako se od vas zatraži da dopustite nastavak, a zatim mu dajte malo vremena za ažuriranje.
U ovom trenutku bismo vjerojatno trebali isključiti i zvuk na pi jer ima neki loš juju s bibliotekom LED upravljačkih programa. Kopirajte, zalijepite sljedeće redove jedan po jedan i pritisnite enter nakon svakog retka:
cd ~
mačka << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf crna lista snd_bcm2835 EOF sudo update-initramfs -u
Izlaz će biti otprilike ovako:
pi@raspberrypi: ~ $ cd ~
pi@raspberrypi: ~ $ cat <> crna lista snd_bcm2835>> EOF crna lista snd_bcm2835 pi@raspberrypi: ~ $ sudo update -initramfs -u pi@raspberrypi: ~ $
Zatim moramo ponovno pokrenuti pi da bi promjene stupile na snagu, pa upišite sljedeće:
sudo ponovno pokrenite sada
Veza će naravno pasti dok se pi ponovno pokreće pa možete zatvoriti PuTTY. Pokušajte se prijaviti minutu kasnije.
Sada je vrijeme da nabavite grafički FTP upravitelj datoteka pod nazivom WinSCP. Ovdje možete preuzeti WinSCP
WinSCP je vrlo sličan upravitelju datotekama u sustavu Windows i Ubuntu. Omogućuje nam jednostavno povlačenje i ispuštanje datoteka u & iz pi i stvaranje direktorija samo desnim klikom miša.
Nakon preuzimanja morat ćete postaviti profil za svoj pi.
WinSCP postavljanje Na skočnom prozoru za prijavu odaberite Novo mjesto. Za sesiju koristite sljedeće postavke:
Protokol datoteke: SFTP Naziv hosta: 192.168.0.200 Korisničko ime: pi Lozinka: {koju god lozinku promijenili zadanu u gore navedenom koraku PuTTY}
U naprednim postavkama web -mjesta idite na Okoliš | Direktorije i unesite /home /pi za Remote directory i sve što želite za postavku Local Directory.
U naprednim postavkama web -mjesta idite na Okoliš | Shell i odaberite sudo su - na padajućem popisu Shell.
Zatim pritisnite Spremi.
Neka WinSCP i PuTTY budu otvoreni tijekom izvođenja sljedećih koraka
Idite na terminal PuTTY i unesite sljedeće:
cd ~
Ovo će nas odvesti do našeg početnog direktorija unutar pi.
Sada možemo preuzeti biblioteku upravljačkih programa za LED iz githuba. Da bismo koristili najnoviji kôd, morat ćemo povući repo pa moramo instalirati uslužni program git.
Unesite ovo u PuTTY:
sudo apt-get install git
odgovorite Y za nastavak i trebat će nekoliko sekundi da nam instalirate git s interneta.
Izlaz bi trebao izgledati otprilike ovako:
pi@raspberrypi: ~ $ sudo apt-get install git
Čitanje popisa paketa … Gotovo Izgradnja stabla ovisnosti Čitanje informacija o stanju … Gotovo Sljedeći dodatni paketi će biti instalirani: git-man liberror-perl Predloženi paketi: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn Bit će instalirani sljedeći novi paketi: git git-man liberror-perl 0 nadograđeno, 3 novoinstalirano, 0 za uklanjanje i 0 za nadogradnju. Trebate nabaviti 4, 848 kB arhive. Nakon ove operacije koristit će se 26,4 MB dodatnog prostora na disku. Želite li nastaviti? [Y/n] y Get: 1 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf liberror-perl sve 0,17024-1 [26,9 kB] Get: 2 https://muug.ca/mirror/ raspbian/raspbian stretch/main armhf git-man sve 1: 2.11.0-3+deb9u3 [1, 433 kB] Get: 3 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] Dohvaćeno 4, 848 kB u 5s (878 kB/s) Odabir prethodno ne odabranog paketa liberror-perl.(Čitanje baze podataka … 34363 datoteke i direktoriji trenutno instalirani.) Priprema za raspakiranje …/liberror-perl_0.17024-1_all.deb … Raspakiranje liberror-perl (0.17024-1) … Odabir prethodno ne odabranog paketa git-man. Priprema za raspakiranje …/git-man_1%3a2.11.0-3+deb9u3_all.deb … Raspakiranje git-man (1: 2.11.0-3+deb9u3) … Odabir prethodno ne odabranog paketa git. Priprema za raspakiranje…/git_1%3a2.11.0-3+deb9u3_armhf.deb… Raspakiranje gita (1: 2.11.0-3+deb9u3)… Postavljanje git-mana (1: 2.11.0-3+deb9u3)… Postavljanje liberror-perl (0.17024-1) … Obrada okidača za man-db (2.7.6.1-2) … Postavljanje gita (1: 2.11.0-3+deb9u3)…
Sada se vratite na WinSCP i idite u mapu /home /pi. Zatim desnom tipkom miša kliknite desnu stranu ovog prozora WinScp i odaberite stvaranje novog imenika pod nazivom "parkiranje"
Natrag na zaslon PuTTY možete upisati ls kako biste potvrdili da ste upravo napravili novu mapu u pi. Zatim unesite ovo:
cd p [TAB]Savjet: Pritiskom na tipku TAB automatski ćete dovršiti djelomični naziv
Pritisnite tipku enter za ulazak u ovaj direktorij.
pi@raspberrypi: ~ $ cd parking/
pi@raspberrypi: ~/parking $ ls
Sada možemo dobiti datoteke upravljačkih programa unošenjem sljedećeg u PuTTY:
git klon
Izlaz će izgledati otprilike ovako:
pi@raspberrypi: ~/parking $ git clone
Kloniranje u 'rpi-rgb-led-matrix' … daljinski: Brojanje objekata: 3740, gotovo. daljinski: Ukupno 3740 (delta 0), ponovno korišteno 0 (delta 0), ponovno upotrijebljeno 3740 Prijemni objekti: 100% (3740/3740), 20,61 MiB | 1,32 MiB/s, gotovo. Rješavanje delta: 100% (2550/2550), učinjeno.
Sada sastavite datoteke upravljačkih programa za LED ulaskom u ovaj novi direktorij 'rpi-rgb-led-matrix' i upisivanjem naredbe make:
cd r [TAB]
napraviti A ovako je to izgledalo na našoj ploči
pi@raspberrypi: ~/parking $ cd rpi-rgb-led-matrix/
pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $ make make -C./lib make [1]: Ulazak u direktorij '/home/pi/parking/rpi-rgb-led-matrix/lib' g ++- I../ uključuje -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o gpio.o gpio.cc g ++ -I../ uključi -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o led -matrix.o led-matrix.cc g ++ -I../ uključivati - Zid -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o options -initialize.o options-initialize.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o framebuffer.o framebuffer.cc g ++ -I../ include -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o thread.o thread.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = ' "regular" '-Wextra -Wno -unused -parameter -fno -exceptions -c -o bdf -font.o bdf -fon t.cc g ++ -I../ uključuje -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o graphics.o graphics.cc g ++ - I../ uključuje -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o transformer.o transformer.cc g ++ -I../ uključi -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o led -matrix -co led-matrix-c.cc cc -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -c -o hardware -mapping.o hardware -mapping.c g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o content -streamer.o content-streamer.cc g ++ -I../ include -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o pixel -mapper.o pixel-mapper.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -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 vodio -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]: Napuštanje direktorija '/home/pi/parking/rpi -rgb -led -matrix/lib' make -C examples -api -use make [1]: Ulazak u direktorij ' /home/pi/parking/rpi -rgb -led -matrix/examples -api -use 'g ++ -I../ include -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o demo -main. o demo-main.cc make -C../lib make [2]: Unos direktorija '/home/pi/parking/rpi-rgb-led-matrix/lib' make [2]: Napuštanje imenika '/home/pi /parking/rpi-rgb-led-matrix/lib 'g ++ demo-main.o -o demo -L../ lib -lrgbmatrix -lrt -lm -lpredina g ++ -I../ uključuje -Zid -O3 -g -Vextra -Ne -nekorišteni -parametar -c -o minimalni -primjer.o minimalni -primjer.cc g ++ minimalni -primjer.o - o minimalni primjer -L../ lib -lrgbmatrix -lrt -lm -lpthread cc -I../ uključuje -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o c -example.o c- example.c cc c -example.o -o c -primjer -L../ lib -lrgbmatrix -lrt -lm -lpthread -lstdc ++ g ++ -I../ uključi -Zid -O3 -g -Vextra -Nekorišteno- parametar -c -o text -example.o text-example.cc g ++ text -example.o -o text -example -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ include -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 -lpredina g ++ -I../ uključuje -zid -O3 -g -Vextra -Ne -nekorišteni parametar -c -o sat.o sat.cc g ++ sat.o -o sat -L.. /lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ uključuje -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]: Napuštanje direktorija '/home/pi/parking/rpi -rgb -led -matrix/examples -api -use' pi @raspberrypi: ~/parking/rpi-rgb-led-matrix $
Naš sljedeći korak bit će povezivanje biblioteke RGB matrica s Pythonom. Za ovaj smo projekt koristili zadani Python 2. Dakle, da bismo izvršili ovo vezivanje, unosimo sljedeći red po red kao i prije:
sudo apt-get update && sudo apt-get install python2.7-dev python-pillow -y
make build-python sudo make install-python
Napomena: Možete sigurno zanemariti jedno upozorenje o '-Wstrict-prototype' koje se prikazuje prilikom izvođenja dviju naredbi make. Naredbama make potrebno je nekoliko minuta da se pokrenu i ne govore ništa dok su zaposlene. Zato se ne bojte - vaš bi se pi uskoro trebao vratiti;)
Evo djelomičnog izlaza prve izjave o izradi:
izgradnja 'grafičkog' proširenja
arm -linux -gnueabihf -gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototipovi -fno -strogo -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 -sigurnost -fPIC -I../../ uključuje -I/usr/include/python2.7 -c rgbmatrix/graphics.cpp -o build/temp.linux- armv6l-2.7/rgbmatrix/graphics.o -O3 -Wall cc1plus: upozorenje: opcija naredbenog retka '-Wstrict-prototypes' vrijedi za C/ObjC, ali ne i za C ++ arm-linux-gnueabihf-g ++ -pthread -shared -Wl, -O1 -Wl, -Bimbolničke funkcije -Wl, -z, relro -fno -strogo -aliasing -DNDEBUG -g -fwrapv -O2 -Zid -Wstrict -prototipovi -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 -sigurnost -Wl, -z, relro -Wdate -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefix -map =/build/python2.7 -kKRR4y/python2.7 -2,73,13 =. -fstack -protector -strong -Wformat -Werror = format -security build/temp.linux -armv6l -2.7/rgbmatrix/graphics.o -L../../ lib -lrgbmatrix -o./rgbmatrix/graphics.so napravite [1]: Napuštanje direktorija '/home/pi/parking/rpi-rgb-led-matrix/bindings/python' pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $
Zatim ćemo instalirati pigpio C knjižnicu. Da bismo to učinili ispravno, moramo to učiniti iz izvora pa samo unesite sljedeće retke:
cd ~
sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip raspakiraj pigpio.zip cd PIGPIO make sudo make install install rm pigpio.zip
Gore navedena instalacija traje oko 3 minute.
Sada je vrijeme za preuzimanje naših Python projektnih datoteka. Unesite sljedeće:
cd ~
cd/home/pi/parking/rpi-rgb-led-matrix/bindings/python/uzorci wget https://s3.amazonaws.com/microedco/tinyLiDAR/Raspberry+Pi/tinyL_parking.zip unzip -j tinyL_parking.zip rm tinyL_parking.zip
Zatim za izvršavanje upišite sljedeće:
sudo python parking.py
Ali ne morate to učiniti sada jer još moramo sve povezati …
Korak 7: Žice
Kao što je ranije spomenuto, napajali smo LED ploču s istog adaptera za napajanje koji napaja pi. Da biste to učinili, morat ćete spojiti velike crvene i crne žice na muške zaglavlje zaglavlja tako da se mogu priključiti na pinove 2 i 9 40 -pinskog pi konektora.
Isključite napajanje pi sada i povežite LED ploču prema gore navedenom slikovnom dijagramu. Za sada držite isključen pin 2.
NAPOMENA: LED matrična ploča ponekad se može uključiti u funky stanju. Ako se to dogodi, može ozbiljno opteretiti napajanje bez obzira na trenutni kapacitet. To smo primijetili tijekom razvoja naše opskrbe stolom koja može dati više od 4 ampera. Rješenje za to je prvo pokrenuti pi kod, a zatim priključiti pin 2 za napajanje LED ploče. Na ovaj način ploča bi trebala doći u stanje niske snage jer ispire slučajna LED stanja. Struja mirovanja (sve LED diode isključene) za našu LED ploču bila je samo 50mA na 5v.
CAT5
Koristili smo 25 -metarski eternet kabel CAT5 i modificirali ga za uključivanje u pinove zaglavlja s jednog kraja i prihvaćanje pinova konektora GROVE s druge strane kako bismo mogli produžiti udaljenost do našeg senzora tinyLiDAR. Gornje fotografije prikazuju ovaj kabel prije i poslije izmjena. Zanemarite boje žica zaglavlja zaglavlja jer nisu povezane s dijagramima. Samo povežite svoj sustav kako je prikazano na slikovnim shemama povezivanja prikazanim ranije u koraku 3.
Korak 8: Osvijetlite
Pravilan početni redoslijed uključivanja trebao bi biti uključivanje microUSB punjača u pi i čekanje da plave LED diode na senzorima tinyLiDAR brzo zatrepere pokazujući da vrše mjerenja. To dokazuje da kôd radi ispravno.
Zatim možete polako, ali čvrsto spojiti pin 2 za napajanje LED ploče. Pazite da to ne pogriješite dok to radite! Ako LED ploča prikazuje nekoliko zamrznutih svijetlih LED dioda, vjerojatno je došlo do greške, pa isključite napajanje microUSB -a iz pi i pričekajte nekoliko sekundi da biste ponovno pokušali uključiti redoslijed uključivanja.
Da biste pokrenuli kôd, unesite sljedeće:
cd/home/pi/parking/rpi-rgb-led-matrix/vezivanja/python/uzorci
sudo python parking.py
Ako sve prođe dobro, trebali biste dobiti zaslon sličan onom prikazanom u videu.
Brzo pogledajte kod parking.py da biste razumjeli koja smo ograničenja koristili. Zadana vrijednost za prednji senzor je 200 mm. Budući da je raspon senzora od 11 mm do 2 m, dobra je ideja držati udaljenost nom_parked_Front na 200 mm ili više. Bočni senzor nom_parked_Side postavljen je na 600 mm. Pogledajte gornju sliku za Python kod koji prikazuje ove mogućnosti konfiguracije.
Ako sve radi, možete instalirati sustav u svoju garažu i prema potrebi prilagoditi gornje parametre. Budući da ste pi spojeni na WiFi, uvijek možete ući i urediti postavke udaljenosti koliko vam je potrebno za određeno postavljanje garaže dok je još montirano.
Je li ovo sada?
Zašto da, da jeste! - vrijeme je za veseli ples:)
Hvala vam na čitanju i uživajte u svom novom pomoćniku za parkiranje!
Korak 9: Izborni korak i korisne naredbe
Izborni korak - FTP dodatak za uzvišeni tekst
Za uređivanje datoteka skripte Python izravno na pi, možemo instalirati dodatak FTP pod nazivom Sublime SFTP by Wbond. Ovaj dodatak možete preuzeti slijedeći upute ovdje
Za postavljanje ovog dodatka moramo konfigurirati FTP vjerodajnice pod Datoteka | SFTP/FTP | Stranica poslužitelja za postavljanje….
Za naše postavljanje koristili smo:
"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", Koristite Ctrl+S ili Datoteka | Spremi za spremanje ovih podataka. Od vas će biti zatraženo ime za pozivanje ove konfiguracije. Jednostavno smo ga nazvali "rpizw_0_200"
Sada se prijavite na pi sa SublimeText, idite na Datoteka | SFTP/FTP | Pregledaj poslužitelj…
Odaberite s popisa opcija koje se pojavljuju. Morat ćete odabrati profil s imenom koje ste gore naveli;) Slijedite upute za kretanje po mapama i uređivanje željene datoteke.
Korisni dodaci
Korisne Linux naredbe za korištenje na pi.
Prije nego što isključite pi, UVIJEK ga isključite kako ne biste oštetili datoteke na svojoj microSD kartici. Unesite ovu naredbu:
sudo isključivanje sada
i pričekajte da se zelena lampica isključi prije nego isključite napajanje. Slično za ponovno pokretanje, možete unijeti:
sudo ponovno pokrenite sada
Za popis datoteka u direktoriju upotrijebite ovo:
ls
Ovdje možete pronaći druge korisne naredbe za Linux
Preporučeni:
Arduino pomoćnik pri parkiranju - svaki put parkirajte automobil na pravo mjesto: 5 koraka (sa slikama)
Arduino pomoćnik pri parkiranju - Svaki put parkirajte automobil na pravo mjesto: U ovom ću vam projektu pokazati kako izgraditi vlastitog pomoćnika za parkiranje pomoću Arudina. Ovaj pomoćnik pri parkiranju mjeri udaljenost do vašeg automobila i vodi vas da ga parkirate na pravo mjesto pomoću očitanja LCD zaslona i LED diode, koja napreduje
Pomoć pri parkiranju Jednostavan popravak / dijagnostika: 4 koraka
Parking Assist Lako popravljanje / dijagnosticiranje: U redu, počnimo, imam Chevrolet Avalanche iz 2010. godine i ima 4 senzora za pomoć pri parkiranju u stražnjem odbojniku. Koliko je meni poznato, ovaj nerješivi se može koristiti na vozilu i voziti, ako imate prednju stranu ili Rea ili oboje. Pa sam otišao na omiljenu
Uradi sam - Arduino pomoćnik pri parkiranju V2: 6 koraka
Uradi sam - Arduino pomoćnik pri parkiranju V2: Kad vam život daje banane !!!!! Samo ih pojedi. Nužnost je majka izuma i neću poreći tu činjenicu. Iskreno govoreći, ovo je drugi put da sam naletio na zid naše garaže otkad smo se uselili u ovu novu kuću. To je to, ne bi bilo t
Laserski pomoćnik pri parkiranju: 12 koraka
Laserski pomoćnik pri parkiranju: Nažalost, svoju garažu moram podijeliti s našim automobilima! To obično dobro funkcionira, međutim, ako je bilo koji od naša dva automobila parkiran predaleko u njihovom štandu, jedva se mogu kretati po bušilici, glodalici, stolnoj pili itd. Obratno, ako
Arduino pomoćnik pri parkiranju: 17 koraka (sa slikama)
Arduino pomoćnik pri parkiranju: Oni od nas koji imamo male garaže znaju frustraciju parkiranja malo predaleko ili malo predaleko i nemogućnosti obilaženja vozila. Nedavno smo kupili veće vozilo, koje mora biti savršeno parkirano u garaži kako bi