tank
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
— | tank [2023/06/26 19:24] (aktuální) – vytvořeno - upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== Tank ====== | ||
+ | [[http:// | ||
+ | |||
+ | < | ||
+ | <div class=" | ||
+ | Stránka vznikla v roce 2009 a slouží jako dokumentace popisující stavbu vozítka ovládaného technologií Bluetooth.< | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Úvod ===== | ||
+ | Po dvou složitějších robotech ([[Eurobot2008]] a [[Robot2]]) jsem se rozhodl postavit si vozítko malé a jednoduché. Volba padla na plastový tančík, který byl ovládaný dvěma tužkovými monočlánky AA - podobných hraček se dá v hračkářstvích, | ||
+ | Pásový (diferenciální) podvozek je pro malého robotka jako dělaný například proto, že se umí otočit na místě. Robotek může být řízen mobilním telefonem pomocí technologie Bluetooth díky modulu | ||
+ | |||
+ | {{http:// | ||
+ | {{http:// | ||
+ | |||
+ | ===== Elektronika ===== | ||
+ | ==== Deska ==== | ||
+ | Jako mozek vozítka jsem použil svůj oblíbený mikrokontrolér [[http:// | ||
+ | * **Stabilizátor 7805** - stabilizuje napájecí napětí 5 V pro desku. | ||
+ | * **Resetovací tlačítko** - při stisku se program v procesoru spustí od začátku. | ||
+ | * **Červená LED** dioda připojená k jednočipu (pin PD7). | ||
+ | * **DIP switch** (4-bitový přepínač) - dá se použít například pro nastavení parametrů programu (volitelný) | ||
+ | * **Hřebínky** pro vyvedení všech důležitých pinů jednočipu - zapojeny jako //PIN|GND// nebo // | ||
+ | * **H-můstek L293D** pro spínání dvou motorů - maximálně 0,5 A (umožňuje měnit směr a řízení pomocí pulzně-šířkové moduleace - PWM). Při větších proudech se poměrně dost zahřívá, pro klid duše je dobré jej doplnit chladičem (chladič pro DIP16 - například v GM je to korunová položa). Ten pak stačí přilepit například vteřinovým lepidlem. Dobré je si předtím poznačit, kde se na obvodu nachází pin č. 1 - klasický prolis je totiž chladičem zakryt. | ||
+ | |||
+ | Soubory nakreslené v programu Eagle si můžete stáhnout [[http:// | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | ==== Popis konektorů ==== | ||
+ | {{http:// | ||
+ | * pokud je //JUMPER// zkratován, jsou motory napájeny 5 V přímo z desky. Pokud ne, je napájen z konektoru //MOTOR SUPPLY//. | ||
+ | * konektor //UART// slouží k vyvedení sériového kanálu | ||
+ | * konektor //POWER// může sloužit k přímému napájení desky 5 V nebo k napájení periferií (senzory, Bluetooth modul) - pozor na polaritu! | ||
+ | * konektory //MOTOR1// a //MOTOR2// slouží k připojení motorů, prostřední pin (GND) může být přiveden na kostru motoru, je li potřeba odrušení. | ||
+ | * modré konektory u H-můstku a jednočipu znázorňují propojení dvoužilovými kablíky - slouží k ovládání motorů a je možné je jednoduše zaměnit nebo otočit. | ||
+ | * Fialové konektory značí způsob připojení programátoru. | ||
+ | * Žluté tlačítko //reset// slouží k resetování programu v jednočipu. | ||
+ | * Svorkovnice v levém dolním rohu slouží k přivedení nestabilizovaného napájení 7-15 V pro desku. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Kablíky ==== | ||
+ | Je potřeba připravit si následující kablíky: | ||
+ | * 2x propojovací kablík jednočipu a h-můstku -dvoužilný (nebo trojžilný, | ||
+ | * propojovací kablík h-můstek-motory - na jedné straně připájený k motorům, na straně druhé //PIN A|GND|PIN B//. Piny A a B se připojují na svorky motoru, pin GND může zůstat volný nebo může být přiveden na kovovou kostru motoru, chcete-li použít odrušení. | ||
+ | |||
+ | Pro výrobu stačí samotný kablík (například šedý desetižilný), | ||
+ | |||
+ | ==== Napájení ==== | ||
+ | Díky stabilizátru 7805 (lze nahradit za nějakou lowdrop verzi) je možné desku napájet napětím 7-15 V - například klasickou 9 V baterií nebo 12 V trafem od starého routeru. Přestože je napájení před stabilizátorem chráněno diodou, je dobré si na svorkovnici poznačit, kam se připojuje kladné napětí. Na přívodní kabel do svorkovnice je dobré umístit malý vypínač. | ||
+ | |||
+ | Celou desku je možné napájet čtyřmi tužkovými monočlánky, | ||
+ | |||
+ | Na desce je jedinný jumper, kterým se nastavuje napájení motorů. pokud je zapojen, jsou motory napájeny 5 V napájením desky, pokud je rozpojen, berou si proud ze svého napájecího konektoru. **Jumper nesmí být zapojen, pokud je na napájecí konektor motorů přivedeno větší naptí než 5 V - zničilo by elektroniku**. | ||
+ | |||
+ | Vypínač může být například vteřinovým lepidlem přilepen přímo pod desku: | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | ==== Programování jednočipu ==== | ||
+ | Pokud jste v oblasti jednočipů začítečníky, | ||
+ | |||
+ | ATmega48 má interní oscilátor nastaven na 8 MHz, není tedy třeba nic nastavovat (zrušení osminásobné děličky je řešeno v programu) a stačí nahrát hex soubor. Ten si i s kompletními zdrojovými kódy v jazyce C (AVR-LIBC) můžete stáhnout [[http:// | ||
+ | |||
+ | ==== Seznam součástek ==== | ||
+ | * IO ATmega48 + patice28 (stačí klasická, nemusí být precizní) | ||
+ | * IO L293D (písmeno D je důležité - obvod obsahuje ochranné diody) + patice DIP16 (stačí klasická, nemusí být precizní) + volitelně chladič na DIP16, pokud se přiliš zahřívá | ||
+ | * IO 7805(P) (NE verze L - ta má příliš malý proud) + volitelně chladič na TO220, pokud se příliš zahřívá | ||
+ | * 4-bitový DIP switch (volitelně) | ||
+ | * Mikrospínač (tact-switch) | ||
+ | * Svorkovnice do DPS (2 piny) | ||
+ | * Jednořadě a dvouřadé přímé lámací kolíkové lišty (hřebínky) | ||
+ | * LED červená, 3 mm | ||
+ | * Dioda 1N4007 | ||
+ | * R 330 ohmů | ||
+ | * R 1k5 - 2x | ||
+ | * C 2,2 uF (elektrolyt) | ||
+ | * C 100 uF (elektrolyt) | ||
+ | * C 0,1 uF - 2x (keramika) | ||
+ | * Zkratovací propojka (jumper) | ||
+ | * Kablíky, dutinky a krytky konektorů | ||
+ | * Šroubky M3, distanční sloupky, ... | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Bluetooth ===== | ||
+ | {{http:// | ||
+ | |||
+ | Aby šel tančík řídit z počítače nebo mobilního telefonu bezdrátově, | ||
+ | |||
+ | |||
+ | **Modul je potřeba správně nastavit.** O nastavení jsem požádal firmu Spezial Electronic, k nastavení doma totiž potřebujete speciální program a převodník: | ||
+ | |||
+ | * 8N1 (8 datových bitů, 1 stop bit, bez parity) | ||
+ | * Bez HW flow control (RTS/CTS) | ||
+ | * Rychlost 9600 kbps | ||
+ | * Configuration Over Air (povolení nastavení Bluetooth modulu bezdrátově) | ||
+ | |||
+ | Připojení k modulu je možno realizovat buď připájením přímo na desku plošných spojů, použitím speciálního konektoru, nebo přímým připájením kablíků k vybraným pinům - to je znázorněno na horním obrázku. Po připájení jsem nakrimpoval dva konektory - jeden na pár //Rx// a //Tx//, druhý na //Vcc// a //GND//. Modul vyžaduje napájení od 3-6 V, proto je možné připojit napájecí kablík přímo k desce. Místo, kde jsou kablíky připájeny, | ||
+ | |||
+ | __Pozor:__ **Kablíky z modulu __nepřipojujeme k mikrokontroleru přímo__, protože výstupní signály OEMSPA310 jsou v 3 V úrovních a 5 V úrovně z ATmega48 by jej mohly zničit. Pro ochranu postačí, když vysílací (Tx - transmit) pin mikrokontroléru a přijímací (Rx - receive) pin Bluetooth modulu propojíme odporovým děličem 1k8/2k2:** | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | |||
+ | ===== Ovládání ===== | ||
+ | Dálkové ovládání je řešeno SPP (Serial Port Protocol) - to znamená, že se bluetooth modul chová jako sériový port - v tomto případě je nastaven na 9600 8N1. Přijímá dvouznakové příkazy oddělené novým řádkem (CR LF); První znak řídí levý motor, druhý pravý. Můžou se točit buď dopředu (F), dozadu (B) nebo se zastavit (S). Kombinace pak vypadá nějak takto: | ||
+ | |||
+ | * //FF// - jeď dopředu | ||
+ | * //SS// - stůj | ||
+ | * //BF// - otoč se na místě | ||
+ | |||
+ | Na každý příkaz posílá odpověď //OK//, jak se můžete přesvědčit například v Hyperterminálu. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Počítač ==== | ||
+ | Nejdříve je potřeba ve správci bluetooth zařízení spárovat bluetooth modul s počítačem. Systém pak oznámí, jaké číslo portu bude zařízení používat (u mě je to COM9). Pro řízení byla napsaána jednoduchá aplikace v Delphi (vývojové prosředí Delphi 7 personal edition, které je zdarma). Aplikace se připojí k sériovému portu a posílá příkazy - lze buď klikat na tlačítka nebo použít šipky na klávesnici. Pro zastavení je použita šipka dolů. | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | Pro ladění má aplikace jednoduchou konzoli, díky které můžeme posílat/ | ||
+ | |||
+ | Aplikace je volně ke stažení jako [[http:// | ||
+ | |||
+ | Lidé, kteří z trucu nebo ze záliby v příkazové řádce používají nějaký minoritní operační systém postavný na Linuxu, by aplikaci měli spustit pomocí programu //wine// (zatím netestováno). | ||
+ | |||
+ | ==== Mobilní telefon ==== | ||
+ | |||
+ | Většina dnešních mobilních telefonů disponuje bluetoothem a javou (J2ME), takže jsem se rozhodl napsat ovládací aplikaci i pro ně. Zatím je velice jednoduchá - po spuštění je potřeba kliknou na adresu našeho zařízení (ne na položku //fake mode// - ta slouží poue k testování), | ||
+ | |||
+ | * 2 - dopředu | ||
+ | * 5 - stůj | ||
+ | * 8 - dozadu | ||
+ | * 4 - doleva na místě | ||
+ | * 6 - doprava na místě | ||
+ | * 1 - doleva (točí se pouze jeden motor) | ||
+ | * 3 - doprava (točí se pouze jeden motor) | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | Aplikace je napsána (a naklikána) ve výjovovém prostředí Netbeans 6.5, které je rovněž volně ke stažení. Zatím není odzkoušena na jiných telefonech, než na symbianových Nokiích (s60 3rd ed.) - například N78. Ke stažení jsou jak [[http:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Videa ===== | ||
+ | |||
+ | < | ||
+ | <object width=" | ||
+ | <param name=" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | type=" | ||
+ | </ | ||
+ | |||
+ | <object width=" | ||
+ | <param name=" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | type=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Odkazy na YouTube: [[http:// | ||
+ | |||
+ | |||
+ | ===== Kdo si již tančk postavil? ===== | ||
+ | |||
+ | Pokud jste se rozhodli pro stavbu tančíku, napište mi prosím na můj [[http:// | ||
+ | |||
+ | Následující obrázky poskytl Miroslav Kubánek: | ||
+ | |||
+ | {{http:// | ||
+ | {{http:// | ||
+ | |||
+ | Jiří Škvára se rozhodl pro bezpásovou variantu se dvěma kolečky, původní desku vylepšil a svého robota doplnil o autonomní chování s využitím pěkně zpracovaných dotykových čidel: | ||
+ | |||
+ | {{http:// | ||
+ | {{http:// | ||
+ | |||
+ | |||
+ | ===== Odkazy ===== | ||
+ | * **Schémata, | ||
+ | |||
+ | * Firma Spezial Electronic (dodavatel bluetooth modulů ConnectBlue): | ||
+ | * Přestavba RC auta na bluetooth: http:// | ||
+ | * Web věnovaný robotice: http:// | ||
+ | |||
+ | * Článek na Pandatronu: http:// | ||
+ | |||
+ | * **Robot BlueBot:** http:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||