INHOUDSOPGAWE:

Pi -gebaseerde parkeerhulpstelsel: 9 stappe
Pi -gebaseerde parkeerhulpstelsel: 9 stappe

Video: Pi -gebaseerde parkeerhulpstelsel: 9 stappe

Video: Pi -gebaseerde parkeerhulpstelsel: 9 stappe
Video: Raspberry Pi Parkeerhulp tutorial 2024, November
Anonim
Pi -gebaseerde parkeerhulpstelsel
Pi -gebaseerde parkeerhulpstelsel

Haai daar! Hier is 'n lekker klein projek wat u in 'n enkele middag kan maak en dit dan daagliks kan gebruik. Dit is gebaseer op die Raspberry Pi Zero W en sal u help om u motor elke keer perfek te parkeer.

Hier is die volledige lys van die onderdele wat u benodig:

  • Raspberry Pi Zero W (ons sal dit 'rpi' of 'pi' in hierdie artikel noem)
  • 4 GB of groter mikro -SD -kaart vir die pi -bedryfstelsel
  • Twee tinyLiDAR Time of Flight afstandsensormodules
  • 32x32 RGB LED -paneel (daar is baie vervaardigers hiervoor met verskillende kolletjies, u kan byvoorbeeld die Adafruit 1484 of soortgelyke gebruik, soek net '32x32 LED Matrix' op Google). Ons paneel het 'n hoogte van 6 mm.
  • 25 voet CAT5 -kabel
  • ongeveer 22 gekleurde manlike tot manlike kopspeldrade
  • 5v 2Amp microUSB kragtoevoer (selfoonlaaier) Alles reg? Kom ons gaan!

TL; DR Opsomming

  • Laai Raspbian Lite OS af vir die rpi
  • Stel die pi op om koploos oor WiFi te werk met 'n statiese IP
  • Stel u rekenaarontwikkelingsomgewing op met PuTTY, WinSCP en opsioneel SublimeText w/ FTP -addon
  • Laai, maak en bind die LED -paneelbestuurder
  • Laai pigpio af en installeer dit
  • Laai ons Python -kode af
  • Verbind die 32x32 LED -skerm
  • Maak die CAT5 -verlengkabel vir die klein tinyLiDAR -sensor aan die kant
  • Opsionele stap (maar slegs vir gevorderde gebruikers): doen 'n vinnige gelukkige dans as alles werk;)

Stap 1: Wat is 'n Pi Zero W?

Wat is 'n Pi Zero W?
Wat is 'n Pi Zero W?

U het ongetwyfeld van die Raspberry Pi gehoor, maar wat is 'n pi 'Zero W'?

Die Raspberry Pi Zero en Zero W was meer onlangse toevoegings tot die Pi -familie wat meer beteken het vir IoT en ander lae koste ingebedde toepassings. Hulle is gestripte weergawes van die oorspronklike pi -bord, maar steeds met 'n kragtige 1GHz -verwerker. Hier is 'n goeie vergelyking van al die modelle.

Die voordeel vir ons om die Pi Zero W hier bo ander beheerborde te kies, is dat ons dit maklik in die hoër vlak Python -taal kan programmeer terwyl ons steeds die vinnige C/C ++ LED -paneelbestuurders gebruik. Dit is ook aantreklik geprys teen slegs $ 10 USD.

Hou in gedagte dat aangesien hierdie bord 'n gestripte weergawe van 'n volledige pi is - sommige dinge verander het. In die besonder is die ethernet -aansluiting uitgeskakel, die HDMI -aansluiting het na 'n mini -grootte verander en die vier USB -poorte is vereenvoudig tot net een mikro -USB -tipe. Daar is nog 'n mikro -USB -aansluiting aan boord, maar dit is slegs om die bord aan te dryf. Die uitskakeling van die USB -aansluitings in die volle grootte bring 'n paar ingewikkeldhede mee. Hoe kan u 'n sleutelbord en muis aansluit? Standaard USB -randapparatuur en hubs gebruik tipe A -aansluitings, nie die mikro -soort nie.

So, wat kan ons doen?

Ons kan koploos gaan!

Nee, ons wil nie mal word nie, maar om 'n alternatief te gebruik vir die normale opstelling met direkte bedrading. Koploos beteken om op afstand in die pi te "tonnel" met behulp van 'n veilige dop (SSH) netwerkverbinding. Vir hierdie projek gebruik ons die koplose benadering oor WiFi. Vandaar die rede waarom ons die W -weergawe van die pi zero kies in plaas van die nog laer koste pi zero.

Let daarop dat daar ook 'n ander manier is om die pi in 'n koplose modus te gebruik met iets wat VNC genoem word. Dit benodig egter spesiale VNC -sagteware wat op u rekenaar werk, aangesien dit 'n volledige virtuele grafiese tafelblad op u rekenaar bied. Ons benodig nie (en wil regtig nie) die lessenaar vir ons projek nie, dus hou ons by die eenvoudiger SSH -metode.

Stap 2: Scotty, ons benodig meer krag

Scotty, ons benodig meer krag!
Scotty, ons benodig meer krag!

Die 32x32 LED -matrikspaneel kan op sigself verskeie ampère stroom inneem. Ernstig! Daarom bevat die meeste van hierdie panele 'n paar kragtige kragkabels om dit aan te dryf. Gelukkig hoef ons nie 'n massiewe kragtoevoer vir hierdie projek te kry nie. Ons kon die hele stelsel slegs van 'n ekstra 5v/2amp microUSB selfoonlaaier voorsien. Die rede vir die laer stroom is omdat ons relatief eenvoudige grafika gebruik en daarom die meeste LED's nie aanskakel nie. As u oorweeg om animasie te maak of video/helder grafika te gebruik, moet u beslis oorweeg om die paneel van 'n aparte kragtoevoer af te skakel.

Stap 3: Sensorplasing en sagteware

Sensorplasing en sagteware
Sensorplasing en sagteware
Sensorplasing en sagteware
Sensorplasing en sagteware

Het u opgemerk dat ons twee tinyLiDAR's in hierdie stelsel gebruik in plaas van net een? Soos in die opstellingdiagram van die motorhuis getoon, word die een voor die motor geplaas en die ander langs die een kant van die motor.

Die sysensor sal opspoor of u van die sentrum af wegbeweeg terwyl u die motor parkeer, en natuurlik sal die voorkant u vertel wanneer u moet stop.

Die 32x32 LED -skerm sal u help deur pyle te wys om vorentoe, links of regs te beweeg, en 'n aftelbare skerm met gekleurde hoeke om aan te dui hoe ver u nog moet ry. Kyk na ons kort video vir al die skermtoestande.

Spelplan

In 'n neutedop gebruik ons die immer gewilde hzeller C -biblioteek vir die LED -bestuurder, Python vir die beheerkode en die pipgpio C -biblioteek vir behoorlike I2C -beheer van ons sensors.

Python is 'n supergemaklike taal op hoë vlak wat u maklik in enige teksredakteur kan wysig. Ons gebruik normaalweg SublimeText en vir hierdie projek het ons ook 'n baie nuttige FTP -inprop gebruik waarmee ons die scriptlêers direk op die pi kan wysig. Dit is 'n opsionele stap, aangesien dit slegs nodig is as u die kode wil wysig. Aan die einde van hierdie artikel is meer besonderhede beskikbaar.

Alle rpi -borde ondersteun, soos u dalk weet, nie oorspronklik die rek van die I2C -klok nie. Dus gebruik ons weer die pigpio -biblioteek vir hierdie projek om die tinyLiDAR -sensors te beheer, maar hierdie keer met 'n effense draai …

Veelvuldige kleinLiDAR's

As u 'n tinyLiDAR koop, is dit altyd ingestel op die standaard slaafadres van 0x10. Dit is goed as u 'n enkele sensor gebruik, maar as u meer as een in die bus het, kan dit 'n probleem wees as u 'n opdrag na 0x10 skryf en almal antwoord!

Ons het dus 3 opsies hier:

Eerstens kan ons die (tinyLiDAR) "R" -opdrag gebruik om 'n nuwe slawe -adres te skryf aan die een sensor wat aan die I2C -bus gekoppel is. Herhaal dit dan vir elke sensor. Elke sensor vir hierdie prosedure fisies aanheg, skryf en losmaak. tinyLiDAR stoor die gegewe adres in sy on-vlugtige geheue aan boord. Die adres sal voortduur, selfs na die kragopbrengs, totdat u dit uitvee deur die RESET -opdrag uit te voer.

Die tweede opsie is om die gerieflike Auto Assign -funksie te gebruik wat ons as 'n rekorddoel in die IGG -veldtog geskep het. Dit behels dat u die "AR" -opdrag stuur en dan u vinger afsonderlik na elke sensor wys om sekwensiële I2C -adresse outomaties aan die individuele sensors toe te ken, soortgelyk aan die eerste opsie, maar u hoef nie elke sensor fisies te ontkoppel om dit te doen nie.

Die derde opsie is die een wat ons hier in hierdie projek gebruik, en dit is moontlik danksy die pigpio -biblioteek. Om die I2C -standaard behoorlik te implementeer, maak pigpio die GPIO bitter. Daarom kan ons maklik afsonderlike I2C -busse op bykans enige paar ekstra GPIO -penne skep.

Daarom is dit nie nodig om slawe-adresse vir die veelvuldige LiDAR-sensors te herprogrammeer nie. Ons kan net 'n aparte bus vir elkeen gebruik:)

Let daarop dat die I2C -bus met 100Kbps eintlik redelik robuust is. Ons gebruik 'n gewone ou CAT5 -ethernetkabel om die I2C -bus na die kleinLiDAR -sensor van die kant te bring, 'n volle 25 voet weg sonder enige aktiewe herhalingskomponente! Sensor bedrading besonderhede word hierbo getoon.

Goed, genoeg jibber jabber, laat ons die kode begin aflaai!

Stap 4: Die opstel van die Pi

Die opstel van die Pi
Die opstel van die Pi
Die opstel van die Pi
Die opstel van die Pi

Let op: die pi gebruik 'n Linux -lêerstelsel, dus is dit die beste om die volgende stappe op 'n Linux -gebaseerde stelsel uit te voer. U kan uiteindelik u SD -kaart herformateer as u dit op Windows doen. Ons het die wonderlike en gratis Ubuntu 18.04 -tafelblad gebruik in 'n virtuele omgewing op 'n Windows 10 -rekenaar, maar u kan iets soortgelyks probeer.

U moet eers die bedryfstelsel van raspberrypi.org aflaai en dit dan op u microSD -kaart verbrand. Volg dus hierdie stappe:

(1) Gaan hier in Ubuntu en gryp die Raspbian Lite -beeld. Stoor dit in u aflaaigids.

(2) Laai dan die Etcher SD -kaart skryfprogram af. Ter info - die amptelike Etcher -aflaai -skakel vir die Linux -weergawe op hul tuisblad het nie vir ons gewerk nie, daarom gebruik ons eerder die metode wat hier beskryf word:

Samevattend was die stappe wat in die skakel beskryf is:

Voeg Etcher debian repository by:

eggo "deb https://dl.bintray.com/resin-io/debian stabiele etser" | sudo tee /etc/apt/sources.list.d/etcher.list

Vertrou die GPG -sleutel van Bintray.com:

sudo apt-key adv-keyserver keyserver.ubuntu.com --recv-sleutels 379CE192D401AB61

Opdateer en installeer:

sudo apt-get update

sudo apt-get installeer etser-elektron

Sodra dit voltooi is, kan u voortgaan met die bekendstelling van Etcher vanaf u Ubuntu -tafelblad. Dit sal u vra na die bronlêer (wat u in die aflaai -lêergids plaas). Die volgende stap in Etcher is om die regte teiken te kies. Etcher doen 'n goeie taak om u mikro -SD -kaart op te spoor, maar u behoort hier paranoïes te wees. Om te verifieer dat dit die regte bestemming vind - probeer om die microSD -kaart uit te gooi deur in die Ubuntu -lêerverkenner -venster te klik, en verifieer dat dit weggaan as die doelopsie in Etcher. Plaas dit dan terug en gaan voort met die laaste stap, naamlik om die lêer na hierdie microSD -kaart te skryf.

Wag 'n rukkie totdat dit klaar is en gaan dan verder.

Stap 5: WiFi -tyd

WiFi tyd
WiFi tyd
WiFi tyd
WiFi tyd

Dit is nou tyd om u WiFi -besonderhede in te voer.

Wenk: u kan altyd (Ctrl+C) inligting van hierdie artikel na die PuTTY -terminale skerm kopieer en plak (in plaas van die opdragte uit te tik). Kyk ook na die einde van hierdie artikel vir verskeie nuttige Linux -opdragte.

As Etcher klaar is met skryf aan die mikro -SD -kaart, verskyn daar 2 dryf soos hierbo getoon. Die een word boot genoem, die ander word rootfs genoem

Ons moet die lêerbestuurder gebruik om in die opstartmap te gaan en 'n lêer met die naam wpa_supplicant.conf te maak.

Om hierdie stap uit te voer, kan u net aan die linkerkant klik waar dit sê boot, en dan aan die regterkant van die skerm kan u met die rechtermuisknop op die wit agtergrond klik en Open in Terminal kies.

Dit sal 'n terminale venster oopmaak (soortgelyk aan CMD in Windows) waar u die volgende kan tik:

sudo nano wpa_supplicant.conf Wenk: U moet u Linux -stelselwagwoord invoer sodat dit as die Supergebruiker kan werk. Dit is nodig, anders kan u nie die lêers stoor as u klaar is nie

Bogenoemde opdrag sal dan die 'nano' -teksredakteur begin, waar u die volgende inligting kan invoer:

land = VSA

ctrl_interface = DIR = /var /run /wpa_supplicant GROUP = netdev update_config = 1 netwerk = {ssid = "WiFi_SSID" scan_ssid = 1 psk = "WiFi_Password" key_mgmt = WPA - PSK}

Opmerking: onthou om WiFi_SSID en WiFi_Password te vervang deur u eie WiFi -netwerknaam en wagwoord.

As u klaar is, klik net op Ctrl+X om af te sluit en ja te antwoord om die lêer te skryf by afrit.

Ons volgende stap is om 'n leë lêer genaamd ssh te skep. Om dit te doen, tik ons net die volgende in die terminale venster:

raak ssh

Nou moet ons ons pi 'n statiese IP -adres gee, sodat ons weet waar dit is elke keer as ons daaraan wil koppel. Tik die volgende in die terminale venster:

sudo nano /etc/dhcpcd.conf

Dit moet die nano -teksredakteur weer oopmaak en ons kan hierdie teks onderaan die lêer voeg:

koppelvlak wlan0

statiese ip_address = 192.168.0.static routers = 192.168.0.1 static domain_name_servers = 192.168.0.1 8.8.8.8

Opmerking: dit veronderstel dat u netwerkvoorvoegsel 192.168.0 is. As u 192.168.1 ens het, gebruik dan u netwerk. Die domeinnaambediener 8.8.8.8 is vir Google en hier is dit opsioneel.

Tik 'exit' in die Terminal om dit af te sluit. Klik dan met die rechtermuisknop op die opstartnaam aan die linkerkant van die venster Files manager en kies Uitwerp.

U kan hierdie microSD -kaart nou in u pi aansluit en die microUSB -kragkabel aansluit om u pi aan te skakel.

As alles goed gaan, sal die groen LED 'n rukkie flikker asof dit toegang tot 'n hardeskyf het, en dit moet u aanmeld by u WiFi -netwerk. Gee dit 'n minuut om te rus en wag totdat die LED groen word.

Om te verifieer dat dit alles werk, kan ons probeer om dit te ping.

Tik dus die onderstaande reël en kyk of daar 'n antwoord is.

ping 192.168.0.200

In Ubuntu behoort u iets soortgelyk hieraan te kry:

ping 192.168.0.200

PING 192.168.0.200 (192.168.0.200) 56 (84) grepe data. 64 grepe vanaf 192.168.0.200: icmp_seq = 1 ttl = 128 tyd = 752 ms 64 grepe vanaf 192.168.0.200: icmp_seq = 2 ttl = 128 tyd = 5.77 ms 64 grepe vanaf 192.168.0.200: icmp_seq = 3 ttl = 128 tyd = 7.33 ms ^C --- 192.168.0.200 pingstatistiek --- 3 pakkies gestuur, 3 ontvang, 0% pakkieverlies, tyd 2001ms rtt min/avg/max/mdev = 5.777/255.346/752.922/351.839 ms

Let daarop dat die ping steeds werk totdat u Ctrl+C druk om te stop.

In Windows behoort u so iets te kry:

ping 192.168.0.200

Ping 192.168.0.200 met 32 grepe data: Antwoord vanaf 192.168.0.200: grepe = 32 tyd = 4ms TTL = 64 Antwoord vanaf 192.168.0.200: grepe = 32 tyd = 5ms TTL = 64 Antwoord vanaf 192.168.0.200: grepe = 32 keer = 6ms TTL = 64 Antwoord vanaf 192.168.0.200: grepe = 32 tyd = 5ms TTL = 64 Pingstatistieke vir 192.168.0.200: Pakkies: Gestuur = 4, Ontvang = 4, Verlore = 0 (0% verlies), Geskatte heen en weer tye in milli-sekondes: minimum = 4 ms, maksimum = 6 ms, gemiddelde = 5 ms

Alles goed? Verder…

Stap 6: Meld aan

Teken aan
Teken aan

Noudat ons verbinding met die pi het, wil ons dit opdragte stuur. Maar hoe? PuTTY natuurlik! U kan PuTTY hier aflaai PuTTY opstel Nadat u die PuTTY -sagteware afgelaai het, maak 'n profiel vir u pi met die volgende inligting:

Gasheernaam (of IP -adres): 192.168.0.200 Verbindingstipe: SSH Gee hierdie profiel 'n naam onder Gestoorde sessies en druk Stoor. U kan enige naam wat u wil gebruik, byvoorbeeld "rpizw_200"

Om aan te meld, kies dit net uit die lys en klik op Laai. Druk dan op Open. Voer die gebruikersnaam en wagwoord in om aan te meld:

aanmeldnaam: pi

Default wagwoord: framboos

Hier is 'n voorbeeldsessie wat in PuTTY gewys word wanneer u aanmeld:

teken aan as: pi

wagwoord van [email protected]: Linux raspberrypi 4.14.34+ #1110 Ma Apr 16 14:51:42 BST 2018 armv6l Die programme wat by die Debian GNU/Linux -stelsel ingesluit is, is gratis sagteware; die presiese verspreidingsterme vir elke program word beskryf in die individuele lêers in/usr/share/doc/*/copyright. Debian GNU/Linux kom absoluut GEEN GARANTIE in die mate wat die toepaslike wetgewing dit toelaat nie. Laaste aanmelding: [datum en tyd] vanaf 192.168.0. [Ip adres] SSH is geaktiveer en die standaard wagwoord vir die 'pi' -gebruiker is nie verander nie. Dit is 'n veiligheidsrisiko - meld aan as die 'pi' -gebruiker en tik' passwd 'om 'n nuwe wagwoord in te stel.

By die eerste aanmelding sal dit waarsku dat u nog nie die wagwoord verander het nie. U moet dit verander na iets sterk maar tog eenvoudig om te onthou, maar verander dit deur passwd in te tik en die aanwysings te volg.

Ons moet die sagteware op die pi vervolgens opdateer deur dit te tik:

sudo apt-get update && sudo apt-get upgrade

Dit sal die nodige opdaterings van u internetverbinding aflaai. Beantwoord JA as u gevra word om dit toe te laat, en gee dit 'n rukkie om op te dateer.

Op die oomblik moet ons die geluid op die pi waarskynlik ook afskakel, aangesien dit 'n slegte juju het met die LED -bestuurderbiblioteek. Kopieer, plak die volgende reëls een vir een en druk enter na elke reël:

cd ~

kat << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf swartlys snd_bcm2835 EOF sudo update-initramfs -u

Die uitset sal so iets wees:

pi@raspberrypi: ~ $ cd ~

pi@raspberrypi: ~ $ cat <> blacklist snd_bcm2835>> EOF blacklist snd_bcm2835 pi@raspberrypi: ~ $ sudo update -initramfs -u pi@raspberrypi: ~ $

Dan moet ons die pi herlaai om die veranderinge in werking te stel, tik die volgende:

sudo herlaai nou

Die verbinding sal natuurlik daal namate die pi herlaai, sodat u PuTTY kan afsluit. Probeer 'n minuut later weer aanmeld.

Dit is nou tyd om 'n grafiese FTP -lêerbestuurder genaamd WinSCP te kry. U kan WinSCP hier aflaai

WinSCP is baie soos die lêermangager op Windows en Ubuntu. Dit stel ons in staat om lêers maklik na en van die pi te sleep en neer te lê en met slegs 'n regsklik met die muis op u gids te skep.

Nadat u dit afgelaai het, moet u 'n profiel vir u pi opstel.

WinSCP -opstelling Kies 'n nuwe webwerf in die opspringvenster. Gebruik die volgende instellings vir die sessie:

Lêerprotokol: SFTP -gasheernaam: 192.168.0.200 Gebruikersnaam: pi Wagwoord: {watter wagwoord u ook die standaard in die PuTTY -stap hierbo verander het}

Gaan in Gevorderde werfinstellings na Omgewing | Gidse en voer /home /pi in vir die eksterne gids en alles wat u wil vir die instelling van die plaaslike gids.

Gaan na Gevorderde werfinstellings na Omgewing | Skulp en kies sudo su - in die Shell -aftreklys.

Klik dan op Stoor.

Hou beide WinSCP en PuTTY oop terwyl u die volgende stappe uitvoer

Gaan na die PuTTY -terminale en voer die volgende in:

cd ~

Dit bring ons by ons tuisgids binne die pi.

Ons kan nou die LED -bestuurderbiblioteek van github af haal. Om die nuutste kode te gebruik, moet ons die repo trek, sodat ons die git -nut moet installeer.

Voer hierdie in PuTTY in:

sudo apt-get install git

antwoord Y om voort te gaan, en dit sal 'n paar sekondes neem om git vir ons vanaf die internet te installeer.

Die uitset moet so lyk:

pi@raspberrypi: ~ $ sudo apt-get install git

Pakketlyste lees … Klaar Gebou vir afhanklikheid bou Lees inligting oor staat … Gedaan Die volgende bykomende pakkette sal geïnstalleer word: git-man liberror-perl Voorgestelde pakkette: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn Die volgende NUWE pakkette sal geïnstalleer word: git git-man liberror-perl 0 opgegradeer, 3 nuut geïnstalleer, 0 om te verwyder en 0 nie opgegradeer nie. Moet 4, 848 kB argiewe kry. Na hierdie operasie word 26,4 MB ekstra skyfspasie gebruik. Wil jy voortgaan? [J/n] y Kry: 1 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf liberror-perl alles 0.17024-1 [26.9 kB] Kry: 2 https://muug.ca/mirror/ raspbian/raspbian stretch/main armhf git-man all 1: 2.11.0-3+deb9u3 [1, 433 kB] Kry: 3 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] Haal 4, 848 kB in 5s (878 kB/s) Selekteer voorheen ongeselekteerde pakket liberror-perl.(Lees tans databasis … 34363 lêers en gidse wat tans geïnstalleer is.) Berei voor om uit te pak …/liberror-perl_0.17024-1_all.deb … Uitpak van liberror-perl (0.17024-1) … Kies voorheen nie-geselekteerde pakket git-man. Berei voor om uit te pak …/git-man_1%3a2.11.0-3+deb9u3_all.deb … Git-man uitpak (1: 2.11.0-3+deb9u3) … Kies pakket wat voorheen nie gekies is nie. Berei voor om uit te pak …/git_1%3a2.11.0-3+deb9u3_armhf.deb … Git uitpak (1: 2.11.0-3+deb9u3) … Opstel van git-man (1: 2.11.0-3+deb9u3) … Opstel liberror-perl (0.17024-1) … Verwerk snellers vir man-db (2.7.6.1-2) … Git opstel (1: 2.11.0-3+deb9u3) …

Gaan nou terug na WinSCP en navigeer na die /home /pi -lêergids. Regsklik dan aan die regterkant van hierdie WinScp -venster en kies 'n nuwe gids genaamd 'parkering'

Terug in die PuTTY -skerm kan u ls tik om te bevestig dat u pas 'n nuwe gids in die pi gemaak het. Voer dan hierdie in:

cd p [TAB]Wenk: deur op die TAB -sleutel te druk, word die gedeeltelike naam outomaties voltooi

Druk die enter -sleutel om in hierdie gids te kom.

pi@raspberrypi: ~ $ cd parkering/

pi@raspberrypi: ~/parkering $ ls

Nou kan ons die bestuurderslêers kry deur die volgende in PuTTY in te voer:

git-kloon

Die uitset sal so lyk:

pi@raspberrypi: ~/parking $ git kloon

Kloning in 'rpi-rgb-led-matrix' … afstandsbediening: tel voorwerpe: 3740, klaar. afgeleë: Totaal 3740 (delta 0), hergebruik 0 (delta 0), hergebruik 3740 Ontvangsvoorwerpe: 100% (3740/3740), 20,61 MiB | 1.32 MiB/s, klaar. Die oplos van deltas: 100% (2550/2550), klaar.

Stel nou die LED-bestuurderslêers saam deur in hierdie nuwe 'rpi-rgb-led-matrix'-gids in te gaan en die make-opdrag in te tik:

cd r [TAB]

maak En so het dit op ons bord gelyk

pi@raspberrypi: ~/parking $ cd rpi-rgb-led-matrix/

pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $ make make -C./lib make [1]: Gaan na gids '/home/pi/parking/rpi-rgb-led-matrix/lib' g ++- I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '' regular '' -Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o gpio.o gpio.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o led -matrix.o led-matrix.cc g ++ -I../ sluit in - Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o opsies -initialiseer.o opsies-initialiseer.cc g ++ -I../ sluit -Wall in -O3 -g -fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o framebuffer.o framebuffer.cc g ++ -I../ sluit -Wall -O3 -g in - fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o thread.o thread.cc g ++ -I../ sluit -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = 'in "gewone" '-Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o bdf -font.o bdf -fon t.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o graphics.o graphics.cc g ++ - I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o transformer.o transformer.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o led -matrix -co led-matrix-c.cc cc -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte parameter -c -o hardware -mapping.o hardware -mapping.c g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o content -streamer.o content-streamer.cc g ++ -I../ sluit -Wall -O3 in - g -fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte -parameter -fno -uitsonderings -c -o pixel -mapper.o pixel-mapper.cc g ++ -I../ sluit -Wall -O3 -g in -fPIC -DDEFAULT_HARDWARE = '' gewone '' -Wextra -Wno -ongebruikte -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, -name, librgbmatrix.so.1 -o librgbmatrix.so.1 gpio.o led -matrix.o opsies-initialiseer.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 maak [1]: Verlaat gids '/home/pi/parking/rpi -rgb -led -matrix/lib' maak -C voorbeelde -api -gebruik maak [1]: Gee gids ' /home/pi/parking/rpi -rgb -led -matrix/examples -api -use 'g ++ -I../ include -Wall -O3 -g -Wextra -Wno -ongebruikte -parameter -c -o demo -main. o demo-main.cc maak -C../lib make [2]: Gaan na gids '/home/pi/parking/rpi-rgb-led-matrix/lib' make [2]: Verlaat gids '/home/pi /parking/rpi-rgb-led-matrix/lib 'g ++ demo-main.o -o demo -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ sluit -Wall -O3 -g -Wextra -Wno -ongebruikte -parameter -c -o minimaal -voorbeeld.o minimaal- voorbeeld.cc g ++ minimaal -voorbeeld.o in - o minimaal -voorbeeld -L../ lib -lrgbmatrix -lrt -lm -lpthread cc -I../ bevat -Wall -O3 -g -Wextra -Wno -ongebruikte -parameter -c -o c -voorbeeld.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 -ongebruik- parameter -c -o teks -voorbeeld.o teks-voorbeeld.cc g ++ teks -voorbeeld.o -o teks -voorbeeld -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ sluit -Wall in - O3 -g -Wextra -Wno-ongebruikte-parameter -c -o blaai-teks-voorbeeld.o blaai-teks- voorbeeld.cc g ++ blaai-teks-voorbeeld.o -o blaai-teks-voorbeeld -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ bevat -Wall -O3 -g -Wextra -Wno -ongebruikte -parameter -c -o klok.o klok.cc g ++ klok.o -o klok -L.. /lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ sluit -Wall -O3 -g -Wextra -Wno -ongebruikte -parameter -c -o ledcat.o ledcat.cc g ++ le in dcat.o -o ledcat -L../ lib -lrgbmatrix -lrt -lm -lpthread make [1]: Verlaat gids '/home/pi/parking/rpi -rgb -led -matrix/examples -api -use' pi @raspberrypi: ~/parking/rpi-rgb-led-matrix $

Ons volgende stap is om die RGB -matriksbiblioteek aan Python te bind. Ons het die standaard Python 2 vir hierdie projek gebruik. Om hierdie binding te doen, voer ons die volgende reël op 'n slag in soos voorheen:

sudo apt-get update && sudo apt-get install python2.7-dev python-pillow -y

maak build-python sudo maak install-python

Opmerking: u kan die enigste waarskuwing oor '-Streng-prototipe' wat by die twee stellings verskyn, veilig ignoreer. Die maakopdragte neem 'n paar minute om uit te voer en hulle sê niks terwyl hulle besig is nie. Wees dus nie bevrees nie - u pi moet binnekort terugkom;)

Hier is 'n gedeeltelike uitset van die eerste verklaring:

uitbreiding 'grafika' te bou

arm -linux -gnueabihf -gcc -pread -DNDEBUG -g -fwrapv -O2 -Wall -Strict -prototipes -fno -streng -aliasing -Dateertyd -D_FORTIFY_SOURCE = 2 -g -fdebug -voorvoegsel -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: waarskuwing: opdragreëlopsie '-Strict-prototipes' is geldig vir C/ObjC, maar nie vir C ++ arm-linux-gnueabihf-g ++ -draad-gedeel -Wl, -O1 -Wl, -Bsimboliese -funksies -Wl, -z, herontwerp -fno -streng -aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Streng -prototipes -Datatyd -D_FORTIFY_SOURCE = 2 -g -fdebug -voorvoegsel -map =/build/python2.7-kKRR4y/python2.7-2.7.13 =. -stack -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 =. -stack -protector -strong -Wformat -Werror = format -security build/temp.linux -armv6l -2.7/rgbmatrix/graphics.o -L../../ lib -lrgbmatrix -o./rgbmatrix/graphics.so maak [1]: Verlaat gids '/home/pi/parking/rpi-rgb-led-matrix/bindings/python' pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $

Vervolgens installeer ons die pigpio C -biblioteek. Om dit behoorlik te doen, moet ons dit uit die bron maak, en voer dan die volgende reëls in:

cd ~

sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip unzip pigpio.zip cd PIGPIO maak sudo maak installeer rm pigpio.zip

Bogenoemde installasie duur ongeveer 3 minute.

Dit is nou tyd om ons Python -projeklêers te kry. Voer die volgende in:

cd ~

cd/home/pi/parking/rpi-rgb-led-matrix/bindings/python/samples wget https://s3.amazonaws.com/microedco/tinyLiDAR/Raspberry+Pi/tinyL_parking.zip unzip -j tinyL_parking.zip rm tinyL_parking.zip

Tik die volgende om dit uit te voer:

sudo python parking.py

Maar u hoef dit nie nou te doen nie, want ons moet dit nog steeds oplos …

Stap 7: drade

Drade
Drade
Drade
Drade
Drade
Drade
Drade
Drade

Soos vroeër genoem, het ons die LED -paneel van dieselfde kragadapter aangedryf wat die pi aandryf. Om dit te kan doen, moet u die stewige rooi en swart drade aan manlike koppenne verbind, sodat hulle in penne 2 en 9 van die 40pin pi -aansluiting gekoppel kan word.

Ontkoppel die stroom na die pi en trek die LED -paneel aan volgens die diagram hierbo. Hou pen 2 vir eers ontkoppel.

LET WEL: die LED -matrikspaneel kan soms in 'n funky toestand aanskakel. As dit gebeur, kan dit u kragtoevoer ernstig laai, ongeag die huidige kapasiteit. Ons het dit opgemerk tydens die ontwikkeling van ons bankvoorraad, wat meer as 4 ampère kan lewer. Die oplossing hiervoor is om eers die pi -kode uit te voer en dan pen 2 in te skakel om die LED -paneel van krag te voorsien. Op hierdie manier moet die paneel in 'n lae krag toestand kom, aangesien dit die ewekansige LED -toestande uitspoel. Ruststroom (alle LED's af) vir ons LED -paneel was slegs 50mA by 5v.

CAT5

Ons het 'n CAT5 -ethernetkabel van 25 voet gebruik en dit aangepas om die pi -koppenne aan die een kant aan te sluit en die GROVE -aansluitpenne aan die ander kant te aanvaar, sodat ons die afstand kon verleng om ons kant tinyLiDAR -sensor te plaas. Die foto's hierbo toon hierdie kabel voor en na wysigings. Let op die kleure van die kopkopdrade, aangesien dit nie met die diagramme verband hou nie. Maak net seker dat u u stelsel aansluit, soos aangedui in die illustrasie -verbindingsdiagramme wat vroeër in stap 3 getoon is.

Stap 8: Verlig dit

Image
Image
Opsionele stap en handige opdragte
Opsionele stap en handige opdragte

Die korrekte aanvanklike opstartvolgorde moet wees om die microUSB -laaier in die pi aan te sluit en te wag totdat die blou LED's op die tinyLiDAR -sensors vinnig knip, wat wys dat hulle metings neem. Dit bewys dat die kode behoorlik werk.

U kan dan pen 2 stadig maar stewig verbind vir die LED -paneelvoorraad. Wees versigtig om dit nie te misluk terwyl u dit doen nie! As daar 'n paar bevrore helder LED's op die LED -paneel is, is dit waarskynlik fout, so verwyder die microUSB -krag uit die pi en wag 'n paar sekondes om weer die opstartvolgorde te probeer.

Voer die volgende in om die kode uit te voer:

cd/home/pi/parking/rpi-rgb-led-matrix/bindings/python/samples

sudo python parking.py

As alles goed gaan, moet u 'n skerm kry wat soortgelyk is aan die in die video.

Kyk vinnig na die parking.py -kode om te verstaan watter perke ons gebruik het. Die standaard vir die voorste sensor is 200 mm. Aangesien die sensorafstand van 11 mm tot 2 m is, is dit 'n goeie idee om die nom_parked_Front -afstand op 200mm of hoër te hou. Die sysensor nom_parked_Side is op 600 mm gestel. Sien die prent hierbo vir die Python -kode wat hierdie konfigurasie -opsies toon.

As alles werk, kan u die stelsel in u motorhuis monteer en die parameters hierbo aanpas soos nodig. Aangesien u pi aan u WiFi gekoppel is, kan u altyd u afstandsinstellings aanpas soos u benodig vir u spesifieke motorhuisopstelling terwyl dit nog gemonteer is.

Is dit nou?

Hoekom ja, ja dit is! - tyd om jou gelukkige dans te doen:)

Dankie dat u gelees het en geniet u nuwe parkeerassistent!

Stap 9: Opsionele stap en nuttige opdragte

Opsionele stap - FTP -byvoeging vir sublieme teks

Om die Python -skriptlêers direk op die pi te wysig, kan ons die FTP -byvoeging genaamd Sublime SFTP deur Wbond installeer. U kan hierdie addon aflaai deur die instruksies hier te volg

Om hierdie addon op te stel, moet ons die FTP -geloofsbriewe onder die File | SFTP/FTP | Setup Server… bladsy.

Vir ons opstelling gebruik ons:

"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", Gebruik Ctrl+S of File | Stoor om hierdie inligting te stoor. U sal 'n naam vra om hierdie konfigurasie te noem. Ons het dit eenvoudig 'rpizw_0_200' genoem

Gaan nou na die pi vanaf SublimeText, gaan na File | SFTP/FTP | Blaai deur bediener …

Kies uit die lys opsies wat verskyn. U wil die profiel kies met die naam wat u hierbo gespesifiseer het.) Volg die aanwysings om deur die dopgehou te navigeer en die gewenste lêer te wysig.

Nuttige bykomstighede

Nuttige Linux -opdragte om op die pi te gebruik.

Voordat u die pi ontkoppel, moet u dit altyd afskakel sodat u nie korrupsie op u microSD -kaart kan kry nie. Voer hierdie opdrag in:

sudo nou afskakel

en wag totdat die groen led afgeskakel word voordat die krag ontkoppel word. Om dit weer te begin, kan u ook die volgende invoer:

sudo herlaai nou

Om lêers in 'n gids te lys, gebruik hierdie:

ls

U kan hier ander nuttige Linux -opdragte vind

Aanbeveel: