Բովանդակություն:

Android G1 սերիան Arduino ռոբոտին ՝ 8 քայլ
Android G1 սերիան Arduino ռոբոտին ՝ 8 քայլ

Video: Android G1 սերիան Arduino ռոբոտին ՝ 8 քայլ

Video: Android G1 սերիան Arduino ռոբոտին ՝ 8 քայլ
Video: Early stage Android to Arduino robot 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- ի, LCD- ների, շարժման տվիչների, wi-fi- ի, բջջային կապերի, բարձրախոսների և այլնի ավելացմանը հոբբիի բոտին, բայց ձեր հեռախոսում դրանք արդեն կան: Միասին, Android G1- ը և Arduino- ի տախտակը թույլ են տալիս օգտագործել էժան էլեկտրոնիկա, ինչպիսիք են պարզ սերվերն ու տվիչները, հզոր սարքեր ստեղծելու համար, ինչպիսիք են ռոբոտները, հեռադիտակը կամ երեխաների համար զվարճալի խաղալիքներ: Լրացուցիչ տեղեկություններ Cellbots.com- ում: iceանուցում. Այս նախագիծը ներկայումս պահանջում է Android G1 արմատային հասանելիությամբ ՝ հեռախոսից Arduino ռոբոտին սերիական ելք օգտագործելու համար: Դուք կարող եք ավելացնել $ 20 BlueTooth մոդուլ ձեր Arduino տախտակին, որպեսզի հեռախոսը դրա հետ խոսի սերիական BlueTooth- ի միջոցով, եթե ցանկանում եք օգտագործել առևտրային Android ծրագրակազմը: Հատուկ շնորհակալություն. Մենք ունենք Hacker Dojo- ն Mountain View, CA- ում, որը պետք է շնորհակալություն հայտներ մեզ կապի մեջ պահելու, նրանց հիանալի անդամների փոստային ցուցակի միջոցով օգնության հասնելու և 74LS04 չիպսեր պահելու համար: Հավաքի մեծ մասը կատարվել է Մենլո այգում գտնվող Tech Shop- ում:

Քայլ 1: Անհրաժեշտ իրեր

Անհրաժեշտ իրեր
Անհրաժեշտ իրեր
Անհրաժեշտ իրեր
Անհրաժեշտ իրեր
Անհրաժեշտ իրեր
Անհրաժեշտ իրեր

Այս ձեռնարկը լրացնելու համար ձեզ հարկավոր է հետևյալը. Սարքաշար. փոխարկիչ, եթե չեք օգտագործում 3.3v Arduino (ես օգտագործում եմ 74LS04 չիպ ՝ 1 դոլարից ցածր գնով, բայց կան այլ տարբերակներ) - HTC USB ճեղքման տախտակ G1- ի համար - oldոդման սարք երկու արագ միացման համար - Ռոբոտի մարմին միկրո սերվերներ (ստվարաթուղթ, ակրիլ, քայլեր, անիվներ, ամեն ինչ կանի) Softwareրագրակազմ. ձեր համակարգիչը (ես դրա համար օգտագործում եմ նաև PuTTY- ը Windows- ում) - (ըստ ցանկության) Android SDK Եթե կարող եք հետևել հրահանգներին, կարող եք ավարտել այս ձեռնարկը ՝ Python- ի, Arduino- ի, Android- ի կամ էլեկտրոնիկայի մասին փոքր գիտելիքներով: Դուք կցանկանաք իմանալ այդ բաները, եթե ցանկանում եք դուրս գալ թարթող լուսադիոդից, բայց դա ձեզ կսկսի:

Քայլ 2. Android G1 սերիական ելքով միացված

Android G1 սերիական ելքով միացված է
Android G1 սերիական ելքով միացված է
Android G1 սերիական ելքով միացված է
Android G1 սերիական ելքով միացված է
Android G1 սերիական ելքով միացված է
Android G1 սերիական ելքով միացված է

G1- ը չի առաքվում USB պորտից սերիական հրամաններ ուղարկելու հնարավորությամբ, և այն միացնելու հայրենական տարբերակ չկա: Եթե դուք Android SDK- ի առաջադեմ օգտվող եք, կարող եք ինքներդ կառուցել, բայց ես որոշեցի օգտագործել Cyanogenmod 4.2.13 -ը: Եթե գիտեք Android- ի այլ սարքեր, որոնց սերիան չի աշխատում, դրանք ավելացրեք մեկնաբանություններում:

Oանկության դեպքում, կարող եք հետևել այնտեղ տեղադրված այս հղումներին ՝ ձեր համակարգչից USB- ով USB- ով ձեր G1- ով խոսելու համար: USB- ի սերիան USB- ի համար պարտադիր չէ այս ձեռնարկի համար, բայց ես այն օգտագործել եմ որպես լավ խելամտության ստուգում `ստուգելու համար, որ հեռախոսը սերիան դուրս է ուղարկում: Եթե դուք չեք օգտագործում այլ անուղղելի ՝ սերիական ելքն աշխատելու համար, կարող եք փորձել այս պարզ ստուգումը. 1. Բացեք տերմինալ ծրագիրը G1- ում (գալիս է Cyanogen- ով, բայց ներբեռնեք այն Շուկայից, եթե ունեք այլ պատկեր) 2. Գնացեք դեպի/dev/գրացուցակ ՝ մուտքագրելով cd/dev/3. Մուտքագրեք ls (դա L է) և վերադարձված ցանկում փնտրեք ttyMSM2: Python սցենարը, որը մենք հետագայում կօգտագործենք, հրամաններ է ուղարկում '/dev/ttyMSM2' հասցեով: հրամայեք նրանց դուրս գալ սերիական կապից: Քանի որ դա պահանջում է արմատային մուտք, դուք պետք է փոխեք դրա թույլտվությունները ամեն անգամ, երբ վերագործարկում եք հեռախոսը: Դա անելու համար ՝ 1. Բացեք տերմինալի ծրագիրը հեռախոսի վրա 2. Մուտքագրեք «chmod 777 /dev /ttyMSM2», այնուհետև հաջորդ քայլին կարող եք գործարկել Python- ի սցենարը Android Scripting խմբագրումից, և նրան հասանելի կլինի սերիական արտադրանք ուղարկելու համար:

Քայլ 3: Տեղադրեք 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- ով

Այն սցենարները, որոնք մենք կօգտագործենք հեռախոսում բաց վարդակից կապ ստեղծելու և հրամաններ ուղարկելու համար, գրված են Python- ում: G1- ում սա գործարկելու համար մեզ անհրաժեշտ կլինի Android Scripting Environment: Եթե այն շուկայում չեք տեսնում, կարող եք ներբեռնել ՝ սկանավորելով այդ էջի շտրիխ կոդը, որը կապում է այս էջի apk ֆայլին:

ASE- ի տեղադրումից և գործարկումից հետո դուք կցանկանաք ցանկից ավելացնել Python մոդուլը. 1. Բացեք ASE- ն և համոզվեք, որ աշխատող ինտերնետ կապ ունեք (wi-fi կամ 3G) 2. Սեղմեք հեռախոսի ընտրացանկի կոճակը և ընտրեք Թարգմանիչներ 3. Կրկին սեղմեք ընտրացանկը և ընտրեք Ավելացնել 4. Ընտրեք Python (ներկայումս v2.6.2 գրելու համար) և այն կներբեռնի որոշ zip ֆայլեր ASE, բայց դա պարտադիր չէ:

Քայլ 4. Պատճենեք և գործարկեք Cellbot.py սցենարը ՝ Python ծրագիրը գործարկելու համար

Պատճենեք և գործարկեք Cellbot.py սցենարը ՝ Python ծրագիրը գործարկելու համար
Պատճենեք և գործարկեք Cellbot.py սցենարը ՝ Python ծրագիրը գործարկելու համար

Այս ձեռնարկը օգտագործում է Python սցենար ՝ ռոբոտի «ուղեղը» լինելու համար: Ստացեք վերջին ծածկագիրը մեր բաց կոդով Google Code նախագծից: Ձեզ անհրաժեշտ է միայն cellbot.py ֆայլը, բայց մյուսները կարող են օգնել ձեզ տարբեր բաներում, որոնք ցանկանում եք ուսումնասիրել: Ես պարզապես հեռախոսը միացրեցի իմ համակարգչի USB միացմանը և տեղադրեցի սկավառակը ՝ ֆայլը/sdcard/ase/սցենարներում պատճենելուց առաջ:

Createsրագիրը ստեղծում է բաց վարդակից միացում `մուտքային հեռախոսի նիստ ընդունելու համար: Այն նաև տպում է ստացված հրամանները էկրանին ՝ դրանք սերիական պորտից դուրս ուղարկելով: Տեղադրեք այս ֆայլը հեռախոսի SD քարտի վրա/ase/scripts/գրացուցակում: Սցենարները բեռնելու և գործարկելու մանրամասն քայլեր. SD քարտը ձեր համակարգչից, եթե դրանք այդպես եք պատճենել, քանի որ հեռախոսը չի կարող մուտք գործել ֆայլեր ձեր համակարգչի հետ միաժամանակ: 3. Բացեք Android Scripting Environment ծրագիրը 4. Սեղմեք cellbot.py- ին այն գործարկելու համար Դուք պետք է տեսնեք հաստատում, որ այս պահին սարքը պատրաստ է ընդունելու 9002 նավահանգստում մուտքային հեռախոսի նիստերը: Հուշում. Համոզվեք, որ գործարկում եք «chmod 777 /dev/ttyMSM2 հրաման առաջին #3 -րդ քայլից: Հեռախոսի IP հասցեն գտնելու համար տես քայլ 5 -ը:

