Turinys:

„Android G1 Serial to Arduino Robot“: 8 žingsniai
„Android G1 Serial to Arduino Robot“: 8 žingsniai

Video: „Android G1 Serial to Arduino Robot“: 8 žingsniai

Video: „Android G1 Serial to Arduino Robot“: 8 žingsniai
Video: Amazing arduino project 2024, Rugsėjis
Anonim
„Android G1 Serial to Arduino Robot“
„Android G1 Serial to Arduino Robot“
„Android G1 Serial to Arduino Robot“
„Android G1 Serial to Arduino Robot“
„Android G1 Serial to Arduino Robot“
„Android G1 Serial to Arduino Robot“

Sužinokite, kaip jūsų „Android“mobilusis telefonas gali valdyti robotą naudodami „Arduino“plokštę. Telefonas priima komandas per telnet iš kito telefono ar kompiuterio, todėl galite valdyti robotą nuotoliniu būdu. Šis projektas kitaip nepakeis G1, kad galėtumėte jį toliau naudoti kaip įprastą telefoną, kai jį atjungsite. Kodėl? Naudodami pigius elektroninius komponentus, tokius kaip „Arduino“plokštės, galite suporuoti juos su savo 400 USD kainuojančiu telefonu, kad sukurtumėte nuostabų robotą. Pridėti GPS, skystųjų kristalų ekranus, judesio jutiklius, „Wi-Fi“, korinį ryšį, garsiakalbius ir dar daugiau prie hobio roboto kainuotų šimtus dolerių, tačiau jūsų telefone jau yra tokių! Kartu „Android G1“ir „Arduino“plokštė leidžia naudoti nebrangią elektroniką, pvz., Paprastus servus ir jutiklius, sukurti galingus prietaisus, tokius kaip robotai, nuotolinis nuotolinis buvimas ar įdomūs žaislai vaikams. Daugiau informacijos rasite adresu Cellbots.com. Jei norite naudoti komercinę „Android“programinę įrangą, prie „Arduino“plokštės galite pridėti 20 USD kainuojantį „BlueTooth“modulį, kad telefonas kalbėtų su juo per serijinį „BlueTooth“. Ypatinga padėka: turime „Hacker Dojo“Mountain View mieste, Kalifornijoje, padėkoti už tai, kad susisiekėte su mumis, padėjote išspręsti kai kurias sudėtingas problemas per nuostabių narių adresatų sąrašą ir turėjome 74LS04 lustų. Didžioji dalis surinkimo buvo atlikta „Tech Shop“Menlo parke.

1 žingsnis: reikalingi elementai

Reikalingi daiktai
Reikalingi daiktai
Reikalingi daiktai
Reikalingi daiktai
Reikalingi daiktai
Reikalingi daiktai

Norėdami užbaigti šią pamoką, jums reikės: Techninė įranga: - „Android G1 Dev“telefonas (arba kitas „Android“įrenginys su šaknine prieiga ir nuosekliąja išvestimi) keitiklis, jei nenaudojate 3.3 V „Arduino“(aš naudoju 74LS04 lustą už mažiau nei 1 USD, bet yra ir kitų variantų) - „HTC“USB pertraukos plokštė G1 - litavimo įranga dviem greitam sujungimui - roboto korpusas su mikro servos (kartonas, akrilas, protektoriai, ratai, viskas bus naudinga) Programinė įranga: - „Android“scenarijų aplinka (ASE) - „Telnet“klientas jūsų kompiuteriui (aš naudoju „PuTTY“sistemoje „Windows“) - „Arduino“kūrimo aplinka - (neprivaloma) Serijinis klientas jūsų kompiuteris (tam aš taip pat naudoju „PuTTY“sistemoje „Windows“) - (neprivaloma) „Android“SDK Jei galite vykdyti instrukcijas, galite užbaigti šią mokymo programą, mažai išmanydami „Python“, „Arduino“, „Android“ar elektronikos. Jūs norite žinoti tuos dalykus, jei norite ne tik mirksėti šviesos diodas, bet tai padės jums pradėti.

2 veiksmas: „Android G1“su įgalinta serijine išvestimi

„Android G1“su įjungta serijine išvestimi
„Android G1“su įjungta serijine išvestimi
„Android G1“su įjungta serijine išvestimi
„Android G1“su įjungta serijine išvestimi
„Android G1“su įjungta serijine išvestimi
„Android G1“su įjungta serijine išvestimi

G1 nėra siunčiami su galimybe siųsti serijines komandas iš USB prievado ir nėra vietinės parinkties, leidžiančios tai įjungti. Jei esate pažengęs „Android“SDK vartotojas, galite sukurti savo versiją, bet aš nusprendžiau naudoti „Cyanogenmod 4.2.13“. Jei žinote kitų „Android“įrenginių, kuriuose veikia serijinė išvestis, pridėkite juos prie komentarų.

Pasirinktinai galite sekti nuorodas į šią instrukciją, kalbėdami su savo G1 per USB iš kompiuterio. Šiam vadovėliui to nuoseklaus USB jungties nereikia, bet aš jį naudoju kaip puikų sveiko proto patikrinimą, norėdamas patikrinti, ar telefonas siunčia serijinį. Jei nenaudojate kito integruoto, kad patikrintumėte, ar serijinė išvestis veikia, galite išbandyti šį paprastą patikrinimą: 1. G1 atidarykite „Terminal“programą (pateikiama kartu su cianogenu, bet atsisiųskite ją iš rinkos, jei turite kitokį vaizdą) 2. Eikite į/dev/katalogą, įvesdami cd/dev/3. Įveskite ls (tai yra L) ir ieškokite ttyMSM2 pateiktame sąraše. Python scenarijus, kurį naudosime vėliau, siunčia komandas į „/dev/ttyMSM2“kad jie išjungtų nuoseklųjį ryšį. Kadangi tam reikia root prieigos, turėsite pakeisti leidimus kiekvieną kartą iš naujo paleisdami telefoną. Norėdami tai padaryti: 1. Atidarykite telefono terminalo programą. 2. Įveskite „chmod 777 /dev /ttyMSM2“. Tada galėsite paleisti „Python“scenarijų iš „Android Scripting“redagavimo kitame žingsnyje ir jis turės prieigą siųsti serijinę išvestį.

3 veiksmas: įdiekite „Android“scenarijų aplinką (ASE) naudodami „Python“

Įdiekite „Android“scenarijų aplinką (ASE) naudodami „Python“
Įdiekite „Android“scenarijų aplinką (ASE) naudodami „Python“
Įdiekite „Android“scenarijų aplinką (ASE) naudodami „Python“
Įdiekite „Android“scenarijų aplinką (ASE) naudodami „Python“

Scenarijai, kuriuos naudosime norėdami sukurti atvirą lizdo ryšį telefone ir išsiųsti komandas, yra parašyti „Python“. Norėdami tai paleisti „G1“, mums reikės „Android“scenarijų aplinkos. Jei nematote jo „Market“, galite jį atsisiųsti nuskaitydami brūkšninį kodą tame puslapyje, kuris nukreipia į šio puslapio apk failą.

Įdiegę ir paleisdami ASE, meniu norėsite pridėti prie „Python“modulio: 1. Atidarykite ASE ir įsitikinkite, kad turite veikiantį interneto ryšį („Wi-Fi“arba 3G). 2. Paspauskite telefono meniu mygtuką ir pasirinkite Vertėjai 3. Dar kartą paspauskite meniu ir pasirinkite Pridėti. 4. Pasirinkite „Python“(šiuo metu rašoma v2.6.2) ir bus atsisiųsta keletas ZIP failų. Galbūt norėsite ištirti scenarijų kūrimą, atidarymą, redagavimą ir vykdymą, kad susipažintumėte su „Python“naudodami ASE, bet tai nėra būtina.

4 veiksmas: nukopijuokite ir paleiskite „Cellbot.py“scenarijų, kad paleistumėte „Python“programą

Nukopijuokite ir paleiskite „Cellbot.py“scenarijų, kad paleistumėte „Python“programą
Nukopijuokite ir paleiskite „Cellbot.py“scenarijų, kad paleistumėte „Python“programą

Ši pamoka naudoja „Python“scenarijų, kad būtų roboto „smegenys“. Gaukite naujausią kodą iš mūsų atvirojo kodo „Google Code“projekto. Jums reikia tik failo cellbot.py, tačiau kiti gali padėti įvairiais klausimais, kuriuos norite ištirti. Prieš kopijuodamas failą į/sdcard/ase/scripts, tiesiog prijungiau telefoną prie kompiuterio USB jungties ir prijungiau diską.

Programa sukuria atvirą lizdo ryšį, kad priimtų gaunamą „Telnet“seansą. Jis taip pat spausdina gautas komandas į ekraną siunčiant jas iš nuoseklaus prievado. Įdėkite šį failą į telefono SD kortelę kataloge/ase/scripts/. Išsamūs scenarijų įkėlimo ir paleidimo veiksmai: 1. Nukopijuokite scenarijų cellbot.py į SD kortelės/ase/scripts/katalogą 2. Būtinai išimkite SD kortelę iš kompiuterio, jei taip nukopijavote, nes telefonas negali pasiekti failų tuo pačiu metu, kai yra jūsų kompiuteris. 3. Atidarykite „Android“scenarijų aplinkos programą 4. Spustelėkite cellbot.py, kad ją paleistumėte. Turėtumėte pamatyti patvirtinimą, kad šiuo metu įrenginys yra paruoštas priimti įeinančius „Telnet“seansus prie 9002 prievado. Patarimas: būtinai paleiskite „chmod 777 /dev/ttyMSM2 komandą pirmiausia atlikdami #3 veiksmą. Žr. 5 veiksmą, kaip rasti telefono IP adresą.

5 žingsnis: „Telnet“į „G1“ir bandomosios jo siuntimo komandos

„Telnet“į „G1“ir bandomosios jo siuntimo komandos
„Telnet“į „G1“ir bandomosios jo siuntimo komandos
„Telnet“į „G1“ir bandomosios jo siuntimo komandos
„Telnet“į „G1“ir bandomosios jo siuntimo komandos
„Telnet“į „G1“ir bandomosios jo siuntimo komandos
„Telnet“į „G1“ir bandomosios jo siuntimo komandos

Telefonas turėtų būti paruoštas, kad galėtumėte į jį prisijungti ir siųsti komandas iš savo kompiuterio. Jis išspausdins juos į telefono ekraną, kad patvirtintų, ką jis gauna. „Windows“naudojau „PuTTY“, tačiau patvirtinome, kad „minicom“puikiai veikia „Mac“, kaip aprašyta šioje instrukcijoje.

Pirmiausia turėsite rasti savo telefono IP adresą. Tai pasiekiama einant į Meniu> Nustatymai> Belaidžio ryšio valdikliai> „Wi-Fi“nustatymai ir paspaudžiant šiuo metu aktyvų ryšį. Iššokantis tosto pranešimas parodys dabartinį vietinio tinklo IP adresą. Užsirašykite tai, nes tai naudosite kiekvieną kartą, kai norėsite atidaryti „Telnet“seansą iš savo kompiuterio. IP priskyrimai paprastai baigiasi po tam tikro dienų skaičiaus, todėl gali tekti tai dar kartą patikrinti. Pastaba: šiame vadove manoma, kad jūsų kompiuteris ir telefonas yra tame pačiame vietiniame tinkle. Turėtų būti įmanoma nukreipti į telefoną iš išorinio tinklo, tačiau jis čia neaptariamas. Atidarykite pasirinktą „telnet“klientą ir prisijunkite prie telefono IP prievado 9002. Iš komandinės eilutės tai darote kaip „telnet 192.168.1.1 9002“, naudodami tikrąjį telefono IP. Įveskite kai kuriuos simbolius ir paspauskite „Enter“, kad pamatytumėte, jog jie rodomi telefono ekrane. Galite įvesti q, kad „Python“scenarijus būtų uždarytas, o tai turėtų uždaryti jūsų terminalo sesiją. Jei dėl kokių nors priežasčių negalite prisijungti per „telnet“ir jums reikia užmušti programą, paprastas telefono perkrovimas turėtų padėti. Pažengę vartotojai gali norėti rasti proceso ID per ps ir tada naudoti „kill“, kad jį sustabdytų. Išplėstinė: būsima šios versijos versija gali paleisti vietinį žiniatinklio serverį iš telefono, o ne priimti komandas per telnet. Mes taip pat tiriame XMPP, kad galėtume kalbėtis su jūsų robotu.

6 veiksmas: prijunkite 3,3–5 V lygio perjungiklį prie „Arduino“

Prijunkite 3,3–5 V lygio perjungiklį prie „Arduino“
Prijunkite 3,3–5 V lygio perjungiklį prie „Arduino“
Prijunkite 3,3–5 V lygio perjungiklį prie „Arduino“
Prijunkite 3,3–5 V lygio perjungiklį prie „Arduino“
Prijunkite 3,3–5 V lygio perjungiklį prie „Arduino“
Prijunkite 3,3–5 V lygio perjungiklį prie „Arduino“

Šioje pamokoje naudojamas „Arduino“yra 5 V modelis, todėl turime konvertuoti 3,3 V signalą, išeinantį iš G1, naudodami lygio perjungiklį. Turėtų būti įmanoma tiesiogiai prisijungti prie 3.3 V „Arduino“, bet aš to išbandžiau.

Yra keletas būdų, kaip tai išspręsti, tačiau šiame pavyzdyje naudosime 74LS04 mikroschemą. Čia galite ieškoti vieno ir greičiausiai jie bus mažesni nei 1 USD. Mes su Timu pasiėmėme „Hacker Dojo“Mauntin Vju, Kalifornijoje, tačiau jie yra LABAI paplitę ir jų turėtų būti gausu visur, kur parduodami ar dovanojami žetonai. Aukštu lygiu mes tiesiog siunčiame TX signalą iš HTS USB pertraukos plokštės į 74LS04 lusto 1 kaištį. Kad tai veiktų, du kartus pereiname per lustą ir išvedame 4 kaištį į „Freeduino SB“RX kaištį (jūsų serijinis kaištis gali būti kitoks, jei turite kitą „Arduino“plokštę, bet visi turėtų tai palaikyti). Atlikite šiuos veiksmus, kad prijungtumėte lygio perjungiklį ir prijunkite HTC USB plokštę (dar neprijunkite jos prie telefono ir neatjunkite „Arduino“): 1. Įdėkite 74LS04 mikroschemą į savo lentą. Įsitikinkite, kad lustas trukdo centriniam lūžimui, kad kaiščiai nebūtų trumpi (iš pradžių padariau kvailas judesys). Žemė) ir 8 (TX0), nes šiai pamokai perduodame tik į vieną pusę. 3. Kitą įžeminimo laido galą (7 kaištis) prijunkite prie duonos lentos įžeminimo (kuri turėtų būti prijungta prie „Arduino“žemės). 4. Prijunkite kitą TX0 (8 kaiščio) laido galą prie duonos lentos jis patenka į 74LS04 lusto 1 kaištį. (ieškokite vaizdo, kad gautumėte visą mikroschemos schemą) 5. Naudodami laidą prijunkite lusto 2 ir 3 kaiščius 6. Prijunkite lusto 4 kaištį prie „Arduino RX“taško („Freeduino SB“ir „Arduino Duemilanove“kaištis 0).) 7. Prijunkite lusto 7 kaištį (GND) prie duonos lentos žemės (kuri taip pat jungiasi prie „Arduino“įžeminimo) 8. Prijunkite kaištį 14 (VCC) prie 5 V maitinimo šaltinio savo duoninėje (kuri gauna maitinimą iš „Arduino“) 5v išėjimas) Dabar turėtumėte būti pasirengę prijungti „HTC USB“pertraukos plokštę prie telefono apačios ir įjungti „Arduino“. Patikrinkite, ar nėra kibirkščių ir kvapų, ir palieskite daiktus, kad įsitikintumėte, jog jie vėsūs. Pastaba: dabartinis „cellbot“kodas įjungia šviesos diodą Nr. 13, kai turi veikti roboto servo varikliai. Jei dar neturite roboto, galite patikrinti, ar šviesos diodas įsijungia ir išsijungia, kad įsitikintumėte, jog jis veikia.

7 veiksmas: įkelkite „Cellbots“programą į „Arduino“

Įkelkite „Cellbots“programą į „Arduino“
Įkelkite „Cellbots“programą į „Arduino“
Įkelkite „Cellbots“programą į „Arduino“
Įkelkite „Cellbots“programą į „Arduino“

Gaukite „Arduino“šaltinio kodą iš mūsų „Google Code“projekto svetainės. „Arduino“redaktoriuje atidarykite programą „Cellbots.pde Arduino“. Tada stumkite jį į savo „Arduino“lentą.

Galite išbandyti kalbėjimą su „Arduino“kodu, atidarę serijinį monitorių „Arduino“redaktoriuje. Tai puikus būdas išbandyti savo robotą ar įrenginį kalbantis tiesiogiai su „Arduino“prieš prijungiant viską prie telefono. Kodas siunčia serijines komandas atgal į serijinį monitorių, kad patvirtintų, ką jis daro, net jei dar neturite savo roboto. Pastaba: Negalite įkelti programų į „Arduino“, kai laidas prijungtas prie RX nuosekliosios įvesties kaiščio. Taigi galbūt norėsite šį jungiklį perjungti, bet aš tiesiog jį atjungiau, kai reikėjo įkelti naują programą.

8 veiksmas: paleiskite visą procesą

Vykdykite visą procesą
Vykdykite visą procesą
Vykdykite visą procesą
Vykdykite visą procesą
Vykdykite visą procesą
Vykdykite visą procesą

Turėtumėte sugebėti prijungti HTC USB plokštę prie telefono, suaktyvinti failą cellbot.py ASE ir atidaryti terminalo sesijas į telefoną. Įveskite „H“, kad telefonas pasisveikintų ar bet kokias kitas komandas iš failo README.txt.

„Q“išjungs „Python“scenarijų telefone ir uždarys terminalo lizdą. Štai kaip visa tai veikia: 1. „Python“scenarijus atveria lizdą, skirtą priimti gaunamus „Telnet“ryšius, ir pakartoja komandas iš 2 serijos prievado. Mes jungiamės iš savo kompiuterio prie telefono per telnet 9002 prievadą ir siunčiame jam komandas, kurias matome 3 ekrane. HTS USB plokštė sąsaja su G1 USB prievadu ir siunčia 3.3v signalą į 74LS04 1. kaištį. signalas išeina iš lusto ant 2 kaiščio, grįžta į 3 kaištį ir vėl išeina iš 4 kaiščio esant 5 V 5. Mūsų „Arduino“priima serijinį signalą RX kaištyje 0 ir apdoroja jį per programą „Cellbot.pde 6.“galite įvesti „q“, kad nužudytumėte „Python“scenarijų ir uždarytumėte „telnet“ryšį Dabar, kai baigėte šį labai sudėtingą procesą ir siunčiate pagrindines komandas „Arduino“robotui, atėjo laikas nulaužti, kad jis būtų nuostabesnis! Mes dar neturime dvipusio serijinio darbo, todėl „Arduino“negali siųsti komandų atgal į telefoną, bet mes dirbame. Sekite naujienas užsiprenumeruodami mūsų tinklaraštį adresu Cellbots.com. Apie autorius: Tim Heath Vadovaujantis tyrėjas, kuris pirmą kartą sujungė šį procesą „Tech Shop“Menlo parke, kur jis yra narys. Ryanas Hickmanas programuotojas, dirbęs prie „Python“ir „Arduino“kodų ir sukūręs šią instrukciją.

Rekomenduojamas: