Obsah:

Systém parkovacieho asistenta založený na Pi: 9 krokov
Systém parkovacieho asistenta založený na Pi: 9 krokov

Video: Systém parkovacieho asistenta založený na Pi: 9 krokov

Video: Systém parkovacieho asistenta založený na Pi: 9 krokov
Video: 🚀 AMAZON 2.0 - ИНТЕРНЕТ МАГАЗИН с нуля за 6 часов [Next / React / Nest / PostgreSQL / Prisma / TS] 2024, November
Anonim
Systém parkovacieho asistenta založený na Pi
Systém parkovacieho asistenta založený na Pi

Hej vy tam! Toto je úžasný malý projekt, ktorý môžete urobiť za jedno popoludnie a potom ho používať denne. Je založený na Raspberry Pi Zero W a pomôže vám zaparkovať auto perfektne vždy.

Tu je kompletný zoznam dielov, ktoré budete potrebovať:

  • Raspberry Pi Zero W (v tomto článku to nazveme „rpi“alebo „pi“)
  • 4 GB alebo väčšia karta micro SD pre operačný systém pi OS
  • Dva moduly snímača vzdialenosti TinyLiDAR pre čas letu
  • Panel LED 32 x 32 RGB (existuje veľa výrobcov s rôznymi rozstupmi bodov, môžete napríklad použiť Adafruit 1484 alebo podobný, stačí vyhľadať „maticu 32 x 32 LED“na Googli). Náš panel mal rozstup 6 mm.
  • 25 stôp kábla CAT5
  • približne 22 farebných prepojovacích káblov kolíkových konektorov mužského a mužského pohlavia
  • 5v 2Amp microUSB napájací zdroj (nabíjačka mobilného telefónu) Je všetko pripravené? Poďme!

Súhrn TL; DR

  • Stiahnite si Raspbian Lite OS pre rpi
  • Nakonfigurujte pi tak, aby bežala bez hlavy cez WiFi so statickou IP
  • Nastavte si vývojové prostredie svojho počítača pomocou doplnkov PuTTY, WinSCP a voliteľne doplnku SublimeText s doplnkom FTP
  • Stiahnite, vytvorte a zviažte ovládač panela LED
  • Stiahnite a nainštalujte pigpio
  • Stiahnite si náš kód v Pythone
  • Pripojte panel displeja LED s rozmermi 32 x 32 pixlov
  • Vyrobte predlžovací kábel CAT5 pre bočný snímač tinyLiDAR
  • Voliteľný krok (ale iba pre pokročilých používateľov): urobte rýchly šťastný tanec, keď všetko funguje;)

Krok 1: Čo je Pi Zero W?

Čo je to Pi Zero W?
Čo je to Pi Zero W?

Nepochybne ste už počuli o Raspberry Pi, ale čo je sakra pi „nula W“?

Raspberry Pi Zero a Zero W boli novšími prírastkami do rodiny Pi, ktoré znamenali viac pre IoT a ďalšie lacné vstavané aplikácie. Sú to obnažené verzie pôvodnej dosky pi, ale stále s výkonným procesorom 1 GHz. Tu je dobré porovnanie všetkých modelov.

Výhodou pre nás pri výbere Pi Zero W oproti iným radičom je, že ho môžeme ľahko naprogramovať vo vyššom jazyku Python a pritom používať rýchle ovládače panelov LED C/C ++. Má tiež atraktívnu cenu iba 10 USD.

Majte na pamäti, že keďže táto doska je zmenšenou verziou celého pi - niektoré veci sa zmenili. Bol odstránený najmä ethernetový konektor, konektor HDMI sa zmenil na mini veľkosť a štyri porty USB sa zjednodušili na jediný typ micro USB. Na palube je ďalší konektor micro USB, ale slúži iba na napájanie dosky. Odstránenie všetkých konektorov USB v plnej veľkosti prináša určité komplikácie. Konkrétne, ako môžete pripojiť klávesnicu a myš? Štandardné USB periférie a rozbočovače používajú konektory typu A, nie mikro.

Čo teda môžeme urobiť?

Môžeme ísť bez hlavy!

Nie, nechceme sa zblázniť, ale použiť alternatívu k bežnému priamemu káblovému nastaveniu. Bezhlavý spôsob znamená vzdialene „tunelovať“do pí pomocou zabezpečeného sieťového pripojenia Shell (SSH). Pre tento projekt použijeme bezhlavý prístup cez WiFi. Preto je dôvodom pre nás voľba W verzie pi nula namiesto ešte nižších nákladov pí nula.

Všimnite si toho, že existuje aj iný spôsob, ako spustiť pi v bezhlavom režime pomocou niečoho, čo sa nazýva VNC. Vyžaduje však špeciálny softvér VNC, ktorý beží na vašom počítači, pretože vo vašom počítači poskytuje úplnú virtuálnu grafickú plochu. Pre náš projekt nevyžadujeme (a vlastne ani nechceme) pracovnú plochu, takže sa budeme držať jednoduchšej metódy SSH.

Krok 2: Scotty, potrebujeme viac energie

Scotty, potrebujeme viac energie!
Scotty, potrebujeme viac energie!

Maticový panel LED 32 x 32 môže sám osebe odoberať niekoľko ampérov prúdu. Nerobím si srandu! Preto väčšina týchto panelov obsahuje mohutne vyzerajúce napájacie káble na jeho napájanie. Našťastie pre nás, aj keď nebudeme potrebovať pre tento projekt masívne napájanie. Celý tento systém sme mohli napájať iba z náhradnej 5v/2amp microUSB nabíjačky mobilného telefónu, ktorú sme mali pohodenú okolo. Dôvodom nižšieho prúdu je to, že používame relatívne jednoduchú grafiku, a preto väčšinu LED diód nezapíname. Ak uvažujete o vytváraní animácií alebo použití video/jasnej grafiky, mali by ste určite zvážiť napájanie panelu zo samostatného zdroja.

Krok 3: Umiestnenie senzora a softvér

Umiestnenie senzora a softvér
Umiestnenie senzora a softvér
Umiestnenie senzora a softvér
Umiestnenie senzora a softvér

Všimli ste si, že v tomto systéme používame namiesto jedného iba dva tinyLiDAR? Ako je znázornené na schéme nastavenia garáže, jedno je umiestnené pred autom a druhé je umiestnené pozdĺž jednej strany auta.

Bočný senzor zistí, či pri parkovaní auta vybočíte zo stredu, a samozrejme predný vám povie, kedy zastaviť.

LED displej 32x32 vám pomôže tým, že vám ukáže šípky na pohyb vpred, doľava alebo doprava a odpočítavací displej s farebnými rohmi, ktorý ukazuje, ako ďaleko ešte musíte prejsť. Pozrite sa na naše krátke video so všetkými stavmi zobrazenia.

Plán hry

Stručne povedané, používame stále obľúbenejšiu knižnicu hzeller C pre ovládač LED, Python pre riadiaci kód a knižnicu pipgpio C na správne ovládanie našich senzorov I2C.

Python je super ľahký jazyk na vysokej úrovni, ktorý môžete ľahko upravovať v ľubovoľnom textovom editore. Bežne používame SublimeText a pre tento projekt sme použili aj veľmi užitočný FTP plugin, ktorý nám umožňuje upravovať súbory skriptov priamo na pi. Toto je voliteľný krok, pretože je potrebný iba vtedy, ak chcete upraviť kód. Ďalšie podrobnosti sú k dispozícii na konci tohto článku.

Všetky dosky rpi, ako možno viete, natívne nepodporujú rozťahovanie hodín I2C. Na tento projekt sme teda znova použili knižnicu pigpio na ovládanie senzorov tinyLiDAR, ale tentoraz s malým otočením …

Niekoľko maličkých LiDARov

Keď si kúpite tinyLiDAR, vždy je nastavená na predvolenú adresu slave 0x10. To je v poriadku, keď používate jeden snímač, ale ak máte na zbernici viac ako jeden, môže byť problém, ak napíšete príkaz na hodnotu 0x10 a všetky odpovedia späť!

Máme tu teda 3 možnosti:

Najprv môžeme pomocou príkazu (tinyLiDAR) „R“zapísať novú adresu slave do jedného senzora pripojeného k zbernici I2C. Potom to zopakujte pre každý senzor. Fyzicky pripevnite, zapíšte a odpojte každý snímač pre tento postup. tinyLiDAR uloží danú adresu do svojej energeticky nezávislej pamäte. Adresa bude pretrvávať aj po cykle napájania, kým ju nevymažete zadaním príkazu RESET.

Druhou možnosťou je použiť pohodlnú funkciu automatického priradenia, ktorú sme vytvorili ako strečingový cieľ v kampani IGG. To zahŕňa odoslanie príkazu „AR“a potom nasmerovanie prsta na každý snímač jednotlivo, aby sa automaticky priradili sekvenčné adresy I2C jednotlivým snímačom podobne ako v prípade prvej možnosti, ale na to nemusíte fyzicky odpojiť každý snímač.

Tretia možnosť je tá, ktorú tu v tomto projekte používame a je to možné vďaka knižnici pigpio. Na správnu implementáciu štandardu I2C pigpio bituje GPIO. Z tohto dôvodu môžeme ľahko vytvoriť samostatné zbernice I2C na takmer akomkoľvek páre náhradných pinov GPIO.

Preto nie je potrebné preprogramovať adresy slave pre viac senzorov LiDAR. Pre každý môžeme použiť samostatný autobus:)

Všimnite si toho, že zbernica I2C bežiaca na 100 Kbps je skutočne dosť robustná. Používame obyčajný starý ethernetový kábel CAT5 na vyvedenie zbernice I2C na bočný snímač tinyLiDAR, ktorý je vzdialený celých 25 stôp bez akýchkoľvek aktívnych komponentov opakovača! Podrobnosti o zapojení senzora sú uvedené vyššie.

Dobre, dosť jibber jabber, začnime sťahovať kód!

Krok 4: Nastavenie Pi

Nastavenie Pi
Nastavenie Pi
Nastavenie Pi
Nastavenie Pi

Upozornenie: Pi používa súborový systém Linux, takže je najlepšie vykonať nasledujúce kroky na systéme Linux. Ak to urobíte v systéme Windows, môžete skončiť s preformátovaním karty SD. Použili sme úžasnú a bezplatnú pracovnú plochu Ubuntu 18.04, ktorá beží vo virtuálnom prostredí na počítači so systémom Windows 10, ale môžete skúsiť niečo podobné.

Najprv si musíte stiahnuť operačný systém z raspberrypi.org a potom ho napáliť na kartu microSD. Postupujte teda podľa týchto krokov:

(1) V Ubuntu choďte sem a urobte si obrázok Raspbian Lite. Uložte ho do priečinka na stiahnutie.

(2) Potom si stiahnite nástroj na zápis na kartu SD Etcher. FYI - oficiálny odkaz na stiahnutie Etcher pre verziu Linux na ich domovskej stránke pre nás nefungoval, takže sme namiesto toho použili metódu popísanú tu:

Stručne povedané, kroky popísané v odkaze boli tieto:

Pridajte úložisko Etcher debian:

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

Dôverujte kľúču GPG spoločnosti Bintray.com:

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

Aktualizovať a nainštalovať:

sudo apt-get aktualizácia

sudo apt-get nainštalovať etcher-elektrón

Po dokončení môžete pokračovať a spustiť Etcher z pracovnej plochy Ubuntu. Požiada vás o zdrojový súbor (ktorý ste vložili do priečinka na stiahnutie). Ďalším krokom v programe Etcher je výber správneho cieľa. Etcher robí dobrú prácu pri zisťovaní vašej karty micro SD, ale mali by ste byť paranoidní. Ak chcete overiť, či nachádza správne miesto určenia, skúste vysunúť kartu microSD kliknutím na vysunutie v okne prieskumníka súborov Ubuntu a overte, či zmizne ako cieľová možnosť v programe Etcher. Potom ho znova vložte a pokračujte k poslednému kroku, ktorým je zápis súboru na túto kartu microSD.

Chvíľu počkajte, kým sa nedokončí, a potom pokračujte ďalej.

Krok 5: Čas WiFi

Čas WiFi
Čas WiFi
Čas WiFi
Čas WiFi

Dobre, takže teraz je načase zadať podrobnosti o WiFi.

Tip: Informácie z tohto článku môžete kedykoľvek písať (Ctrl+C) a prilepiť (kliknutie pravým tlačidlom myši, prilepiť) na obrazovku terminálu PuTTY namiesto zadávania príkazov. Na konci tohto článku nájdete aj niekoľko užitočných príkazov systému Linux.

Keď Etcher skončí s zápisom na kartu micro SD, zobrazia sa 2 disky, ako je uvedené vyššie. Jeden sa nazýva boot a druhý sa nazýva rootfs

Musíme použiť správcu súborov na vstup do zavádzacieho priečinka a vytvoriť súbor s názvom wpa_supplicant.conf.

Ak chcete vykonať tento krok, stačí kliknúť na ľavú stranu, kde je napísané „boot“, a potom na pravej strane obrazovky pravým tlačidlom myši kliknúť na biele pozadie a vybrať položku Otvoriť v termináli.

To sa otvorí okno terminálu (podobné CMD v systéme Windows), kde môžete zadať nasledujúce:

sudo nano wpa_supplicant.conf Tip: Aby ste mohli fungovať ako super používateľ, budete musieť zadať systémové heslo systému Linux. Je to potrebné, inak nebudete môcť súbory uložiť, keď skončíte s úpravami

Vyššie uvedený príkaz potom spustí textový editor „nano“, kde môžete zadať nasledujúce informácie:

krajina = USA

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

Poznámka: Nezabudnite nahradiť WiFi_SSID a WiFi_Password menom a heslom vašej vlastnej WiFi siete.

Keď skončíte, kliknutím na kombináciu klávesov Ctrl+X ukončíte prácu a pri ukončení súboru odpoviete Áno.

Našim ďalším krokom je vytvorenie prázdneho súboru s názvom ssh. Ak to chcete urobiť, v okne terminálu zadajte nasledujúci text:

dotkni sa ssh

Teraz musíme svojmu pí poskytnúť statickú IP adresu, aby sme vždy, keď sa k nemu chceme pripojiť, vedeli, kde sa nachádza. Do okna terminálu zadajte nasledujúce:

sudo nano /etc/dhcpcd.conf

Tým by sa mal znova otvoriť nano textový editor a tento text môžeme pridať do spodnej časti súboru:

rozhranie wlan0

static ip_address = 192.168.0.static routery = 192.168.0.1 static domain_name_servers = 192.168.0.1 8.8.8.8

Poznámka: To predpokladá, že vaša sieťová predpona je 192.168.0. Ak máte 192.168.1 atď., Použite namiesto toho svoju sieť. Server názvov domén 8.8.8.8 je určený pre spoločnosť Google a je tu voliteľný.

Zavrite ho v termináli zadaním príkazu „exit“. Potom kliknite pravým tlačidlom myši na názov zavádzania v ľavej časti okna Správca súborov a vyberte položku Vysunúť.

Teraz môžete túto kartu microSD zapojiť do počítača Pi a do napájacieho kábla microUSB zapojiť napájací kábel.

Ak všetko pôjde dobre, zelená dióda LED chvíľu bliká, ako keby pristupovala k jednotke pevného disku, a mala by vás prihlásiť do vašej siete WiFi. Dajte mu asi minútu na to, aby ste sa usadili, a počkajte, kým sa LED dióda nerozsvieti na zeleno.

Aby sme sa presvedčili, že to všetko funguje, môžeme to skúsiť otestovať pomocou príkazu ping.

Stačí teda napísať nižšie uvedený riadok a skontrolovať odpoveď.

ping 192.168.0.200

V Ubuntu by ste mali dostať niečo podobné tomuto:

ping 192.168.0.200

PING 192.168.0.200 (192.168.0.200) 56 (84) bajtov údajov. 64 bajtov od 192.168.0.200: icmp_seq = 1 ttl = 128 čas = 752 ms 64 bajtov od 192.168.0.200: icmp_seq = 2 ttl = 128 čas = 5,77 ms 64 bajtov od 192.168.0.200: icmp_seq = 3 ttl = 128 čas = 7,33 ms ^C --- 192.168.0.200 štatistika pingu --- 3 odoslané pakety, 3 prijaté, 0% strata paketu, čas 2001 ms rtt min/avg/max/mdev = 5,777/255,346/752,922/351,839 ms

Všimnite si toho, že ping pokračuje, kým neukončíte stlačením Ctrl+C.

V systéme Windows by ste mali dostať niečo také:

ping 192.168.0.200

Ping 192.168.0.200 s 32 bytmi údajov: Odpoveď od 192.168.0.200: bajty = 32 čas = 4 ms TTL = 64 Odpoveď od 192.168.0.200: bajty = 32 čas = 5 ms TTL = 64 Odpoveď od 192.168.0.200: bajty = 32 čas = 6ms TTL = 64 Odpoveď od 192.168.0.200: bajty = 32 čas = 5ms TTL = 64 Štatistiky pingu pre 192.168.0.200: Pakety: Odoslané = 4, Prijaté = 4, Stratené = 0 (0% strata), Približné časy cesty tam a späť v milisekundách: minimum = 4 ms, maximum = 6 ms, priemer = 5 ms

Všetko dobré? Ďalej…

Krok 6: Prihlásenie sa

Prihlasovanie
Prihlasovanie

Teraz, keď máme pripojenie k pí, chceme mu poslať príkazy. Ale ako? PuTTY samozrejme! Tu si môžete stiahnuť PuTTYNastavenie PuTTY Po stiahnutí softvéru PuTTY si vytvorte profil pre svoje pi s nasledujúcimi informáciami:

Názov hostiteľa (alebo adresa IP): 192.168.0.200 Typ pripojenia: SSHDajte tomuto profilu názov pod položkou Uložené relácie a kliknite na položku Uložiť. Môžete použiť ľubovoľné meno, napríklad „rpizw_200“

Ak sa chcete prihlásiť, stačí ho vybrať zo zoznamu a kliknúť na položku Načítať. Potom stlačte Otvoriť. Prihláste sa zadaním používateľského mena a hesla:

prihlasovacie meno: pi

Defalt heslo: malina

Tu je ukážková relácia zobrazená v programe PuTTY po prihlásení:

prihlásiť sa ako: pi

heslo [email protected]: Linux raspberrypi 4.14.34+ #1110 Mon 16. apríla 14:51:42 BST 2018 armv6l Programy zahrnuté v systéme Debian GNU/Linux sú bezplatný softvér; presné distribučné podmienky pre každý program sú popísané v jednotlivých súboroch v priečinku/usr/share/doc/*/copyright. Debian GNU/Linux neposkytuje ÚPLNE ŽIADNU ZÁRUKU, v rozsahu povolenom platnými zákonmi. Posledné prihlásenie: [dátum a čas] z 192.168.0. [IP adresa] SSH je povolené a predvolené heslo pre používateľa „pi“nebolo zmenené. Toto je bezpečnostné riziko - prihláste sa ako užívateľ „pi“a zadajte „heslo“, aby ste nastavili nové heslo.

Pri prvom prihlásení vás upozorní, že ste si ešte nezmenili heslo. Mali by ste to zmeniť na niečo silné, ale ľahko zapamätateľné. Pokračujte preto a zmeňte to zadaním hesla a postupujte podľa pokynov.

Ďalej by sme mali aktualizovať softvér na pi zadaním tohto:

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

Tým sa z vášho internetového pripojenia stiahnu všetky potrebné aktualizácie. Ak sa zobrazí výzva na povolenie pokračovania, odpovedzte ÁNO a potom dajte chvíľu času na aktualizáciu.

V tejto dobe by sme mali pravdepodobne tiež vypnúť zvuk na pí, pretože má nejakú zlú juju s knižnicou ovládačov LED. Skopírujte, prilepte nasledujúce riadky jeden po druhom a stlačte kláves Enter za každým riadkom:

CD ~

mačka << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf blacklist snd_bcm2835 EOF sudo update-initramfs -u

Výstup bude niečo také:

pi@raspberrypi: ~ $ cd ~

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

Potom musíme reštartovať pí, aby sa zmeny prejavili, zadajte teda nasledujúci príkaz:

sudo reštartujte teraz

Pripojenie sa samozrejme preruší, pretože pi sa reštartuje, aby ste mohli ukončiť PuTTY. Skúste sa prihlásiť o minútu neskôr.

Teraz je načase získať grafického správcu súborov FTP s názvom WinSCP. Odtiaľto si môžete stiahnuť WinSCP

WinSCP je veľmi podobný správcovi súborov v systéme Windows a Ubuntu. Umožňuje nám to jednoducho presúvať súbory z / na pi a vytvárať adresáre jediným kliknutím myši.

Po stiahnutí budete musieť nastaviť profil pre svoj pi.

Nastavenie WinSCP V rozbaľovacej ponuke Login zvoľte New Site. Pre reláciu použite nasledujúce nastavenia:

Protokol súboru: SFTP Názov hostiteľa: 192.168.0.200 Používateľské meno: pi Heslo: {akékoľvek heslo, na ktoré ste v kroku PuTTY vyššie zmenili predvolené heslo}

V Rozšírených nastaveniach webu prejdite na položku Prostredie | Adresáre a zadajte /home /pi pre vzdialený adresár a čokoľvek, čo sa vám páči, pre nastavenie miestneho adresára.

V Rozšírených nastaveniach webu prejdite na položku Prostredie | Shell a v rozbaľovacom zozname Shell vyberte sudo su.

Potom kliknite na položku Uložiť.

Pri vykonávaní nasledujúcich krokov nechajte WinSCP aj PuTTY otvorené

Prejdite na terminál PuTTY a zadajte nasledujúce:

CD ~

Dostaneme sa tak do nášho domovského adresára vo vnútri pí.

Teraz môžeme získať knižnicu ovládačov LED z github. Ak chcete použiť najnovší kód, budeme musieť stiahnuť repo, takže si musíme nainštalovať nástroj git.

Zadajte toto do PuTTY:

sudo apt-get install git

pokračujte odpoveďou Y a inštalácia git pre nás z internetu bude trvať niekoľko sekúnd.

Výstup by mal vyzerať takto:

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

Čítanie zoznamov balíkov … Hotovo Vytváranie stromu závislostí Budovanie informácií o stave čítania … Hotovo Budú nainštalované nasledujúce ďalšie balíky: git-man liberror-perl Navrhované balíky: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn Budú nainštalované nasledujúce NOVÉ balíky: git git-man liberror-perl 0 aktualizovaný, 3 novo nainštalované, 0 na odstránenie a 0 nie je aktualizovaných. Potrebujete získať 4 848 kB archívov. Po tejto operácii sa použije 26,4 MB dodatočného miesta na disku. Chceš pokračovať? [Y/n] y Získajte: 1 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf liberror-perl all 0.17024-1 [26.9 kB] Získať: 2 https://muug.ca/mirror/ raspbian/raspbian stretch/main armhf git-man all 1: 2.11.0-3+deb9u3 [1, 433 kB] Získať: 3 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] Načítané 4, 848 kB za 5 s (878 kB/s) Výber predtým nevybraného balíka liberror-perl.(Číta sa databáza… 34363 súborov a adresárov je aktuálne nainštalovaných.) Príprava na rozbalenie…/liberror-perl_0.17024-1_all.deb… Rozbaľovanie liberror-perl (0.17024-1)… Výber predtým nevybraného balíka git-man. Pripravuje sa rozbalenie…/git-man_1%3a2.11.0-3+deb9u3_all.deb… Rozbaľovanie git-man (1: 2.11.0-3+deb9u3) … Prebieha výber predtým nevybraného balíka git. Pripravuje sa rozbalenie…/git_1%3a2.11.0-3+deb9u3_armhf.deb… Rozbaľovanie git (1: 2.11.0-3+deb9u3)… Nastavenie git-man (1: 2.11.0-3+deb9u3)… Nastavenie liberror-perl (0.17024-1)… Spúšťače spracovania pre man-db (2.7.6.1-2)… Nastavenie git (1: 2.11.0-3+deb9u3)…

Teraz sa vráťte do WinSCP a prejdite do priečinka /home /pi. Potom na pravej strane tohto okna WinScp kliknite pravým tlačidlom myši a zvoľte, či chcete vytvoriť nový adresár s názvom „parkovanie“

Späť na obrazovku PuTTY môžete zadaním príkazu ls potvrdiť, že ste v priečinku pi vytvorili nový priečinok. Potom zadajte toto:

cd p [TAB]Tip: Stlačením klávesu TAB sa vám čiastočné meno automaticky doplní

Do tohto adresára sa dostanete stlačením klávesu Enter.

pi@raspberrypi: ~ $ cd parkovisko/

pi@raspberrypi: ~/parking $ ls

Teraz môžeme získať súbory ovládačov zadaním nasledujúceho do PuTTY:

klon git

Výstup bude vyzerať asi takto:

pi@raspberrypi: ~/parking $ git clone

Klonovanie do matice „rpi-rgb-led-matrix“… diaľkové: Počítanie objektov: 3740, hotovo. diaľkové ovládanie: Celkom 3740 (delta 0), opakovane 0 (delta 0), opakovane použitých 3740 Prijímajúce objekty: 100% (3740/3740), 20,61 MiB | 1,32 MiB/s, hotovo. Vyriešenie deltov: 100% (2550/2550), hotovo.

Teraz skompilujte súbory ovládačov LED tak, že prejdete do tohto nového adresára „rpi-rgb-led-matrix“a zadáte príkaz make:

cd r [TAB]

urobiť A takto to vyzeralo na našej nástenke

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

pi@raspberrypi: ~/Parking/rpi-rgb-led-matrix $ make make -C./lib make [1]: Vstup do adresára '/home/pi/Parking/rpi-rgb-led-matrix/lib' g ++- I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular" -Wextra -Wno -unused -parameter -fno -exceptions -c -o gpio.o gpio.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular" -Wextra -Wno -unused -parameter -fno -exceptions -c -o led -matrix.o led-matrix.cc g ++ -I../ include - Stena -O3 -g -fPIC -DDEFAULT_HARDWARE = '"pravidelný" -Wextra -Wno -unused -parameter -fno -exceptions -c -o options -initialize.o options-initialize.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"obyčajný" -Wextra -Wno -unused -parameter -fno -exceptions -c -o framebuffer.o framebuffer.cc g ++ -I../ include -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE = '"pravidelný" -Wextra -Wno -unused -parameter -fno -exceptions -c -o thread.o thread.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE =' "bežné" '-Wextra -Wno -unused -parameter -fno -exceptions -c -o bdf -font.o bdf -fon t.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -exceptions -c -o graphics.o graphics.cc g ++ - I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular" -Wextra -Wno -unused -parameter -fno -exceptions -c -o transformer.o transformer.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular" -Wextra -Wno -unused -parameter -fno -exceptions -c -o led -matrix -co led-matrix-c.cc 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 = '"obyčajný" -Wextra -Wno -unused -parameter -fno -exceptions -c -o content -streamer.o content-streamer.cc g ++ -I../ include -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE = '"obyčajný" -Wextra -Wno -unused -parameter -fno -exceptions -c -o pixel -mapper.o pixel-mapper.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"obyčajný" -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 mapovanie hardvéru led-matrix-co.o content-streamer.o pixel-mapper.o multiplexné mapovače.o g ++ -shared -Wl, -soname, librgbmatrix.so.1 -o librgbmatrix.so.1 gpio.o led -matrix.o options-initialize.o framebuffer.o thread.o bdf-font.o graphics.o transformer.o led-matrix-co hardware-mapping.o content-streamer.o pixel-mapper.o multiplex-mappers. o -lpthread -lrt -lm -lpthread make [1]: Opúšťa adresár '/home/pi/parking/rpi -rgb -led -matrix/lib' make -C examples -api -use make [1]: Vstup do adresára ' /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]: Vstup do adresára '/home/pi/parking/rpi-rgb-led-matrix/lib' make [2]: Opúšťanie adresára '/home/pi /parking/rpi-rgb-led-matrix/lib 'g ++ demo-main.o -o demo -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ include -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o minimal -example.o minimal-example.cc g ++ minimal -example.o - o minimálny príklad -L../ lib -lrgbmatrix -lrt -lm -lpthread cc -I../ include -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o c -example.o c- example.c cc c -example.o -o c -example -L../ lib -lrgbmatrix -lrt -lm -lpthread -lstdc ++ g ++ -I../ include -Wall -O3 -g -Wextra -Wno -unused- parameter -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 -lpthread g ++ -I../ include -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o clock.o clock.cc g ++ clock.o -o clock -L.. /lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ include -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]: Opúšťanie adresára '/home/pi/parking/rpi -rgb -led -matrix/examples -api -use' pi @raspberrypi: ~/Parking/rpi-rgb-led-matrix $

Našim ďalším krokom bude väzba maticovej knižnice RGB na Python. Na tento projekt sme použili predvolený Python 2. Aby sme urobili túto väzbu, zadáme nasledujúci riadok naraz ako predtým:

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

make build-python sudo make install-python

Poznámka: Jedno varovanie o '-Wstrict-prototype', ktoré sa zobrazí pri spustení dvoch príkazov make, môžete pokojne ignorovať. Spustenie príkazov na spustenie trvá niekoľko minút a pokiaľ sú zaneprázdnení, nič nehovoria. Takže sa nebojte - vaše pi by sa malo čoskoro vrátiť;)

Tu je čiastočný výstup prvého príkazu make:

stavebné „grafické“rozšírenie

arm -linux -gnueabihf -gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototypes -fno -strict -aliasing -Wdate -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefix -map =/build/python2.7-kKRR4y/python2.7-2.7.13 =. -fstack -protector -strong -Wformat -Werror = zabezpečenie formátu -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: upozornenie: voľba príkazového riadka '-Wstrict-prototypes' je platná pre C/ObjC, ale nie pre C ++ arm-linux-gnueabihf-g ++ -pthread -shared -Wl, -O1 -Wl, -Bsymbolic -functions -Wl, -z, relro -fno -strict -aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototypes -Wdate -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefix -map =/build/python2.7-kKRR4y/python2.7-2.7.13 =. -fstack -protector -strong -Wformat -Werror = zabezpečenie formátu -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 = build -security build/temp.linux -armv6l -2.7/rgbmatrix/graphics.o -L../../ lib -lrgbmatrix -o./rgbmatrix/graphics.so make [1]: Opúšťanie adresára '/home/pi/Parking/rpi-rgb-led-matrix-bindings/python' pi@raspberrypi: ~/Parking/rpi-rgb-led-matrix-$

Ďalej nainštalujeme knižnicu pigpio C. Aby sme to urobili správne, musíme to urobiť zo zdroja, takže zadajte nasledujúce riadky:

CD ~

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

Vyššie uvedená inštalácia trvá asi 3 minúty.

Teraz je čas získať naše súbory projektov Python. Zadaj nasledujúce:

CD ~

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

Potom ho spustite zadaním nasledujúceho príkazu:

sudo python parking.py

Ale nemusíte to robiť práve teraz, pretože to musíme ešte všetko prepojiť …

Krok 7: Drôty

Drôty
Drôty
Drôty
Drôty
Drôty
Drôty
Drôty
Drôty

Ako už bolo spomenuté, LED panel sme napájali z rovnakého sieťového adaptéra, ktorý napája pi. Aby ste to urobili, budete musieť spojiť silné červené a čierne vodiče na kolíkové kolíky, aby ich bolo možné zapojiť do pinov 2 a 9 40pinového konektora pi.

Teraz odpojte napájanie pí a zapojte panel LED podľa obrázkového diagramu vyššie. Nechajte pin 2 zatiaľ odpojený.

POZNÁMKA: Panel LED matice sa niekedy môže zapnúť vo funkčnom stave. Ak sa to stane, môže to spôsobiť vážne zaťaženie vášho napájacieho zdroja bez ohľadu na to, akú súčasnú kapacitu má. Všimli sme si to počas vývoja na našom stolnom zdroji, ktorý môže poskytnúť viac ako 4 ampéry. Riešením je najskôr spustiť kód pi a potom zapojiť pin 2 na napájanie panelu LED. Týmto spôsobom by sa panel mal dostať do stavu nízkeho výkonu, pretože vypína náhodné stavy LED. Pokojový prúd (všetky LED zhasnuté) pre náš panel LED bol iba 50 mA pri 5 V.

CAT5

Použili sme 25 -stopový ethernetový kábel CAT5 a upravili sme ho tak, aby sa zapojil do pinov záhlavia pi na jednom konci a prijal kolíky konektora GROVE na druhej strane, aby sme mohli predĺžiť vzdialenosť a umiestniť náš bočný snímač tinyLiDAR. Na vyššie uvedených fotografiách je tento kábel pred a po úpravách. Farby vodičov kolíka záhlavia ignorujte, pretože nesúvisia s diagrammi. Uistite sa, že zapojíte systém tak, ako je to znázornené na obrázkových schémach zapojenia uvedených vyššie v kroku 3.

Krok 8: Rozsvieťte to

Image
Image
Voliteľný krok a užitočné príkazy
Voliteľný krok a užitočné príkazy

Správna počiatočná sekvencia zapnutia by mala byť zapojenie nabíjačky microUSB do pí a počkajte, kým modré diódy LED na snímačoch tinyLiDAR rýchlo bliknú, čo ukazuje, že vykonávajú merania. To dokazuje, že kód funguje správne.

Potom môžete pomaly, ale pevne pripojiť pin 2 pre napájanie panelu LED. Dávajte pozor, aby ste pri tom nerobili chyby! Ak panel LED zobrazuje niekoľko zamrznutých jasných diód LED, je pravdepodobne chyba, preto odpojte napájanie microUSB od pí a počkajte niekoľko sekúnd, aby ste znova vyskúšali postup zapnutia.

Ak chcete spustiť kód, zadajte nasledujúce:

cd/home/pi/parking/rpi-rgb-led-matrix/väzby/python/vzorky

sudo python parking.py

Ak všetko pôjde dobre, mali by ste dostať podobný displej, ako je zobrazené na videu.

Pozrite sa rýchlo na kód parking.py, aby ste pochopili, aké limity sme použili. Predvolená hodnota pre predný snímač je 200 mm. Pretože rozsah senzorov je 11 mm až 2 m, je vhodné udržiavať vzdialenosť nom_parked_Front na 200 mm alebo viac. Bočný snímač nom_parked_Side je nastavený na 600 mm. Kód Python zobrazujúci tieto možnosti konfigurácie nájdete na obrázku vyššie.

Ak všetko funguje, môžete pokračovať a namontovať systém do svojej garáže a podľa potreby upraviť vyššie uvedené parametre. Pretože ste pi je pripojený k vášmu WiFi, môžete kedykoľvek vstúpiť a upraviť nastavenia vzdialenosti, ako potrebujete pre konkrétne nastavenie garáže, kým je ešte namontované.

„Je to teraz?“

Prečo áno, to áno! - čas na šťastný tanec:)

Ďakujeme za prečítanie a užite si svojho nového parkovacieho asistenta!

Krok 9: Voliteľný krok a užitočné príkazy

Voliteľný krok - doplnok FTP pre Sublime Text

Na úpravu súborov skriptu Python priamo na pi môžeme nainštalovať doplnok FTP s názvom Sublime SFTP od Wbond. Tento doplnok si môžete stiahnuť podľa pokynov tu

Na nastavenie tohto doplnku musíme nakonfigurovať poverenia FTP v časti Súbor | SFTP/FTP | Inštalačný server … stránka.

Na naše nastavenie sme použili:

"type": "sftp", "sync_down_on_open": true, "sync_same_age": true, "host": "192.168.0.200", "user": "pi", "heslo": "YOUR_RPI_PASSWORD_HERE", "port": "22", "remote_path": "/home/pi/", "file_permissions": "664", "dir_permissions": "775",

Použite Ctrl+S alebo Súbor | Uložiť, ak chcete uložiť tieto informácie. Budete vyzvaní na zadanie mena pre zavolanie tejto konfigurácie. Jednoducho sme to nazvali „rpizw_0_200“

Teraz sa chcete prihlásiť na pi zo SublimeTextu, prejdite na Súbor | SFTP/FTP | Prehliadať server…

Vyberte zo zoznamu možností, ktoré sa otvoria. Budete chcieť vybrať profil s názvom, ktorý ste uviedli vyššie;) Podľa pokynov sa pohybujte v priečinkoch a upravte požadovaný súbor.

Užitočné doplnky

Užitočné príkazy Linuxu, ktoré sa majú použiť na pí.

Pred odpojením pi vždy VŽDY vypnite, aby nedošlo k poškodeniu súboru na karte microSD. Zadajte tento príkaz:

sudo sa teraz vypne

a pred odpojením napájania počkajte, kým sa zelená LED dióda vypne. Podobne, ako ho reštartujete, môžete zadať:

sudo reštartujte teraz

Ak chcete zobraziť zoznam súborov v adresári, použite toto:

ls

Tu nájdete ďalšie užitočné príkazy Linuxu

Odporúča: