Před pár týdny jsme si v našem seriálu o programování elektroniky v praxi ukázali, že se v nitru každé moderní počítačové myši schovává maličká kamera. Na seflíčka pro Instagram to sice moc není – k dispozici má zpravidla jen 1 až 2 kilopixelů –, ovšem pro rychlou navigaci po stole to bohatě stačí.
Počítačová myš tedy doslova natáčí povrch, po kterém jezdí, no a podle směru ubíhajících změn pod objektivem počítá, jakým směrem v souřadnicích XY se pohybuje.
Jedním takovým čidlem PMW3901, kterému říkáme flow kamera, jsem tehdy mával sem a tam v prostoru a na obrazovce počítače se nám po plátně analogicky posouval obrázek kvadrokoptéry. Flow čidla jsou totiž vedle myšáků také nedílnou součástí většiny rekreačních dronů, kterým pomocí sledování terénu pomáhají držet pozici v klidovém vznášení.
Podívejte se na video tanku s flow kamerou v akci:
Flow kamera pro koberec, parkety a dlažbu
Co kdybychom ale něco podobného namontovali na skutečného robota, který bude jezdit po redakci a na monitoru se nám bude kreslit jeho trajektorie? To vše bez GPS, UWB, lidaru a dalších pokročilých technologií pro lokalizaci v místnosti?
Bylo by to vůbec možné? Teoreticky rozhodně ano, přední tchajwanský výrobce flow kamer PixArt Imaging, jehož snímače najdete třeba v populárních počítačových myších Logitech, totiž vyrábí také čidlo PAA5100JE (PDF).
Flow kamera na koberec i dlaždičky PixArt Imaging PAA5100JE
Hodí se pro sledování povrchu ve vzdálenosti 15-35 milimetrů a jeho detekční firmware je speciálně vyladěný pro koberce, dlažbu nebo třeba parkety. Výrobce totiž počítá, že najde uplatnění třeba jako pomocník při navigaci robotických vysavačů.
Prototypovací modul Pimoroni
Nejdůležitější je ale to, že si stejného čidla všimla kutilská komunita a připravila několik modulů pro snadné a rychlé prototypování. Jedním z nich je malá destička od výrobce Pimoroni, kterou má (pouze na objednávku) v nabídce také český RPishop.cz. Britská destička přijde zájemce zhruba na šest stovek.
Prototypovací modul Pimoroni s přimontovaný na tank
Za tuto částku získáte modul s dvojicí přisvětlovacích bílých LED, které ozáří povrch koberce, aby kamera rozpoznala jeho strukturu. Samotný snímač pak komunikuje skrze sběrnici SPI a velmi podobným způsobem jako model PMW3901 z našeho prvního experimentu. GitHub je plný knihoven pro Arduino a Pimoroni nabízí vlastní kód také pro Python.
Postavíme si tank na čipu ESP32-S3
Fajn, takže jaký bude náš dnešní plán? Prohrabu svoje krabice s elektrocetkami, vylovím z nich:
- 2× 12V DC motor
- 1× kostru pásového tanku
- 1× ovladač pro 2 12V DC motory (L298N aj.)
- 1× DC/DC měnič z 12 V na 5 V
- 1× 12V modelářský LiPol akumulátor
- 1× digitální gyroskop
- 1× základní desku s procesorem ESP32
A z toho všeho harampádí postavím s využitím dalších dílů na míru z 3D tiskárny jednoduchý podvozek ještě jednoduššího pásového tanku.
Jako centrální počítač nakonec poslouží ESP32-S3-DevKitC-1 s jedním z nejvýkonnějších kutilských procesorů na scéně Espressif ESP32-S3.
Pinout desky ESP32-S3-DevKitC-1
Na desce je zároveň připájená adresovatelná RGB LED, a tak ji v kódu použijeme pro signalizaci aktuálního směru jízdy. Kód budeme programovat v Arduinu, takže jen připomenu, že do jeho vývojového prostředí musíme doinstalovat podporu pro čipy z rodiny ESP32.
Barva RGB LED bude značit různé směry jízdy
Motory bude ovládat dvojice H-můstků TA6586
Tříčlánkový modelářský akumulátor vyrobí dostatek šťávy pro motory, které musejí uvést do pohybu těžký tank. Ten budeme ovládat pomocí libovolného duálního H-můstku/ovladače pro dva stejnosměrné motory, který utáhne 12 V. Mohla by to být třeba tato deska za pár kaček od LaskaKitu s čipem L298N, anebo cokoliv jiného. Já našel jakýsi blíže nespecifikovaný klon z AliExpressu s dvojicí čipů TA6586 (PDF).
Hotový tank v celé své kráse
Motorový driver má čtyři digitální vstupy D0-D1 pro první motor a D2-D3 pro druhý, přičemž nastavováním různých logických kombinací motor roztočíme kýženým směrem, nebo zastavíme. Tyto vstupy budeme na řídící desce ovládat na pinech 4-7 čipu ESP32-S3.
Schéma zapojení elektroniky tanku, který napájí silný modelářský akumulátor
Přihlaste se
a zdarma dočtěte
tento článek
Po přihlášení můžete také
diskutovat pod články
V pokračování článku také najdete
Myš funguje diametrálně jinak než robůtek na koberci. Proč potřebujeme vedle flow kamery ještě gyroskop, nebo třeba otáčkoměr?
Tank budeme ovládat z webového prohlížeče směrovými šipkami na klávesnici. Ukážeme si, jak na to
Veškerý pohyb tanku se nám bude v reálném čase kreslit do okna prohlížeče pomocí technologie WebSocket