INHOUDSOPGAWE:

Android G1 -reeks na Arduino -robot: 8 stappe
Android G1 -reeks na Arduino -robot: 8 stappe

Video: Android G1 -reeks na Arduino -robot: 8 stappe

Video: Android G1 -reeks na Arduino -robot: 8 stappe
Video: 7 ПОЛЕЗНЫХ устройств на АРДУИНО, которые можно собрать за 15 минут. 2024, September
Anonim
Android G1 -reeks vir Arduino -robot
Android G1 -reeks vir Arduino -robot
Android G1 -reeks vir Arduino -robot
Android G1 -reeks vir Arduino -robot
Android G1 -reeks na Arduino -robot
Android G1 -reeks na Arduino -robot

Leer hoe u Android -selfoon 'n robot kan beheer met 'n Arduino -bord. Die telefoon neem opdragte via telnet vanaf 'n ander telefoon of 'n rekenaar, sodat u die robot op afstand kan beheer. Hierdie projek sal die G1 andersins nie verander nie, sodat u kan voortgaan om dit as u gewone telefoon te gebruik nadat u dit ontkoppel het. Waarom? Deur goedkoop elektroniese komponente soos Arduino -borde te gebruik, kan u dit met u $ 400 -telefoon koppel om 'n wonderlike robot te maak. Dit sal honderde dollars kos om GPS, LCD's, bewegingsensors, wi-fi, mobiele verbindings, luidsprekers en meer by 'n stokperdjie-bot te voeg, maar u telefoon het dit reeds! Saam stel die Android G1 en Arduino -bord u in staat om goedkoop elektronika soos eenvoudige servo's en sensors te gebruik, om kragtige toestelle soos robotte, afgeleë telepresensie of prettige speelgoed vir kinders te bou. Meer inligting op Cellbots.com Opmerking: hierdie projek benodig tans 'n Android G1 met worteltoegang om seriële uitset van die telefoon na die Arduino -robot te gebruik. U kan 'n BlueTooth -module van $ 20 by u Arduino -bord voeg sodat die telefoon daaroor kan praat oor die seriële BlueTooth as u die kommersiële Android -sagteware wil gebruik. Spesiale dank: ons het die Hacker Dojo in Mountain View, CA, bedank dat u ons in kontak gebring het, gehelp het met 'n paar moeilike kwessies via hul poslys met wonderlike lede en dat ons 74LS04 -skyfies op voorraad het. Die grootste deel van die byeenkoms is by die Tech Shop in Menlo Park gedoen.

Stap 1: items benodig

Artikels benodig
Artikels benodig
Artikels benodig
Artikels benodig
Artikels benodig
Artikels benodig

Om hierdie tutoriaal te voltooi, benodig u die volgende: Hardeware: - Android G1 Dev -telefoon (of ander Android -toestel met worteltoegang en seriële uitvoer) - Arduino (ek gebruik 'n Freeduino SB, maar elkeen moet dit doen) - 3.3v tot 5v omskakelaar as u nie 'n 3.3v Arduino gebruik nie (ek gebruik 'n 74LS04 -chip vir minder as $ 1, maar ander opsies is beskikbaar) - HTC USB -uitbreekbord vir die G1 - Soldeertoerusting vir twee vinnige verbindings - 'n Robotliggaam met mikro -servo's (karton, akriel, loopbane, wiele, alles sal doen) Sagteware: - Android Scripting -omgewing (ASE) - Telnet -kliënt vir u rekenaar (ek gebruik PuTTY op Windows) - Arduino -ontwikkelingsomgewing - (opsioneel) Seriële kliënt vir u rekenaar (ek gebruik PuTTY ook op Windows hiervoor) - (opsioneel) Android SDK As u instruksies kan volg, kan u hierdie handleiding voltooi met min kennis van Python, Arduino, Android of elektronika. U sal hierdie dinge wil weet as u verder wil gaan as 'n knipperende LED, maar dit sal u aan die gang kry.

Stap 2: Android G1 met seriële uitvoer ingeskakel

Android G1 met seriële uitvoer aangeskakel
Android G1 met seriële uitvoer aangeskakel
Android G1 met seriële uitvoer aangeskakel
Android G1 met seriële uitvoer aangeskakel
Android G1 met seriële uitvoer aangeskakel
Android G1 met seriële uitvoer aangeskakel

G1's word nie met die moontlikheid gestuur om reeksopdragte uit die USB -poort te stuur nie, en daar is geen oorspronklike opsie om dit in staat te stel nie. As u 'n gevorderde Android SDK -gebruiker is, kan u u eie build maak, maar ek het gekies om die Cyanogenmod 4.2.13 te gebruik. As u weet van ander Android -toestelle met seriële uitwerk, voeg dit by die kommentaar.

U kan ook die skakels na hierdie instruksies volg om met u G1 oor u rekenaar vanaf u rekenaar te praat. Die reeks -na -USB -verbinding is nie nodig vir hierdie tutoriaal nie, maar ek het dit as 'n goeie gesondheidstoets gebruik om te verifieer dat die telefoon reeks uitstuur. As u nie die ander intructable gebruik om te kontroleer of die seriële uitset werk nie, kan u hierdie eenvoudige toets probeer: 1. Maak die Terminal -app op die G1 oop (kom met Cyanogen, maar laai een van die Market af as u 'n ander beeld het) 2. Navigeer na die/dev/gids deur cd/dev/3. in te tik. Tik ls (dit is 'n L) en soek ttyMSM2 in die teruggekose lys Die Python -script wat ons sal gebruik, stuur later opdragte na '/dev/ttyMSM2' in beveel dat hulle die seriële verbinding moet verbreek. Aangesien dit worteltoegang vereis, moet u die regte daarvoor verander elke keer as u die telefoon herlaai. Om dit te doen: 1. Maak die terminale app op die telefoon oop 2. Tik 'chmod 777 /dev /ttyMSM2'. Dan kan u die Python -script vanaf die Android Scripting -wysiging in die volgende stap uitvoer, en dit sal toegang hê tot die stuur van seriële uitvoer.

Stap 3: Installeer die Android Scripting -omgewing (ASE) met Python

Installeer die Android Scripting Environment (ASE) met Python
Installeer die Android Scripting Environment (ASE) met Python
Installeer die Android Scripting Environment (ASE) met Python
Installeer die Android Scripting Environment (ASE) met Python

Die skrifte wat ons sal gebruik om 'n oop verbinding met die telefoon te skep en opdragte uit te stuur, is in Python geskryf. Om dit op die G1 uit te voer, benodig ons die Android Scripting -omgewing. As u dit nie in die mark sien nie, kan u dit aflaai deur die strepieskode op die bladsy te skandeer wat na die apk -lêer op hierdie bladsy skakel.

Sodra u ASE geïnstalleer en uitgevoer het, wil u die Python-module in die spyskaart byvoeg: 1. Maak ASE oop en maak seker dat u 'n werkende internetverbinding het (wi-fi of 3G). 2. Druk die spyskaartknoppie op die telefoon en kies Tolke 3. Druk weer op die spyskaart en kies Voeg 4. Kies Python (tans v2.6.2 vanaf die skryf hiervan), en dit sal 'n paar zip -lêers aflaai. ASE, maar dit is nie nodig nie.

Stap 4: Kopieer en voer die Cellbot.py -script uit om die Python -program te begin

Kopieer en voer die Cellbot.py -script uit om die Python -program te begin
Kopieer en voer die Cellbot.py -script uit om die Python -program te begin

Hierdie handleiding gebruik 'n Python -skrif om die 'brein' van die robot te wees. Kry die nuutste kode van ons open source Google Code -projek. U benodig slegs die cellbot.py -lêer, maar ander kan help met verskillende dinge wat u wil ondersoek. Ek het die telefoon eenvoudig aan die USB -aansluiting van my rekenaar gekoppel en die skyf gemonteer voordat ek die lêer na/sdcard/ase/scripts gekopieer het.

Die program skep 'n oop aansluiting om 'n inkomende telnet -sessie te aanvaar. Dit druk ook die ontvangde opdragte op die skerm af terwyl u dit uit die seriële poort stuur. Plaas hierdie lêer op die telefoon se SD -kaart in die/ase/scripts/directory. Gedetailleerde stappe om die skrifte te laai en uit te voer: 1. Kopieer die cellbot.py -script na die SD -kaart se/ase/scripts/directory 2. Maak seker dat u afklim. die SD -kaart van u rekenaar af as u dit so gekopieer het, aangesien die telefoon nie toegang tot die lêers op dieselfde tyd as u rekenaar het nie. 3. Maak die Android Scripting Environment -app oop 4. Klik op cellbot.py om dit te begin. U moet 'n bevestiging sien dat die toestel op hierdie punt gereed is om inkomende telnet -sessies op poort 9002 te aanvaar. Wenk: gebruik die "chmod 777" /dev/ttyMSM2 "-opdrag vanaf stap 3 eers. Sien stap 5 om die IP -adres van die telefoon te vind.

Stap 5: Telnet na die G1 en bevele om dit te stuur

Telnet na die G1 en toetsopdragte stuur
Telnet na die G1 en toetsopdragte stuur
Telnet na die G1 en toetsopdragte stuur
Telnet na die G1 en toetsopdragte stuur
Telnet na die G1 en toetsopdragte stuur
Telnet na die G1 en toetsopdragte stuur

Die telefoon moet gereed wees om daarin te telnet en opdragte vanaf u rekenaar te stuur. Dit sal dit op die telefoon se skerm druk om te bevestig wat dit ontvang. Ek het PuTTY op Windows gebruik, maar ons het bevestig dat minicom goed werk op Mac's soos beskryf in hierdie instruksies.

U moet eers die telefoon se IP -adres vind. Dit is beskikbaar deur te gaan na Kieslys> Instellings> Draadlose kontroles> Wi-Fi-instellings en druk dan op die tans aktiewe verbinding. 'N Opspring-roosterbroodjie sal met die huidige IP-adres op die plaaslike netwerk verskyn. Skryf dit neer, aangesien u dit sal gebruik elke keer as u 'n telnet -sessie vanaf u rekenaar wil oopmaak. IP -opdragte verval gewoonlik na 'n sekere aantal dae, sodat u dit moontlik weer moet nagaan. Let op: hierdie tutoriaal veronderstel dat u rekenaar en telefoon op dieselfde plaaslike netwerk is. Dit is moontlik om na die telefoon van buite die plaaslike netwerk te skakel, maar word nie hier gedek nie. Maak u gekose telnet -kliënt oop en maak verbinding met die IP -adres van die telefoon op poort 9002. Vanaf 'n opdragreël doen u dit as "telnet 192.168.1.1 9002" met die werklike IP -adres van die telefoon. Tik 'n paar karakters in en druk enter om te sien hoe dit op die telefoon se skerm verskyn. U kan 'n q tik om die Python -script te laat stop, wat u terminale sessie moet sluit. As u om een of ander rede nie via telnet kan koppel nie en die program moet doodmaak, moet 'n eenvoudige herlaai van die telefoon die ding doen. Gevorderde gebruikers wil moontlik die proses -ID via ps vind en dan kill gebruik om dit te stop. Gevorderd: 'n toekomstige weergawe hiervan kan 'n plaaslike webbediener vanaf die telefoon bestuur eerder as om opdragte via telnet te aanvaar. Ons ondersoek ook XMPP om met u robot te gesels.

Stap 6: Koppel 'n 3.3v tot 5v Level Shifter aan die Arduino

Koppel 'n 3.3v tot 5v Level Shifter aan die Arduino
Koppel 'n 3.3v tot 5v Level Shifter aan die Arduino
Koppel 'n 3.3v tot 5v Level Shifter aan die Arduino
Koppel 'n 3.3v tot 5v Level Shifter aan die Arduino
Koppel 'n 3.3v tot 5v Level Shifter aan die Arduino
Koppel 'n 3.3v tot 5v Level Shifter aan die Arduino

Die Arduino wat in hierdie tutoriaal gebruik word, is 'n 5v -model, dus moet ons die 3.3v -sein wat uit die G1 kom, omskakel met 'n vlakversneller. Dit moet moontlik wees om direk aan te sluit op 'n 3.3v Arduino, maar dit was nie iets wat ek getoets het nie.

Daar is verskillende maniere om dit te benader, maar ons sal 'n 74LS04 -chip in hierdie voorbeeld gebruik. U kan hier na een soek en hulle is waarskynlik minder as $ 1. Ek en Tim het ons by die Hacker Dojo in Mountain View, CA, opgetel, maar dit kom baie voor en moet oorvloedig wees, oral waar skyfies verkoop of geskenk word. Op 'n hoë vlak gaan ons eenvoudig die TX -sein van die HTS USB -uitbrekingskaart na pen 1 van die 74LS04 -chip stuur. Om dit te laat werk, gaan ons twee keer deur die chip en kom pen 4 na die RX -pen op die Freeduino SB (u seriële pen kan anders wees as u 'n ander Arduino -bord het, maar almal moet dit ondersteun). Volg die onderstaande stappe om die vlakverskakelaar op te dra en die HTC USB -kaart aan te sluit (moet dit nog nie by die telefoon aansluit nie en die Arduino -stekker uit die stekker trek): 1. Steek die 74LS04 -chip op u broodbord. Maak seker dat die chip die middel breek, sodat die penne nie kortgeknip word nie ('n dom beweging wat ek eers gemaak het) 2. Soldaat twee drade na die HTC USB -bord, soos beskryf in hierdie instruksies, maar ons gebruik slegs penne 7 (Grond) en 8 (TX0), aangesien ons slegs eenrigting-oordrag vir hierdie tutoriaal doen. 3. Sluit die ander kant van die gronddraad (pen 7) aan op 'n grond op u broodbord (wat met 'n grond op u Arduino verbind moet word) 4. Koppel die ander kant van die TX0 (pen 8) draad aan die broodbord waar dit loop in pen 1 van die 74LS04 -chip. (soek 'n prentjie na 'n volledige diagram van die skyfie) 5. Gebruik 'n draad om pen 2 en 3 van die chip te verbind 6. Koppel pen 4 van die chip aan die Arduino RX -punt (pen 0 op die Freeduino SB en Arduino Duemilanove) 7. Sluit pen 7 (GND) op die skyfie aan op die grond vir u broodbord (wat ook met die Arduino -grond aansluit) 5v-uitvoer) U moet nou gereed wees om die HTC USB-uitbreekbord aan die onderkant van die telefoon in te sluit en die Arduino aan te skakel. Kontroleer of daar vonke en reuke is, en raak dinge aan om seker te maak dat dit koel is. As u nog nie 'n robot het nie, kan u kyk of die LED aan en uit gaan om te bevestig dat dit werk.

Stap 7: Laai die Cellbots -program op die Arduino

Laai die Cellbots -program op die Arduino
Laai die Cellbots -program op die Arduino
Laai die Cellbots -program op die Arduino
Laai die Cellbots -program op die Arduino

Kry die Arduino -bronkode van ons Google Code -projekwebwerf. Maak die Cellbots.pde Arduino -program oop in die Arduino -redakteur. Druk dit dan na u Arduino -bord.

U kan toets om met die Arduino -kode te praat deur die seriële monitor in die Arduino -redakteur oop te maak. Dit is 'n goeie manier om u robot of toestel te toets deur direk met die Arduino te praat voordat u alles aan die telefoon koppel. Die kode stuur reeksopdragte terug na die seriële monitor om te bevestig wat dit doen, selfs as u nog nie u robot laat bou het nie.. U wil dus hierdie skakelaar 'n skakelaar maak, maar ek het dit net ontkoppel toe ek 'n nuwe program moes laai.

Stap 8: Begin die hele proses

Begin die hele proses
Begin die hele proses
Begin die hele proses
Begin die hele proses
Begin die hele proses
Begin die hele proses

U moet die HTC USB -bord aan die telefoon kan koppel, die cellbot.py -lêer in ASE kan aanskakel en 'n terminale sessie in die telefoon kan oopmaak. Tik "H" om die telefoon te laat groet of enige ander opdrag uit die README.txt -lêer.

'N "q" sal die Python -script op die telefoon verlaat en die terminale socket sluit. Hier is 'n opsomming van hoe dit alles werk: 1. Die Python -script maak 'n socket oop om inkomende telnetverbindings te aanvaar en die opdragte uit die seriële poort 2 weer te gee… Ons verbind van ons rekenaar na die telefoon via telnet op poort 9002 en stuur opdragte wat ons op skerm sien 3. Die HTS USB -kaart koppel aan die G1 se USB -poort en stuur die 3.3v -sein na die 74LS04 -pen 1. 4. Die sein kom uit die skyfie op pen 2, gaan terug op pen 3 en kom weer uit op pen 4 om 5v 5. Ons Arduino aanvaar die reekssignaal op RX -pen 0 en verwerk dit via die Cellbot.pde -program 6. Ons kan 'q' tik om die Python -skrip dood te maak en die telnetverbinding te sluit. Noudat u hierdie baie ingewikkelde proses voltooi het om basiese opdragte na 'n Arduino -robot te stuur, is dit tyd dat u dit meer hackend maak! Ons het nog nie 'n tweerigting-reeks werk nie, so die Arduino kan nie opdragte terugstuur nie, maar ons werk daaraan. Bly op die hoogte deur in te teken op ons blog op Cellbots.com. Oor die skrywers: Tim Heath Hoofnavorser wat hierdie proses die eerste keer bymekaar gesit het by die Tech Shop in Menlo Park, waar hy lid is. Ryan Hickman -programmeerder wat aan die Python- en Arduino -kode gewerk het en hierdie instruksies behartig het.

Aanbeveel: