Мазмуну:

Android G1 Arduino роботуна сериал: 8 кадам
Android G1 Arduino роботуна сериал: 8 кадам

Video: Android G1 Arduino роботуна сериал: 8 кадам

Video: Android G1 Arduino роботуна сериал: 8 кадам
Video: КАК написать любую работу на ЧПУ/плоттере. Рукописный текст в одну линию. Гайд 2024, Ноябрь
Anonim
Android G1 Arduino роботуна сериал
Android G1 Arduino роботуна сериал
Android G1 Arduino роботуна сериал
Android G1 Arduino роботуна сериал
Android G1 сериясы Arduino роботуна
Android G1 сериясы Arduino роботуна

Сиздин Android уюлдук телефонуңуз Arduino тактасын колдонуп роботту кантип башкара аларын билип алыңыз. Телефон башка телефондон же компьютерден telnet аркылуу буйруктарды алат, андыктан роботту алыстан башкара аласыз. Бул долбоор G1ди башкача өзгөртпөйт, андыктан аны кадимки телефонуңуздан чыгаргандан кийин колдоно берсеңиз болот. Arduino такталары сыяктуу арзан электрондук компоненттерди колдонуу менен, сиз аларды $ 400 телефонуңуз менен жупташтырып, укмуш робот жасай аласыз. Хобби ботуна GPS, ЖК, кыймыл сенсорлору, wi-fi, уюлдук байланыштар, колонкалар жана башкаларды кошуу үчүн жүздөгөн доллар талап кылынат, бирок телефонуңузда булар бар! Бирге Android G1 жана Arduino тактасы жөнөкөй редуктор жана сенсорлор сыяктуу арзан электрониканы колдонууга, роботтор, алыстан телепрезентация же балдар үчүн кызыктуу оюнчуктар сыяктуу күчтүү түзүлүштөрдү курууга мүмкүндүк берет. Көбүрөөк маалымат Cellbots.com. Notice боюнча: Бул долбоор учурда Arduino роботуна телефондон сериялык чыгарууну колдонуу үчүн Android G1 тамыры менен кирүүнү талап кылат. Сиз коммерциялык Android программасын колдонгуңуз келсе, Arduino тактасына $ 20 BlueTooth модулун кошуп, телефон менен сериялык BlueTooth аркылуу сүйлөшө аласыз. Өзгөчө ыраазычылык: Бизде Маунтин -Вью штатында Хакер Дожо бар, бизди байланыштыргандыгыңыз үчүн, укмуштуудай мүчөлөрдүн тизмеси аркылуу кээ бир татаал маселелерге жардам бергениңиз үчүн жана кампада 74LS04 чиптери бар экени үчүн рахмат. Кураштыруунун көбү Менло Парктагы Техникалык Дүкөндө жасалды.

1 -кадам: керектүү нерселер

Керектүү нерселер
Керектүү нерселер
Керектүү нерселер
Керектүү нерселер
Керектүү нерселер
Керектүү нерселер

Бул окуу куралын аягына чыгаруу үчүн сизге төмөнкүлөр керек болот: Аппараттык жабдыктар: - Android G1 Dev Phone (же башка Android түзмөгү тамыры менен жана сериялык чыгышы менен) - Arduino (мен Freeduino SB колдонуп жатам, бирок ким болбосун кылышы керек) - 3.3v to 5v Эгерде сиз 3.3v Arduino колдонбосоңуз, анда конвертер (мен 74LS04 чипин 1 долларга чейин колдонуп жатам, бирок башка варианттар бар) - G1 үчүн HTC USB сынуучу тактасы - эки тез туташуу үчүн ширетүүчү жабдык - робот корпусу микро серволор (картон, акрил, протекторлор, дөңгөлөктөр, эч нерсе кыла албайт) Программалык камсыздоо: - Android Scripting Environment (ASE) - PC үчүн Telnet кардары (мен Windowsто PuTTY колдонуп жатам) - Arduino өнүктүрүү чөйрөсү - (милдеттүү эмес) Сериялык кардар сиздин компьютериңиз (мен бул үчүн Windowsта PuTTY колдонуп жатам) - (милдеттүү эмес) Android SDK Эгерде сиз көрсөтмөлөрдү аткарсаңыз, бул окуу куралын Python, Arduino, Android же электроника боюнча аз билимиңиз менен толуктай аласыз. Сиз жаркыраган LED чегинен чыккыңыз келсе, бул нерселерди билгиңиз келет, бирок бул сизди баштайт.

2 -кадам: Android G1 сериялык чыгаруу иштетилген

Android G1 сериялык чыгаруу иштетилген
Android G1 сериялык чыгаруу иштетилген
Android G1 сериялык чыгаруу иштетилген
Android G1 сериялык чыгаруу иштетилген
Android G1 сериялык чыгаруу иштетилген
Android G1 сериялык чыгаруу иштетилген

G1'лер USB портунан сериялык буйруктарды жөнөтүү жөндөмүнө ээ эмес жана аны иштетүү үчүн жергиликтүү вариант жок. Эгер сиз өнүккөн Android SDK колдонуучусу болсоңуз, анда сиз өзүңүздүн түзүмүңүздү жасай аласыз, бирок мен Cyanogenmod 4.2.13 колдонууну тандадым. Эгерде сиз башка Android түзмөктөрүнүн сериялык иштөөсүн билсеңиз, аларды комментарийге кошуңуз.

Кошумча, сиз G1 менен компьютериңизден USB аркылуу сүйлөшүү үчүн бул жердеги шилтемелерди ээрчип алсаңыз болот. Бул окуу куралы үчүн USB туташуусунун сериясы талап кылынбайт, бирок мен аны телефондун сериал жөнөтүп жатканын текшерүү үчүн жакшы акыл -эс текшерүү катары колдондум. Эгерде сиз сериялык өндүрүштүн иштешин текшерүү үчүн башка өтмөктү колдонбосоңуз, анда бул жөнөкөй текшерүүнү колдонуп көрүңүз: 1. G1деги Терминал тиркемесин ачыңыз (цианоген менен келет, бирок эгер сизде башка сүрөт болсо, аны базардан жүктөп алыңыз) 2 Cd/dev/3 деп терүү менен/dev/каталогуна өтүңүз ls (бул L) жана кайтарылган тизмеден ttyMSM2 издеңиз. Кийинчерээк биз колдоно турган Python скрипти '/dev/ttyMSM2' аларга сериялык туташууну өчүрүү буйругу. Бул тамырга кирүүнү талап кылгандыктан, телефонду өчүрүп күйгүзгөн сайын уруксаттарды өзгөртүү керек болот. Бул үчүн: 1. Телефондогу терминалдык тиркемени ачыңыз 2. Enter 'chmod 777 /dev /ttyMSM2' Андан кийин кийинки кадамда Android Scripting түзөтүүсүнөн Python скриптин иштете аласыз жана ал сериялык чыгарууну жөнөтүү мүмкүнчүлүгүнө ээ болот.

3 -кадам: Python менен Android Scripting Environment (ASE) орнотуңуз

Python менен Android Scripting Environment (ASE) орнотуңуз
Python менен Android Scripting Environment (ASE) орнотуңуз
Python менен Android Scripting Environment (ASE) орнотуңуз
Python менен Android Scripting Environment (ASE) орнотуңуз

Телефондо ачык розетка туташуу жана буйруктарды жөнөтүү үчүн биз колдоно турган скрипттер Pythonдо жазылган. Муну G1де иштетүү үчүн бизге Android Scripting Environment керек болот. Эгер сиз аны рынокто көрбөсөңүз, бул беттеги apk файлына шилтеме берген штрих -кодду сканерлеп жүктөп алсаңыз болот.

ASEди орнотуп, иштеткенден кийин менюдан Python модулуна кошкуңуз келет: 1. ASEди ачыңыз жана иштеп жаткан интернет байланышы бар экениңизди текшериңиз (wi-fi же 3G) 2. Телефондогу меню баскычын басып, тандаңыз. Котормочулар 3. Менюну дагы бир жолу басып, Кошуу 4 дегенди тандаңыз. Python'ду тандаңыз (азыркы учурда v2.6.2) жана ал кээ бир zip файлдарын жүктөйт Сиз Python менен тааныш болуу үчүн скрипттерди түзүүнү, ачууну, түзөтүүнү жана иштетүүнү изилдешиңиз мүмкүн. ASE, бирок бул талап кылынбайт.

4 -кадам: Python программасын ишке киргизүү үчүн Cellbot.py скриптин көчүрүү жана иштетүү

Python программасын ишке киргизүү үчүн Cellbot.py скриптин көчүрүү жана иштетүү
Python программасын ишке киргизүү үчүн Cellbot.py скриптин көчүрүү жана иштетүү

Бул окуу куралы роботтун "мээси" болуу үчүн Python скриптин колдонот. Ачык коддуу Google Code долбоорубуздан акыркы кодду алыңыз. Сизге cellbot.py файлы гана керек, бирок башкалар сиз изилдегиси келген ар кандай нерселерге жардам бериши мүмкүн. Мен телефонду компьютеримдин USB туташуусуна туташтырып, файлды/sdcard/ase/скрипттерге көчүрүүдөн мурун дисктин үстүнө орноттум.

Программа кирүүчү telnet сеансын кабыл алуу үчүн ачык розетка туташуусун түзөт. Ал ошондой эле алынган командаларды экранга басып чыгарат жана аларды сериялык порттон жөнөтөт. Бул файлды телефондун SD картасына/ase/scripts/директориясына салыңыз. Скрипттерди жүктөө жана иштетүү боюнча деталдуу кадамдар: 1. cellbot.py скриптин SD картасынын/ase/scripts/директориясына көчүрүңүз. SD карта сиздин компьютериңизден, эгер сиз аларды ушундай көчүргөн болсоңуз, анткени телефон сиздин файлдарыңызга кире албайт. 3. Android Scripting Environment колдонмосун ачыңыз 4. Аны ишке киргизүү үчүн cellbot.py баскычын чыкылдатыңыз Түзмөк 9002 портуна келген телнет сессияларын кабыл алуу үчүн ушул учурда даяр экендигин тастыктоону көрүшүңүз керек. Кеңеш: "chmod 777ди иштетүүнү унутпаңыз. /dev/ttyMSM2 "буйругу биринчи #3 -кадамдан. Телефондун IP дарегин табуу үчүн #5 кадамын караңыз.

5 -кадам: Telnet G1ге кирет жана аны тестирлөө буйрук кылат

Telnet G1ге кирет жана аны тестирлөө буйрук кылат
Telnet G1ге кирет жана аны тестирлөө буйрук кылат
Telnet G1ге кирет жана аны тестирлөө буйрук кылат
Telnet G1ге кирет жана аны тестирлөө буйрук кылат
Telnet G1ге кирет жана аны тестирлөө буйрук кылат
Telnet G1ге кирет жана аны тестирлөө буйрук кылат

Телефон сизге телнетке кирүүгө жана компьютериңизден буйруктарды жөнөтүүгө даяр болушу керек. Ал телефондун экранына басып чыгарып, эмнени алганын ырастайт. Мен Windowsто PuTTY колдончумун, бирок биз minicom бул көрсөтмөдө сүрөттөлгөндөй Macsте жакшы иштээрин ырастадык.

Сиз адегенде телефонуңуздун IP дарегин табышыңыз керек. Бул Меню> Орнотуулар> Зымсыз башкаруу> Wi-Fi орнотуулары бөлүмүнө өтүп, учурда активдүү байланышты басуу аркылуу жеткиликтүү. Калкыма тост кабар жергиликтүү тармакта учурдагы IP дареги менен келет. Муну жазыңыз, анткени сиз муну компьютериңизден телнет сессиясын ачкыңыз келген сайын колдоносуз. IP тапшырмалары адатта белгилүү бир күндөрдөн кийин бүтөт, андыктан дагы бир жолу текшерип көрүшүңүз керек болот. Телефонго жергиликтүү тармактын сыртынан багыттоо мүмкүн болушу керек, бирок бул жерде каралбайт. Каалаган telnet кардарыңызды ачыңыз жана 9002 портунда телефондун IP дарегине туташыңыз. Буйрук сабынан сиз муну "telnet 192.168.1.1 9002" катары телефондун чыныгы IP'син колдонуп жасайсыз. Кээ бир тамгаларды териңиз жана Enter баскычын басып, телефондун экранында көрүнөөрүн көрүңүз. Python скриптин токтотууга алып келүү үчүн q терсеңиз болот, ал терминалдык сеансты жабышы керек. Эгерде кандайдыр бир себептерден улам сиз телнет аркылуу туташа албасаңыз жана программаны өлтүрүү керек болсо, анда телефондун жөнөкөй өчүрүп -күйгүзүү фокусту кылышы керек. Өркүндөтүлгөн колдонуучулар процесстин идентификаторун ps аркылуу таап, андан кийин аны токтотуу үчүн kill колдонушу мүмкүн. Өркүндөтүлгөн: Мунун келечектеги версиясы телнет аркылуу буйруктарды кабыл алуунун ордуна телефондон жергиликтүү веб -серверди иштетиши мүмкүн. Биз ошондой эле сиздин робот менен баарлашуу үчүн XMPPди изилдеп жатабыз.

6 -кадам: Arduino менен 3.3v to 5v Level Shifter туташтырыңыз

3.3Vдан 5Vга чейин Shifterди Arduino менен туташтырыңыз
3.3Vдан 5Vга чейин Shifterди Arduino менен туташтырыңыз
3.3Vдан 5Vга чейин Shifterди Arduino менен туташтырыңыз
3.3Vдан 5Vга чейин Shifterди Arduino менен туташтырыңыз
3.3Vдан 5Vга чейин Shifterди Arduino менен туташтырыңыз
3.3Vдан 5Vга чейин Shifterди Arduino менен туташтырыңыз

Бул үйрөткүчтө колдонулган Arduino 5v модели, андыктан G1ден чыккан 3.3v сигналын деңгээл алмаштыргычтын жардамы менен алмаштырышыбыз керек. 3.3v Arduino менен түз туташуу мүмкүн болушу керек, бирок бул мен сынаган нерсе эмес.

Буга жакындауунун бир нече жолу бар, бирок биз бул мисалда 74LS04 чипин колдонобуз. Сиз бул жерден издесеңиз болот, алар $ 1ден төмөн. Тим экөөбүздүкүн Калифорниянын Маунтин -Вью шаарындагы Хакер Дожодон алдык, бирок булар абдан таралган жана чиптер сатылган же белекке берилген жерде көп болушу керек. Жогорку деңгээлде, биз HTS USB сынык тактасынан TX сигналын 74LS04 чиптин 1 -пинине жөнөтөбүз. Иштетүү үчүн биз чипти эки жолу басып, Freeduino SBдеги RX пинге 4 -пинди чыгарабыз (эгер сизде башка Arduino тактасы болсо, анда сиздин сериялык пин башкача болушу мүмкүн, бирок баары муну колдошу керек). Деңгээл которгучту зымга байлап HTC USB тактасын туташтыруу үчүн бул кадамдарды аткарыңыз (азырынча аны телефонго туташтырбаңыз жана Arduino'го электр кубатын ажыратпаңыз): 1. 74LS04 чипин нан тактаңызга салыңыз. Чиптин борбордук үзүлүшкө тоскоолдук кылаарын текшериңиз, ошондо казыктар кыскартылбайт (адегенде мен жасаган дудук кыймыл) 2. Бул инструкцияда сүрөттөлгөндөй HTC USB тактасына эки зым солдат, бирок биз 7 -казыктарды гана колдонобуз (Ground) жана 8 (TX0), анткени биз бул окуу куралы үчүн бир тараптуу берүүнү гана жасап жатабыз. 3. Жердин экинчи учун (пин 7) зымды нан тактаңыздагы жерге туташтырыңыз (ал Arduinoдогу жерге туташтырылышы керек) 4. TX0 (пин 8) зымынын экинчи учун нан ал 74LS04 чиптин 1 -пинине кирет. (чиптин толук диаграммасы үчүн сүрөт издөө) 5. Чиптин 2 жана 3 -пин туташтыруу үчүн зымды колдонуңуз 6. Чиптин 4 -пинди Arduino RX чекитине туташтырыңыз (Freeduino SB жана Arduino Duemilanove боюнча 0 пин)) 7. Чиптеги 7 -пинди (GND) нан табыңыз үчүн жерге туташтырыңыз (ал дагы Arduino жерге туташат) 8. 14 -пинди (VCC) панелдеги 5v кубатына туташтырыңыз (ал Arduinoдон кубат алат) 5v чыгаруу) Сиз азыр HTC USB сындыруучу тактасын телефондун түбүнө туташтырып, Arduino күйгүзүүгө даяр болушуңуз керек. Учкундарды жана жыттарды текшериңиз жана нерселерге тийип коюңуз. Эгерде сизде робот жок болсо, анда анын иштешин ырастоо үчүн LEDдин күйүп -өчкөнүн текшере аласыз.

7 -кадам: Cellbots программасын Arduinoго жүктөңүз

Cellbots программасын Arduinoго жүктөңүз
Cellbots программасын Arduinoго жүктөңүз
Cellbots программасын Arduinoго жүктөңүз
Cellbots программасын Arduinoго жүктөңүз

Биздин Google Code долбоорунун сайтынан Arduino баштапкы кодун алыңыз. Cellbots.pde Arduino программасын Arduino редакторунда ачыңыз. Андан кийин аны Arduino тактаңызга түртүңүз.

Сиз Arduino редакторунда сериялык мониторду ачуу менен Arduino коду менен сүйлөшүүнү текшере аласыз. Бул телефонго туташтыруудан мурун Arduino менен түз сүйлөшүп, роботуңузду же түзмөгүңүздү текшерүүнүн эң сонун жолу. Код сериалдык буйруктарды сериялык мониторго кайра жөнөтөт, эгерде сизде робот жок болсо дагы, ал эмне кылып жатканын ырастап турат.. Демек, сиз муну алмаштыргыңыз келиши мүмкүн, бирок мен жаңы программаны жүктөө керек болгондо мен аны ажыратып койгом.

8 -кадам: Бүт процессти иштетүү

Бүт процессти иштетүү
Бүт процессти иштетүү
Бүт процессти иштетүү
Бүт процессти иштетүү
Бүт процессти иштетүү
Бүт процессти иштетүү

Сиз HTC USB тактасын телефонго туташтырып, cellote.py файлын ASEде күйгүзүп, телефонго терминалдык сеанстарды ачышыңыз керек. Телефонго README.txt файлынан салам же башка буйруктарды айтуу үчүн "H" териңиз.

"Q" телефондогу Python скриптин таштап, терминалдын розеткасын жабат. Мунун баары кантип иштээри жөнүндө кыскача маалымат: 1. Python скрипти телет байланыштарын кабыл алуу үчүн розетканы ачат жана 2 -сериялык порттон чыккан буйруктарды жаңыртат. Биз компьютерибизден телефонго 9002 портунда telnet аркылуу туташып, экранда көргөн буйруктарды жөнөтөбүз. HTS USB платасы G1дин USB портуна интерфейске кирет жана 3.3v сигналын 74LS04 пин 1ге жөнөтөт. сигнал 2 -пин чиптен чыгат, 3 -пинге кайра кирет жана 5v 5. 5 -те 4 -пинге кайра чыгат. Биздин Arduino RX pin 0догу сериялык сигналды кабыл алат жана аны Cellbot.pde программасы аркылуу иштетет 6. Биз Python скриптин өлтүрүү жана telnet туташуусун жабуу үчүн 'q' деп жаза аласыз Эми сиз Arduino роботуна негизги буйруктарды жөнөтүү үчүн бул өтө татаал процессти бүтүргөнүңүздөн кийин, аны бузуу убактысы келип жетти! Бизде азырынча эки тараптуу иштөө жок, ошондуктан Arduino телефонго буйруктарды кайра жөнөтө албайт, бирок биз бул боюнча иштеп жатабыз. Cellbots.com сайтындагы блогубузга жазылуу менен учурдагы абалдан кабардар болуңуз. Авторлор жөнүндө: Тим Хит Бул процессти биринчи жолу ал мүчөсү болгон Менло Парктагы Техникалык Дүкөндө чогуу койгон. Python жана Arduino коддору боюнча иштеген Райан Хикман Программист жана бул Инструкцияны авторлоштурган.

Сунушталууда: