Robotická ruka. ATARI. Robot arm.

By Administrator at februára 22, 2011 07: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 ochranu

proti "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  (odkaz na jeho článok je práve

v tomto článku). 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

_______________________________________________________________________________

Rate post:

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



Info o autorovi

Volám sa Igor Gramblička, som rodený Bratislavčan, roky bývajúci na Vajnorskej, už dlhšiu dobu ale Petržalčan.

Tieto stránky (blog) slúžia na zobrazenie mojich záujmov - delia sa na dve hlavné oblasti, viď hlavná strana.