Robotická ruka. ATARI. Robot arm.

By Administrator at februára 21, 2011 22:19
Filed Under: Atari

V predajni GM  je k dostaniu stavebnica robotickej ruky Velleman KSR-10. Iste, je už dlhšie na trhu, ale ja som sa k jej popisu dostal až teraz ... Robotická ruka nie je súčasťou ATARI (a ani nikdy nebola), ale keď už je na trhu prečo to neskúsiť pripojiť ? Možno túto robotickú ruku poznáte aj pod názvom OWI-535. Je to také voľné pokračovanie prvého článku o robotickej ruke na mojom blogu.



Po dôkladnom preštudovaní zistíme nasledovné - napájanie motorčekov je +3V a -3V. Nie je tu nijaká spätná väzba, t.j. nemáme čím potvrdiť, že rameno je v priestore presne tam kde chceme a potrebujeme. Radšej si to ale overím, než článok uvoľním. Motorčeky majú na doraze ochranné prvky, takže pri dobehnutí ramena na koncový bod by sa nemalo nič zlé udiať - veľké plus za toto riešenie..


Po overení (dex - ďakujem za informáciu) sa počíta s tým, že za danú dobu zopnutia príde rameno do určeného priestoru = podľa mňa hodne nepresné,

 - čo by som za tie peniaze nechcel ...

Potom existuje ešte jedna možnosť pre majiteľov PC - zakúpiť softwarový ovládač cez USB port a už nemusíte čítať ďalej ..... je to jedna kartička a USB pripojenie + softwarové vybavenie. Presnosť je taká ako je popísané v prvej vete tohoto odstavca.



____________________________________________________________

Tu si dovolím teraz trošku teoretizovať:

Riešenie (A):

Spoľahneme sa na to, že motorčeky idú presne a my sa "utrafíme" tam kde chceme byť. Ak to funguje, nemáme už čo riešiť a ostatná časť článku je pre nás len zaujímavým čítaním.

Spotreba je 11 bitov na ovládanie a môžeme riadiť všetky osičky naraz. Software si musíme napísať sami. Je na nás či skúsime riadiť motorčeky naraz, ale len pekne po jednom. Problém vidím v tom, ako nastaviť časové slučky po zapnutí, aby sme boli "práve tam" a nie niekde inde ako očakávame, program na PC to bude mať ošetrené, ale na ATARI to bude asi vec na dlhšie bádanie. Nič nás to nestojí, nemusíme vyrábať zložitú ovládaciu elektroniku - ak to nebude dobre fungovať nastúpi záložný plán B a C. Ovládanie urobíme cez jednoduchú elektroniku - napr. tranzistorové spínače, jednoduchou logikou sa zabezpečí, aby neprišlo k zopnutiu obidvoch polarít naraz na jednom motorčeku.

____________________________________________________________

Ak nefunguje dobre riešenie A:

V prípade použitia u ATARI potrebujeme spolu 10 bitov + 1 - osvetlenie = 11bitov.  (5 motorčekov x 2 bity + 1x1 bit osvetlenie)

Je to dosť, ale existujú metódy ako to okresať na rozumnú mieru. Jedna z vecí čo je dôležitá je spätná väzba - ak na ramená pridáme potenciometre a meriame túto hodnotu cez paddle vieme celkom presne kde rameno v priestore "trčí". Nevýhoda? Musíme sledovať 5 motorov a paddle snímačov máme k dispozícii iba 4 kusy. (Tu je vo výhode stará 400-ka a 800-ka kde je paddle v počte 8ks.) Nezostáva nič iné len zvoliť nejaký kompromis, preto sú ďalej popísané dve možnosti ako to riešiť. Potenciometre musíme zvoliť tak, aby pri celom pohybe ramena práve bol k dispozícii plný rozsah nášho A/D prevodníka v paddle, inak si zbytočne si znížime presnosť. (Využiteľný je odpor 0 až cca 500kΩ, prečo práve tento rozsah je v popise paddle na konci článku (odkaz)).


Rozsahy pohybu jednotlivých ramien spolu s funkciou ovádača sú pekne uvedené v nasledujúcom obrázku:



Príklady:

Ak rameno robí len polovičnú vychýlku .t.j. 180°, použijeme potenciometer 1MΩ, t.j. zapojíme jeden krajný prívod a stredný prívod potenciometra. Ak rameno robí vychýlku 300°, použijeme potenciometer 0.5MΩ, t.j.

zapojíme krajný prívod a stredný prívod potenciometra. Treba si uvedomiť, že presnosť môže byť tak 0.36° až 1.5° a menej (ako utrafíme správnu hodnotu potenciometrov na tej - ktorej osi), ale môže to na mnoho vecí bezpečne stačiť. Ak by sme pridali paralelne odpor aby sme sa dotiahli na správnu hodnotu - pozor, potom treba rátať aj s nelinearitou ! Tomu sa radšej vyhnime, nerobíme robota ktorý má zvárať prívody na čipe ....


Navrhované hodnoty (lineárnych) potenciometrov pre:

uhol                     hodnota

_____________________________________

120°                  1M

180°                  1M

270°                  0.5M

300°                  0.5M

_____________________________________


Pre motorček M1 to bude najlepšie skúsiť experimentálne, pretože ťažko odhadnúť koľko stupňov je otočka, možno by som tam skúsil 2M5. Máme tu malý pohyb, preto je veľká hodnota odporu, stačí  výchylka 1/5 celého rozsahu a máme plný rozsah pre paddle.

Vždy zapojíme vývody tak, aby sme aj pri maximálnom vychýlení neprekročili hodnotu 500kΩ.


(Podľa zapojenia prívodov sa potom hodnota v paddle buď pričíta, alebo odčíta, podľa toho čo nám lepšie vyhovuje, zbytok je programové ošetrenie.)

 


Ak nepoužívame magnetofón, môžeme použiť známe:

Poke 54018,48 

Poke 54018,52

(pôvodne tieto príkazy ovládajú zastavenie a spustenie motora na magnetofóne) na ovládanie osvetlenia. Takto usporíme jeden bit, ale vývod treba brať zo SIO konektora a použiť jednoduchú elektroniku.

Tieto Poke príkazy platia aj pre riešenie B a C, je na Vás či použijete toto riešenie. Treba postaviť aj jednoduchú elektroniku na ovládanie motorčekov, zase homemade riešenie. Inšpirácia sa dá nájsť u modelárov, ovládanie cez tranzistorové výkonové mostíky - napájanie potom môže byť 5V zdrojom. Osobne nevidím veľký rozdiel medzi stavbou elektroniky pre riešenia B a C, líši sa to iba v detailoch - tu sa veľmi neušetrí ani miesto, ani čas a ani výbava.


Samozrejme ešte je tu dôležitá vec - uchytenie potenciometrov a prívody od nich k počítaču ... = dosť otvorené pole pôsobnosti.

________________________________________________________________________________

Riešenie (B):

Osadiť na každú osu potenciometer, t.j. spolu 5ks a robiť prístup cez multiplexor - pomalšie, v jednom okamžiku potom riadime len jeden motorček, 3bity slúžia na ovládanie multiplexoru, 2 bity ovládajú smer a stačí jeden vstup paddle, osvetlenie spotrebuje ešte jeden bit. Namiesto 11 bitov stačí 6, plus 1 paddle vstup. (Tu sa dá aj kombinovať , napríklad: 3 paddle napevno, posledný paddle sa bude multiplexovať.)(3bity riadia multiplexor, 2bity riadia konkrétny motorček, 1bit osvetlenie) Vďaka ovládaniu len jedného motorčeka v jednom časovom okamžiku je pohyb robotického ramena na pohľad menej plynulý. (Treba navrhnúť multiplexor 1 z 5, čipy sú k dostaniu priamo na 1 z 8, akurát nevyužijeme celý rozsah.) Stačia nám joystickové porty - software si musíme napísať sami, práve tým že v jednom okamžiku riadime len jednu osu by mal byť aj program výrazne jednoduchší, ale asi aj výrazne pomalší. Celú elektroniku si treba tiež postaviť.

Navrhované riešenie B:


____________________________________________________________

Riešenie (C):

(Zase osádzame všetkých 5 potenciometrov, po jednom na každú osu motorčekov.) Ak nie je problémom počet potrebných bitov, nastavme 3 kusy paddle napevno spolu s ovládacími bitmi a prepínajme multiplexorom iba menej dôležité ramená - napríklad číslo 4 a číslo 5 a tam potom sa posledný paddle prepína spolu s ovládaním motorčeka. Potrebujeme spolu 10 bitov, plus 4 vstupy paddle. (3 motorčeky x 2bity, 1bit multiplexor, 2 bity motorčeky cez mux, 1 bit osvetlenie) Môžeme naraz pohybovať osami 1, 2 a 3 čo je aj z hľadiska pohybu podstatne efektívnejšie a elegantnejšie, osami 4 a 5 pohybujeme už jednotlivo. Ak pohybujeme osami 4, alebo 5 nemôžeme v tom istom čase hýbať osami 1,2 a 3, niečo je za niečo. Software si musíme napísať sami a musíme použiť napríklad čip 8255, alebo 6520 na rozšírenie počtu bitov pre túto robotickú ruku.  Pretože vstupy paddle sú na joystickových portoch zase si obsadíme aj joy porty. Toto riešenie je náročnejšie na napísanie programového vybavenia. Samozrejme môžeme najprv napísať program, ktorý vždy hýbe v jednom okamžiku len jednou osou a potom sa to snažiť vylepšiť - asi je to najschodnejšia cesta. Tu proste máme už na výber, v riešení B je to dané.

Navrhované riešenie C:

____________________________________________________________

Na tejto GM stránke nájdete manuál v češtine a v angličtine, môžete si vybrať, prepnite sa do záložky dokumentácia, sú to pdf súbory, pozor veľkosť každého je cca 10Mbyte:

Robotic arm manuals

____________________________________________________________________

Aby som stále nebol len v teoretickej rovine popíšem jedno z možných riešení ovládania jednosmerného motorčeka - či už v KSR-10, alebo vo vlastnom zariadení. Najlepší na riadenie jednosmerných motorčekov je H-mostík (H-bridge)- v tomto prípade sa skladá zo 6 tranzistorov, zapojenie prikladám: (Existuje veľa zapojení, toto je jedno z najjednoduchších.)

Zapojenie pracuje nasledovne:

Na jeden vstup privedieme kladné napätie (log.1), na druhom vstupe ostáva zem (log.0), motorček sa roztočí na jednu stranu. Ak zameníme hodnoty na vstupoch roztočí sa na opačnú stranu. Pretože sa jedná o jednoduchý H-mostík, má to aj svoju nevýhodu - nesmieme naraz priviesť na obidva vstupy kladné napätie (log.1) ! Potom by prúd tiekol iba cez tranzistory a tak tieto by fakticky okamžite zhoreli. Na rozdiel od tohoto stavu v kľude môže byť bezpečne naraz na obidvoch vstupoch zem (log.0) - toto treba ošetriť príslušným programovým vybavením, nezabúdajte na to. Samozrejme sa dajú použiť aj výkonnejšie tranzistory spolu s príslušnými chladičmi. Nehodlám tu popisovať všetky možnosti, cestou je aj použitie krokových motorčekov, ale to je zase iná kapitola.

_______________________________________________________________________________

Pridám ešte (22.02.2011, 21.35) niečo fakt zaujímavé na inšpiráciu:

Výborný odkaz na H-mostíky a ešte aj iné veci (link):

http://www.solarbotics.net/library/circuits/driver.html

Práve na tomto odkaze sú ďalšie jednoduché H-mostíky a majú aj ochranuproti "dymu", t.j. ak je na vstupoch naraz log.1 nezhoria tranzistory. Takže ešte ďalšie linky na stránky solarbotics :

http://www.solarbotics.net/library/circuits/driver_tilden.html

http://www.solarbotics.net/library/circuits/driver_4varHbridge.html

Prejdite si aj kompletne tie stránky, stoja za to.

_______________________________________________________________________________

Čo je paddle na ATARI je vysvetlené v tomto článku (link):

ATARI paddle

Prvý článok o robotike a ATARI (link):

Arm your ATARI

Veľmi dobrý článok napísal dnes už citovaný dex . Všeobecne jeho články sa veľmi dobre čítajú a sú dobre zrozumiteľné.

________________________________________________________________________________

07.03.2011 pridaný link (eng):

tu je podomácky vyrobená robotická ruka riadená pomocou malého ATARI

http://www.gweep.net/~prefect/eng/robotics/phase1/

(na videu je krásne vidieť ako to vyzerá ak sa ovláda v jednom okamžiku len jedna os robotickej ruky)

Realizácia - roky: 1989-1990.

_______________________________________________________________________________

10.03.2011

link na ďalší (eng) článok, tu už je niečo o krokových motorčekoch, ovládanie cez joystickový port, basic program je priložený:

http://www.atarimagazines.com/v5n8/StepperMotorRobotControl.html

_____

10.03.2011

link(eng), spústa pdf návodov na stavbu robotov:

http://www.theoldrobots.com/download2b.html

_______________________________________________________________________________

Vaše hodnotenie, Rate post:

Comments

6. 10. 2018 15:52:43 #

trackback

Directory  Atari.

Directory  Atari.

Igi blog |

Info o autorovi

Volám sa Igor Gramblička, bydlisko: Bratislava, Slovakia. Môj nick: Igi. Blog je o mojich záujmoch, predtým som pracoval ako IT špecialista na počítačové siete a redakčné systémy pre viaceré denníky - až som pred rokmi nakoniec v jednom z nich zakotvil a kde som to potiahol až do konca mojej profesnej kariéry.

Rok, mesiac, počet článkov: