Talaan ng mga Nilalaman:

Android G1 Serial sa Arduino Robot: 8 Hakbang
Android G1 Serial sa Arduino Robot: 8 Hakbang

Video: Android G1 Serial sa Arduino Robot: 8 Hakbang

Video: Android G1 Serial sa Arduino Robot: 8 Hakbang
Video: 1.Getting Started with Android and Arduino 2024, Setyembre
Anonim
Android G1 Serial sa Arduino Robot
Android G1 Serial sa Arduino Robot
Android G1 Serial sa Arduino Robot
Android G1 Serial sa Arduino Robot
Android G1 Serial sa Arduino Robot
Android G1 Serial sa Arduino Robot

Alamin kung paano makontrol ng iyong Android cell phone ang isang robot gamit ang isang Arduino board. Ang telepono ay kumukuha ng mga utos sa pamamagitan ng telnet mula sa ibang telepono o PC, upang makontrol mo ang robot nang malayuan. Ang proyektong ito ay hindi magbabago ng G1 upang maaari mong ipagpatuloy ang paggamit nito bilang iyong normal na telepono pagkatapos i-undock ito. Bakit? Sa pamamagitan ng paggamit ng murang mga elektronikong sangkap tulad ng Arduino boards, maaari mong ipares ang mga ito sa iyong $ 400 na telepono upang makagawa ng isang kahanga-hangang robot. Magkakagastos ng daan-daang dolyar upang magdagdag ng GPS, LCD, mga sensor ng paggalaw, wi-fi, mga koneksyon sa cellular, speaker, at higit pa sa isang hobby bot, ngunit mayroon na ang iyong telepono ng mga ito! Sama-sama, pinapayagan ka ng Android G1 at Arduino board na gumamit ng mga murang electronics tulad ng mga simpleng servos at sensor, upang makabuo ng mga malalakas na aparato tulad ng mga robot, remote telepresence, o nakakatuwang mga laruan para sa mga bata. Higit pang impormasyon sa Cellbots.com. Pansin: Ang proyektong ito ay kasalukuyang nangangailangan ng isang Android G1 na may root access upang magamit ang serial output mula sa telepono patungo sa Arduino robot. Maaari kang magdagdag ng isang $ 20 BlueTooth module sa iyong Arduino board upang makausap ito ng telepono sa serial BlueTooth kung nais mong gamitin ang komersyal na Android software. Espesyal na pasasalamat: Mayroon kaming Hacker Dojo sa Mountain View, CA upang pasalamatan ang paglalagay sa amin ng contact, pagtulong sa ilang mga nakakalito na isyu sa pamamagitan ng kanilang mailing list ng mga kahanga-hangang miyembro, at para sa pagkakaroon ng 74LS04 chips sa stock. Karamihan sa pagpupulong ay tapos na sa Tech Shop sa Menlo Park.

Hakbang 1: Kailangan ng Mga Item

Mga Item na Kailangan
Mga Item na Kailangan
Mga Item na Kailangan
Mga Item na Kailangan
Mga Item na Kailangan
Mga Item na Kailangan

Upang makumpleto ang tutorial na ito kakailanganin mo ang sumusunod: Hardware: - Android G1 Dev Phone (o iba pang Android device na may root access at serial output) - Arduino (Gumagamit ako ng isang Freeduino SB ngunit dapat gawin ng sinuman) - 3.3v hanggang 5v converter kung hindi ka gumagamit ng isang 3.3v Arduino (Gumagamit ako ng isang 74LS04 chip na mas mababa sa $ 1 ngunit magagamit ang iba pang mga pagpipilian) - HTC USB break-out board para sa G1 - Mga kagamitan sa pag-solder para sa dalawang mabilis na koneksyon - Isang robot na katawan na may micro servos (karton, acrylic, tread, gulong, anumang gagawin) Software: - Android Scripting Environment (ASE) - Telnet client para sa iyong PC (Gumagamit ako ng PuTTY sa Windows) - Arduino development environment - (opsyonal) Serial client para sa iyong PC (Gumagamit din ako ng PuTTY sa Windows para dito) - (opsyonal) Android SDK Kung maaari mong sundin ang mga tagubilin maaari mong kumpletuhin ang tutorial na ito na may kaunting kaalaman sa Python, Arduino, Android, o electronics. Gusto mong malaman ang mga bagay na iyon kung nais mong lumampas sa isang kumikislap na LED ngunit magsisimula ka nito.

Hakbang 2: Ang Android G1 Na Pinapagana ang Serial Output

Android G1 Na Pinagana ang Serial Output
Android G1 Na Pinagana ang Serial Output
Android G1 Na Pinagana ang Serial Output
Android G1 Na Pinagana ang Serial Output
Android G1 Na Pinagana ang Serial Output
Android G1 Na Pinagana ang Serial Output

Ang G1 ay hindi nagpapadala na may kakayahang magpadala ng mga serial command mula sa USB port at walang katutubong pagpipilian upang paganahin ito. Kung ikaw ay isang advanced na gumagamit ng Android SDK maaari kang gumawa ng iyong sariling build ngunit pinili kong gamitin ang Cyanogenmod 4.2.13. Kung may alam ka sa iba pang mga Android device na hindi gumagana ang serial, idagdag ang mga ito sa mga komento.

Bilang pagpipilian, maaari mong sundin ang mga link doon sa itinuturo sa pakikipag-usap sa iyong G1 sa USB mula sa iyong PC. Ang serial na iyon sa koneksyon sa USB ay hindi kinakailangan para sa tutorial na ito ngunit ginamit ko ito bilang isang magandang check sa katinuan upang mapatunayan na ang telepono ay nagpapadala ng serial out. Kung hindi mo gagamitin ang iba pang maipasok upang mapatunayan na gumagana ang serial output, maaari mong subukan ang simpleng tsek na ito: 1. Buksan ang Terminal app sa G1 (kasama ang Cyanogen ngunit mag-download ng isa mula sa Market kung mayroon kang ibang imahe) 2. Mag-navigate sa direktoryo / dev / sa pamamagitan ng pag-type sa cd / dev / 3. I-type ang ls (iyon ay L) at hanapin ang ttyMSM2 sa listahan na ibinalik Ang script ng Python na gagamitin namin sa paglaon ay nagpapadala ng mga utos sa '/ dev / ttyMSM2' sa order para sa kanila na lumabas ang serial connection. Dahil nangangailangan iyon ng root access, kakailanganin mong baguhin ang mga pahintulot sa bawat oras na i-reboot mo ang telepono. Upang gawin iyon: 1. Buksan ang terminal app sa telepono 2. Ipasok ang 'chmod 777 / dev / ttyMSM2' Pagkatapos ay maaari mong patakbuhin ang script ng Python mula sa pag-edit ng Android Scripting sa susunod na hakbang at magkakaroon ito ng access upang magpadala ng serial output.

Hakbang 3: I-install ang Android Scripting Environment (ASE) Sa Python

I-install ang Android Scripting Environment (ASE) Sa Python
I-install ang Android Scripting Environment (ASE) Sa Python
I-install ang Android Scripting Environment (ASE) Sa Python
I-install ang Android Scripting Environment (ASE) Sa Python

Ang mga script na gagamitin namin upang lumikha ng isang bukas na koneksyon ng socket sa telepono at magpadala ng mga utos ay nakasulat sa Python. Upang patakbuhin ito sa G1 kakailanganin namin ang Android Scripting Environment. Kung hindi mo ito nakikita sa Market maaari mo itong i-download sa pamamagitan ng pag-scan ng barcode sa pahinang iyon na nag-link sa apk file sa pahinang ito.

Kapag na-install at pinatakbo ang ASE nais mong idagdag sa module ng Python mula sa menu: 1. Buksan ang ASE at tiyaking mayroon kang isang gumaganang koneksyon sa internet (wi-fi o 3G) 2. Pindutin ang pindutan ng menu sa telepono at piliin ang Mga Interpreter 3. Pindutin muli ang menu at piliin ang Idagdag 4. Piliin ang Python (kasalukuyang v2.6.2 sa pagsulat nito) at magda-download ito ng ilang mga zip file Maaari mong tuklasin ang paglikha, pagbubukas, pag-edit, at pagpapatakbo ng mga script upang maging pamilyar sa Python sa pamamagitan ng ASE ngunit hindi ito kinakailangan.

Hakbang 4: Kopyahin at Patakbuhin ang Cellbot.py Script upang Ilunsad ang Python Program

Kopyahin at Patakbuhin ang Cellbot.py Script upang Ilunsad ang Python Program
Kopyahin at Patakbuhin ang Cellbot.py Script upang Ilunsad ang Python Program

Ang tutorial na ito ay gumagamit ng isang script ng Python upang maging "talino" ng robot. Kunin ang pinakabagong code mula sa aming bukas na mapagkukunang proyekto ng Google Code. Kailangan mo lamang ang cellbot.py file ngunit ang iba ay maaaring makatulong sa iba't ibang mga bagay na nais mong tuklasin. Pasimple kong na-plug ang telepono sa koneksyon sa USB ng aking PC at in-mount ang drive bago kopyahin ang file sa / sdcard / ase / script.

Lumilikha ang programa ng isang bukas na koneksyon ng socket upang tanggapin ang isang papasok na sesyon ng telnet. Nagpi-print din ito ng mga natanggap na utos sa screen habang ipinapadala sa kanila ang serial port. Ilagay ang file na ito sa SD card ng telepono sa direktoryo / ase / scripts / direktoryo. Upang mai-load at patakbuhin ang mga script: 1. Kopyahin ang cellbot.py script sa SD card / ase / script / direktoryo 2. Siguraduhing bumaba ang SD card mula sa iyong PC kung nakopya mo ang mga iyon sa ganoong paraan dahil hindi ma-access ng telepono ang mga file sa parehong oras na ang iyong PC. 3. Buksan ang Android Scripting Environment app 4. Mag-click sa cellbot.py upang ilunsad ito Dapat mong makita ang isang kumpirmasyon na ang aparato ay handa na sa puntong ito upang tanggapin ang mga papasok na sesyon ng telnet sa port 9002. Tip: Siguraduhing patakbuhin ang "chmod 777 / dev / ttyMSM2 "utos mula sa hakbang # 3 muna. Tingnan ang hakbang # 5 para sa paghahanap ng IP address ng telepono.

Hakbang 5: Telnet Sa G1 at Pagsubok Ipinapadala ang Mga Iniuutos

Telnet Sa G1 at Pagsusulit Ipinapadala Ito
Telnet Sa G1 at Pagsusulit Ipinapadala Ito
Telnet Sa G1 at Pagsusulit Ipinapadala Ito
Telnet Sa G1 at Pagsusulit Ipinapadala Ito
Telnet Sa G1 at Pagsusulit Ipinapadala Ito
Telnet Sa G1 at Pagsusulit Ipinapadala Ito

Ang telepono ay dapat na handa para sa iyo upang telnet sa ito at ipadala ito ng mga utos mula sa iyong PC. I-print ang mga ito sa screen ng telepono upang kumpirmahin kung ano ang natanggap nito. Gumamit ako ng PuTTY sa Windows ngunit nakumpirma namin na gumagana ang minicom sa mga Mac tulad ng inilarawan sa itinuturo na ito.

Kakailanganin mo munang hanapin ang IP address ng iyong telepono. Magagamit ito sa pamamagitan ng pagpunta sa Menu> Mga setting> Mga wireless control> Mga setting ng Wi-Fi at pagkatapos ay pagpindot sa kasalukuyang aktibong koneksyon. Isang mensahe ng pop-up toast ang lalabas sa kasalukuyang IP address sa lokal na network. Isulat ito habang gagamitin mo ito sa tuwing nais mong buksan ang isang sesyon ng telnet mula sa iyong PC. Karaniwang mawawalan ng bisa ang mga takdang-aralin ng IP pagkatapos ng isang tiyak na bilang ng mga araw kaya maaaring kailanganin mong suriin ito muli. Tandaan: Ipinapalagay ng tutorial na ito na ang iyong PC at telepono ay nasa parehong lokal na network. Ang pagruruta sa telepono mula sa labas ng lokal na network ay dapat posible ngunit hindi ito sakop dito. Buksan ang iyong kliyente sa telnet na pagpipilian at kumonekta sa IP ng telepono sa port 9002. Mula sa isang linya ng utos gawin mo ito bilang "telnet 192.168.1.1 9002" gamit ang aktwal na IP ng telepono. Mag-type ng ilang mga character at pindutin ang enter upang makita silang lumabas sa screen ng telepono. Maaari kang mag-type ng isang q upang mag-quit ang script ng Python, na dapat isara ang iyong session ng terminal. Kung sa anumang kadahilanan hindi ka makakonekta sa pamamagitan ng telnet at kailangang patayin ang programa, dapat gawin ng isang simpleng pag-reboot ng telepono ang trick. Maaaring nais ng mga advanced na gumagamit na hanapin ang proseso ng ID sa pamamagitan ng ps at pagkatapos ay gamitin ang pumatay upang matigil ito. Advanced: Ang isang hinaharap na bersyon ng ito ay maaaring magpatakbo ng isang lokal na web server mula sa telepono sa halip na tanggapin ang mga utos sa pamamagitan ng telnet. Sinisiyasat din namin ang XMPP upang makipag-chat sa iyong robot.

Hakbang 6: Ikonekta ang isang 3.3v sa 5v Level Shifter sa Arduino

Ikonekta ang isang 3.3v sa 5v Level Shifter sa Arduino
Ikonekta ang isang 3.3v sa 5v Level Shifter sa Arduino
Ikonekta ang isang 3.3v sa 5v Level Shifter sa Arduino
Ikonekta ang isang 3.3v sa 5v Level Shifter sa Arduino
Ikonekta ang isang 3.3v sa 5v Level Shifter sa Arduino
Ikonekta ang isang 3.3v sa 5v Level Shifter sa Arduino

Ang Arduino na ginamit sa tutorial na ito ay isang modelo ng 5v kaya kailangan naming i-convert ang signal ng 3.3v na lalabas sa G1 gamit ang isang shifter sa antas. Dapat ay posible na kumonekta nang direkta sa isang 3.3v Arduino ngunit hindi iyon isang bagay na nasubukan ko.

Mayroong maraming mga paraan upang lapitan ito ngunit gagamit kami ng isang 74LS04 chip sa halimbawang ito. Maaari kang maghanap para sa isa dito at malamang na mas mababa sa $ 1 ang mga ito. Kinuha namin ni Tim ang sa amin mula sa Hacker Dojo sa Mountain View, CA ngunit ang mga ito ay SOBRANG karaniwan at dapat na masagana saanman ibebenta o ibigay ang mga chips. Sa isang mataas na antas ipapadala lamang namin ang signal ng TX mula sa HTS USB breakout board sa pin 1 ng 74LS04 chip. Upang maisagawa ito dumaan kami sa chip nang dalawang beses at lumabas ng pin 4 sa RX pin sa Freeduino SB (maaaring magkakaiba ang iyong serial pin kung mayroon kang ibang Arduino board ngunit dapat suportahan ito ng lahat). Sundin ang mga hakbang na ito upang mai-wire ang shifter sa antas at ikonekta ang HTC USB board (huwag isaksak ito sa telepono at i-unplug ang kapangyarihan sa Arduino): 1. Ipasok ang 74LS04 chip sa iyong breadboard. Siguraduhin na ang hurd hurdles ang gitna break kaya ang mga pin ay hindi maikli (isang pipi ilipat na ginawa ko sa una) 2. Sundalo dalawang wires sa HTC USB board tulad ng inilarawan sa itinuturo na ito, ngunit gagamitin lamang namin ang mga pin 7 (Ground) at 8 (TX0) dahil one-way transmission lang ang ginagawa namin para sa tutorial na ito. 3. Ikonekta ang kabilang dulo ng lupa (pin 7) wire sa isang lupa sa iyong breadboard (na dapat na konektado sa isang lupa sa iyong Arduino) 4. Ikonekta ang kabilang dulo ng wire na TX0 (pin 8) sa breadboard kung saan tumatakbo ito sa pin 1 ng 74LS04 chip. (gawin ang isang paghahanap ng imahe para sa isang buong diagram ng maliit na tilad) 5. Gumamit ng isang kawad upang ikonekta ang pin 2 at 3 ng maliit na tilad 6. Ikonekta ang pin 4 ng maliit na tilad sa Arduino RX point (pin 0 sa Freeduino SB at Arduino Duemilanove) 7. Ikonekta ang pin 7 (GND) sa maliit na tilad sa lupa para sa iyong breadboard (na kumokonekta din sa Arduino ground) 8. Ikonekta ang pin 14 (VCC) sa 5v na lakas sa iyong breadboard (na kukuha ng lakas mula sa Arduino 5v output) Dapat mo na ngayong handa na i-plug in ang HTC USB break-out board sa ilalim ng telepono at lakas sa Arduino. Suriin ang mga spark at amoy at hawakan ang mga bagay upang matiyak na cool ang mga ito. Tandaan: Ang kasalukuyang cellbot code ay nakabukas sa LED # 13 kung kailan dapat tumakbo ang servo motors ng robot. Kung wala ka pang isang robot maaari mong suriin upang makita na ang LED ay nakabukas at naka-off upang kumpirmahing gumagana ito.

Hakbang 7: I-load ang Program ng Cellbots sa Arduino

I-load ang Program ng Cellbots sa Arduino
I-load ang Program ng Cellbots sa Arduino
I-load ang Program ng Cellbots sa Arduino
I-load ang Program ng Cellbots sa Arduino

Kunin ang source code ng Arduino mula sa aming site ng proyekto ng Google Code. Buksan ang programa ng Cellbots.pde Arduino sa Arduino editor. Pagkatapos ay itulak ito sa iyong Arduino board.

Maaari mong subukan ang pakikipag-usap sa Arduino code sa pamamagitan ng pagbubukas ng serial monitor sa Arduino editor. Ito ay isang mahusay na paraan upang subukan ang iyong robot o aparato sa pamamagitan ng direktang pakikipag-usap sa Arduino bago isabit ang lahat sa telepono. Nagpapadala ang code ng mga serial command pabalik sa serial monitor upang kumpirmahin kung ano ang ginagawa nito kahit na wala pa ang iyong robot. Itala: Hindi mo mai-load ang mga programa sa Arduino habang ang kawad ay konektado sa RX serial input pin. Kaya't baka gugustuhin mong maglagay ng isang ito sa isang switch ngunit i-unplug ko lang ito kapag kailangan kong mag-load ng isang bagong programa.

Hakbang 8: Patakbuhin ang Buong Proseso

Patakbuhin ang Buong Proseso
Patakbuhin ang Buong Proseso
Patakbuhin ang Buong Proseso
Patakbuhin ang Buong Proseso
Patakbuhin ang Buong Proseso
Patakbuhin ang Buong Proseso

Dapat mong maikonekta ang HTC USB board sa telepono, sunugin ang cellbot.py file sa ASE, at buksan ang mga sesyon ng terminal sa telepono. I-type ang "H" upang ang telepono ay kumusta o anumang iba pang mga utos mula sa README.txt file.

Ang isang "q" ay aalis sa script ng Python sa telepono at isara ang socket ng terminal. Narito ang isang recap kung paano ito gumagana: 1. Ang script ng Python ay magbubukas ng isang socket upang tanggapin ang mga papasok na koneksyon sa telnet at ibigay ang mga utos mula sa serial port 2. Kumonekta kami mula sa aming PC sa telepono sa pamamagitan ng telnet sa port 9002 at ipinapadala sa amin ang mga utos na nakikita namin sa screen 3. Ang HTS USB board ay nakikipag-ugnay sa USB port ng G1 at nagpapadala ng signal na 3.3v sa 74LS04 pin 1. 4. Ang ang signal ay lumabas sa chip sa pin 2, bumalik sa pin 3, at lalabas muli sa pin 4 sa 5v 5. Tumatanggap ang aming Arduino ng serial signal sa RX pin 0 at iproseso ito sa pamamagitan ng programa ng Cellbot.pde 6. Kami maaaring i-type ang 'q' upang patayin ang script ng Python at isara ang koneksyon sa telnet Ngayon na nakumpleto mo ang napaka-kumplikadong proseso na ito upang magpadala ng mga pangunahing utos sa isang robot ng Arduino, oras na para sa iyo na i-hack ito upang mas maging kahanga-hanga! Wala pa kaming 2-way serial na gumagana kaya hindi maipadala ng Arduino ang mga utos pabalik sa telepono ngunit ginagawa namin iyon. Manatiling kasalukuyang sa pamamagitan ng pag-subscribe sa aming blog sa Cellbots.com. Tungkol sa Mga May-akda: Ang mananaliksik na si Tim Heath Lead na unang nagsama sa prosesong ito sa Tech Shop sa Menlo Park, kung saan siya ay kasapi. Si Ryan Hickman Programmer na nagtrabaho sa Python at Arduino code at na-authoered ang Instructable na ito.

Inirerekumendang: