Obsah:

TinyLiDAR na Pi?: 9 kroků (s obrázky)
TinyLiDAR na Pi?: 9 kroků (s obrázky)

Video: TinyLiDAR na Pi?: 9 kroků (s obrázky)

Video: TinyLiDAR na Pi?: 9 kroků (s obrázky)
Video: tinyLiDAR From Concept to Creation 2024, Listopad
Anonim
TinyLiDAR na Pi?
TinyLiDAR na Pi?

Ahoj znovu!

Nyní, když jste strávili nějaký kvalitní čas s tinyLiDAR a vaším Arduino - váš Raspberry Pi se možná cítíte trochu osaměle;)

Pi má port I2C, že? Proč to tedy nezapojit a nezkusit to tam ?! Dobrý plán, ale pokud jste to už zkusili - možná jste si všimli, že data vypadají trochu divně.

Ano, pi má vestavěné 1,8K pull-upy, takže budete muset vyříznout I2C pady na tinyLiDAR, abyste dostali 4,7K pull-upy z obvodu-podrobnosti viz referenční manuál. To ale není důvod pro podivná data.

Je to proto, že sběrnice pi I2C není přesně podle specifikací. Je to tak od doby, kdy bylo pi poprvé představeno díky čipové sadě Broadcom. Od samého začátku řádně nepodporují funkci I2C s názvem „roztahování hodin“.

Více o této chybě H/W si můžete přečíst zde.

Krok 1: Co je to roztahování hodin?

Co je roztahování hodin?
Co je roztahování hodin?

Jak možná víte, sběrnice I2C se skládá ze 3 vodičů. Jedná se o hodiny (SCL), data (SDA) a společnou zem. Hodinové a datové linky jsou typu s otevřeným kolektorem/otevřeným odtokem, což znamená, že potřebují vytahovací odpory připojené k kladné napájecí liště, aby měly logickou hodnotu. Aby bylo logické minimum, jakékoli zařízení na sběrnici může strhnout vedení na společnou zem.

Podle standardu I2C je hlavní zařízení, které dodává hodinový signál na lince SCL, ale pokud je tato rychlost příliš rychlá, zařízení Slave jej může zpomalit prostým podržením hodinové linky, dokud není připraveno jednat. s informacemi. Tomu říkáme „roztahování hodin“.

Oficiálně bylo roztažení hodin uvedeno jako volitelná funkce ve standardu I2C, ale je to velmi běžná funkce, která je nezbytná pro většinu „inteligentních“otroků, kteří potřebují nějaký čas navíc na poskytnutí údajů ze senzorů atd.

Krok 2: Malá pomoc prasat, která létají

Abychom se s touto I2C h/w chybou vypořádali, našli jsme pěknou malou bezplatnou knihovnu s názvem „pigpio“. Je to velmi populární, rychlá a lehká knihovna napsaná v jazyce C. Běží jako démon na pozadí pro Raspberry Pi a umožňuje nám snadno ovládat I2C i jakékoli GPIO z pythonu. Knihovna zachází s porty I2C spíše jako s GPIO, a proto obešla chybu I2C s natahováním hodin. Stejně jako veškerý software na pi je i knihovna pigpio vzdálena jen jednoduchým „zahrnutím“, takže jdeme!

Krok 3: TL; Verze DR

Nastavte PiEnable SSH pro přihlášení pomocí PuttyInstall pigpio libraryGet tinyLiDAR zip fileUnzip and run from Putty

Volitelný:

Nastavte SublimeText pomocí WinSCP

Krok 4: Instalace

Instalace
Instalace

U našeho Raspberry Pi 3 jsme použili standardní operační systém New Out Of the Box Software (NOOBS Lite v2.4). Obsahuje výchozí verzi již nainstalovaného Pythonu, který je připraven ke kódování. Zde si můžete stáhnout OS.

Po instalaci na kartu micro SD musíte připojit klávesnici a monitor, abyste se mohli poprvé přihlásit k pi:

Uživatelské jméno: pi Heslo: malina

Potom můžete spustit zabezpečený shell server (SSH) pomocí těchto příkazů:

sudo systemctl povolit sshsudo systemctl spustit ssh

Dále budeme potřebovat IP adresu pí ve vaší síti, abychom se mohli přihlásit pomocí PuTTY. Chcete -li to získat, zadejte:

název hostitele -I

A podívejte se na adresu ve formátu IPv4 (pro naše nastavení to bylo: 192.168.0.27)

Výše uvedené kroky umožní, aby pí běželo „bez hlavy“, což znamená, že na této klávesnici nebudete muset znovu psát a také již není potřeba video monitor. Do budoucna se budeme do sítě přihlašovat prostřednictvím zabezpečeného připojení SSH. Výše uvedený příkaz způsobí, že se server SSH automaticky spustí při každém zapnutí pi. To je pro nás výhodné při kódování, ale může to být bezpečnostní riziko později (být paranoidní je dobré), takže až budete připraveni, můžete tuto funkci automatického spuštění SSH deaktivovat pomocí tohoto příkazu:

sudo systemctl zakázat ssh

Tento příkaz by měl být zadán na klávesnici připojené k pí samozřejmě.

PuTTY je terminálový program, který je vyžadován k vydávání příkazů z PC na pi, takže byste si měli pořídit nejnovější kopii odtud.

Nainstalujte a spusťte PuTTY. V položce Název hostitele budete muset zadat IP adresu shora a použít výchozí nastavení SSH. Zadejte relaci libovolný název a stiskněte Uložit. Poté spusťte relaci kliknutím na načíst a kliknutím na OTEVŘÍT.

Mělo by vás dostat na přihlašovací obrazovku pro pi. Použijte stejné uživatelské jméno a heslo, jaké jste použili dříve.

Krok 5: Nainstalujte si Pigpio

Jediná věc, kterou potřebujeme nainstalovat poté, bude knihovna pigpio a můžeme to udělat pomocí následujících příkazů.

Tip: Můžete jednoduše zkopírovat [ctrl+c] a vložit [pravým tlačítkem myši] tyto a další příkazy do terminálu PuTTY

sudo apt-get update

sudo apt-get install pigpio python-pigpio python3-pigpio

Krok 6: Volitelné: Nastavení systému Dev

Volitelné: Nastavení systému Dev
Volitelné: Nastavení systému Dev

Tady je tip, který vám může ušetřit čas ve světě vývoje kódu. Opravdu nenávidíme textové editory založené na unixu. Uživatelské rozhraní je obvykle neohrabané a písma jsou na nic. GNU nano je téměř snesitelné, ale žádný není tak rafinovaný jako SublimeText, který si můžete stáhnout zde

Máme vývojové prostředí založené na systému Windows a rádi používáme tento textový editor, kdykoli je to možné. Tip tedy spočívá v nastavení systému, aby bylo možné používat tento profesionální textový editor nativně na ploše systému Windows k přímému kódování vašeho bezhlavého pi.

Jak? Pomocí bezplatné aplikace s názvem WinSCP, kterou si můžete stáhnout zde

Krok 7: Nastavení WinSCP

Nastavení WinSCP
Nastavení WinSCP
Nastavení WinSCP
Nastavení WinSCP

WinSCP je zabezpečený program pro přenos souborů, který poskytuje grafické znázornění souborů přítomných na vašem RPI, podobně jako to vidíte ve správci souborů na vašem Windows PC.

Pokračujte tedy a nainstalujte nyní také výše uvedené dva programy.

Dále budete muset provést několik úprav, aby všechny fungovaly správně.

Pro WinSCP můžete kliknout na NOVÝ web. Použijeme výchozí nastavení SFTP a vy budete muset zadat pouze IP adresu (pro název hostitele) vašeho pi a přihlašovací jméno (pro uživatelské jméno). Pokud chcete, můžete nechat heslo prázdné - při každém přihlášení vás vyzve k zadání hesla.

Dále klikněte na tlačítko Upřesnit a poté klikněte na levé straně pro nastavení prostředí prostředí. Na pravé straně změňte rozevírací nabídku „Výchozí“na možnost „sudo su -“. To umožní, aby se změny zapsaly do vašeho pi bez chyb oprávnění, když stisknete uložit ze SublimeTextu.

Nastavte SublimeText jako výchozí editor ve WinSCP

Chcete -li to provést, klepněte na tlačítko Nástroje na obrazovce Nastavení přihlášení WinSCP, kde jste zahájili dialogové okno NewSite. Dva snímky obrazovky ukazují, jak je toto nakonfigurováno, ale v zásadě klepnutím nakonfigurujete předvolbu Editory a Přidat editor, což bude externí editor. Poté můžete vyhledat soubor s příponou.exe, kde je tento editor umístěn ve vašem počítači.

Krok 8: (w) získání kódu

(w) získání Kodexu
(w) získání Kodexu

Až budete hotovi, pokračujte a přihlaste se pomocí WinSCP a PuTTY.

Nyní jsme všichni připraveni, můžeme spustit náš kód tinyLiDAR.

Vytvořte adresář s názvem tinyLiDAR v adresáři home/pi.

To provedete tak, že kliknete pravým tlačítkem na pravou stranu obrazovky WinSCP a zvolíte Nový / Adresář.

Nyní na terminálu PuTTY můžete psát

cd t

a stisknutím tabulátoru necháte automaticky dokončit váš příkaz, abyste se dostali do adresáře tinyLiDAR.

Jakmile jste zde, zadejte následující:

wget

získat soubory přímo z našeho serveru. Potom je můžeme rozbalit zadáním

rozepnout r

a stisknutím tabulátoru název znovu automaticky doplňte

Chcete -li jej spustit, zadejte

python tlgui.py

A váš tinyLiDAR bude reagovat na každý váš příkaz na pi:)

Krok 9: Poznámka pro brzy hackery

Pokračujte a podívejte se pod pokličku poklepáním na libovolný soubor kódu z WinSCP. Jsou to ty s příponou.py. Soubory by se měly otevřít v SublimeTextu přímo ve vašem PC. Změňte vše, co se vám líbí, a poté klikněte na Uložit. Vaše změny budou uloženy přímo do vašeho pi.

Až budete připraveni, spustíte jej znovu pomocí klávesy se šipkou nahoru pro poslední zadaný příkaz nebo jej zadejte znovu a stiskněte Enter:

python tlgui.py

Možná jste si všimli, že rozvržení GUI terminálu vypadá o něco hezčí než verze Arduino. Je to proto, že PuTTY podporuje znaky unicode, takže jsme mohli použít některé další znaky pro ovládání kurzoru, aby to vypadalo rafinovaněji.

Je zde také přidaný příkaz (ve srovnání s verzí Arduino), který je „dc“pro funkci Continuous Read. Zkuste to a uvidíte, co si myslíte.

To je vše!

Děkujeme za přečtení a užijte si hackování na pi:)

Doporučuje: