Përmbajtje:
- Hapi 1: Artikujt e nevojshëm
- Hapi 2: Android G1 me dalje serike të aktivizuar
- Hapi 3: Instaloni Mjedisin e Shkrimit të Android (ASE) Me Python
- Hapi 4: Kopjoni dhe ekzekutoni skenarin Cellbot.py për të nisur programin Python
- Hapi 5: Telnet në G1 dhe Testi i dërgimit të tij Komandat
- Hapi 6: Lidhni një ndërrues të nivelit 3.3v në 5v me Arduino
- Hapi 7: Ngarkoni Programin Cellbots në Arduino
- Hapi 8: Drejtoni të gjithë procesin
Video: Seriali Android G1 për Robotin Arduino: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:35
Mësoni se si celulari juaj Android mund të kontrollojë një robot duke përdorur një bord Arduino. Telefoni merr komanda përmes telnet nga një telefon tjetër ose një kompjuter, kështu që ju mund ta kontrolloni robotin nga distanca. Ky projekt nuk do të modifikojë ndryshe G1 kështu që ju mund të vazhdoni ta përdorni atë si telefonin tuaj normal pasi ta zhbllokoni. Pse? Duke përdorur komponentë elektronikë të lirë, siç janë tabelat Arduino, mund t'i kombinoni me telefonin tuaj 400 dollarë për të bërë një robot të mrekullueshëm. Do të kushtonte qindra dollarë për të shtuar GPS, LCD, sensorë lëvizjeje, wi-fi, lidhje celulare, altoparlantë dhe më shumë në një bot hobi, por telefoni juaj tashmë i ka këto! Së bashku, bordi Android G1 dhe Arduino ju lejojnë të përdorni pajisje elektronike të lira të tilla si servos dhe sensorë të thjeshtë, për të ndërtuar pajisje të fuqishme të tilla si robotë, teleprezencë në distancë ose lodra argëtuese për fëmijët. Më shumë informacion në Cellbots.com. Njoftim: Ky projekt aktualisht kërkon një Android G1 me qasje rrënjësore për të përdorur daljen serike nga telefoni te roboti Arduino. Ju mund të shtoni një modul $ 20 BlueTooth në bordin tuaj Arduino për të folur telefoni me të në seri BlueTooth nëse doni të përdorni softuerin komercial Android. Faleminderit të veçantë: Ne kemi Hacker Dojo në Mountain View, CA për të falënderuar që na vendosi në kontakt, duke ndihmuar me disa çështje të ndërlikuara përmes listës së tyre të postimeve të anëtarëve të mrekullueshëm, dhe për të pasur patate të skuqura 74LS04. Pjesa më e madhe e montimit u bë në Tech Shop në Menlo Park.
Hapi 1: Artikujt e nevojshëm
Për të përfunduar këtë mësim ju do të keni nevojë për sa vijon: Pajisjet kompjuterike: - Android G1 Dev Phone (ose pajisje tjetër Android me qasje në rrënjë dhe dalje serike) - Arduino (Unë jam duke përdorur një Freeduino SB, por çdokush duhet ta bëjë) - 3.3v në 5v konvertues nëse nuk përdorni një Arduino 3.3v (Unë jam duke përdorur një çip 74LS04 për më pak se 1 dollarë, por opsionet e tjera janë në dispozicion) - Bordi i ndarjes së HTC USB për G1 - Pajisjet e saldimit për dy lidhje të shpejta - Një trup roboti me mikro servo (karton, akrilik, shirita, rrota, gjithçka do të bëjë) Softuer: - Mjedisi i Shkrimit të Android (ASE) - Klienti Telnet për kompjuterin tuaj (Unë jam duke përdorur PuTTY në Windows) - Mjedisi i zhvillimit Arduino - (opsional) Klienti serial për kompjuterin tuaj (Unë jam duke përdorur edhe PuTTY në Windows për këtë) - (opsionale) Android SDK Nëse mund të ndiqni udhëzimet mund ta përfundoni këtë tutorial me pak njohuri për Python, Arduino, Android ose elektronikë. Ju do të dëshironi t'i dini ato gjëra nëse doni të shkoni përtej një LED që ndez, por kjo do t'ju bëjë të filloni.
Hapi 2: Android G1 me dalje serike të aktivizuar
G1 nuk dërgohet me aftësinë për të dërguar komanda serike jashtë portës USB dhe nuk ka asnjë mundësi amtare për ta aktivizuar atë. Nëse jeni një përdorues i avancuar i Android SDK, mund të krijoni vetë, por unë zgjodha të përdor Cyanogenmod 4.2.13. Nëse njihni pajisje të tjera Android me seri jashtë funksionit, shtojini ato në komente.
Opsionale, ju mund të ndiqni lidhjet atje për këtë udhëzues për të folur me G1 tuaj përmes USB nga kompjuteri juaj. Ky serial me lidhjen USB nuk kërkohet për këtë tutorial, por e kam përdorur atë si një kontroll i shëndoshë i mirë për të verifikuar që telefoni po dërgonte serial jashtë. Nëse nuk përdorni mjetin e paprekshëm tjetër për të verifikuar që prodhimi serik po funksionon, mund të provoni këtë kontroll të thjeshtë: 1. Hapni aplikacionin Terminal në G1 (vjen me Cyanogen, por shkarkoni një nga Tregu nëse keni një imazh tjetër) 2 Shkoni te drejtoria/dev/duke shtypur cd/dev/3. Shkruani ls (kjo është një L) dhe kërkoni ttyMSM2 në listën e kthyer Skripti Python që do të përdorim më vonë dërgon komanda në '/dev/ttyMSM2' në urdhëroni që ata të dalin nga lidhja serike. Meqenëse kjo kërkon qasje rrënjësore, do t'ju duhet të ndryshoni lejet për këtë sa herë që rindizni telefonin. Për ta bërë këtë: 1. Hapni aplikacionin terminal në telefon 2. Futni 'chmod 777 /dev /ttyMSM2' Pastaj mund të ekzekutoni shkrimin Python nga redaktimi i Scripting Android në hapin tjetër dhe do të ketë qasje për të dërguar dalje serike.
Hapi 3: Instaloni Mjedisin e Shkrimit të Android (ASE) Me Python
Skriptet që do të përdorim për të krijuar një lidhje të hapur në telefon dhe për të dërguar komandat jashtë janë të shkruara në Python. Për ta ekzekutuar këtë në G1 do të na duhet Mjedisi i Shkrimit të Android. Nëse nuk e shihni në Treg, mund ta shkarkoni duke skanuar barkodin në atë faqe e cila lidhet me skedarin apk në këtë faqe.
Pasi të keni instaluar dhe ekzekutuar ASE ju do të dëshironi të shtoni në modulin Python nga menyja: 1. Hapni ASE dhe sigurohuni që keni një lidhje interneti që funksionon (wi-fi ose 3G) 2. Shtypni butonin e menysë në telefon dhe zgjidhni Përkthyesit 3. Shtypni përsëri menunë dhe zgjidhni Shto 4. Zgjidhni Python (aktualisht v2.6.2 kur e shkruani këtë) dhe do të shkarkojë disa skedarë zip Ju mund të dëshironi të eksploroni krijimin, hapjen, redaktimin dhe ekzekutimin e skripteve për t'u njohur me Python nëpërmjet ASE por nuk kërkohet.
Hapi 4: Kopjoni dhe ekzekutoni skenarin Cellbot.py për të nisur programin Python
Ky tutorial përdor një shkrim Python për të qenë "truri" i robotit. Merrni kodin më të fundit nga projekti ynë me kod të hapur Google Code. Ju nevojitet vetëm skedari cellbot.py, por të tjerët mund t'ju ndihmojnë me gjëra të ndryshme që dëshironi të eksploroni. Thjesht e futa telefonin në lidhjen USB të kompjuterit tim dhe e montova atë para se të kopjoja skedarin në/sdcard/ase/scripts.
Programi krijon një lidhje të hapur fole për të pranuar një sesion hyrës telnet. Ai gjithashtu printon komandat e marra në ekran ndërsa i dërgon ato nga porti serik. Vendoseni këtë skedar në kartën SD të telefonit në drejtorinë/ase/scripts/. Hapa të detajuar për të ngarkuar dhe ekzekutuar skriptet: 1. Kopjoni skenarin cellbot.py në drejtorinë e kartës SD/ase/scripts 2. Sigurohuni që të çmontoni kartën SD nga kompjuteri juaj nëse i kopjoni në atë mënyrë pasi telefoni nuk mund të hyjë në skedarë në të njëjtën kohë me kompjuterin tuaj. 3. Hapni aplikacionin Android Scripting Environment 4. Klikoni në cellbot.py për ta nisur Duhet të shihni një konfirmim që pajisja është gati në këtë pikë për të pranuar seancat hyrëse të telnet në portin 9002. Këshillë: Sigurohuni që të ekzekutoni "chmod 777 /dev/ttyMSM2 "komandën nga hapi #3 së pari. Shikoni hapin #5 për të gjetur adresën IP të telefonit.
Hapi 5: Telnet në G1 dhe Testi i dërgimit të tij Komandat
Telefoni duhet të jetë gati për ju që të futeni në të dhe të dërgoni komanda nga kompjuteri juaj. Do t'i printojë ato në ekranin e telefonit për të konfirmuar atë që merr. Kam përdorur PuTTY në Windows, por ne kemi konfirmuar se minicom funksionon shkëlqyeshëm në Mac, siç përshkruhet në këtë udhëzues.
Së pari do të duhet të gjeni adresën IP të telefonit tuaj. Kjo është e disponueshme duke shkuar te Meny> Cilësimet> Kontrollet pa tela> Cilësimet Wi-Fi dhe më pas duke shtypur lidhjen aktualisht aktive. Një mesazh dolli pop-up do të dalë me adresën IP aktuale në rrjetin lokal. Shkruani këtë pasi do ta përdorni këtë sa herë që dëshironi të hapni një sesion telnet nga kompjuteri juaj. Detyrat IP zakonisht skadojnë pas një numri të caktuar ditësh, kështu që mund t'ju duhet ta kontrolloni përsëri. Shënim: Ky tutorial supozon se kompjuteri dhe telefoni juaj janë në të njëjtin rrjet lokal. Rrugëtimi në telefon nga jashtë rrjetit lokal duhet të jetë i mundur, por nuk mbulohet këtu. Hapni klientin tuaj telnet të zgjedhur dhe lidheni me IP -në e telefonit në portën 9002. Nga një linjë komande e bëni këtë si "telnet 192.168.1.1 9002" duke përdorur IP -në aktuale të telefonit. Shkruani disa karaktere dhe shtypni enter për t'i parë ato të shfaqen në ekranin e telefonit. Ju mund të shtypni një q për të bërë që shkrimi Python të pushojë, i cili duhet të mbyllë sesionin tuaj terminal. Nëse për ndonjë arsye nuk mund të lidheni përmes telnet dhe keni nevojë të vrisni programin, një rindezje e thjeshtë e telefonit duhet të bëjë mashtrimin. Përdoruesit e përparuar mund të duan të gjejnë ID -në e procesit përmes ps dhe më pas të përdorin kill për ta ndaluar atë. I avancuar: Një version i ardhshëm i kësaj mund të ekzekutojë një web server lokal nga telefoni në vend që të pranojë komanda përmes telnet. Ne po eksplorojmë gjithashtu XMPP për të biseduar me robotin tuaj.
Hapi 6: Lidhni një ndërrues të nivelit 3.3v në 5v me Arduino
Arduino i përdorur në këtë tutorial është një model 5v kështu që ne duhet të konvertojmë sinjalin 3.3v që del nga G1 duke përdorur një ndërrues niveli. Duhet të jetë e mundur të lidheni drejtpërdrejt me një Arduino 3.3v, por kjo nuk ishte diçka që e testova.
Ka disa mënyra për t'iu qasur kësaj, por ne do të përdorim një çip 74LS04 në këtë shembull. Ju mund të kërkoni për një këtu dhe ata ka të ngjarë të jenë nën $ 1. Tim dhe unë i morëm tonat nga Hacker Dojo në Mountain View, CA, por këto janë SHUM të zakonshme dhe duhet të jenë të shumta kudo që shiten apo dhurohen patate të skuqura. Në një nivel të lartë, ne thjesht do të dërgojmë sinjalin TX nga bordi i ndarjes USB HTS në pin 1 të çipit 74LS04. Për ta bërë atë të funksionojë, ne kalojmë dy herë në çip dhe dalim nga kunja 4 në kunjin RX në Freeduino SB (kunja juaj serike mund të jetë e ndryshme nëse keni një bord tjetër Arduino, por të gjithë duhet ta mbështesin këtë). Ndiqni këto hapa për të lidhur ndërruesin e nivelit dhe lidhni tabelën USB HTC (mos e lidhni akoma në telefon dhe shkëputeni energjinë nga Arduino): 1. Futni çipin 74LS04 në tabelën tuaj të bukës. Sigurohuni që çipi të ketë pengesa që qendra të thyhet në mënyrë që kunjat të mos shkurtohen (një veprim memec që bëra në fillim) 2. Të lidhim dy tela në tabelën USB të HTC siç përshkruhet në këtë udhëzues, por ne do të përdorim vetëm kunjat 7 (Ground) dhe 8 (TX0) pasi ne po bëjmë transmetim vetëm në një drejtim për këtë tutorial. 3. Lidhni skajin tjetër të telit të tokëzimit (pin 7) me një tokë në tabelën tuaj të bukës (e cila duhet të lidhet me një tokë në Arduino tuaj) 4. Lidhni skajin tjetër të telit TX0 (kunja 8) me pjatën e bukës ku ajo shkon në pin 1 të çipit 74LS04. (bëni një kërkim të imazhit për një diagram të plotë të çipit) 5. Përdorni një tel për të lidhur pin 2 dhe 3 të çipit 6. Lidhni pin 4 të çipit në pikën Arduino RX (kunja 0 në Freeduino SB dhe Arduino Duemilanove) 7. Lidhni pinin 7 (GND) në çip në tokë për tabelën tuaj të bukës (e cila gjithashtu lidhet me tokën Arduino) 8. Lidhni pin 14 (VCC) me fuqinë 5v në panelin tuaj të bukës (e cila merr fuqinë nga Arduino Dalja 5v) Tani duhet të jeni gati për të futur bordin e ndarjes HTC USB në pjesën e poshtme të telefonit dhe ndizni sistemin Arduino. Kontrolloni për shkëndija dhe erë dhe prekni gjërat për t'u siguruar që janë të ftohta. Shënim: Kodi aktual i celularit ndizet LED #13 kur motorët servo të robotit duhet të jenë në punë. Nëse nuk keni ende një robot, mund të kontrolloni për të parë që LED ndizet dhe fiket për të konfirmuar se po funksionon.
Hapi 7: Ngarkoni Programin Cellbots në Arduino
Merrni kodin burimor Arduino nga faqja jonë e projektit Google Code. Hapni programin Cellbots.pde Arduino në redaktorin Arduino. Pastaj shtyjeni atë në bordin tuaj Arduino.
Mund të provoni të folurit me kodin Arduino duke hapur monitorin serik në redaktorin Arduino. Kjo është një mënyrë e shkëlqyeshme për të testuar robotin ose pajisjen tuaj duke folur drejtpërdrejt me Arduino para se të lidhni gjithçka në telefon. Kodi dërgon komandat serike në monitorin serik për të konfirmuar atë që po bën edhe nëse nuk e keni robotin tuaj të ndërtuar akoma. Shënim: Nuk mund të ngarkoni programe në Arduino ndërsa tela është e lidhur me pinin hyrës serik RX Me Kështu që ju mund të dëshironi ta vendosni këtë një ndërprerës, por unë thjesht e shkëput atë kur kisha nevojë të ngarkoja një program të ri.
Hapi 8: Drejtoni të gjithë procesin
Duhet të jeni në gjendje të lidhni bordin HTC USB me telefonin, të ndizni skedarin cellbot.py në ASE dhe të hapni një seancë terminale në telefon. Shkruani "H" që telefoni të thotë përshëndetje ose ndonjë komandë tjetër nga skedari README.txt.
Një "q" do të lërë shkrimin Python në telefon dhe do të mbyllë prizën e terminalit. Këtu është një përmbledhje e asaj se si funksionon gjithçka: 1. Skripti Python hap një prizë për të pranuar lidhjet hyrëse të telnetit dhe për t'i bërë jehonë komandave nga porti serik 2 Ne lidhemi nga kompjuteri ynë në telefon nëpërmjet telnet në portin 9002 dhe i dërgojmë komandat që shohim në ekranin 3. Bordi USB HTS ndërfaqet me portën USB të G1 dhe dërgon sinjalin 3.3v në pinin 74LS04 1. 4. sinjali del nga çipi në pin 2, kthehet përsëri në pin 3 dhe del përsëri në pin 4 në 5v 5. Arduino ynë pranon sinjalin serik në pin RX 0 dhe e përpunon atë përmes programit Cellbot.pde 6. Ne mund të shtypni 'q' për të vrarë shkrimin Python dhe për të mbyllur lidhjen e telnet Tani që e keni përfunduar këtë proces shumë të komplikuar për të dërguar komandat themelore te një robot Arduino, është koha që ju ta hakoni që të jetë më i mrekullueshëm! Ne ende nuk kemi serial me dy drejtime, kështu që Arduino nuk mund të dërgojë komanda përsëri në telefon, por ne po punojmë për këtë. Qëndroni aktual duke u abonuar në blogun tonë në Cellbots.com. Rreth Autorëve: Tim Heath Studiuesi kryesor i cili së pari e bashkoi këtë proces në Tech Shop në Menlo Park, ku ai është anëtar. Programuesi Ryan Hickman i cili punoi në kodin Python dhe Arduino dhe autorizoi këtë Instructable.
Recommended:
Dizajni i PCB për Robotin e Ndjekësit të Linjës - Arnab Kumar Das: 4 Hapa
Dizajni i PCB për Robotin e Ndjekësve të Linjës - Arnab Kumar Das: Ky Projekt po supozon se ne tashmë kemi bërë përzgjedhjen e komponentëve. Që një sistem të funksionojë siç duhet është e rëndësishme të kuptohet se çfarë kërkon secili komponent për sa i përket fuqisë, tensionit, rrymës, hapësirës, ftohjes etj. Alsoshtë gjithashtu e rëndësishme të kuptojmë
Dizajni i PCB për robotin e kontrolluar nga celulari: 10 hapa
Dizajni i PCB për robotin e kontrolluar nga celularët: Unë e bëra këtë projekt në vitin 2012 si projekti im i vogël. Ky projekt u frymëzua nga nevoja për një metodë për të neutralizuar kërcënimet pa ndërhyrjen e drejtpërdrejtë të njerëzve. Ishte koha, vendi im u godit rëndë nga dhuna e cila më motivoi të devijoja
Seriali UDP/IP Gateway për Arduino Bazuar në ESP8266 Shield: 8 hapa
Seriali UDP/IP Gateway për Arduino Bazuar në ESP8266 Shield: Unë tashmë kam botuar në 2016 këtë udhëzues " Si të krijoni portën tuaj Wifi për të lidhur Arduino -n tuaj me Rrjetin IP ". Meqenëse bëra disa përmirësime të kodit dhe ende po e përdor këtë zgjidhje. Sidoqoftë, tani ka disa mburoja ESP8266 t
Inteligjenca artificiale për robotin tuaj .: 7 hapa
Inteligjenca Artificiale për Robotin tuaj .: Të bësh robotin tënd të lëvizë dhe ta bëjë atë të mendojë janë detyra të ndryshme. Tek njerëzit, lëvizjet e bukura kontrollohen nga tru i vogël, ndërsa veprimet dhe vendimmarrja - nga truri i madh. Nëse po e lexoni këtë, me siguri tashmë keni një robot dhe mund të menaxhoni
Sytë e dritës LED që vezullojnë për robotin: 6 hapa
Sytë LED që pulsojnë për robotin: Ky tutorial ka të bëjë me mbylljen e syrit të robotit duke përdorur matricën e pikave LED