Քայլ 5. Telnet Into G1 և թեստ ՝ այն ուղարկելու հրամաններ

Telnet Into the G1 և թեստ ՝ այն ուղարկելու հրամաններ
Telnet Into the G1 և թեստ ՝ այն ուղարկելու հրամաններ
Telnet Into the G1 և թեստ ՝ այն ուղարկելու հրամաններ
Telnet Into the G1 և թեստ ՝ այն ուղարկելու հրամաններ
Telnet Into the G1 և թեստ ՝ այն ուղարկելու հրամաններ
Telnet Into the G1 և թեստ ՝ այն ուղարկելու հրամաններ

Հեռախոսը պետք է պատրաստ լինի, որպեսզի այն մուտք գործեք և հրամաններ ուղարկեք ձեր համակարգչից: Այն դրանք կտպագրի հեռախոսի էկրանին `հաստատելու այն, ինչ ստանում է: Ես օգտագործել եմ PuTTY- ը Windows- ում, բայց մենք հաստատել ենք, որ minicom- ը հիանալի է աշխատում Mac- երի վրա, ինչպես նկարագրված է այս հրահանգում:

Նախ պետք է գտնել ձեր հեռախոսի IP հասցեն: Սա հասանելի է ՝ ընտրացանկ> Պարամետրեր> Անլար կարգավորիչներ> Wi-Fi կարգավորումներ և այնուհետև սեղմելով ընթացիկ ակտիվ կապը: Թռուցիկ կենաց հաղորդագրություն կգա տեղական ցանցի ընթացիկ IP հասցեով: Գրեք սա, քանի որ այն կօգտագործեք ամեն անգամ, երբ ցանկանում եք հեռակա նիստ բացել ձեր համակարգչից: IP- ի առաջադրանքները սովորաբար ավարտվում են որոշակի օրերից հետո, այնպես որ գուցե կարիք լինի դա նորից ստուգել: Նշում. Այս ձեռնարկը ենթադրում է, որ ձեր համակարգիչն ու հեռախոսը գտնվում են նույն տեղական ցանցում: Տեղական ցանցից դուրս հեռախոսի ուղղորդումը պետք է հնարավոր լինի, բայց այստեղ ընդգրկված չէ: Բացեք ձեր նախընտրած telnet հաճախորդը և միացեք հեռախոսի IP- ին 9002. նավահանգստում: Հրամանի տողից դա անում եք որպես «telnet 192.168.1.1 9002» ՝ օգտագործելով հեռախոսի փաստացի IP հասցեն: Մուտքագրեք որոշ նիշեր և սեղմեք enter ՝ դրանք հեռախոսի էկրանին ցուցադրելու համար: Դուք կարող եք մուտքագրել q ՝ Python- ի սցենարը դադարեցնելու համար, ինչը պետք է փակի ձեր տերմինալի նիստը: Եթե ինչ -ինչ պատճառներով չեք կարող միանալ telnet- ի միջոցով և պետք է սպանել ծրագիրը, ապա հեռախոսի պարզ վերագործարկումը պետք է անի այդ հնարքը: Ընդլայնված օգտվողները գուցե ցանկանան գտնել գործընթացի ID- ն ps- ի միջոցով, այնուհետև օգտագործել kill- ը ՝ այն դադարեցնելու համար: Ընդլայնված. Սրա ապագա տարբերակը կարող է գործարկել հեռախոսից տեղական վեբ սերվեր, այլ ոչ թե ընդունել telnet- ի միջոցով հրամաններ: Մենք նաև ուսումնասիրում ենք XMPP- ը ՝ ձեր ռոբոտի հետ զրուցելու համար:

Քայլ 6. Միացրեք 3.3 վ 5 վ մակարդակի փոխարկիչը Arduino- ին

3.3v- ից 5v մակարդակի փոխարկիչ միացրեք Arduino- ին
3.3v- ից 5v մակարդակի փոխարկիչ միացրեք Arduino- ին
Միացրեք 3.3 վ 5 վ մակարդակի փոխարկիչը Arduino- ին
Միացրեք 3.3 վ 5 վ մակարդակի փոխարկիչը Arduino- ին
Միացրեք 3.3 վ 5 վ մակարդակի փոխարկիչը Arduino- ին
Միացրեք 3.3 վ 5 վ մակարդակի փոխարկիչը Arduino- ին

Այս ձեռնարկում օգտագործված Arduino- ն 5 վ մոդել է, այնպես որ մենք պետք է փոխարկենք G1- ից դուրս եկող 3.3v ազդանշանը `օգտագործելով մակարդակի փոխարկիչ: Պետք է հնարավոր լինի ուղղակիորեն միանալ 3.3v Arduino- ին, բայց դա այն չէ, ինչ ես փորձարկեցի:

Սրան մոտենալու մի քանի եղանակ կա, բայց այս օրինակում մենք կօգտագործենք 74LS04 չիպ: Այստեղ կարող եք որոնել մեկը, և դրանք, ամենայն հավանականությամբ, 1 դոլարից ցածր են: Ես և Թիմը վերցրինք մերոնք Hacker Dojo- ից Mountain View, CA- ում, բայց դրանք շատ սովորական են և պետք է առատ լինեն այնտեղ, որտեղ չիպսերը վաճառվում կամ նվիրաբերվում են: Բարձր մակարդակով մենք պարզապես պատրաստվում ենք TX ազդանշանը ուղարկել HTS USB բեկման տախտակից 74LS04 չիպի 1 -ին փին: Այն աշխատեցնելու համար մենք երկու անգամ անցնում ենք չիպի միջով և դուրս ենք գալիս 4 -րդ կապում Freeduino SB- ի RX կապին (ձեր սերիական կապը կարող է տարբեր լինել, եթե ունեք մեկ այլ 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 կետին (0 -ը `Freeduino SB- ի և Arduino Duemilanove- ի վրա):) 7. Չիպի վրայի 7 -ը (GND) միացրեք գետնին ձեր տախտակի համար (որը միանում է նաև Arduino գետնին) 8. Միացրեք 14 -րդ կապը (VCC) ձեր տախտակի 5 վ լարման հոսանքին (որը սնուցվում է Arduino- ից) 5 վ ելք) Այժմ դուք պետք է պատրաստ լինեք HTC USB կոտրիչ տախտակը միացնել հեռախոսի ներքևին և միացնել Arduino- ն: Ստուգեք կայծերի և հոտերի առկայությունը և դիպչեք իրերին `համոզվելու համար, որ դրանք սառը են: Նշում. Ներկայիս բջջային բոտի ծածկագիրը միացնում է LED #13 -ը, երբ ռոբոտի սերվո -շարժիչները պետք է աշխատեն: Եթե դեռ ռոբոտ չունեք, կարող եք ստուգել `արդյոք LED- ը միանում և անջատվում է` հաստատելու համար, որ այն աշխատում է:

Քայլ 7: Տեղադրեք Cellbots ծրագիրը Arduino- ում

Տեղադրեք Cellbots ծրագիրը Arduino- ում
Տեղադրեք Cellbots ծրագիրը Arduino- ում
Տեղադրեք Cellbots ծրագիրը Arduino- ում
Տեղադրեք Cellbots ծրագիրը Arduino- ում

Ստացեք Arduino աղբյուրի կոդը մեր Google Code նախագծի կայքից: Բացեք Cellbots.pde Arduino ծրագիրը Arduino խմբագրիչում: Այնուհետև այն մղեք ձեր Arduino տախտակին:

Դուք կարող եք փորձարկել Arduino կոդի հետ խոսելը ՝ Arduino խմբագրում բացելով սերիական մոնիտորը: Սա հիանալի միջոց է ձեր ռոբոտը կամ սարքը փորձարկելու համար ՝ անմիջապես խոսելով Arduino- ի հետ, նախքան ամեն ինչ հեռախոսին կապելը: Կոդը սերիական հրամաններ է ուղարկում սերիական մոնիտոր ՝ հաստատելու, թե ինչ է անում, նույնիսկ եթե դեռ ձեր ռոբոտը դեռ կառուցված չէ: Նշում. Դուք չեք կարող ծրագրեր բեռնել Arduino- ում, քանի դեռ մետաղալարը միացված է RX սերիական մուտքի քորոցին. Այսպիսով, գուցե ցանկանաք այս մեկը անջատիչ դնել, բայց ես պարզապես անջատեցի այն, երբ անհրաժեշտ էր նոր ծրագիր բեռնել:

Քայլ 8: Գործարկեք ամբողջ գործընթացը

Գործարկեք ամբողջ գործընթացը
Գործարկեք ամբողջ գործընթացը
Գործարկեք ամբողջ գործընթացը
Գործարկեք ամբողջ գործընթացը
Գործարկեք ամբողջ գործընթացը
Գործարկեք ամբողջ գործընթացը

Դուք պետք է կարողանաք HTC USB տախտակը միացնել հեռախոսին, վառել cellbot.py ֆայլը ASE- ում և բացել տերմինալային նիստեր հեռախոսի մեջ: Մուտքագրեք «H», որպեսզի հեռախոսը բարևի կամ README.txt ֆայլից որևէ այլ հրաման տա:

«Q» - ն դուրս կգա հեռախոսում Python- ի սցենարից և կփակի տերմինալի վարդակը: Ահա մի ամփոփագիր, թե ինչպես է ամեն ինչ աշխատում. Մենք միանում ենք մեր համակարգչից հեռախոսին 9002 նավահանգստում գտնվող telnet- ով և ուղարկում այն հրամաններ, որոնք տեսնում ենք էկրանին 3. HTS USB տախտակը միանում է G1- ի USB պորտին և ուղարկում 3.3 վ ազդանշանը 74LS04 պին 1. 1. ազդանշանը դուրս է գալիս 2 -ի չիպից, հետ է մտնում 3 -րդ կապի վրա և նորից դուրս է գալիս 4 -րդ կապի վրա 5v 5. Մեր Arduino- ն ընդունում է RX կապ 0 -ի սերիական ազդանշանը և մշակում այն Cellbot.pde ծրագրի միջոցով: 6. Մենք կարող եք մուտքագրել «q» ՝ Python- ի սցենարը սպանելու և telnet կապը փակելու համար: Այժմ, երբ դուք ավարտել եք Arduino ռոբոտին հիմնական հրամաններ ուղարկելու այս շատ բարդ գործընթացը, ժամանակն է, որ այն կոտրեք, որպեսզի այն ավելի հիանալի լինի: Մենք դեռ երկկողմանի սերիա չունենք, այնպես որ Arduino- ն չի կարող հրամաններ հետ ուղարկել հեռախոսին, բայց մենք աշխատում ենք դրա վրա: Մնացեք արդիական ՝ բաժանորդագրվելով Cellbots.com- ի մեր բլոգին: Հեղինակների մասին. Թիմ Հիթ Առաջատար գիտաշխատող, ով առաջին անգամ այս գործընթացը համատեղեց Menlo Park- ի Tech Shop- ում, որտեղ նա անդամ է: Ռայան Հիքման ծրագրավորող, ով աշխատել է Python- ի և Arduino կոդի վրա և հեղինակել է այս Instructable- ը:

Խորհուրդ ենք տալիս: