Skundar aka Véldýrið Pottormur

Úr ISIRWiki, frjálsu upplýsingasafni ISIR
Stökkva á: flakk, leita

Bílskúrsgervigreindarátakið Hugbúnaður

Efnisyfirlit

[breyta] Kynning

Markmið og hönnunarforsendur Markmið þessa verkefnis er að útbúa vélknúið farartæki, róbot, sem er stýrt af tölvu byggðum á hefðbundnum x86 tölvugrunni og búið þráðlausum netsamskiptum. Þennan vélbúnað er svo hægt að útbúa með skynjurum og stýra með utanaðkomandi hugbúaði í gegnum þráðlaus samskiptinn. Þar með verður hægt að prófa margvíslegan gervigreindarhugbúnað með alvöru skynfærum og möguleikum á að geta athafa sig í raunverulegu umhverfi. Vélbúnaðinn sjálfan er svo líka hægt að vinna frekar með og halda áfram að hlaða búnaði og skynjurum til að hafa meira til að vinna með á sviði hugbúnaðar eftir að þessu verkefni lýkur. Það er haft að leiðarljósi að vélbúnaðurinn sé sem einfaldastur í samsetningu og sem lægst tæknilegt flækjustig í tölvubúnaði stýringum og skynjun.

Leitast er við að útbúa lausn sem endurnýtir gamlan PC búnað og hluti sem eru líklegir til safnast saman í geymsur, bílskúra og ruslahauga þar sem samfélagið hefur ekki fundi þeim heimili. Út frá þessu markmiði sprettur hugtakið "Bílskúrsgreind" eða "Garage A.I." en það geingur út á að reyna endurnýta vélbúnað sem verið er að úrelda í þeim tilgangi að þróa aðgengileg verkfæri fyrir áhugasama til að kynna sér gervigreind og vinna með hana án þess að þurfa mikin tilkostnað eða fyrirhöfn.

Samhliða smíði vélbúnaðarins þá mun vera unnið að leiðbeiningum sem eiga að hjálpa öðru fólki að smíða svipaðan útbúnað á sem einfaldastan og ódýrastan máta.

[breyta] Grunnurinn

Samantekt á nauðsynlegum hlutum sem við þurfum til að smíða undirvagninn.

Markmið: Að smíða undirvagn fyrir hreyfanlegt vélmenni sem er búinn drifbúnaði, rafhlöðum og stjórnbúnaði.

[breyta] Undirvagninn

[breyta] Yfirlit yfir helztu þætti

Til að búa til vélmenni sem getur keyrt þarf nokkrar lykil einingar svo að dæmið gangi upp. Sama hvernig við ættlum að útfæra okkar smíði þá er alltaf nauðsynlegt að hafa einhverja stjórneiningu sem mun sjá um að lesa af skynjurum, skipa mótorum fyrir verkum og taka ákvarðanir. Einnig þurfum við á einhvernum mótorum að halda sem geta drifið hjólabúnaðinn áfram. Og ekki nóg með það heldur þurfum við að hafa einhver tök á að stjórna því hvernær og hvernig mótorarnir snúast. Til þess þurfum við mótorstýringu. Rafhlöður eru líka nauðsynlegar ef við ættlum okkur ekki að vera með kapal í vélmennið okkar til að geta notað það. Skynjarar eru líka þarfir til að vélmennið geti tekið sjálfstæðar ákvarðanir bygðar á umhverfi sínu. Þar er úr ýmsu að taka og geta þarfirar verið mjög mismunandi. Skynjarar verða teknir fyrir sérstaklega seinna í þessum leiðbeiningum.Aðlokum er nauðsynlegt að hafa einhverskonar grind eða burðarvirki sem heldur á þessu öllu saman.

Þetta eru sem sé helztu þættirnir sem einkenna vélmenni:

  • Stjórntölvur
  • Mótorar og stýringar
  • Rafhlöður
  • Skynjarar
  • Burðargrind

Hvernig smíðum við svo róbotinn?

Til að byrja með þarf að hafa einhverja hugmynd um hvaða útbúnað undirvagnin á að geta borið. Í okkar tilfelli höfum við:

  • tvö rafknúin hlaupahjól sem drífa vagnin áfram (sjá mynd)
  • eitt stykki snúnings vagnahjól (sjá mynd)
  • móðurborð úr PC tölvu og harðandisk (sjá mynd)
  • rafhlöður (úr hlaupahjólunum, sjá mynd)

Einnig er vitað að fleirra þurfi til að fá einhverja virkni í vélmennið eins og:

  • spennugjafa fyrir PC tölvu sem notast við 12-24 Volt (DC/DC Converter)
  • drif til að keyra mótorana (búnaður sem stýrir afli til mótorana)
  • þráðlaust netkort til að fjarstýra vélmenninu (þar sem við ættlum ekki að gera vélmennið allsjálvirkt strax)
  • hleðslutæki til að hlaða rafhlöðurnar

Þegar við höfum tekið saman hvað á að fara í vélmennið okkar getum við gert okkur grein fyrir því plássi sem við þurfum og fundið útfæslu sem hentar okkar vélbúnaði. Þá getum við farið að hanna sjálfa burðargrindina utan um það sem við höfum.

Base level isometric 01.gif

Myndin hér fyrir ofan sýnir í grófum dráttum hvernig grunnurinn á að líta út (þökk sé ofurmannslegum paint hæfileikum mínum). Þarna er búið að merkja inn á staðsetningu PC tölvunar (PC á mynd) og harðadiskinn (HDD á mynd) sem er reistur upp á rönd. Mótorstýringin og rafrásarbretti ásamt lítilli prentplötu með kveiki happi, endurræsingarhnappi og harðadisk gaumljósi sem fylgdi Dell tölvunni sem endaði sem hjarta vélmennisins.

[breyta] Lýsing á samsetningu

Markmið: Smíði og samsetning fyrstu hæðar undirvagnsins og ísetning helstu íhluta svo sem mótorar, rafhlöður og PC tölvubúnaði komið fyrir.

Í síðasta hluta sást gróf mynd af því hvernig undirvagninum er ættlað að líta út. Hann á að vera smíðaður úr áli og plasti. Helstu ástæður þess að ál og plast var fyrir valinu er:

  • Ódýrt hráefni
  • Auðvelt að vinna með það
  • Auðvelt að nálgast það
  • Lítil þyngd
  • Strekt efni sem heldur auðveldlega formi.
  • Ryðgar ekki

Auðvitað eru önnur efni sem koma til greina eins og viður og fleirra og verður að meta það útfrá aðstæðum, efni og getu til að meðhöndla það í valinu á rétta hráefninu. Formaðar ál lengjur Grunn hráefnið sem er notað í þennan undirvagn er mótað ál, svo sem L-ræmur, T-ræmur og I-ræmur, eins og sjást hér að neðan.

Með þessum formum má byggja hvaða kassalaga form sem er og er bæði auðvel að saga þessi stykki sem og að bora eða snitta.

Efnið sem við þurfum til að byrja með er:

Efni Stærð Fjöldi Hvaðan Kostnaður
Plastplata (4mm) 55x30 cm 1 Málmtækni hf
Ál-vínkill (30x30x3) 55 cm 1 Málmtækni hf
Ál-vínkill (30x30x3) 53 cm 2 Málmtækni hf
Flatál (30x3mm) 12cm 2 Málmtækni hf
Flatál (30x3mm) 55cm 1 Málmtækni hf
Maskínuskrúfur (3mm) 6mm/8mm 2 / 6 BYKO
samtals kr.

Ál-vínklarnir mynda ramma utan um botnplötuna eins og sést á myndini hér fyrir neðan. Flatál stubburinn er notaður til að veita stuðning milli plötunar og vínkilsins á endanum þar sem hann liggur 3mm frá plötuni sjálfri útaf hinum vínklunum.

Ég mæli sterklega með því að mæla fyrir götum með rennimáli eða málbandi. Nota síðan síl eða jafnvel stálnagla (eins og ég gerði) til að merkja, Nóg er að mynda smá dæld í yfirborði svo að borinn nái betri rásfestu þegar við byrjum að bora.

Base level 01.gif

1. Ál-vínklarnir tveir (53 cm) eru settir á first meðfram langhliðunum á plötunni þannig að endarnir nema við aftari brúnina (sem snýr upp á myndinni). Lengsti vínkillin er síðan settur þvert á hina við aftari enda plötunar. Og litli flatál stubburinn settur þarna á milli plötunar og vínkilsins fyrir miðju. Ég minni á það að merka fyrir götin áður svo að þau lendi á réttum stöðum.

Gott er að nota klemmur eða þvingur til að halda vínkulum þétt upp að plötunni þannig að vínkillinn færist örugglega ekki úr stað þegar við borum. Borum síðan 2,5mm gat með málmbor í sitthvorn endan alveg í gegn. Við botum ekki strax fyrir miðjugötunum (gerum það í næsta skrefi). Borum svo fyrir miðjugötunum tvemur við enda plötunar.

Base level 02.gif

Losum klemmurnar og snittum öll götin á plötunni með 3mm snitt-tapa. Það er hollast að vanda sig við að snitta slastið því að of mikið átak eyðileggur skrúfgangin. Ef það gerist er oftast hægt að víkka út gatið með 3mm bor og nota lengri skrúfu og ró og skinnu á endanum eða nota sjálfbornandi boddí skrúfur. Því næst borum við út öll götin í álið með 3mm bor til að 3mm maskínuskrúfurnar komist í gegn.

Að þessu öllu loknu getum við prófað að skrúfa öll stykkin saman og sjá hvort að þau falli ekki vel saman. Ágætt er að herða ekki skrúfurnar of mikið þar sem að skrúfgangurinn í plastinu getur eyðilagst (það má samt yfirleitt bjarga sér frá því eins og ég lýsti að ofan).

Base level 03.gif

Næst er að koma fyrir þverbitanum (55cm langur flatálsbútur) og tvemur T-bitum undir plötunni. Staðsetning þverbitans er fengin útfrá grind hlaupahjólsins og þannig að bitarnir sem skara út sitthvorum megin sitji á grindinni eins og sést hér á myndini að neðan. T-bitarnir milli þverbitanna og stilla af hlaupahjólsgrindurnar þannig að þær séu beinar á stefnu undirvagnsins.

Building chassie level1 3.jpg

Svipuð tækni er notuð við að festa þetta saman. Nota klemmur og þvingur til að halda bitunum á réttum stað og bora svo í gegn með 2,5 mm bor. Bora síðan í gegnum álið með 3mm bor og snitta götin í plastplötuni með 3mm snitt-tapa.

[breyta] Drifbúnaður

Lýsing á virkni hjólabúnaðarins og uppsetningu.

[breyta] Mótor

Lýsing á virkni hjólabúnaðarins og uppsetningu.

Þar sem notast er við tilbúinn hlaupahjól þá gerir það lífið auðveldara. Mótorinn, gírun og staðsetning er þegar ákvörðuð og því er fátt annað að gera en að koma þeim fyrir. Nánari lýsingu á hlaupahjólinu má finna á hlekknum hér fyrir neðan.

Hlaupahjól

Hvort drifhjól fyrir sig saman stendur af:

Motor2.jpg

  • Mótor
   Afl: 100W
   Fæðuspenna: 24Vdc
   Lengd: 10cm (12cm með öxli)
   Þvermál: 6,8cm
   Tennur á öxli: 16
   Framleiðandi: Unitemotor

--Freyr Magnússon 23:41, 5. september 2005 (GMT) Ykkur til fróðleiks þá eru þessir tveir mótorar alltof öflugir fyrir Skundar littla. Þarf að takmarka hraðan til að ekki hljótist slys af (hefur ekki ennþá slasað neinn 7, 9, 13 :). Ef burðabygging leyfir þá fer kvikindið hæglega að því að rúnta um með 100 kg. á bakinu.

Wheel beltdrive brake.jpg

  • Hjól með áföstum tönnum
   Þvermál: 13,8 cm
   Ummál: 43,5 cm
   Fjöldi tanna: 88
  • Drifbelti
   Lengd: 40 cm
   Breidd: 14mm

Wheel and motor frame2.jpg

  • Rammi sem heldur þessu saman

Rammin er úr járni og er tekinn nánast óbreyttur beint frá hlaupahjólunum. Rammin heldur líka rafhlöðunum fyrir mótorinn í plast bakka.

[breyta] Mótorstýringin

Til að geta stýrt róbotinn þá þarf að vera hægt að stjórna því í hvaða átt mótararnir snúa og hversu hratt.

Það sem stýrir stefnunni á jafnspennumótor (eins og við notum) er pólunin á fæðuspennuni. Það skiptir litlu máli hvor áttin snýr hvert þar sem við getum alltaf víxlað vírunum. Til að geta skipt um straum stefnu á mótornum er hægt að gera ýmislegt og henta aðferðirnar misvel í okkar tilfelli.

Rásin sem er notuð til að stýra straumstefnuna er kölluð H-brú (e. "H-bridge"). Þar er fjórum hliðum (transistor/relay) raðað saman þannig að tvö tengjast í jákvæðu spennuna (lesið; plús(+)) og tvö í neikvæðu (-). Hinn endinn tengist í mótorinn sem væri í miðju H-inu. Síðan er opnað fyrir tvö hliðanna þannig að þau leiði (straum) frá plús i gegnum mótorinn og svo niður í jörð. Til að víxla stefnunni þér er lokað fyrir hliðin og hin tvö opna þannig að straum stefnan snýst við.

Hbridge.gif

Mótorstýringin sem við notum er frá Devantech í Bretlandi og kallast MD22. Þessi stýring hefur upp á margt að bjóða:

Md22.jpg

  • Stýrir tvem mótorum í einu
  • Hvor mótor má draga allt að 5A í keysli (meira með auka kælingu)
  • Margar leiðir til að stýra hraða og stefnu
  • Getur talað með I2C samskipta hættinum

Mótorarnir sem við ættlum að keyra eru skráðir sem 100W og keyra á 24V. Við fulla keyrslu þá dregur hvor mótor fyrir sig 4,17A ( 100W/24V = 4,17A ). MD22 stýringin er því nægilega öflug til að keyra mótorana okkar. MD22 stýringuna er hægt að stjórna með ýmsum hætti. Hægt er að nota 0-5V til að stýra hvorn mótor fyrir sig eða nota I2C til að hafa samskipti við mótorinn.

[breyta] Samskipti

Samskiptin við mótorstýringuna fara fram í gegnum I2C sem er samskiptastaðall. MD22 einingin hefur möguleika á I2C og við munum útbúa millistykki fyrir parallel portið á PC tölvunni sem gerir okkur kleift að stjórna I2C gagnabrautinni þaðan.

[breyta] Teikningar

  • Heildar yfirlits teikning
  • Rafkerfi: Rafhlöður, hleðslu- og spennustjórn
  • Mótordrif
  • I2C/Parallel breytistykki
  • Straumkapal fyrir tölvu

--Freyr Magnússon 23:36, 5. september 2005 (GMT) Hér vantar allar teikningar sendið á mig skeyti ef ykkur vantar þessar rásir.

[breyta] Prófanir

Prófanir á mótor: Til að prófa mótorinn einan og sér þarf að nota +24V dc spennugjafa eða rafhlöðu sem ræður við minnst 5A straum. Það er hentugt að nota súkkulaðitengi(!mynd) og snúrur með krókódílaklemmur(!mynd) Ég mæli með að nota öryggi (5A tregt í okkar tilfelli) og rofa til að tengja rafhlöður eða spennugjafa við mótor. Það borgar líka sig að prófa að víxla straumáttini og snúa mótorinn í hina áttina. Ef það virkar og mótorinn snúst í báðar áttir óþvingað þá erum við í góðum málum. Það ráðlegt að mæla straumökuna með að setja straummæli(!link) raðtengdan við mótorinn til að vera viss um að mótorinn sé ekki að draga óhóflegan straum.

  • Straummæling á mótor með engu álagi og við fullt álag (mÓtor stopp)

Prófanir á ökueiginleikum:

  • Bakk/áfram
  • Beygja
  • Hraði út á öxul

Prófanir á mótorstýringu:

Þegar búið var að smíða parallel í I2C breytinn þá var fátt annað að geta en að tengja við rafhlöðurnar og tengja saman. Til að byrja með set ég allt saman á borðinu í verkstæðinu mínu til að auðvelda aðgengi til að mæla og tengja. Ég útbjó mér stilli til að stýra mótornum handvirkt og stillti mótorstýringuna(M22 frá Devantech) til að taka við 0-5V merki.

Spennurnar þýða þá:

  • 0V er þá fullferð afturábak
  • +2,5V stoppar mótorinn
  • +5V fullferð framávið
   +5Vdc o----+
              |
             +++
             | |
             | |<----o 0-5Vdc tengt inn á SCL inntak á M22 mótorstýringuni
             | |
             +++ 
              |
    0V   o----+

Best er að nota línulegt stilliviðnám, 10-100kOhm. Og stilla það nokkurvegninn fyrir miðju áður en rafmagn er sett á stýringuna.

Það er líka gott að nota rofa (sem þolir 10A+ straum) til að kveikja á 24Voltunum.

Þegar ég tengdi 24V leiðsluna þá brá mér í brún þegar neistaði í tenginu. Fyrst hélt ég að ég hefði gert einhverja vitleysu (fyrir utan að vera ekki með rofa) og ættlaði að mæla hvort að það væri skammhlaup. Þá mæli ég 23V á milli pólana á tengibrettinu fyrir á milli mótorstýringarinar og rafhlaðanna. Ég var með mótorstýringuna tengda við tengibrettið en ekki rafhlöðuna og þótti það mjög einkennilegt að mæla einhverja spennu þarna. Ég gerði mér þá grein fyrir því að ég væri að mæla yfir stóran þétti á mótorstýringuna sem var að gefa frá sér þessa spennu. Það sem hafði gerst er að þegar ég tengi raflöðuna þá byrjar þessu stóri þéttir að hlaða sig (þar sem hann hefur verið tómur) og það gerirst mjög hratt og verður eitt augnablik heilmikill straumur í rásinni. Þetta er allt mjög eðlilegt og hefði maður ekki orðið var við þetta hefði maður notað rofa. En þar sem þéttir var nánast fullhlaðinn þá var enginn slík straumtaka næst þegar ég gerði tilraun til að tengja rafhlöðurnar (reyndar er hún einhver en ekki nægjanleg til að valda neistum).

þegar búið var að tengja mótor við stýringuna þá var sett í gang. Útkoman var mér mjög að skapi. Hjólin keyrðu vel við hægan snúnig sem og á hæsta hraða. Þegar hraðanum var breytt þá var ekki að sjá neina þrepun á hraða og var hraða aukning/minkunn mjög smurð.

Ég var samt var við hljóð í belta búnaðinum og náði ekki að einagra upptökin. Það virðist vera að það sé eitthvað pínulítið misgengi eða skekkja á mótornum miðað við hjólið. Einnig eru hjólinn ekki fullkomlega bein og þurfti meðal annars að stilla hjólöxulinn til að beltið snuðaði ekki utan í rammanum sem heldur því. Þetta hljóð virtist koma á báðum hjólunum þegar þau snúa í öfuga átt miðað við upphaflegu hönnunina sem er áfram eins og róbotinn er hugsaður núna. Þetta mun þarfnast frekari athugun síðar meir.

Prófanir á tölvubúnaði:

  • ræsa tölvu
  • skoða BIOS
  • keyra stýrikerfi

[breyta] Viðbætur

Bættar hafa verið auka hæðir á framanverðan þjarkinn. Hugmyndin með því er að geta komið fyrir auka búnaði þar þegar nýjum búnaði er komið fyrir. Einnig var vélmennið hannað með það í huga að það ætti að hafa samskipti við fók og því var ekkert verra að hafa hann hærri í loftinu.

Skundar var klæddur í krómaða pappabrynju og lét vaxa á sig horn og mikin feld fyrir sýningu í Vísindatjaldi Húsdýragarðsins í ágúst 2005. Þar komn hann fram undir sviðsnafninu "Véldýrið Pottormur" og vakti mikla kátínu yngstu gestanna sem fengu að grípa í "taumana" á Pottormi og reyndu eftir bestu getu að beisla ótemjuna. Pottormur reyndi oftsinnis að brjóta sér leið út úr girðingunni sinni og var næstum því sloppinn eitt skiptið. Mætti halda að honum hafi eitthvað misboðið þetta fjögra klukkutíma IKEA próf sem hann þurfi að þola af hálfu aðdáenda sinna. Sumir klöppuðu honum og greiddu með greiðu sem einginn veit hvaðan kom og var það kannski til þess að ekki fór verr.

Pottormur.jpg

Þess má geta að Pottormur starfaði í 4,5 klst. þennan dag án þess að bragða rafmagn úr innstungu. Og sést ótemjan hér á mynd eftir þolraunina fullhraustur en sársvangur.

[breyta] Rafbúnaður

Það er margt sem þarf að tengja saman í rafdrifnu vélmenni og því margt sem getur farið úrskeiðis ef ekki er rétt gert.

Hér að neðan er yfirlitsmynd af rafbúðnaði Skundar. Þetta er ekki lögleg rafmangsmynd en hún sýnir hvað tengist í hvað í grófum dráttum.

Rob0 diagram.png

[breyta] Aflkerfið

Allur rafmagnsbúnaður þarf að fá fæðispennu einhverstaðar frá. Hér verður fjallað um hvernig rahlöður eru tengdar, hvaðan PC tölvan fær rafmagn og hvernig farið er að því að hlaða rafhlöðunar.

[breyta] Parallel í I2C umbreytir

I2C er samskiptastaðall sem hefur verið þróaður af Phillips. I2C notar tvo pinna til samskipta, annan (SDA) til að senda gögn og hinn til að klukka (SCL) hvern bita á SDA. SCL stýrir sem sé hversu hratt og hvernær SDA sendir gögnin sín. I2C er gagnabraut þar sem mörg jaðartæki geta talað á sömu tvemur línunum. I2C gengur í báðar áttir (bi-directional) og gerir ráð fyrir því að einn stýri samskiptum (master) og hinir (jaðartækin) hlíða (slave). Samskipta hraði á I2C gagnabrautini setur numið 100kbs (bitar á sekúndu). Reyndar eru I2C kubbar sem tala á 400kbs og jafnvel 1Mbs+ en það er ekki almenna reglan. Það er masterinn sem ræður þessum sendi hraða með því hversu hratt hann klukkar bitana yfir með SCL bitanum.

(I2C timing mynd)

Parallel portið: Parallel (Prentara) portið á PC tölvunni er notað til að mynda I2C gagnabrautina. Það eru til reklar (drivers) fyrir linux (og reyndar Windows líka) sem nota parallel portið. Parallel portið á PC tölvunni er gætt þeim kostum að þar er hægt að notast við einstaka bita (pinna). Þar er að finna átta pinna gagnabraut þar sem hægt er að skrifa og lesa heilt bæti í einu (eins og flestir ættu að vita saman stendur eitt bæti af 8 bitum).

Þannig að ef skrifað væri út talan 0 (hex 00) á portið þá eru allir átta bitarnir 0 þar sem að 0 á tvíundarformi (binary) er talan 00000000. Ef það væri skrifað út talan 1 (hex 01) þá væri maður aðeins að kveikja á fyrsta bitanum þá stæði á portinu 00000001. Talan 17 (hex 11) myndi þá kveikja á fyrsta og fjórða bitanum (binary 00001001). Þetta er allaveganna grunn hugmyndin. Reyndar í þessum tilbúnu reklum fyrir linux er notast við fleirri bita á parallel portinu (control og status bitum).

Í raun má nota parallel portið til að stjórna og lesa allskonar skynjara og aukabúnað t.d. lesa af rofum og stjórna mótorum. En það er varasamt að tengjast beint í portið án þess að hafa einhverskonar rásir til að verja það óæskilegum spennum og straumtöku. (Parallel pinna mynd)

Við þurfum í raun ekki að vita svo mikið um hvernig þettar virkar til að geta notað I2C á linux PC vélinni sem við notum.

Nokkrir fróðlegir hlekkir: Hér er síða sem lýsir vel grundvallar atriðum í I2C staðlinum (enska) hér er síða sem lýsir notkun i2c í róbotum með linux (enska)

Nauðsynlegir reklar (linux 2.6.10):

  • i2c.ko
  • parport.ko
  • i2c-algo-bit.ko
  • i2c-parport.ko

Notar module parameter type=3 til að það virki með rásinni eins og hún er hér að neðan. Ef rekillinn er í kjarna þarf að línan

i2c-parport.type=3] 

að koma fyrir í bootloadernum. Heppilegast er að byggja i2c-parport.ko inn í kjarnan.

I2C rás fyrir parallel port

Efnislisti:
1x 74LS05 hex inverter (open collector)
1x 7805 1A +5Vdc spennureglari (breytir fyrir okkur +12Vdc í +5Vdc)
6x 10kOhm viðnám (1/4watt)
2x 0.1uF keramíkdiskaþéttar
1x vero-bretti (gatað tengibretti með koparrennum til að lóða á)

Rásamynd:

Device                                                      PC
Side          ______________________________Vdd (+)         Side
               |    |            |    |
              ---  ---          ---  ---
              | |  | |          | |  | |
              |R|  |R|          |R|  |R|
              | |  | |          | |  | |
              ---  ---          ---  ---
               |    |            |    |
               |    |      |\    |    |
SCL  ----------x--------x--| o---x------------------------  pin 15
                    |   |  |/         | 
                    |   |             |
                    |   |   /|        |
                    |   ---o |-------------x--------------  pin 2
                    |       \|        |    |
                    |                 |    |
                    |                 |    |
                    |      |\         |    |
SDA  ---------------x---x--| o--------x-------------------  pin 10
                        |  |/              |
                        |                  |
                        |   /|             |
                        ---o |------------------x---------  pin 3
                            \|             |    |
                                           |    |
                                          ---  ---
                                          | |  | |
                                          |R|  |R|
                                          | |  | |
                                          ---  ---
                                           |    | 
                                          ###  ###
                                          GND  GND 

Prófanir:

Til að prófa búnaðinn og rekilinn er bezt að hafa i2c búnað með þekktu vistfangi við hendina. Tengja hann við SCL, SDL, +5Vdc og jörð á breytistykkinu og prófa að tengjast með einföldu forriti skrifað til að lesa eitt minnishólf úr búnaðinum.

hér á að vera demo kóði

Annað: Það er vert að minnast á það að þegar við ættluðum að uppfæra Linux stýrikerfinu eittskiptið þá kom það í ljós að linux header skrárnar voru gamlar (2.4.x) og þegar þær voru uppfærðar þá hætti i2c að virka sökum þess að búið vara að skipta út i2c.h fyrir aðra skrá. Málið var leyst með því að setja gömlu header skránna aftur upp og er því ekki búið að aðhæfa Rob0MotorControl eininguna til þess að nota nýju skilgreininguna.

[breyta] Skynjarar

  1. Hljóðskynjun
  2. Vefmyndavél
  3. Hreyfiskynjun

[breyta] Tölvubúnaður

[breyta] Vélbúnaður

Lýsing á tölvubúnaði vélmennisins, tengingum og aukabúnaði.

Þessi síða lýsir tölvubúnaðinum sem notaður er í verkefninu

Tölvan sem var notuð er gömul Dell borðtölva.

  • Örgjörfinn: 450MHz
  • Innraminni: 384MB (3x128MB)
  • Harðurdiskur: 6GB, 5400rpm, það er verið að skipta þessum út fyrir 2GB CompactFlash disk og IDE breytistykki (sjá að neðan)
  • Tengi: Parallel, serial, USB 1.1, LAN, PS2 (lykilb./mús), VGA
  • PCI og ISA raufar

Mainboard in chassie.jpg

Nýr harðurdiskur með engum hreyfanlegum íhlutum.

CompactFlashAndIDEAdaptor.png Nýji diskur keisarans

Hér er mynd af tölvunni á meðan hún var ennþá í upprunalega kassanum. Öll tengi við jaðartæki eru á ofanverðri myndinni. Innra minnið er svo hægramegin. Á myndini sést líka móta í sér Dell rafmagnstengi fyrir spennugjafan. Það á eftir að vera til vandræða þar sem að Dell tók upp á því að víxla alla pinna í 20pinna ATX tenginu auk þess að notast við sér tengi fyrir örgjörfan sjálfan. Þar sem að við getum ekki notað upphaflega spennugjafan á nema til að prófa búnaðinn þá þarf að smíða kapal sem víxlar frá hefðbundnu ATX yfir í Dell útgáfuna. Annars þá munum við eyðileggja annað hvort móðurborðið eða spennugjafan eða bæði.

Mynd:Mainboard slot holder.jpg

Móðurborðið er með sér korti sem að tengir PCI raufarnar. Ef þær eru notaðar þarf að gera ráð fyrir festingu sem heldur í pci kortin svo að þau séu ekki dinglandi í lausu lofti.

Myndin hér til hægri sýnir PCI haldarann áður en hann var tekin úr kassanum.

Power reset leds.jpg

Bretti með slökkvirofa og endurræsingar rofa ásamt LED ljósum fyrir afli og harðadiskinn var að finna í kassanum. Það var lítið mál að losa það og setja í róbotinn þar sem að það var tengt með flatkapal við móðurborðið.

Base level assembled3.jpg

Þegar allt er komið á sinn stað þá er afstaðan eins og hér sýnir. Þessi mynd sýnir þó ekki staðsetningu spennugjafans fyrir tölvuna.

  • Spennugjafi fyrir Dell móðurborðið:

Við vali á spennugjafn fyrir móðurboðið voru nokkur atriði sem þarf að hafa í huga.

  • Hver er orkunotkun tölvubúnaðarins
  • Hvaðan fær örgjörfinn aflið sitt
  • Hver er fæðuspenna spennugjafans

Til að svara firstu spurningunni þá var ágætt að skoða upprunalega spennugjafan fyrir Dell tölvuna. Þar má sjá að spennugjafinn er 145W og gerir ráð fyrir bæði floppy-drif og geisladrif fyrir utan harðadiskinn og móðurborðið sjálft. Hér er hlekkur á reiknivél sem reiknar aflnotkun fyrir tölvu. Mér finnst líklegast að með eingöngu harðandisk og USB. tengdan við móðurborðið að orkunotkun sé undir 100W. En ég mun gera betri útekt á því seinna.

Til að svara næstu spurningu skoðar maður aftur spennugjafan og skoðar hverju hann skilar í hverri spennu fyrir sig. Svo þarf að passa að spennugjafinn sem settur er í staðinn samræmist þessum kröfum. Í okkar tilfelli þá tekur móðurborðið örgjörfa spennuna frá 3,3V úttakinu. Því er nauðsynlegt að nýji spennugjafinn geti skilað nægri spennu þar. Það má líka sjá það með að mæla hvað spennugjafinn (gamli) gefur út á aukatenginnu. Auka tengið er sértaklega fyrir það að sjá örgjörfanum fyrir afli.

  • Breytistykki fyrir spennugjafan:

Þegar ég skoða power tenglana fyrir móðurborðið komst ég að því (með hjálp google) að Dell hefur um árabil notast við sér útgáfu af spennugjöfum og móðurborðum sem eru ekki ATX samhæfð. Þeir breyta bæði staðsetningu víra og fjölda af hverri tegund líka. Vondasti parturinn við þetta er sá að að það er notað sama tengið og ATX og ef maður notar Dell búnað með hefðbundnum ATX samhæfðum búnaði (hvort sem það er móðurborð eða spennugjafi) þá mun annaðhvort eyðileggjast.

Til að leysa þetta vandamál þarf að búa til breytistykki sem að tengir rétt á milli þessara tveggja útgáfa svo að hægt sé að tengja ATX spennugjafa við móðurborðið.

[Lýsing] á tenglum fyrir PC spennugjafa ásamt úttekt á muninum á Dell tenglum og venjulegu ATX

[breyta] Stýrikerfi

Útlistun á stýrikefi Skundars og helstu áherslum við uppsetningu.

Skundar keyrir Gentoo útgáfuna af Linux með 2.6 kjarna.

Hér er ekki rétti staðurinn til að vera kenna fólki á Linux og uppsetningu á því stýrikerfi. Ég reyni því frekar að tiltaka það sem einkennir mína uppsetningu og gæti gera hana frábrugna öðrum. Fyrir nánari upplýsingar um línux bendi ég á Tölvunarfræði:Linux fyrir byrjendur.

Það er ekki gert ráð fyrir grafískt viðmót (lesist gluggakerfi) á Skundari. Ég ekki ætlað mér að styðja það. Enda er hugmyndin að gera slíkt frekar í gegnum aðrar nettengdar tölvur.

[breyta] Linux/GNU Gentoo uppsetningin

  • I2C stuðningur
  • Músa stuðningur
  • Hljóðkort
  • SSH stuðningur. Til að geta tengst í gegnum skel með tól eins og Putty og SSH frá annari tölvu.
  • SCP stuðningur. Hentugt til að flytja skjöl á milli tölva.
  • Net stuðningur
  • Þráðlaus netstuðningur

[breyta] Kjarna stillingar og áherslur

  • Stuðningur við hljóðkort. Bæði innbyggða hljóðkortið og Soundblaster 16 ISA kort hafa reynst óvirk og er því ekkert virkt hljóðkort á skundari sem stendur
  • USB stuðningur. Nauðsynlegt fyrir jaðartæki.
  • I2C stuðningur. I2C er samskiptastaðall sem er útfærður á hliðræna tenginu (e. parallel port).

[breyta] Uppsettir ebuild pakkar

  • libgii - Safn sem sér um að tala við mýsnar.
  • libjpeg - Notað til að pakka og afpakka myndir í JPEG snið.
  • libpng - Notað til að pakka og afpakka myndir í PNG snið.
  • VIM - Textaritill fyrir skellina
  • Hotplug - Stuðningur við að skipta út hugbúnaðir (e. firmware) fyrir USB tæki á keyrslutíma.
  • Wireless-tools - Hjálpartól fyrir þráðlaus samskipti (t.d. iwconfig tólið)
  • gcc - Tólið sem þýðir C++ kóðan og öll ebuilds.

[breyta] Reklar

Samantekt á linux reklum sem eru nauðsynlegir til að tala við jaðarbúnað.

Reklar eru annað hvort byggðir í kjarna eða bættir við sem utanáliggjandi kjarna eining (e. module). Innbyggðar einingar þarf að þýða með kjarnanum. Utanáliggjandi einingar er settar inn í kjarnarn með linux skipuninni modprobe. (prófið 'man modeprobe' úr linux skelinni)

Eftirfarandi búnaður þarf sér rekil til að starfa:

  • I2C samskpti fyrir parallel port. Notast er við heimasmíðað parallel í I2C breytistykki.
    • rekill: i2c-parport og parport er að finna í linux kjarnanum á fleztum útgáfum
    • það þarf að setja stillingar með þessari einingu til að segja kjarnanum hvaða pinna á parallel portinu hann á að nota.
  • Vefmyndavél. Vélin sem notuð er heitir Logitech Quickcam Express (eldri útgáfa)
  • Þráðlaust netkort. Netkortið sem við erum að nota er usb-dindill frá MSI sem heitir UB11B

[breyta] Hugbúnaður

[breyta] Söfn og pakkar úr linux heiminum

  • Psyclone frá Communacative Machines - Samskiptakerfi sem gerir ólíkum einingum að hafa samskipti sín á milli. Psyclone er helzta samskipta tólið í Skundari og mun gera það kleyft að hugbúnaður utan vélmennisins geti stýrt honum í gegnum þráðlaus samskipti.
  • CoreLibrary - C++ útfærsla af kjarna klösum í Java ásamt öðrum gagnlegum klösum
  • libjpeg - Safn notað við að pakka mefmyndavéla ramma yfir í Jpeg form
  • libgii - Safn notað fyrir músainntak

[breyta] Sérsmíðaðar einingar

Margar einingar hafa verið smíðaðar í fyrir Skundar. Það verður ekki fjallað um þær hér nema að takmörkuðu leiti. Fylgið wiki hlekkjunum til að fá nánari upplýsingar um samsetningu og notkun einstakra eininga.

Hverri einigu er ættlað að lifa sjálfstæðu lífi og á að vera sem óháðurst Skundari sjálfum eða þessu verkefni til að aðrir geti reynt að nýta þær í sínum verkefnum. Hver eining fær því sína eigin síðu og mun umfjölluninn hér því snúa að samspili þeirra en ekki útfærslu hverrrar fyrir sig.

[breyta] Yfirlit yfir allar grunneingingar

Hér má sjá hvernig mismunandi einingar vélmennisins tengjast innbyrðis í gegnum Psyclone þjóninn. Engar einingar tala beint við aðrar einingar og eru örvarnar milli eininga annara en Psyclone til að sýna hvar skeytin sem þær senda enda.

Psyclone Modules.png

Planner einingin er utanaðkomandi eining sem sendir skipanir til MotorControl og hlustar á Track skeytin og les DataSample strauminn með myndefni frá Vision einingarinnar. Þessi ýmindaða Planner einingin er ekki til umræðu í þessum leiðbeiningum enda er markmiðið að gera vélmennið tilbúið til að láta stjórnast af slíkri eða slíkum einingum.

[breyta] Grunneiningar

Þessar grunneiningar eru notaðar í Skundari og sjá um samskipti við vélbúnað og að vinna úr upplýsingum til að geta fínstýrt mótorum. Þær eru allar Psyclone samhæfðar og tala hver við aðra í gegnum Psyclone þjón sem keyrir á vélinni.

  • Rob0Mouse sér um að fylgjast með músagangi og póstleggja þær upplýsingar sem MouseMotion skilaboð. Það er hægt að lesa fleirri en eina mús í einu og eru notaðar tvær á Skundari. Notar libgii til að lesa mýs
  • Rob0Tracker sér um að lesa MouseMotion skilaboð og túlka stefnnu og færslu vélmennisins og póstleggja þær upplýsingar sem Track skeyti.
  • Rob0MotorControl sér um að skrifa skipanir út á mótora samkvæmt DiffMotion skilaboðum. Notar I2C rekill til að tala við mótorstýringar
  • Rob0MotionControl sér um stýra mótorum út frá staðsetningu. Tekur við Track skilaboð sem segja til um stefnu, hraða og staðsetningu og svo Cmd2dMove skeyti sem segja til um hvert á að fara og hversu hratt. Til þess beytir eininging FuzzyLogic sem reglar hraða og stefnu.
  • VisionServer tekur við gögnum frá video4linux (v4l) rekli og pakkar sem jpeg og sendir áfram á Psyclone sem svo á að koma þeim yfir á áðra tölvu til frekari vinnslu. Rob0Vision er svokallaður Internal Module og er safn (e. dynamic library) sem er vakið af Psyclone þjóninum sjálfum og skapar því ekki neina netumferð við að skila af sér gögnunum til Psyclone þjónsins. VisionServerskilar römmum frá sér sem Bitmap straum. Einingin styður að sendur sé master rammi með tilteknu millibili og sendir alla aðra ramma sem mismunamynd, BitmapUpdate, frá fyrri ramma.
  • MouseTracker er arftaki Rob0Tracker og Rob0Mouse. MouseTracker er gerður að innri einingu (dynamic library) og sameinar báðar einigarnar sem að henni er ættlað að leysa af hólmi. Það mun draga úr skeyta sendingar og gera mótor reglun markvissari.

[breyta] Tól til eftirlits og prófana

Þessi tól voru smíðuð til að auðvelda prófanir og til að fá sjónræna svörun frá vélmenninu. Þeim er öllum ættlað að keyra á annari tölvu enn vélmenninu sjálfu og tengjast með þráðlausa netinu við vélmennið.

  • MouseMonitor er lítið gluggatól sem birtir MouseMotion skeyti frá Rob0Mouse. Það birtir líka uppsafnaða summu fyrir dx og dy. Þetta tól var notað til að mæla fjölda pixela fyrir hvern meter sem músin ferðast.
  • TrackerMonitor er tól sem getur fjarstýrt vélmenninu með því að senda DiffMotion skeyti til Psyclone þjónsins. Einnig birtir það Track skeyti á skjánum sem rauðalínu með punkti á endanum sem táknar stefnu vélmennisins og sýnir ferðir vélmennisins sem grænan miðara sem skilur eftir sig slóða sem dofnar með tímanum.
  • MotionRemote er ættlað að prófa Rob0MotionControl. Það getur framleitt fölsk Track skilaboð til að hægt sé að blekkja Rob0MotionControl til að halda að hann sé á ferð. Track boðunum er stjórnað á með tvemur stikum fyrir hraða og stefnu. Það framleiðir líka Cmd2dMove skilaboð sem er einnig tjórnað tvemur stikum fyrir hraða og stefnu. MotionControl hlustar svo á DiffMotion boð og birtir sem stiku fyrir sitthvorn mótorinn. Einnig hlustar MotionControl á Track boð og birtir á skjánum. Það er hægt að velja hvort að einingin sendi og hlusti á Track skeyti eða hlusti bara á þau sem berist.
  • RoboSim er hermilíkan sem að er ættlað að líkja eftir ferðum Skundar og hjálpa við að prófa stýribúnað án þess að gera það beint á vélmenninu sjálfu. Það er ótvíræður kostur þar sem að vélmennið er stórt og kraft mikið og getur hæglega valdið sér sjálfu og öðrum skaða ef ekki er farið með gát.

[breyta] Staðlar

Til að reyna samræma kerfi og hluta þess þá er reynt að notast við staðla. Þeir staðlar sem eru notaðir hér eru enn sem komið er ekki margir mér finnst samt þess virði að minnast á það.

  • OpenAIR er staðall sem lýsir samskipta skeytum. Psyclone notar þennan staðal fyrir allar skeyta sendingar og útfæra allar einigar þennan staðal í gegnum CppAIRPlug eða JavaAIRPlug.

[breyta] Module Manifesto

Þetta er lýsing á staðlaðri virkni eininga. Í ljósi þess að vélmennið mun samanstanda af mörgum mismunandi einingum.

This is a guideline to create a standardized module functionality. This concept could be expanded to create a module tempelate for autogenerated modules in a psyclone based development system/tool.

A module: is launched as a console program defines commanline arguments default cmd arguments are

  • help displays syntax needed to launch the module including all the arguments.
  • verbose=<level> specify level of emitted process information by the module.
  • server=<host:port> specify the psyclone to communicate with
  • spec=<xml specsheet> load a specific spec sheet
  • makedefault save the selected parameters (or xml specsheet) as the the default xml specsheet
  • createspec create a default xml config file so that it can be modified looks for a default specification XML sheet ( modulename.xml ) containing all the arguments configurable by the module.

Accepts messages of types:

  • namespace.modulename.Initialize
  • namespace.modulename.Shutdown
  • namespace.modulename.Sleep
  • namespace.modulename.Awaken
  • namespace.modulename.use.Specifications // accept module XML control spec from external module or whiteboard

Sends messages of types:

  • namespace.modulename.Ready send after having initialized the module.
  • namespace.modulename.Shuttingdown send as notification to listening modules that this module is shutting down
  • namespace.modulename.Error standard error message (I think of this as an Exception message to be caught by another module)
  • namespace.modulename.read.Specifications send module XML control specs to another module or whiteboard

[breyta] Áhugaverðir staðlar og rammar

Hér eru nokkrir hlekkir sem geta verið áhugaverðir í ljósi staðla og ramma sem varða vélmenni og rauntímastýringar.

  • OROCOS rammi fyrir rauntíma verkefni á svið vélmenna og þjarka
  • RETF drög að ramma fyrir rauntíma verkefni á svið hreyfanlegra vélmenna (því miður sýist mér að ekkert hafi gerst þarna síðan 2003 og póstlistinn er dauður)
  • Open-R er ramminn fyrir sem notaður er fyrir Aibo vélhundinn frá Sony

[breyta] Ýtarefni

[breyta] Stjórntölvur

Það er til mikil flóra af örtölvum og stærri tölvum sem geta hentað vel til stýringa í vélmenni. Örtölvur (e. microprocessor) eru til sem stakir kubbar (eins og PICmicro frá Microchip) og sem stærri bretti með tengla fyrir tengingar við ýmiskonar jaðarbúnað.

Afhverju örtölvur? Vandamálið með PC tölvur er það að erfitt getur reynst að lesa af skynjurum og stýra mótorum þar sem að tölvurvar hafa ekki stjórn á einsökum pinnum á þeim tenglum sem þeir hafa til umráða (nema í gegnum parallel portið). Einnig er það ekki sérlega eftirsóknarvert að láta aðaltölvuna vera að fást við það allan tíman að lesa og skrifa út á hægfara jaðartengi.

Hvernig forritar maður örtölvu? Forritunar mál eru mismunandi eftir því hvaða örtölva er notuð. Forritunarmál eru meðal annars:

  • C
  • Basic
  • Assembly
  • Forth / IsoMax - IsoMax byggir á forritunarmálinu forth og útfærir einfalda stöðuvélavirkni.

Hvaða örtölvur eru til?

[breyta] Mótorar og mótorstýringar

[breyta] Skynjarar

[breyta] Rafhlöður

[breyta] Aðrir hlekkir

Tenglar
Nafnrými
Útgáfur
Aðgerðir
Flakk
Verkfæri