Programovatelný domácí robot Kamil (na Raspberry Pi 4)

Pochlubte se svým robotem ostatním!
Odpovědět
Kamil2001
Příspěvky: 8
Registrován: 12 led 2024, 21:17

Programovatelný domácí robot Kamil (na Raspberry Pi 4)

Příspěvek od Kamil2001 »

Ahoj roboťáci.

Co dělat v důchodu, když jeden celý život strávil s počítači, od sálových monster v klimatizovaných halách, až po dnešní nadupanou giga a tera techniku do klína?

Pořídit si jednodeskový počítač Raspberry Pi 4, proniknout do základů Linuxu, přeorientovat se z dříve používaných programovacích jazyků na Python, projít nabídku různých I/O modulů a jiných udělátek, zapojit hlavu, nadšení, zkoušet a zase zkoušet, až nakonec začít stavět domácího robota, který neumí jen sledovat čáru nebo blikat různobarevnými LEDkami. Budu rád, když vyjádříte své názory, pochyby a připomínky, nebo Vám můj projekt přinese nějaké informce k použitým modulům, třeba funkční zdrojové kódy v Pythonu.

Moc zkušeností s bastlením jsem zpočátku neměl, proto jsem při stavbě použil většinou již hotové I/O moduly s ovladači. Jak postupně přibývaly, zvětšovalo se i množství drátů, které je propojovaly. S tím zápolím dodnes. Asi by to chtělo pár desek s plošnými spoji, na to ale už nemám, třesou se mi ruce a byla by to strašná pájecí prasárna.
Robot má v úrovni podvozkové vany rozměry 20x30 cm, hmotnost necelé 4 kg. Robot jezdí, otáčí a kýve hlavou, mrká očima, a když mluví, simuluje pohyb úst. Když si ho nevšímáte, umí i zahálet (dělá různé ptákoviny), když ho hrubě uchopíte a nakloníte, myslí si, že ho unášíte neznámo kam, a nadává. Tyto "životně důležité" činnosti už jsou tedy naprogramovány v Pythonu, ale je jich poměrně omezený počet. Hlavní devizu vidím v možnosti programovat robota v jeho vlastním jazyku, jehož jednoduché instrukce zvládnou i malé děti (popojeď vpřed 20 cm, otoč se vlevo, zavři oči, skloň hlavu, přehraj zvukový soubor). Umožňuje samozřejmě i pokročilejší práci s proměnnými, registry, procedurami, apod. Kamil má své webové stránky robot-kamil.cz. Vzhledem ke stále bouřlivému vývoji robota však nejsou příliš aktuální...

K dnešnímu dni robot obsahuje tyto komponenty (chtěl jsem toho zkrátka co nejvíc vyzkoušet :D, a už mu to zůstalo...):

* Jednodeskový počítač Raspberry Pi 4B se čtyřjádrovým procesorem 1,5 GHz, 4 GB RAM, 2x USB2, 2x USB3, 2x mikroHDMI, WiFi, Bluetooth, 1 Gb ethernet, operační systém Debian 10.
* Zvukovou USB kartu Axagon.
* Vzadu dvě kola poháněná DC motory JGA25-370 12V, vepředu pak jedno pojezdové kolo z uklízecího robota
* Řadič motorů H-bridge L298N - pro ovládání pojezdu
* Step-up boost měnič LM2587 - z napětí 5V "vyrobí" 12V pro napájení motorů
* Infračervené reflexní snímače otáček kol - pro možnost vyrovnávat rozdíly v práci motorů
* Detektor světelného zdroje v podvozkové vaně s fotorezistorem v tubusu, který míří vpřed mezi předními koly (orientace nebo jízda podle zdroje světla).
* Laserové ukazovátko, které je umístěno souose s trubičkou, ve které je fotorezistor pro detektor světelného zdroje.
* Řádkový LCD displej 4x20 znaků
* Základní klávesnici 4x4 (0-9, A, B, C, D, *, #)
* Doplňkovou klávesnici 1x4 s barevnými tlačítky pro rozšíření možností klávesnice 4x4
* Aktivní bzučák pro signalizaci stisknuté klávesy nebo chybového stavu
*Audiozesilovač s reproduktorem na levém kanálu, pravý může být použit jako zdroj řídících impulzů, třeba pro skok na další fotku v multimediální prezentaci
* Desku X728 s UPS, se 2 bateriemi Li-Ion 18650 (5,1 V, 8 A)
* Přídavnou desku X728-A2 Battery Holder s dalšími 2 bateriemi 18650
* V přední části dva dotykové spínače k zamezení kolize s okolními předměty
* Dva rtuťové spínače pro zjištění ztráty rovnováhy
* Čtyři ultrazvukové dálkoměry ve směrech vlevo, vpravo, vpřed a vzad
* Elektronický kompas
* Detektor otevřeného plamene
* Malé čerpadlo se zásobárnou vody v případě, že snímač plamene indkuje otevřený oheň
* Desku Pan-Tilt HAT pro ovládání 2 servomotorů pohybu hlavy
* Dvě matice Adafruit mini 8x8 LED pro simulaci očí a dvě matice pro simulaci úst
* Dva mikrofony se zesilovači v uších
* Analogově digitální převodník RasPiO Analog Zero, který zpracovává signály z ušních mikrofonů a případně pulzy z pravého stereofonního kanálu
* PIR čidlo pro rozpoznání pohybu před a za robotem
* Pole modrých LEDek s oranžovým oddělením 4+1+4 pro zobrazení binárních čísel v bajtu, číslo prováděné instrukce v binárním tvaru, aj.
* Čtyřicetipinový kabel portu GPIO, "zaparkovaný" do slepé zásuvky pod klávesnicí, aby se robot dal používat dál pro zkoušení různých zapojení na nepájivém kontaktním poli
* Bezdrátový vysílač na 433MHz pro ovládání 3 zásuvek 240V (upravený dálkový ovladač, který je umístěn v těle robota)
* Čtyřkanálový přijímač 433MHz pro dálkové ovládání funkcí robota ovladačem s tlačítky A, B, C a D
* 5" LCD monitor na HDMI1 jako první obrazovka Debianu
* Bezdrátový vysílač signálu HDMI pro zobrazení druhé obrazovky Debianu na televizi
* Číslicové voltmetry pro kontrolu napájení 3.3V, 5V a 12V
* Sedmisegmentový displej pro zobrazení hodin, teploty a vlhkosti vzduchu, zobrazení skóre, pro funkci stopek, apod.

Obrázek
E-Ryc
Příspěvky: 49
Registrován: 07 bře 2013, 16:51

Re: Programovatelný domácí robot Kamil (na Raspberry Pi 4)

Příspěvek od E-Ryc »

Pekne, nejake video bude?
Osobne bych teda zvazil dvouclanek a step up pro motory. Pokud nejde jet z triclanku naprimo, tak spis ctyrclanek a step down (mensi proud - mensi trapeni baterek).
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1529
Registrován: 16 úno 2013, 14:26

Re: Programovatelný domácí robot Kamil (na Raspberry Pi 4)

Příspěvek od Dex »

Pěkná potvora!, třeba se někdy staví na RoboDoupěti :D

Jinak jak píše E-Ryc, snižovat napětí z aku na 5V a pak to zase tahat na 12V kvůli motorům je špatné.

Většinou se tam dá tříčlánek, kterým se krmí motory napřímo a pak nějaký step-down na 5V (a případně i na 3V3 je-li to potřeba).
"all your robots are belong to us"
robodoupe.cz
Kamil2001
Příspěvky: 8
Registrován: 12 led 2024, 21:17

Re: Programovatelný domácí robot Kamil (na Raspberry Pi 4)

Příspěvek od Kamil2001 »

Rozumím, jak to s E-Ryc myslíte, díky za novou informaci.
Jak už jsem psal, sbírám zkušenosti od nuly, a když jsem hledal vhodné napájení, narazil jsem na desku X728, což je chytrá UPS pro 5V, která kromě záložního napájení poskytuje přes sběrnici I2C informaci o napětí a okamžité kapacitě baterek. X728 je určena speciálně pro Raspberry (dál jen RPi). Má průchozí 40 pinový konektor, který se dá "napíchnout" na 40 pinový GPIO konektor RPi, přes který také RPi napájí. Navíc ve dvoupinovém konektoru poskytuje 5V pro napájení jiných zařízení, v případě Kamila právě měnič na 12V.
Kamil2001
Příspěvky: 8
Registrován: 12 led 2024, 21:17

Re: Programovatelný domácí robot Kamil (na Raspberry Pi 4)

Příspěvek od Kamil2001 »

E-Ryc píše: 19 led 2024, 14:05 Pekne, nejake video bude?
Osobne bych teda zvazil dvouclanek a step up pro motory. Pokud nejde jet z triclanku naprimo, tak spis ctyrclanek a step down (mensi proud - mensi trapeni baterek).
S napájením souhlas, díky za poučení. Jako začátečník jsem pro napájení robota zvolil profesionálně vyrobený modul X728, což je UPS speciálně určená pro Raspberry, která dává 5V. Vlastní řešení nabíjení a záložního napájení zatím nedávám :P.
Video je zatím jediné, dostupné na https://www.robot-kamil.cz/ahoj-ja-jsem-robot-kamil.
Další určitě budou, ale až budu mít stativ na můj starý mobil bez stabilizace obrazu. Zatím pořizuju jen videa typu "zemětřesení na Kamčatce" :mrgreen:.
Kamil2001
Příspěvky: 8
Registrován: 12 led 2024, 21:17

Re: Programovatelný domácí robot Kamil (na Raspberry Pi 4)

Příspěvek od Kamil2001 »

E-Ryc píše: 19 led 2024, 14:05 Pekne, nejake video bude?
Osobne bych teda zvazil dvouclanek a step up pro motory. Pokud nejde jet z triclanku naprimo, tak spis ctyrclanek a step down (mensi proud - mensi trapeni baterek).
Našel jsem ke Kamilovi 2 použitelná videa.
Na https://youtu.be/M08nXFl-3t0 je vidět oživení robota po spuštění ovládacího programu, virtuální asistentka Iva pozdraví a hlásí aktuální čas, robot jde do spánku (jsme v režimu ladění, tak úvodní řeč robota přeskakujeme). Robota probouzíme jakoukoliv klávesou. Říká, že mám zadat jméno programu nebo příkaz, tak píšu příkaz 201 (spuštění programu) a D (jako Enter), zadávám jméno programu a zase D. Kamil mluví o asistence Ivě (program Speechtech TTS), pomocí které vytváříme hlas robota, Iva pak hlásí svým hlasem číselné výsledky, čas a datum, chyby, nápovědu apod.

Na https://youtu.be/bPD7q7stqXY je pak ukázka z rodinné oslavy, kdy se robot podle tabulky zasedacího pořádku a předem zjištěných azimutů otáčí k jednotlivým oslavencům s krátkou řečí.
DavidO
Příspěvky: 1138
Registrován: 01 kvě 2013, 21:27

Re: Programovatelný domácí robot Kamil (na Raspberry Pi 4)

Příspěvek od DavidO »

Skvělé (a pobavilo mě i co si o tom myslí Kikina :lol:)! Doufám, že ho uvidíme na Arduino dni!
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
Odpovědět