Mundarija:

Android G1 seriyali Arduino robotiga: 8 qadam
Android G1 seriyali Arduino robotiga: 8 qadam

Video: Android G1 seriyali Arduino robotiga: 8 qadam

Video: Android G1 seriyali Arduino robotiga: 8 qadam
Video: Android audio to TTL serial with arduino 2024, Sentyabr
Anonim
Android G1 seriyali Arduino robotiga
Android G1 seriyali Arduino robotiga
Android G1 seriyali Arduino robotiga
Android G1 seriyali Arduino robotiga
Android G1 seriyali Arduino robotiga
Android G1 seriyali Arduino robotiga

Android telefoningiz robotni Arduino kartasi yordamida boshqarishi mumkinligini bilib oling. Telefon boshqa telefon yoki kompyuterdan telnet orqali buyruq oladi, shuning uchun siz robotni masofadan boshqarishingiz mumkin. Bu loyiha G1 -ni o'zgartirmaydi, shuning uchun uni yechib olgandan keyin uni oddiy telefon sifatida ishlatishni davom ettirishingiz mumkin. Arduino platalari kabi arzon elektron komponentlardan foydalanib, siz ularni $ 400 telefoningiz bilan birlashtirib, ajoyib robot yasashingiz mumkin. Xobbi botiga GPS, LCD, harakat sensorlar, wi-fi, uyali aloqa, karnay va boshqalarni qo'shish uchun yuzlab dollar kerak bo'ladi, lekin sizning telefoningizda allaqachon shunday! Birgalikda Android G1 va Arduino taxtasi sizga arzon serviks va datchiklar kabi arzon elektronikadan foydalanish, robotlar, masofadan turib teleferik yoki bolalar uchun qiziqarli o'yinchoqlar kabi kuchli qurilmalarni yaratish imkonini beradi. Qo'shimcha ma'lumot Cellbots.com saytida. Eslatma: Hozirgi vaqtda ushbu loyiha telefondan Arduino robotiga ketma -ket chiqishni ishlatish uchun Android G1 -ga ildiz huquqiga ega bo'lishi kerak. Agar siz tijorat Android dasturidan foydalanmoqchi bo'lsangiz, telefon bilan ketma -ket BlueTooth orqali gaplashish uchun Arduino kartangizga 20 dollarlik BlueTooth modulini qo'shishingiz mumkin. Maxsus minnatdorchilik: Kaliforniya shtatining Mountain View shtatidagi Hacker Dojo biz bilan bog'langaningiz, a'lo a'zolarining elektron pochta ro'yxati orqali ba'zi murakkab masalalarda yordam berganingiz va 74LS04 chiplari bo'lgani uchun minnatdorchilik bildiramiz. O'rnatishning ko'p qismi Menlo Parkdagi Texnologiyalar do'konida amalga oshirildi.

1 -qadam: kerakli narsalar

Kerakli narsalar
Kerakli narsalar
Kerakli narsalar
Kerakli narsalar
Kerakli narsalar
Kerakli narsalar

Ushbu qo'llanmani bajarish uchun sizga quyidagilar kerak bo'ladi: Uskuna: - Android G1 Dev telefoni (yoki ildizga kirish va ketma -ket chiqadigan boshqa Android qurilmasi) - Arduino (men Freeduino SB dan foydalanaman, lekin hamma buni qilishi kerak) - 3,3v dan 5vgacha Agar siz 3.3v Arduino -dan foydalanmasangiz, konvertor (men 74LS04 chipini 1 dollardan past narxda ishlataman, lekin boshqa variantlar mavjud) - G1 uchun HTC USB ajratish paneli - ikkita tez ulanish uchun lehim uskunasi - robot korpusi mikro -servolar (karton, akril, protsessorlar, g'ildiraklar, hamma narsa bo'ladi) Dasturiy ta'minot: - Android Scripting Environment (ASE) - Kompyuteringiz uchun Telnet mijozi (Windowsda PuTTY dan foydalanayapman) - Arduino ishlab chiqish muhiti - (ixtiyoriy) Serial mijoz uchun Sizning shaxsiy kompyuteringiz (men ham Windows uchun PuTTY -dan foydalanayapman) - (ixtiyoriy) Android SDK Agar siz ko'rsatmalarga amal qilsangiz, Python, Arduino, Android yoki elektronika haqida juda oz ma'lumotga ega bo'lgan holda bu darslikni to'ldirishingiz mumkin. Agar siz milt -milt yonib turgan LEDdan tashqariga chiqmoqchi bo'lsangiz, bu narsalarni bilishni xohlaysiz, lekin bu sizni boshlashingizga yordam beradi.

2 -qadam: Android G1 ketma -ket chiqishi yoqilgan

Android G1 ketma -ket chiqishi yoqilgan
Android G1 ketma -ket chiqishi yoqilgan
Android G1 ketma -ket chiqishi yoqilgan
Android G1 ketma -ket chiqishi yoqilgan
Android G1 ketma -ket chiqishi yoqilgan
Android G1 ketma -ket chiqishi yoqilgan

G1 -lar USB -portdan ketma -ket buyruqlarni yuborish qobiliyatiga ega emas va uni yoqish uchun mahalliy variant yo'q. Agar siz Android SDK -ning ilg'or foydalanuvchisi bo'lsangiz, siz o'zingiz yaratishingiz mumkin, lekin men Cyanogenmod 4.2.13 dan foydalanishni tanladim. Agar siz ketma -ket ishlaydigan boshqa Android qurilmalarini bilsangiz, ularni sharhlarga qo'shing.

Ixtiyoriy ravishda, siz G1 bilan kompyuter orqali USB orqali gaplashish bo'yicha ko'rsatmalarga havolalarni kuzatib borishingiz mumkin. Ushbu darslik uchun USB -ga ulanish shart emas, lekin men telefonni ketma -ket yuborayotganini tekshirish uchun uni yaxshi tekshirish sifatida ishlatardim. Agar siz ketma -ket chiqish ishlayotganini tekshirish uchun boshqa o'tkazilmasidan foydalanmasangiz, quyidagi oddiy tekshirishni sinab ko'rishingiz mumkin: 1. G1 terminalidagi Terminal ilovasini oching (Cyanogen bilan birga keladi, lekin agar sizda boshqa rasm bo'lsa, uni bozordan yuklab oling) 2. Cd/dev/3 yozib, ularga ketma -ket ulanishni o'chirish uchun buyurtma bering. Bu ildizga kirishni talab qilganligi sababli, siz telefonni har safar qayta ishga tushirganingizda ruxsatnomalarni o'zgartirishingiz kerak bo'ladi. Buning uchun: 1. Telefonda terminal ilovasini oching 2. "chmod 777 /dev /ttyMSM2" kiriting Keyin keyingi bosqichda Android Scripting tahriridan Python skriptini ishga tushirishingiz mumkin va u ketma -ket chiqishni yuborish huquqiga ega bo'ladi.

3 -qadam: Android skriptlari muhitini (ASE) Python bilan o'rnating

Python yordamida Android skript muhitini (ASE) o'rnating
Python yordamida Android skript muhitini (ASE) o'rnating
Python yordamida Android skript muhitini (ASE) o'rnating
Python yordamida Android skript muhitini (ASE) o'rnating

Biz telefonda ochiq soket ulanishni yaratish va buyruqlarni yuborish uchun ishlatadigan skriptlar Python -da yozilgan. Buni G1 -da ishlatish uchun bizga Android skript muhiti kerak bo'ladi. Agar siz uni bozorda ko'rmasangiz, uni ushbu sahifadagi apk faylga bog'langan shtrix -kodni skanerlash orqali yuklab olishingiz mumkin.

ASE-ni o'rnatganingizdan va ishga tushirganingizdan so'ng, menyudan Python modulini qo'shishni xohlaysiz: 1. ASE-ni oching va Internetga ulanganligingizga ishonch hosil qiling (wi-fi yoki 3G) 2. Telefondagi menyu tugmasini bosing va tanlang. Tarjimonlar 3. Menyuni yana bosing va Qo'shish 4 -ni tanlang. Python -ni tanlang (hozirda bu v2.6.2) va u ba'zi zip -fayllarni yuklaydi. Siz Python bilan tanishish uchun skriptlarni yaratish, ochish, tahrir qilish va ishga tushirishni o'rganishingiz mumkin. ASE, lekin bu shart emas.

4 -qadam: Python dasturini ishga tushirish uchun Cellbot.py skriptidan nusxa oling va ishga tushiring

Python dasturini ishga tushirish uchun Cellbot.py skriptini nusxalash va ishga tushirish
Python dasturini ishga tushirish uchun Cellbot.py skriptini nusxalash va ishga tushirish

Bu qo'llanmada robotning "miyasi" bo'lish uchun Python skriptidan foydalaniladi. Ochiq kodli Google Code loyihamizdan eng yangi kodni oling. Sizga faqat cellbot.py fayli kerak, lekin boshqalar siz o'rganmoqchi bo'lgan har xil narsalarga yordam berishi mumkin. Faylni/sdcard/ase/skriptlarga nusxalashdan oldin, men telefonni kompyuterning USB ulanishiga uladim va diskni o'rnatdim.

Dastur kiruvchi telnet seansini qabul qilish uchun ochiq soket aloqasini yaratadi. Qabul qilingan buyruqlarni ketma -ket portni yuborish paytida ekranga yozib qo'yadi. Bu faylni telefonning SD -kartasiga/ase/scripts/katalogiga qo'ying. Skriptlarni yuklash va ishga tushirish bo'yicha batafsil qadamlar: 1. cellbot.py skriptini SD -kartaning/ase/scripts/katalogiga nusxalash. SD -karta sizning shaxsiy kompyuteringizdan, agar siz ularni shunday nusxa ko'chirgan bo'lsangiz, chunki telefon bir vaqtning o'zida fayllarga kira olmaydi. 3. Android Scripting Environment ilovasini oching 4. Uni ishga tushirish uchun cellbot.py -ni bosing. Qurilma 9002 -portda kiruvchi telnet sessiyalarini qabul qilish uchun hozirda tayyor ekanligini tasdiqlovchi hujjatni ko'rishingiz kerak. Maslahat: "chmod 777" ni ishga tushirganingizga ishonch hosil qiling. /dev/ttyMSM2 "buyrug'i birinchi navbatda #3 -bosqichdan. Telefonning IP -manzilini topish uchun 5 -qadamga qarang.

5 -qadam: Telnet G1 -ga va test yuborish buyruqlari

Telnet G1 -ga va test yuborish buyruqlari
Telnet G1 -ga va test yuborish buyruqlari
Telnet G1 -ga va test yuborish buyruqlari
Telnet G1 -ga va test yuborish buyruqlari
Telnet G1 -ga va test yuborish buyruqlari
Telnet G1 -ga va test yuborish buyruqlari

Telefon sizga telnet va kompyuterdan buyruqlar yuborishga tayyor bo'lishi kerak. U ularni olganini tasdiqlash uchun ularni telefon ekraniga bosib chiqaradi. Men Windows -da PuTTY -dan foydalandim, lekin biz minicom -ning Mac -da bu yo'riqnomada tasvirlanganidek yaxshi ishlashini tasdiqladik.

Avval telefoningizning IP -manzilini topishingiz kerak. Menyu> Sozlamalar> Simsiz boshqaruv> Wi-Fi sozlamalari-ga o'ting va hozirda faol ulanishni bosing. Mahalliy tarmoqdagi joriy IP-manzili bilan qalqib chiquvchi xabar keladi. Buni yozing, chunki har safar kompyuterdan telnet seansini ochmoqchi bo'lganingizda foydalanasiz. IP -topshiriqlari odatda bir necha kundan keyin tugaydi, shuning uchun uni yana bir bor tekshirib ko'rishingiz kerak bo'ladi. Telefonni mahalliy tarmoqdan tashqariga yo'naltirish mumkin, lekin bu erda qo'llanilmaydi. O'zingiz xohlagan telnet mijozini oching va 9002 portidagi telefon IP -ga ulaning. Buyruq satridan buni telefonning haqiqiy IP -dan foydalanib "telnet 192.168.1.1 9002" qilib bajaring. Telefon ekranida paydo bo'lishi uchun ba'zi belgilarni kiriting va Enter tugmasini bosing. Python skriptini o'chirish uchun q ni yozishingiz mumkin, bu sizning terminal sessiyangizni yopishi kerak. Agar biron -bir sababga ko'ra siz telnet orqali ulana olmasangiz va dasturni o'ldirishingiz kerak bo'lsa, telefonni oddiy qayta ishga tushirish hiyla ishlatishi kerak. Ilg'or foydalanuvchilar jarayon identifikatorini ps orqali topib, uni to'xtatish uchun kill dan foydalanishi mumkin. Kengaytirilgan: Buning kelgusi versiyasi telnet orqali buyruqlarni qabul qilish o'rniga telefondan mahalliy veb -serverni boshqarishi mumkin. Shuningdek, biz robotingiz bilan suhbatlashish uchun XMPP -ni o'rganmoqdamiz.

6 -qadam: Arduino -ga 3,3V dan 5V darajali almashtirgichni ulang

Arduino -ga 3,3 V dan 5 V darajagacha almashtirgichni ulang
Arduino -ga 3,3 V dan 5 V darajagacha almashtirgichni ulang
Arduino -ga 3,3 V dan 5 V darajagacha almashtirgichni ulang
Arduino -ga 3,3 V dan 5 V darajagacha almashtirgichni ulang
Arduino -ga 3,3 V dan 5 V darajagacha almashtirgichni ulang
Arduino -ga 3,3 V dan 5 V darajagacha almashtirgichni ulang

Bu qo'llanmada ishlatilgan Arduino 5v modelidir, shuning uchun biz G1 -dan chiqadigan 3.3v signalni darajali o'zgartirgich yordamida o'zgartirishimiz kerak. To'g'ridan -to'g'ri 3.3v Arduino -ga ulanish mumkin, lekin bu men sinab ko'rmagan narsa edi.

Bunga bir necha usullar bilan yondashish mumkin, lekin biz bu misolda 74LS04 chipidan foydalanamiz. Siz bu yerdan birini qidirishingiz mumkin va ular 1 dollardan past bo'lishi mumkin. Tim va men Mountain View, Kaliforniya shtatidagi Hacker Dojo -dan o'zimizni oldik, lekin bu juda keng tarqalgan va chiplar sotiladigan yoki xayriya qilinadigan joyda ko'p bo'lishi kerak. Yuqori darajada, biz TX signalini HTS USB uzilish kartasidan 74LS04 chipining 1 -piniga yuboramiz. Ishlashi uchun biz chipni ikki marta o'tkazamiz va Freeduino SB -dagi RX piniga 4 -pinni chiqaramiz (agar sizda boshqa Arduino kartasi bo'lsa, sizning ketma -ket piningiz boshqacha bo'lishi mumkin, lekin hamma buni qo'llab -quvvatlashi kerak). Darajani o'zgartirgichni ulash va HTC USB kartasini ulash uchun quyidagi amallarni bajaring (uni telefonga hali ulamang va Arduino -ga quvvatni uzmang): 1. 74LS04 chipini taxtaga joylashtiring. Chip markaziy tanaffusga to'sqinlik qilayotganiga ishonch hosil qiling, shunda pimlar qisqarmaydi (birinchi navbatda men soxta harakat qildim) 2. HTC USB kartasiga ikkita yo'riqchida ko'rsatma berilganidek, biz faqat 7 -pinni ishlatamiz. Ground) va 8 (TX0), chunki biz bu darslik uchun faqat bir tomonlama uzatishni amalga oshirmoqdamiz. 3. Toprakning boshqa uchini (7 -pin) non panelidagi erga ulang (u Arduino -ga ulangan bo'lishi kerak) 4. TX0 (pin 8) simining ikkinchi uchini non taxtasiga ulang. u 74LS04 chipining 1 -piniga ishlaydi. (chipning to'liq diagrammasi uchun rasm qidiruvini bajaring) 5. Chipning 2 va 3 -pinlarini ulash uchun simdan foydalaning 6. Chipning 4 -pinini Arduino RX nuqtasiga ulang (Freeduino SB va Arduino Duemilanovedagi 0 -pin).) 7. Chipdagi 7 -pinni (GND) non paneli uchun erga ulang (u ham Arduino -ga ulanadi) 8. 14 -pinni (VCC) non panelidagi 5v quvvatiga ulang (u Arduino -dan quvvat oladi) 5v chiqishi) Endi siz HTC USB-ni o'chirish kartasini telefonning pastki qismiga ulashingiz va Arduino-ni yoqishingiz kerak. Uchqunlar va hidlarni tekshiring va narsalarga teginib, ularning sovuq ekanligiga ishonch hosil qiling. Eslatma: Robotning servo dvigatellari ishlayotganda, joriy uyali bot kodi LED 13 -ni yoqadi. Agar sizda hali robot bo'lmasa, uning ishlashini tasdiqlash uchun LED yonib -o'chishini tekshirishingiz mumkin.

7 -qadam: Cellbots dasturini Arduino -ga yuklang

Cellbots dasturini Arduino -ga yuklang
Cellbots dasturini Arduino -ga yuklang
Cellbots dasturini Arduino -ga yuklang
Cellbots dasturini Arduino -ga yuklang

Arduino manba kodini Google Code loyiha saytidan oling. Arduino muharririda Cellbots.pde Arduino dasturini oching. Keyin uni Arduino kartasiga o'tkazing.

Arduino muharririda ketma -ket monitorni ochish orqali siz Arduino kodi bilan suhbatni sinab ko'rishingiz mumkin. Bu hamma narsani telefonga ulashdan oldin to'g'ridan -to'g'ri Arduino bilan gaplashib, robot yoki qurilmangizni sinab ko'rishning ajoyib usuli. Kod ketma -ketlikdagi buyruqlarni ketma -ket monitorga yuboradi, agar sizda robot hali o'rnatilgan bo'lmasa ham, u nima qilayotganini tasdiqlaydi.. Shunday qilib, siz uni almashtirishni xohlashingiz mumkin, lekin men yangi dasturni yuklashim kerak bo'lganda uni o'chirib qo'ydim.

8 -qadam: Butun jarayonni ishga tushiring

Butun jarayonni ishga tushiring
Butun jarayonni ishga tushiring
Butun jarayonni ishga tushiring
Butun jarayonni ishga tushiring
Butun jarayonni ishga tushiring
Butun jarayonni ishga tushiring

Siz HTC USB kartasini telefonga ulashingiz, cellbot.py faylini ASE -da yoqishingiz va telefonda terminal sessiyalarini ochishingiz kerak. Telefonga README.txt faylidan salom yoki boshqa buyruqlar berish uchun "H" yozing.

"Q" telefonda Python skriptidan chiqadi va terminal rozetkasini yopadi. Bu erda hamma narsa qanday bajarilgani haqida qisqacha ma'lumot: 1. Python skripti kiruvchi telnet ulanishlarini qabul qilish uchun rozetkani ochadi va ketma -ket 2 -portning buyruqlarini aks ettiradi. Biz kompyuterdan telefonga 9002 portidagi telnet orqali ulanamiz va unga ekrandagi 3 buyruqlarni yuboramiz. HTS USB platasi G1 USB portiga ulanadi va 3.3v signalini 74LS04 pin 1 ga yuboradi. signal 2 -pinli chipdan chiqadi, 3 -pinga qaytadi va 5 -pin 5 -da 4 -pinda yana chiqadi. Bizning Arduino RX pinli ketma -ket signalni qabul qiladi va uni Cellbot.pde dasturi 6 orqali qayta ishlaydi. Python skriptini o'ldirish va telnet aloqasini o'chirish uchun "q" ni yozish mumkin Endi siz Arduino robotiga asosiy buyruqlarni yuborish uchun juda murakkab jarayonni tugatgan bo'lsangiz, uni buzish vaqti keldi! Bizda hali ikki tomonlama ketma-ket ishlash yo'q, shuning uchun Arduino telefonga buyruqlarni qaytarolmaydi, lekin biz bu ustida ishlayapmiz. Cellbots.com saytidagi blogimizga obuna bo'lish orqali yangiliklardan xabardor bo'ling. Mualliflar haqida: Tim Xit bu jarayonni birinchi bo'lib Menlo Parkdagi Texnologiyalar do'konida birlashtirgan, u a'zo bo'lgan. Python va Arduino kodlari ustida ishlagan va bu ko'rsatmaga avtorlik qilgan Rayan Xikman dasturchisi.

Tavsiya: