Obsah:
- Krok 1: Co je Pi Zero W?
- Krok 2: Scotty, potřebujeme více energie
- Krok 3: Umístění senzoru a software
- Krok 4: Nastavení Pi
- Krok 5: Čas WiFi
- Krok 6: Přihlášení
- Krok 7: Dráty
- Krok 8: Rozsviťte to
- Krok 9: Volitelný krok a užitečné příkazy
Video: Systém parkovacího asistenta na bázi Pi: 9 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Zdravím! Zde je skvělý malý projekt, který můžete udělat za jediné odpoledne a poté jej používat denně. Je založen na Raspberry Pi Zero W a pomůže vám zaparkovat auto dokonale pokaždé.
Zde je kompletní seznam dílů, které budete potřebovat:
- Raspberry Pi Zero W (v tomto článku tomu budeme říkat 'rpi' nebo 'pi')
- 4 GB nebo větší micro SD karta pro pi OS
- Dva moduly senzoru vzdálenosti TinyLiDAR Time of Flight
- Panel LED 32x32 RGB (existuje mnoho výrobců s různou roztečí bodů, můžete například použít Adafruit 1484 nebo podobný, stačí vyhledat „32x32 LED Matrix“na Googlu). Náš panel měl rozteč 6 mm.
- 25 stop kabelu CAT5
- Přibližně 22 barevných propojovacích vodičů kolíků mezi zástrčkami a zástrčkami
- 5v 2Amp microUSB napájecí zdroj (nabíječka mobilního telefonu) Vše nastaveno? Pojďme!
Souhrn TL; DR
- Stáhněte si Raspbian Lite OS pro rpi
- Nakonfigurujte pi tak, aby běželo bezhlavě přes WiFi se statickou IP
- Nastavte si vývojové prostředí svého počítače pomocí PuTTY, WinSCP a volitelně doplňku SublimeText s doplňkem FTP
- Stáhněte, vytvořte a svažte ovladač panelu LED
- Stáhněte a nainstalujte pigpio
- Stáhněte si náš kód v Pythonu
- Zapojte panel displeje LED 32x32
- Vytvořte prodlužovací kabel CAT5 pro boční snímač tinyLiDAR
- Volitelný krok (ale pouze pro pokročilé uživatele): proveďte rychlý šťastný tanec, když vše funguje;)
Krok 1: Co je Pi Zero W?
Nepochybně jste slyšeli o Raspberry Pi, ale co to sakra je pi 'Zero W'?
Raspberry Pi Zero a Zero W byly novějšími přírůstky do rodiny Pi, což znamenalo více pro IoT a další nízkonákladové vestavěné aplikace. Jsou to svléknuté verze původní desky pi, ale stále s výkonným procesorem 1 GHz. Zde je dobré srovnání všech modelů.
Výhodou pro nás při výběru Pi Zero W zde před jinými řídicími deskami je, že jej můžeme snadno naprogramovat v jazyce Python vyšší úrovně a přitom používat rychlé ovladače panelu C/C ++ LED. Má také atraktivní cenu pouze 10 USD.
Mějte na paměti, že vzhledem k tomu, že tato deska je svlečenou verzí plného pi - některé věci se změnily. Zejména byl odstraněn ethernetový konektor, konektor HDMI se změnil na mini velikost a čtyři porty USB byly zjednodušeny až na jeden typ micro USB. Na desce je další konektor micro USB, ale slouží pouze k napájení desky. Odstranění všech konektorů USB v plné velikosti přináší určité komplikace. Totiž, jak můžete připojit klávesnici a myš? Standardní periferie a rozbočovače USB používají konektory typu A, nikoli mikro.
Takže co můžeme dělat?
Můžeme jít bez hlavy!
Ne, nechceme se zbláznit, ale použít alternativu k normálnímu přímému kabelovému nastavení. Bezhlavý znamená „tunelovat“do pí vzdáleně pomocí zabezpečeného síťového připojení (SSH). Pro tento projekt použijeme bezhlavý přístup přes WiFi. Proto je důvodem, proč jsme zvolili W verzi pi nula místo ještě nižších nákladů pi nula.
Všimněte si, že existuje také další způsob, jak spustit pi v bezhlavém režimu pomocí něčeho, co se nazývá VNC. Vyžaduje speciální software VNC spuštěný na vašem počítači, protože poskytuje plnou virtuální grafickou plochu na vašem PC. Pro náš projekt nevyžadujeme (a opravdu nechceme) plochu, takže se budeme držet jednodušší metody SSH.
Krok 2: Scotty, potřebujeme více energie
Panel LED 32x32 LED může sám o sobě odebírat několik ampérů proudu. Bez legrace! Proto většina těchto panelů obsahuje nějaké mohutně vypadající napájecí kabely k napájení. Naštěstí pro nás, i když pro tento projekt nebudeme muset získat masivní napájecí zdroj. Celý tento systém jsme mohli napájet pouze z náhradní 5v/2amp microUSB nabíječky mobilních telefonů, kterou jsme měli povalenou. Důvodem nižšího proudu je to, že používáme relativně jednoduchou grafiku, a proto nezapínáme většinu LED diod. Pokud uvažujete o vytváření animací nebo používání video/jasné grafiky, měli byste určitě zvážit napájení panelu ze samostatného napájecího zdroje.
Krok 3: Umístění senzoru a software
Všimli jste si, že v tomto systému používáme místo jednoho pouze dva tinyLiDAR? Jak ukazuje schéma instalace garáže, jedna je umístěna před autem a druhá je umístěna podél jedné strany vozu.
Boční senzor detekuje, zda při parkování auta vybočíte ze středu, a přední vám samozřejmě řekne, kdy zastavit.
LED displej 32x32 vám pomůže zobrazením šipek pro pohyb vpřed, doleva nebo doprava a odpočítávacím displejem s barevnými rohy, které indikují, jak daleko ještě musíte jet. Podívejte se na naše krátké video se všemi stavy zobrazení.
Herní plán
Stručně řečeno, používáme stále oblíbenější knihovnu hzeller C pro ovladač LED, Python pro řídicí kód a knihovnu pipgpio C pro správné ovládání našich senzorů I2C.
Python je super snadný jazyk na vysoké úrovni, který můžete snadno upravovat v libovolném textovém editoru. Běžně používáme SublimeText a pro tento projekt jsme také použili velmi užitečný FTP plugin, který nám umožňuje upravovat soubory skriptů přímo na pí. Toto je volitelný krok, protože je potřeba pouze v případě, že chcete upravit kód. Další podrobnosti jsou k dispozici na konci tohoto článku.
Všechny desky rpi, jak možná víte, nativně nepodporují roztahování hodin I2C. Pro tento projekt jsme tedy znovu použili knihovnu pigpio k ovládání senzorů tinyLiDAR, ale tentokrát s lehkým otočením …
Několik tinyLiDARů
Když si koupíte tinyLiDAR, je vždy nastavena na výchozí adresu slave 0x10. To je v pořádku, když používáte jeden snímač, ale pokud máte na sběrnici více než jeden, může být problém, když napíšete příkaz na 0x10 a všichni odpoví zpět!
Máme zde tedy 3 možnosti:
Nejprve můžeme pomocí příkazu (tinyLiDAR) „R“zapsat novou adresu slave na jeden snímač připojený ke sběrnici I2C. Potom to opakujte pro každý senzor. Pro tento postup fyzicky připojte, zapište a odpojte každý senzor. tinyLiDAR uloží danou adresu do své trvalé energeticky nezávislé paměti. Adresa zůstane zachována i po vypnutí napájení, dokud ji nevymažete zadáním příkazu RESET.
Druhou možností je použít praktickou funkci Auto Assign, kterou jsme vytvořili jako protahovací cíl v kampani IGG. To zahrnuje odeslání příkazu „AR“a poté nasměrování prstu na každý senzor jednotlivě, aby se jednotlivým senzorům automaticky přiřazovaly sekvenční adresy I2C podobné první možnosti, ale k tomu nemusíte fyzicky odpojovat každý senzor.
Třetí možnost je ta, kterou zde v tomto projektu používáme a je to možné díky knihovně pigpio. Pro správnou implementaci standardu I2C pigpio bitbanguje GPIO. Z tohoto důvodu můžeme snadno vytvořit samostatné sběrnice I2C na téměř jakémkoli páru náhradních pinů GPIO.
Není tedy nutné přeprogramovat podřízené adresy pro více senzorů LiDAR. Pro každý můžeme použít samostatný autobus:)
Všimněte si, že sběrnice I2C běžící na 100 Kbps je ve skutečnosti docela robustní. Používáme obyčejný starý ethernetový kabel CAT5 k vyvedení sběrnice I2C na boční snímač tinyLiDAR, který je vzdálený celých 25 stop bez aktivních komponent opakovače! Podrobnosti o zapojení senzoru jsou uvedeny výše.
Dobře, dost jibber jabber, začněme stahovat kód!
Krok 4: Nastavení Pi
Upozornění: Pi používá systém souborů Linux, takže je nejlepší provést následující kroky na systému založeném na Linuxu. Pokud to provedete v systému Windows, můžete nakonec přeformátovat kartu SD. Použili jsme úžasnou a bezplatnou plochu Ubuntu 18.04 běžící ve virtuálním prostředí na počítači se systémem Windows 10, ale můžete zkusit něco podobného.
Nejprve budete muset stáhnout operační systém z raspberrypi.org a poté jej vypálit na kartu microSD. Postupujte tedy podle těchto kroků:
(1) V Ubuntu přejděte sem a pořiďte obrázek Raspbian Lite. Uložte jej do složky pro stahování.
(2) Dále si stáhněte nástroj pro zápis na kartu SD Etcher. FYI - oficiální odkaz ke stažení Etcheru pro verzi Linux na jejich domovské stránce pro nás nefungoval, takže jsme místo toho použili zde popsanou metodu:
Stručně řečeno, kroky popsané v odkazu byly:
Přidat úložiště Debcher Etcher:
echo "deb https://dl.bintray.com/resin-io/debian stable etcher" | sudo tee /etc/apt/sources.list.d/etcher.list
Důvěřujte klíči GPG Bintray.com:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61
Aktualizovat a nainstalovat:
sudo apt-get update
sudo apt-get install etcher-elektron
Po dokončení můžete pokračovat a spustit Etcher z pracovní plochy Ubuntu. Požádá vás o zdrojový soubor (který vložíte do složky pro stahování). Dalším krokem v programu Etcher je výběr správného cíle. Etcher dělá dobrou práci při detekci vaší karty micro SD, ale zde byste měli být paranoidní. Chcete -li ověřit, že nachází správný cíl - zkuste vysunout kartu microSD kliknutím na vysunutí v okně Průzkumník souborů Ubuntu a ověřte, že zmizí jako cílová možnost v Etcher. Poté jej vložte zpět a pokračujte k poslednímu kroku, kterým je zápis souboru na tuto kartu microSD.
Chvíli počkejte, až bude hotovo, a pak pokračujte dále.
Krok 5: Čas WiFi
Dobře, nyní je čas zadat podrobnosti o WiFi.
Tip: Informace z tohoto článku můžete kdykoli zkopírovat (Ctrl+C) a vložit (pravým tlačítkem myši, vložit) na obrazovku terminálu PuTTY místo zadávání příkazů. Na konci tohoto článku najdete také několik užitečných příkazů Linuxu.
Když Etcher dokončí zápis na kartu micro SD, zobrazí se 2 disky, jak je uvedeno výše. Jeden se nazývá boot, druhý se nazývá rootfs
Potřebujeme použít správce souborů, abychom se dostali do spouštěcí složky a vytvořili soubor s názvem wpa_supplicant.conf.
Chcete -li provést tento krok, stačí kliknout na levou stranu, kde je uvedeno boot, a poté na pravé straně obrazovky můžete pravým tlačítkem kliknout na bílou pozadí a zvolit Otevřít v terminálu.
Otevře se okno terminálu (podobné CMD ve Windows), kde můžete zadat následující:
sudo nano wpa_supplicant.conf Tip: Abyste mohli běžet jako superuživatel, budete muset zadat heslo k systému Linux. Je to nutné, jinak nebudete moci soubory uložit, až budete s úpravami hotovi
Výše uvedený příkaz poté spustí textový editor „nano“, kde můžete zadat následující informace:
země = USA
ctrl_interface = DIR = /var /run /wpa_supplicant GROUP = netdev update_config = 1 síť = {ssid = "WiFi_SSID" scan_ssid = 1 psk = "WiFi_Password" key_mgmt = WPA - PSK}
Poznámka: Nezapomeňte nahradit WiFi_SSID a WiFi_Password názvem vaší vlastní WiFi sítě a heslem.
Až budete hotovi, stačí zavřít kliknutím na Ctrl+X a po opuštění souboru odpovědět Ano.
Naším dalším krokem je vytvoření prázdného souboru s názvem ssh. Chcete -li to provést, zadejte do okna terminálu následující:
dotkněte se ssh
Nyní musíme dát našemu pí statickou IP adresu, abychom věděli, kde je, pokaždé, když se k němu chceme připojit. Do okna terminálu zadejte následující:
sudo nano /etc/dhcpcd.conf
Tím by se měl znovu otevřít nano textový editor a tento text můžeme přidat do spodní části souboru:
rozhraní 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 předpokládá, že vaše síťová předpona je 192.168.0. Pokud máte 192.168.1 atd., Použijte místo toho svoji síť. Server doménových jmen 8.8.8.8 je pro Google a je zde volitelný.
Chcete -li jej zavřít, zadejte do terminálu „exit“. Poté klikněte pravým tlačítkem na název zavádění na levé straně okna Správce souborů a vyberte Vysunout.
Nyní můžete tuto kartu microSD zapojit do vašeho pi a připojit napájecí kabel microUSB k napájení vašeho pi.
Pokud vše půjde dobře, zelená LED dioda chvíli bliká, jako by přistupovala k jednotce pevného disku, a měla by vás přihlásit do vaší WiFi sítě. Dejte mu asi minutu na to, abyste se usadili, a počkejte, až LED začne svítit zeleně.
Abychom ověřili, že to všechno fungovalo, můžeme to zkusit pingnout.
Stačí tedy zadat řádek níže a zkontrolovat odpověď.
ping 192.168.0.200
V Ubuntu byste měli dostat něco podobného:
ping 192.168.0.200
PING 192.168.0.200 (192.168.0.200) 56 (84) bytů dat. 64 bytů od 192.168.0.200: icmp_seq = 1 ttl = 128 čas = 752 ms 64 bytů od 192.168.0.200: icmp_seq = 2 ttl = 128 čas = 5,77 ms 64 bytů od 192.168.0.200: icmp_seq = 3 ttl = 128 čas = 7,33 ms ^C --- 192.168.0.200 statistika pingu --- 3 vyslané pakety, 3 přijaté, 0% ztráta paketu, čas 2001 ms rtt min/avg/max/mdev = 5,777/255,346/752,922/351,839 ms
Ping pokračuje v práci, dokud neukončíte stisknutím Ctrl+C.
V systému Windows byste měli získat něco takového:
ping 192.168.0.200
Ping 192.168.0.200 s 32 bajty dat: Odpověď od 192.168.0.200: bajty = 32 čas = 4 ms TTL = 64 Odpověď od 192.168.0.200: bajty = 32 čas = 5 ms TTL = 64 Odpověď od 192.168.0.200: bajty = 32 čas = 6ms TTL = 64 Odpověď od 192.168.0.200: bajty = 32 čas = 5ms TTL = 64 Statistiky pingu pro 192.168.0.200: Pakety: Odesláno = 4, Přijato = 4, Ztraceno = 0 (0% ztráta), Přibližné časy zpáteční cesty v milisekundách: Minimum = 4ms, Maximum = 6ms, Průměr = 5ms
Vše dobré? Dále…
Krok 6: Přihlášení
Nyní, když máme připojení k pí, chceme mu poslat příkazy. Ale jak? PuTTY samozřejmě! Zde si můžete stáhnout PuTTY Nastavení PuTTY Po stažení softwaru PuTTY vytvořte profil pro své pi s následujícími informacemi:
Název hostitele (nebo IP adresa): 192.168.0.200 Typ připojení: SSH Zadejte tomuto profilu jméno pod položkou Uložené relace a stiskněte Uložit. Můžete použít libovolné jméno, například „rpizw_200“
Chcete -li se přihlásit, stačí jej vybrat ze seznamu a kliknout na Načíst. Poté stiskněte Otevřít. Pro přihlášení zadejte uživatelské jméno a heslo:
přihlašovací jméno: pí
Defalt heslo: malina
Zde je ukázková relace zobrazená v PuTTY při přihlášení:
přihlaste se jako: pi
heslo [email protected]: Linux raspberrypi 4.14.34+ #1110 Mon 16. dubna 14:51:42 BST 2018 armv6l Programy zahrnuté v systému Debian GNU/Linux jsou svobodný software; přesné distribuční podmínky pro každý program jsou popsány v jednotlivých souborech v/usr/share/doc/*/copyright. Debian GNU/Linux je dodáván s ABSOLUTNĚ ŽÁDNOU ZÁRUKOU, v rozsahu povoleném platnými zákony. Poslední přihlášení: [datum a čas] z 192.168.0. [IP adresa] SSH je povoleno a výchozí heslo pro uživatele „pi“nebylo změněno. Toto je bezpečnostní riziko - přihlaste se prosím jako uživatel „pi“a zadejte „passwd“pro nastavení nového hesla.
Při prvním přihlášení vás upozorní, že jste si ještě nezměnili heslo. Měli byste to změnit na něco silného, ale snadno zapamatovatelného, takže pokračujte a změňte to zadáním passwd a postupujte podle pokynů.
Dále bychom měli aktualizovat software na pí zadáním tohoto:
sudo apt-get update && sudo apt-get upgrade
Tím se z vašeho internetového připojení stáhnou všechny potřebné aktualizace. Pokud budete vyzváni, abyste mohli pokračovat, odpovězte ANO a poté mu dejte nějaký čas na aktualizaci.
V tuto chvíli bychom pravděpodobně také měli vypnout zvuk na pí, protože má nějakou špatnou juju s knihovnou LED ovladačů. Zkopírujte, vložte následující řádky jeden po druhém a stiskněte klávesu Enter za každým řádkem:
cd ~
kočka << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf blacklist snd_bcm2835 EOF sudo update-initramfs -u
Výstup bude něco takového:
pi@raspberrypi: ~ $ cd ~
pi@raspberrypi: ~ $ cat <> blacklist snd_bcm2835>> EOF blacklist snd_bcm2835 pi@raspberrypi: ~ $ sudo update -initramfs -u pi@raspberrypi: ~ $
Poté musíme restartovat pí, aby se změny projevily, zadejte tedy následující:
sudo restartujte nyní
Připojení se samozřejmě restartuje, protože pi se restartuje, takže můžete zavřít PuTTY. Zkuste se přihlásit o minutu později.
Nyní je čas získat grafického správce souborů FTP s názvem WinSCP. Zde si můžete stáhnout WinSCP
WinSCP je hodně podobný správci souborů ve Windows a Ubuntu. Umožňuje nám snadno přetahovat soubory do & z pí a vytvářet adresáře pouhým pravým kliknutím myši.
Po stažení budete muset nastavit profil pro svůj pi.
Nastavení WinSCP Ve vyskakovacím okně Přihlášení vyberte Nový web. Pro relaci použijte následující nastavení:
Protokol souboru: SFTP Název hostitele: 192.168.0.200 Uživatelské jméno: pi Heslo: {jakékoli heslo, které jste ve výše uvedeném kroku PuTTY změnili na výchozí}
V Pokročilém nastavení webu přejděte na Prostředí | Adresáře a zadejte /home /pi pro vzdálený adresář a cokoli chcete pro nastavení místního adresáře.
V Pokročilém nastavení webu přejděte na Prostředí | Shell a v rozevíracím seznamu Shell vyberte sudo su.
Poté stiskněte Uložit.
Při provádění následujících kroků ponechte WinSCP i PuTTY otevřené
Přejděte na terminál PuTTY a zadejte následující:
cd ~
Tím se dostaneme do našeho domovského adresáře uvnitř pí.
Nyní můžeme získat knihovnu ovladačů LED z github. Chcete -li použít nejnovější kód, budeme muset stáhnout repo, takže musíme nainstalovat nástroj git.
Zadejte toto do PuTTY:
sudo apt-get install git
pokračujte odpovědí Y a instalace git pro nás z internetu bude trvat několik sekund.
Výstup by měl vypadat nějak takto:
pi@raspberrypi: ~ $ sudo apt-get install git
Čtení seznamů balíčků… Hotovo Vytváření stromu závislostí Stav čtení stavů… Hotovo Budou nainstalovány následující další 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 Budou nainstalovány následující NOVÉ balíčky: git git-man liberror-perl 0 upgradováno, 3 nově nainstalované, 0 k odebrání a 0 není aktualizováno. Potřebujete získat 4 848 kB archivů. Po této operaci bude použito 26,4 MB dalšího místa na disku. Chceš pokračovat? [Y/n] y Získejte: 1 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf liberror-perl all 0.17024-1 [26.9 kB] Získejte: 2 https://muug.ca/mirror/ raspbian/raspbian stretch/main armhf git-man all 1: 2.11.0-3+deb9u3 [1, 433 kB] Získat: 3 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] Načteno 4, 848 kB za 5 s (878 kB/s) Výběr dříve nevybraného balíčku liberror-perl.(Čtení databáze… aktuálně nainstalováno 34363 souborů a adresářů.) Příprava na rozbalení…/liberror-perl_0.17024-1_all.deb… Rozbalení liberror-perl (0.17024-1)… Výběr dříve nevybraného balíčku git-man. Příprava na vybalení…/git-man_1%3a2.11.0-3+deb9u3_all.deb… Rozbalení git-man (1: 2.11.0-3+deb9u3)… Výběr dříve nevybraného balíčku git. Příprava na vybalení…/git_1%3a2.11.0-3+deb9u3_armhf.deb… Rozbalení git (1: 2.11.0-3+deb9u3)… Nastavení git-man (1: 2.11.0-3+deb9u3)… Nastavení liberror-perl (0.17024-1) … Zpracování spouště pro man-db (2.7.6.1-2) … Nastavení git (1: 2.11.0-3+deb9u3)…
Nyní se vraťte zpět do WinSCP a přejděte do složky /home /pi. Poté na pravé straně tohoto okna WinScp klikněte pravým tlačítkem a vyberte vytvořit nový adresář s názvem „parkování“
Zpět na obrazovku PuTTY můžete zadat ls a potvrdit, že jste právě vytvořili novou složku v pí. Potom zadejte toto:
cd p [TAB]Tip: Stisknutím klávesy TAB se vám částečné jméno automaticky doplní
Do tohoto adresáře se dostanete stisknutím klávesy Enter.
pi@raspberrypi: ~ $ cd parkování/
pi@raspberrypi: ~/parkování $ ls
Nyní můžeme získat soubory ovladačů zadáním následujícího v PuTTY:
klon git
Výstup bude vypadat nějak takto:
pi@raspberrypi: ~/parking $ git clone
Klonování do „rpi-rgb-led-matrix“… vzdálené: Počítání objektů: 3740, hotovo. dálkové ovládání: Celkem 3740 (delta 0), opakovaně 0 (delta 0), opakovaně použito 3740 Přijímající objekty: 100% (3740/3740), 20,61 MiB | 1,32 MiB/s, hotovo. Vyřešení delt: 100% (2550/2550), hotovo.
Nyní zkompilujte soubory ovladače LED tak, že přejdete do tohoto nového adresáře 'rpi-rgb-led-matrix' a zadáte příkaz make:
cd r [TAB]
udělat A takhle to vypadalo na naší desce
pi@raspberrypi: ~/parkování $ cd rpi-rgb-led-matrix/
pi@raspberrypi: ~/Parking/rpi-rgb-led-matrix $ make make -C./lib make [1]: Vstup do adresáře '/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 - Wall -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 = '"normální" -Wextra -Wno -unused -parameter -fno -exceptions -c -o framebuffer.o framebuffer.cc g ++ -I../ include -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE = '"obyčejný" -Wextra -Wno -unused -parameter -fno -exceptions -c -o thread.o thread.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE =' "běž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 -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 = '' běžný '-Wextra -Wno -unused -parameter -fno -exceptions -c -o content -streamer.o content-streamer.cc g ++ -I../ include -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE = '' běžný '-Wextra -Wno -unused -parameter -fno -exceptions -c -o pixel -mapper.o pixel-mapper.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '' běžný '-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 hardwarové mapování led-matrix-co.o streamer obsahu.o pixelový mapovač.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]: Opuštění adresáře '/home/pi/parking/rpi -rgb -led -matrix/lib' make -C examples -api -use make [1]: Vstup do adresáře ' /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áře '/home/pi/parking/rpi-rgb-led-matrix/lib' make [2]: Opuštění adresáře '/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 minimum -pří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- parametr -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]: Opuštění adresáře '/home/pi/parking/rpi -rgb -led -matrix/examples -api -use' pi @raspberrypi: ~/Parking/rpi-rgb-led-matrix $
Naším dalším krokem bude svázat knihovnu matic RGB s Pythonem. Pro tento projekt jsme použili výchozí Python 2. Abychom tuto vazbu provedli, zadáme následující řádek najednou jako dříve:
sudo apt-get update && sudo apt-get install python2.7-dev python-polštář -y
make build-python sudo make install-python
Poznámka: Jedno varování o '-Wstrict-prototype', které se zobrazí při spuštění dvou příkazů make, můžete bezpečně ignorovat. Spuštění příkazů make trvá několik minut a když jsou zaneprázdněni, nic neříkají. Takže se nebojte - vaše pi by se mělo brzy vrátit;)
Zde je částečný výstup prvního příkazu make:
budova 'grafické' rozšíření
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čení 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: varování: volba příkazového řádku '-Wstrict-prototypes' je platná pro C/ObjC, ale ne pro 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čení 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]: Opuštění adresáře '/home/pi/Parking/rpi-rgb-led-matrix-bindings/python' pi@raspberrypi: ~/Parking/rpi-rgb-led-matrix $
Dále nainstalujeme knihovnu pigpio C. Abychom to udělali správně, musíme to udělat ze zdroje, takže stačí zadat následující řádky:
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
Výše uvedená instalace trvá přibližně 3 minuty.
Nyní je čas získat naše soubory projektu Python. Zadejte následující:
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
Poté jej spusťte zadáním následujícího:
sudo python parking.py
Ale nemusíte to dělat právě teď, protože to musíme ještě propojit…
Krok 7: Dráty
Jak již bylo zmíněno dříve, LED panel jsme napájili ze stejného napájecího adaptéru, který napájí pí. Abyste to mohli udělat, budete muset spojit statné červené a černé vodiče na kolíkové zástrčky, aby je bylo možné zapojit do kolíků 2 a 9 40pinového konektoru pi.
Nyní odpojte napájení pí a zapojte LED panel podle obrázku výše. Ponechte pin 2 prozatím odpojený.
POZNÁMKA: Panel LED matrix se někdy může zapnout ve funky stavu. Pokud k tomu dojde, může to vážně zatížit váš napájecí zdroj bez ohledu na to, jakou má aktuální kapacitu. Všimli jsme si toho během vývoje na našem stolním napájení, které může poskytnout více než 4 ampéry. Řešením je nejprve spustit kód pi a poté zapojit pin 2 pro napájení panelu LED. Tímto způsobem by se měl panel dostat do stavu nízké spotřeby, protože vypláchne náhodné stavy LED. Klidový proud (všechny LED diody vypnuty) pro náš LED panel byl pouze 50mA při 5v.
KOCOUR 5
Použili jsme 25 stopový ethernetový kabel CAT5 a upravili jsme jej tak, aby se na jednom konci zapojil do pinů záhlaví pi a na druhé straně přijal kolíky konektoru GROVE, abychom mohli prodloužit vzdálenost a umístit náš boční snímač tinyLiDAR. Fotografie výše ukazují tento kabel před a po úpravách. Ignorujte barvy vodičů kolíku záhlaví, protože nesouvisejí se schématy. Jen se ujistěte, že jste zapojili svůj systém, jak je znázorněno na obrázkových schématech připojení zobrazených dříve v kroku 3.
Krok 8: Rozsviťte to
Správná počáteční sekvence zapnutí by měla být zapojení nabíječky microUSB do pí a počkat, až modré LED diody na senzorech tinyLiDAR rychle bliknou, což ukazuje, že provádějí měření. To dokazuje, že kód funguje správně.
Poté můžete pomalu, ale pevně připojit pin 2 pro napájení panelu LED. Dávejte pozor, abyste při tom nerušili! Pokud panel LED zobrazuje několik zmrazených jasných LED diod, je pravděpodobně vadný, takže odpojte napájení microUSB od pí a počkejte několik sekund, než zkusíte znovu zapnout sekvenci.
Chcete -li spustit kód, zadejte následující:
cd/home/pi/parking/rpi-rgb-led-matrix/vazby/python/vzorky
sudo python parking.py
Pokud vše půjde dobře, měli byste dostat displej podobný tomu, který je zobrazen na videu.
Rychle se podívejte na kód parking.py, abyste pochopili, jaké limity jsme použili. Výchozí hodnota pro přední snímač je 200 mm. Vzhledem k tomu, že rozsah senzoru je 11 mm až 2 m, je vhodné udržovat vzdálenost nom_parked_Front na 200 mm nebo vyšší. Boční snímač nom_parked_Side je nastaven na 600 mm. Viz výše uvedený obrázek pro kód Pythonu zobrazující tyto možnosti konfigurace.
Pokud vše funguje, můžete pokračovat a namontovat systém do své garáže a upravit výše uvedené parametry podle potřeby. Vzhledem k tomu, že jste pi připojeni k vaší WiFi, můžete kdykoli vstoupit a upravit nastavení vzdálenosti, jak potřebujete pro konkrétní nastavení garáže, když je stále namontováno.
„Je to teď?“
Proč ano, to ano! - čas udělat si šťastný tanec:)
Děkujeme za přečtení a užijte si svého nového parkovacího asistenta!
Krok 9: Volitelný krok a užitečné příkazy
Volitelný krok - doplněk FTP pro Sublime Text
Chcete -li upravit soubory skriptu Python přímo na pí, můžeme nainstalovat doplněk FTP s názvem Sublime SFTP od Wbond. Tento doplněk si můžete stáhnout podle pokynů zde
K nastavení tohoto doplňku musíme nakonfigurovat pověření FTP v části Soubor | SFTP/FTP | Stránka nastavení serveru …
Pro naše nastavení jsme 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žijte Ctrl+S nebo Soubor | Uložit uloží tyto informace. Budete vyzváni k zadání jména pro zavolání této konfigurace. Jednoduše jsme to nazvali „rpizw_0_200“
Nyní se přihlaste k pi ze SublimeText, přejděte na Soubor | SFTP/FTP | Procházet server…
Vyberte ze seznamu možností, které se objeví. Budete chtít vybrat profil se jménem, které jste zadali výše;) Podle pokynů přejděte ve složkách a upravte požadovaný soubor.
Užitečné doplňky
Užitečné příkazy Linuxu k použití na pí.
Před odpojením pi vždy VŽDY vypněte, aby nedošlo k poškození souboru na kartě microSD. Zadejte tento příkaz:
sudo se nyní vypne
a před odpojením napájení počkejte, až zelená LED zhasne. Podobně jej můžete restartovat zadáním:
sudo restartujte nyní
Chcete -li zobrazit seznam souborů v adresáři, použijte toto:
ls
Další užitečné příkazy Linuxu najdete zde
Doporučuje:
Systém RFID na bázi PIC16F877A: 5 kroků
Systém RFID založený na PIC16F877A: Systém RFID je systém, který poskytuje identifikaci studentů, zaměstnanců a dalších pomocí štítku RFID za účelem sledování jejich přítomnosti, práce, pracovní doby a mnoha dalších. Tento článek je sponzorem JLCPCB. Opravdu děkuji JLCPCB za sponzora
Systém vizuálního monitorování na bázi LoRa pro zemědělství Iot - Navrhování přední aplikace pomocí Firebase & Angular: 10 kroků
Systém vizuálního monitorování na bázi LoRa pro zemědělství Iot | Navrhování frontové aplikace pomocí Firebase & Angular: V předchozí kapitole hovoříme o tom, jak senzory pracují s modulem loRa pro naplnění databáze Firebase Realtime, a viděli jsme diagram velmi vysoké úrovně, jak celý náš projekt funguje. V této kapitole si povíme, jak můžeme
Inteligentní parkovací systém na bázi IoT využívající NodeMCU ESP8266: 5 kroků
Inteligentní parkovací systém založený na IoT využívající NodeMCU ESP8266: V současné době je hledání parkování v rušných oblastech velmi obtížné a neexistuje žádný systém, který by podrobnosti o dostupnosti parkování získal online. Představte si, že byste ve svém telefonu mohli získat informace o dostupnosti parkovacího místa a neměli byste se toulat a kontrolovat
Inteligentní systém sledování počasí a rychlosti větru na bázi IOT: 8 kroků
Inteligentní systém sledování počasí a rychlosti větru založený na IOT: Vyvinutý - Nikhil Chudasma, Dhanashri Mudliar a Ashita Raj Úvod Význam monitorování počasí existuje v mnoha ohledech. Parametry počasí je nutné monitorovat, aby se udržel vývoj v zemědělství, skleníku
Prototyp jednoduchého parkovacího systému využívající Ebot: 3 kroky
Prototyp jednoduchého parkovacího systému využívající Ebot: Vytvořil jsem jednoduchý prototyp parkovacího systému pomocí Ebot. V tomto systému je ultrazvukový senzor pro detekci vozidla/předmětu. LCD modul zobrazí počet detekovaných vozidel. Jakmile číslo dosáhne maxima, zobrazí se zpráva & q