Sadržaj:
- Korak 1: Šta je Pi Zero W?
- Korak 2: Scotty, treba nam više energije
- Korak 3: Postavljanje senzora i softver
- Korak 4: Postavljanje Pi -a
- Korak 5: Vrijeme WiFi -a
- Korak 6: Prijavite se
- Korak 7: Žice
- Korak 8: Osvijetlite
- Korak 9: Izborni korak i korisne naredbe
Video: Sistem pomoći pri parkiranju na osnovu Pi: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Zdravo! Evo jednog cool projekta koji možete napraviti za jedno popodne, a zatim ga koristiti svakodnevno. Zasnovan je na Raspberry Pi Zero W i pomoći će vam da svaki put savršeno parkirate automobil.
Evo potpune liste 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 senzora udaljenosti leta
- 32x32 RGB LED ploča (za to postoji mnogo proizvođača s različitim visinama tačaka, na primjer možete koristiti Adafruit 1484 ili slično, samo potražite '32x32 LED Matrix' na Google -u). Naš panel imao je korak 6 mm.
- 25 stopa kabla 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čunara 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 panel ekrana 32x32
- Napravite produžni kabel CAT5 za bočni maleniLiDAR senzor
- Opcijski korak (ali samo za napredne korisnike): otplešite na brzinu kad sve funkcionira;)
Korak 1: Šta je Pi Zero W?
Nesumnjivo ste čuli za Raspberry Pi, ali koji je vrag pi 'Zero W'?
Raspberry Pi Zero i Zero W su noviji dodaci porodici Pi koji su više značili za IoT i druge jeftine ugrađene aplikacije. To su skinute verzije originalne pi ploče, ali i dalje sa moćnim procesorom od 1 GHz. Evo dobre usporedbe svih modela.
Prednost za nas u odabiru Pi Zero W ovdje u odnosu na druge kontrolerske ploče je ta što ga možemo lako programirati na višem nivou jezika Python, a da pritom još uvijek koristimo brze upravljačke programe za C/C ++ LED ploče. Takođe je atraktivne cene samo 10 USD.
Imajte na umu da su se neke stvari promijenile budući da je ova ploča skraćena verzija punog pi -a. Konkretno, ethernet priključak je uklonjen, HDMI konektor je promijenjen u mini veličinu, a četiri USB porta su pojednostavljena do samo jednog tipa mikro USB. Ugrađen je još jedan mikro USB konektor, ali služi samo za napajanje ploče. Uklanjanje svih USB konektora pune veličine uvodi neke složenosti. Naime, kako možete spojiti tastaturu i miša? Standardni USB perfiferali i čvorišta koriste konektore tipa A, a ne mikro.
Šta možemo učiniti?
Možemo ostati bez glave!
Ne, ne mislimo poludjeti nego koristiti alternativu normalnom izravnom ožičenom postavljanju. Bez glave znači "daljinski tunel" u pi pomoću daljinske mreže pomoću sigurne ljuske (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 mu je poseban VNC softver koji radi na vašem računaru, jer pruža potpunu virtualnu grafičku radnu površinu na vašem računaru. Ne zahtijevamo (i zaista ne želimo) radnu površinu za naš projekt pa ćemo se držati jednostavnijeg SSH metoda.
Korak 2: Scotty, treba nam više energije
LED matrični panel 32x32 može, sam po sebi, uzeti nekoliko ampera struje. Bez šale! Zato većina ovih ploča uključuje snažne kablove za napajanje koji ga napajaju. Na našu sreću, ipak, za ovaj projekt nećemo morati nabaviti veliko napajanje. Cijeli ovaj sistem smo mogli napajati samo sa rezervnog punjača za microUSB od 5V/2 ampera koji smo imali oko sebe. Razlog slabije struje je taj što koristimo relativno jednostavnu grafiku i stoga ne palimo većinu LED dioda. Ako razmišljate o stvaranju animacije 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 u ovom sistemu koristimo dva tinyLiDAR -a 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 ekran 32x32 pomoći će vam pokazujući strelice za pomicanje naprijed, lijevo ili desno i ekran za odbrojavanje sa obojenim uglovima koji pokazuje koliko još morate voziti. Pogledajte naš kratki video za sva stanja prikaza.
Plan igre
Ukratko, koristimo uvijek popularnu hzeller C biblioteku za LED upravljački program, Python za kontrolni kod i pipgpio C biblioteku za pravilnu I2C kontrolu naših senzora.
Python je super jednostavan jezik na visokom nivou koji možete lako urediti u bilo kojem uređivaču teksta. Obično koristimo SublimeText, a za ovaj projekt smo koristili i vrlo koristan FTP dodatak koji nam omogućava uređivanje datoteka skripti direktno 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 ponovno iskoristili pigpio biblioteku za ovaj projekt za kontrolu malenih LiDAR senzora, ali ovaj put s laganim zaokretom …
Više sitnihLiDAR -ova
Kada kupujete tinyLiDAR, uvijek je postavljen na zadanu slave adresu 0x10. Ovo je u redu kada koristite jedan senzor, ali ako imate više od jednog na sabirnici, možda će biti problem ako napišete naredbu na 0x10 i svi oni odgovore!
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čko pričvršćivanje, pisanje i odvajanje svakog senzora za ovu proceduru. tinyLiDAR će pohraniti datu adresu u svoju ugrađenu memoriju. Adresa će se zadržati čak i nakon uključivanja napajanja sve dok je ne obrišete izdavanjem naredbe RESET.
Druga je mogućnost koristiti prikladnu funkciju 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 i moguća je zahvaljujući pigpio biblioteci. Da biste pravilno implementirali I2C standard, 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 šablona, počnimo preuzimati kod!
Korak 4: Postavljanje Pi -a
Oprez: Pi koristi Linux datotečni sistem, pa je najbolje izvršiti sljedeće korake na sistemu zasnovanom na Linuxu. Možda ćete na kraju ponovno formatirati SD karticu ako to učinite u sustavu Windows. Koristili smo sjajnu i besplatnu Ubuntu 18.04 radnu površinu koja radi u virtualnom okruženju na Windows 10 računaru, 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 Ubuntu -u idite ovdje i uzmite sliku Raspbian Lite. Spremite ga u mapu za preuzimanje.
(2) Zatim preuzmite pomoć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 update
sudo apt-get install etcher-electron
Kada završite, 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 Etcher -u je odabir ispravnog cilja. Etcher dobro otkriva vašu mikro SD karticu, ali ovdje biste trebali biti paranoični. Da biste provjerili nalazi li odgovarajuće odredište - pokušajte izbaciti microSD karticu klikom na izbaci u prozoru Ubuntu istraživača datoteka i provjerite da li nestaje kao ciljna opcija unutar Etchera. Zatim ga vratite i nastavite do posljednjeg koraka, a to je upisivanje datoteke na ovu microSD karticu.
Sač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) informacije iz ovog članka na ekran terminala PuTTY umjesto da upisujete naredbe. Na kraju ovog članka potražite i nekoliko korisnih naredbi za Linux.
Kad 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 koristiti upravitelj datoteka da uđemo u direktorij za pokretanje i napravimo datoteku 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 ekrana možete desnom tipkom miša kliknuti na bijelu pozadinu i odabrati Otvori u terminalu.
Ovo će otvoriti prozor terminala (slično CMD -u u Windowsima) u koji možete upisati sljedeće:
sudo nano wpa_supplicant.conf Savjet: Morat ćete unijeti sistemsku lozinku za Linux kako bi se mogla izvesti 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 za WiFi mrežu.
Kada završite, samo pritisnite Ctrl+X za izlaz i odgovorite s 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 moramo svom pi 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:
interfejs wlan0
static ip_address = 192.168.0.static routers = 192.168.0.1 static domain_name_servers = 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 koristite 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 pokretanje na lijevoj strani 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 hard 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 Ubuntu -u 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 ping statistika --- 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 Windowsu biste trebali 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 = 5ms TTL = 64 Odgovor od 192.168.0.200: bajti = 32 vrijeme = 6ms TTL = 64 Odgovor od 192.168.0.200: bajti = 32 vremena = 5ms TTL = 64 Ping statistika 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: Prijavite se
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 PuTTY softvera, napravite profil za svoj pi sa sljedećim podacima:
Ime hosta (ili IP adresa): 192.168.0.200 Vrsta veze: SSHDajte ovom profilu ime pod Sačuvane sesije i pritisnite Sačuvaj. Možete koristiti bilo koje ime koje volite, 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:
korisničko ime: 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 Mon Apr 16 14:51:42 BST 2018 armv6l Programi uključeni u Debian GNU/Linux sistem su besplatni softver; tačni uslovi 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 u kojoj to dopušta važeći zakon. 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' da postavite novu lozinku.
Prilikom prvog prijavljivanja upozorit će vas da još niste promijenili lozinku. Trebali biste ga promijeniti u nešto snažno, 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
Ovo će s vaše internetske veze preuzeti sva potrebna ažuriranja. Odgovorite 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 loš juju sa 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 ponovo pokrenite sada
Veza će naravno pasti dok se pi ponovno pokreće pa možete zatvoriti PuTTY. Pokušajte se ponovo prijaviti minutu kasnije.
Sada je vrijeme da nabavite grafički FTP upravitelj datoteka pod nazivom WinSCP. Ovdje možete preuzeti WinSCP
WinSCP je mnogo poput upravitelja datoteka u sustavu Windows i Ubuntu. Omogućava nam da lako prevlačimo i ispuštamo datoteke u & iz pi i stvaramo direktorije samo desnim klikom miša.
Nakon preuzimanja morat ćete postaviti profil za svoj pi.
WinSCP postavljanje Na skočnom prozoru za prijavu odaberite Nova web lokacija. Za sesiju koristite sljedeće postavke:
Protokol datoteke: SFTP Ime hosta: 192.168.0.200 Korisničko ime: pi Lozinka: {bilo koju lozinku koju ste promijenili kao zadanu u gore navedenom koraku PuTTY}
U Naprednim postavkama web lokacije idite na Okruženje | Direktorije i unesite /home /pi za udaljeni direktorij i sve što želite za postavku lokalnog imenika.
U Naprednim postavkama web lokacije idite na Okruženje | Shell i odaberite sudo su - na padajućoj listi Shell.
Zatim pritisnite Save.
Neka WinSCP i PuTTY budu otvoreni dok radite sljedeće korake
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 LED upravljačkih programa iz github -a. 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 lista 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. Potrebno je nabaviti 4, 848 kB arhive. Nakon ove operacije bit će iskorišteno 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 neizabranog paketa liberror-perl.(Čitanje baze podataka … 34363 trenutno instaliranih datoteka i direktorija.) Priprema za raspakiranje…/liberror-perl_0.17024-1_all.deb… Raspakiranje liberror-perl (0.17024-1) … Odabir prethodno neizabranog 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 neizabranog paketa git. Priprema za raspakiranje…/git_1%3a2.11.0-3+deb9u3_armhf.deb… Raspakiranje gita (1: 2.11.0-3+deb9u3)… Postavljanje git-man-a (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 /home /pi fasciklu. Zatim na desnoj strani ovog prozora WinScp kliknite desnim tasterom miša i odaberite stvaranje novog direktorija pod nazivom "parking"
Nazad na ekranu PuTTY možete otkucati ls da potvrdite da ste upravo napravili novu fasciklu 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 Objekti koji primaju: 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 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čivanje - 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čiti -Zid -O3 -g -fPIC -DDEFAULT_HARDWARE = '' regularni '' -Wextra -Wno -unused -parameter -fno -iznimke -c -o transformator.o transformator.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../ uključuju -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 primjeri -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 direktorija '/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 -Wno -unused -parameter -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../ include -Wall -O3 -g -Wextra -Wno -unused- 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 -Wextra -Wno -unused -parameter -c -o clock.o clock.cc g ++ clock.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 projekt koristili smo 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 dva izraza make. Make komandama je potrebno 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 djelimič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 -prefiks -mapa =/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 komandne linije '-Wstrict-prototypes' važi za C/ObjC, ali ne i za C ++ arm-linux-gnueabihf-g ++ -pthread -shared -Wl, -O1 -Wl, -Bsymbolic -functions -Wl, -z, relro -fno -striktno -aliasing -DNDEBUG -g -fwrapv -O2 -Wall -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.7.13 =. -fstack -protector -strong -Wformat -Werror = format -sigurnost 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 biblioteku. Da bismo to učinili ispravno, moramo to napraviti iz izvora pa samo unesite sljedeće redove:
cd ~
sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip raspakiraj pigpio.zip cd PIGPIO napravi sudo make instaliraj 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 da biste ga izvršili, upišite sljedeće:
sudo python parking.py
Ali ne morate to učiniti sada jer još moramo sve to povezati …
Korak 7: Žice
Kao što je ranije spomenuto, napajali smo LED panel 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 konektora pi.
Isključite napajanje pi sada i povežite LED panel prema gore navedenom slikovnom dijagramu. Za sada držite isključen pin 2.
NAPOMENA: LED matrica se ponekad može uključiti u funky stanju. Ako se to dogodi, može ozbiljno opteretiti napajanje bez obzira na trenutni kapacitet. To smo primijetili tokom razvoja našeg napajanja za klupu koje može dati više od 4 ampera. Rješenje za ovo 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 potrošnje energije 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 Ethernet kabel CAT5 od 25 stopa 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 pazite da svoj sistem povežete kao što je prikazano na slikovnim dijagramima povezivanja koji su prikazani ranije u koraku 3.
Korak 8: Osvijetlite
Odgovarajući 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. Ovo dokazuje da kôd radi ispravno.
Zatim možete polako, ali čvrsto spojiti pin 2 za napajanje LED ploče. Pazite da to ne kvari dok to radite! Ako LED ploča prikazuje nekoliko zamrznutih svijetlih LED dioda, vjerojatno je u pitanju greška, pa isključite napajanje microUSB -a iz pi -a i pričekajte nekoliko sekundi da ponovo pokušate s uključivanjem.
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 u redu, trebali biste dobiti ekran 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 sistem u svoju garažu i po potrebi prilagoditi gornje parametre. Budući da ste pi povezani 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 vaš sretan ples:)
Hvala vam na čitanju i uživajte u svom novom pomoćniku za parkiranje!
Korak 9: Izborni korak i korisne naredbe
Opcijski korak - FTP dodatak za uzvišeni tekst
Za uređivanje datoteka Python skripte 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 | Setup Server… stranicu.
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 File | Sačuvaj da biste sačuvali ove podatke. Od vas će biti zatraženo ime da pozovete ovu konfiguraciju. Jednostavno smo ga nazvali "rpizw_0_200"
Sada se prijavite na pi sa SublimeText -a, idite na File | SFTP/FTP | Pregledaj server…
Odaberite sa 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 upotrebu na pi.
Prije isključivanja pi -ja, UVIJEK ga isključite da ne dođe do oštećenja datoteka na vašoj microSD kartici. Unesite ovu naredbu:
sudo shutdown now
i pričekajte da se zelena lampica isključi prije isključivanja napajanja. Slično za ponovno pokretanje, možete unijeti:
sudo ponovo pokrenite sada
Za ispis datoteka u direktoriju koristite ovo:
ls
Ovdje možete pronaći druge korisne naredbe za Linux
Preporučuje se:
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 projektu ću vam 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 progresivno napreduje
Pomoć pri parkiranju Jednostavna popravka / dijagnostika: 4 koraka
Pomoć pri parkiranju 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 god mi je poznato, ova nerješiva 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, moram podijeliti svoju garažu 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 zbog 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 da bi