Mündəricat:

Android G1 Arduino Robotuna Serial: 8 Addım
Android G1 Arduino Robotuna Serial: 8 Addım

Video: Android G1 Arduino Robotuna Serial: 8 Addım

Video: Android G1 Arduino Robotuna Serial: 8 Addım
Video: 3D Yazıcılar İçin Temel G-code Kullanımı 2024, Noyabr
Anonim
Android G1 Arduino Robotuna Serial
Android G1 Arduino Robotuna Serial
Android G1 Arduino Robotuna Serial
Android G1 Arduino Robotuna Serial
Android G1 Arduino Robotuna Serial
Android G1 Arduino Robotuna Serial

Android telefonunuzun Arduino lövhəsindən istifadə edərək robotu necə idarə edə biləcəyini öyrənin. Telefon başqa bir telefondan və ya kompüterdən telnet vasitəsilə əmr alır, beləliklə robotu uzaqdan idarə edə bilərsiniz. Bu layihə G1 -i başqa cür dəyişdirməyəcək, belə ki onu çıxardıqdan sonra normal telefonunuz kimi istifadə etməyə davam edə bilərsiniz. Arduino lövhələri kimi ucuz elektron komponentlərdən istifadə edərək, onları 400 dollarlıq telefonunuzla birləşdirərək möhtəşəm bir robot hazırlaya bilərsiniz. Bir hobbi botuna GPS, LCD-lər, hərəkət sensorları, wi-fi, mobil əlaqələr, dinamiklər və daha çoxunu əlavə etmək yüzlərlə dollara başa gələcək, ancaq telefonunuzda onsuz da var! Birlikdə Android G1 və Arduino lövhəsi, sadə servolar və sensorlar kimi ucuz elektronikadan istifadə etməyə, uşaqlar üçün robotlar, uzaqdan tele -təqdimat və ya əyləncəli oyuncaqlar qurmağa imkan verir. Cellbots.com saytında daha çox məlumat. Xəbərdarlıq: Bu layihə hal -hazırda telefondan Arduino robotuna serial çıxışı istifadə etmək üçün kök girişi olan bir Android G1 tələb edir. Kommersiya Android proqramından istifadə etmək istəyirsinizsə, telefonun serial BlueTooth üzərindən danışması üçün Arduino lövhənizə 20 dollarlıq BlueTooth modulu əlavə edə bilərsiniz. Xüsusi təşəkkürlər: Mountain View, CA -da Hacker Dojo var, bizimlə əlaqə saxladığınıza, zəhmli üzvlərin poçt siyahısı vasitəsilə bəzi çətin məsələlərdə kömək etdiyinizə və stokda 74LS04 çipə sahib olduğunuza görə təşəkkür edirik. Montajın çox hissəsi Menlo Parkdakı Texniki Dükanda edildi.

Addım 1: Lazım olan maddələr

Lazım olan əşyalar
Lazım olan əşyalar
Lazım olan əşyalar
Lazım olan əşyalar
Lazım olan əşyalar
Lazım olan əşyalar

Bu təlimatı tamamlamaq üçün aşağıdakılara ehtiyacınız olacaq: Avadanlıq: - Android G1 Dev Telefonu (və ya kök çıxışı və serial çıxışı olan digər Android cihazı) - Arduino (Freeduino SB istifadə edirəm, amma hər kəs etməlidir) - 3.3v -5v 3.3v Arduino istifadə etmirsinizsə çevirici (1 dollardan aşağı qiymətə 74LS04 çipi istifadə edirəm, lakin digər variantlar mövcuddur) - G1 üçün HTC USB açma lövhəsi - İki sürətli əlaqə üçün lehimləmə avadanlığı - Bir robot gövdəsi mikro servolar (karton, akril, dişlər, təkərlər, hər şey edəcək) Proqram təminatı: - Android Scripting Environment (ASE) - Kompüteriniz üçün Telnet müştəri (Windows -da PuTTY istifadə edirəm) - Arduino inkişaf mühiti - (isteğe bağlı) Serial müştəri kompüteriniz (bunun üçün Windows -da PuTTY istifadə edirəm) - (isteğe bağlı) Android SDK Təlimatları izləyə bilsəniz, Python, Arduino, Android və ya elektronika haqqında az məlumatla bu təlimatı tamamlaya bilərsiniz. Yanıp sönən bir LED -dən kənara çıxmaq istəsəniz bu şeyləri bilmək istəyəcəksiniz, ancaq bu işə başlayacaq.

Addım 2: Serial Çıxış Enable ilə Android G1

Serial Çıxışlı Android G1 Aktivdir
Serial Çıxışlı Android G1 Aktivdir
Serial Çıxışlı Android G1 Aktivdir
Serial Çıxışlı Android G1 Aktivdir
Serial Çıxışlı Android G1 Aktivdir
Serial Çıxışlı Android G1 Aktivdir

G1 -lər USB portundan serial əmrləri göndərmək qabiliyyətinə malik deyil və onu aktivləşdirmək üçün heç bir yerli seçim yoxdur. Qabaqcıl bir Android SDK istifadəçisisinizsə, öz quruluşunuzu qura bilərsiniz, amma Cyanogenmod 4.2.13 -dən istifadə etməyi seçdim. Ardıcıl işləyən digər Android cihazlarını bilirsinizsə, şərhlərə əlavə edin.

İsteğe bağlı olaraq, PC -dən USB üzərindən G1 -lə danışmaq üçün oradakı bağlantıları izləyə bilərsiniz. Bu dərslik üçün USB bağlantısı olan serial lazım deyil, amma telefonun serial göndərdiyini yoxlamaq üçün gözəl bir sağlamlıq yoxlaması olaraq istifadə etdim. Serial çıxışın işlədiyini yoxlamaq üçün digər keçilməz vasitələrdən istifadə etmirsinizsə, bu sadə yoxlamanı sınaya bilərsiniz: 1. G1 -də Terminal tətbiqini açın (Cyanogen ilə gəlir, lakin fərqli bir şəkiliniz varsa Marketdən birini yükləyin) 2 Cd/dev/3 yazaraq/dev/qovluğuna gedin ls yazın (bu L) və qaytarılmış siyahıda ttyMSM2 axtarın sonra istifadə edəcəyimiz Python skriptində '/dev/ttyMSM2' əmrini göndərir. serial əlaqəsini kəsmələrini əmr edin. Bunun üçün kök girişi tələb olunduğundan, telefonu hər dəfə yenidən başlatdığınızda icazələri dəyişdirməlisiniz. Bunu etmək üçün: 1. Telefonda terminal tətbiqini açın 2. 'chmod 777 /dev /ttyMSM2' daxil edin. Sonra Python skriptini Android Scripting redaktəsindən növbəti addımda işlədə bilərsiniz və serial çıxışı göndərmək imkanı olacaq.

Addım 3: Python ilə Android Scripting Environment (ASE) qurun

Python ilə Android Scripting Environment (ASE) qurun
Python ilə Android Scripting Environment (ASE) qurun
Python ilə Android Scripting Environment (ASE) qurun
Python ilə Android Scripting Environment (ASE) qurun

Telefonda açıq bir yuva bağlantısı yaratmaq və əmrləri göndərmək üçün istifadə edəcəyimiz skriptlər Pythonda yazılmışdır. Bunu G1 -də işə salmaq üçün Android Skript Ətrafına ehtiyacımız olacaq. Marketdə görmürsünüzsə, bu səhifədəki apk faylına bağlantı verən barkodu skan edərək yükləyə bilərsiniz.

ASE qurduqdan və işə saldıqdan sonra menyudan Python moduluna əlavə etmək istəyəcəksiniz: 1. ASE-ni açın və işləyən internet bağlantınız olduğundan əmin olun (wi-fi və ya 3G) 2. Telefondakı menyu düyməsini basın və seçin. Tərcüməçilər 3. Yenidən menyu düyməsini basın və Əlavə et 4 seçin. Python seçin (hazırda bunu yazarkən v2.6.2) və bəzi zip fayllarını yükləyəcək Python ilə tanış olmaq üçün skriptlərin yaradılması, açılması, redaktəsi və işlədilməsini araşdırmaq istəyə bilərsiniz. ASE, lakin tələb olunmur.

Addım 4: Python Proqramını Başlatmaq üçün Cellbot.py Scriptini Kopyalayın və Çalışdırın

Python Proqramını Başlatmaq üçün Cellbot.py Scriptini Kopyalayın və Çalışdırın
Python Proqramını Başlatmaq üçün Cellbot.py Scriptini Kopyalayın və Çalışdırın

Bu dərslik robotun "beyni" olmaq üçün Python skriptindən istifadə edir. Açıq mənbə Google Kod layihəmizdən ən son kodu əldə edin. Yalnız cellbot.py faylına ehtiyacınız var, amma başqaları araşdırmaq istədiyiniz müxtəlif işlərdə kömək edə bilər. Sadəcə telefonu PC -nin USB bağlantısına qoşdum və faylı/sdcard/ase/scripts -ə kopyalamadan əvvəl sürücünü quraşdırdım.

Proqram, gələn telnet seansını qəbul etmək üçün açıq bir yuva bağlantısı yaradır. Alınan əmrləri seriyalı portu göndərərkən də ekrana yazdırır. Bu faylı telefonun SD kartına/ase/scripts/directory -ə qoyun. Skriptləri yükləmək və işə salmaq üçün ətraflı addımlar: 1. cellbot.py skriptini SD kartın/ase/scripts/directory -ə kopyalayın 2. Atladığınızdan əmin olun. SD kartını kompüterinizdən bu şəkildə kopyaladığınız təqdirdə telefon eyni vaxtda PC -yə girə bilmir. 3. Android Scripting Environment tətbiqini açın 4. Başlatmaq üçün cellbot.py üzərinə basın 9002 portunda gələn telnet seanslarını qəbul etmək üçün cihazın bu nöqtədə hazır olduğuna dair bir təsdiq görməlisiniz. İpucu: "chmod 777" ni çalıştırdığınızdan əmin olun. /dev/ttyMSM2 "əmrini əvvəlcə 3 -cü addımdan edin. Telefonun IP ünvanını tapmaq üçün 5 nömrəli addıma baxın.

Addım 5: G1 -ə Telnet və Göndərmə əmrlərini yoxlayın

G1 -ə Telnet və Test Göndərmə əmrləri
G1 -ə Telnet və Test Göndərmə əmrləri
G1 -ə Telnet və Test Göndərmə əmrləri
G1 -ə Telnet və Test Göndərmə əmrləri
G1 -ə Telnet və Test Göndərmə əmrləri
G1 -ə Telnet və Test Göndərmə əmrləri

Telefon ona telnet etməyinizə və kompüterinizdən əmrlər göndərməyinizə hazır olmalıdır. Aldığını təsdiqləmək üçün onları telefonun ekranına yazdıracaq. Windows -da PuTTY -dən istifadə etdim, amma təsdiq etdik ki, minicom Mac -da bu təlimatda göstərildiyi kimi əla işləyir.

Əvvəlcə telefonunuzun IP ünvanını tapmalısınız. Menyu> Parametrlər> Simsiz idarəetmə> Wi-Fi parametrləri bölməsinə gedin və sonra hazırda aktiv olan əlaqəyə basaraq bunu əldə edə bilərsiniz. Yerli şəbəkədəki mövcud IP ünvanı ilə bir pop-up tost mesajı gələcək. Bunu hər dəfə kompüterinizdən bir telnet sessiyası açmaq istədiyiniz zaman istifadə edəcəyiniz üçün yazın. IP tapşırıqları adətən müəyyən günlərdən sonra başa çatır, buna görə də bunu yenidən yoxlamalısınız. Qeyd: Bu təlimat kompüterinizin və telefonunuzun eyni yerli şəbəkədə olduğunu güman edir. Yerli şəbəkənin xaricindən telefona yönləndirmə mümkün olmalıdır, lakin burada əhatə olunmur. İstədiyiniz telnet müştərisini açın və 9002 portundakı telefonun IP -yə qoşulun. Əmr əmrindən bunu telefonun həqiqi IP -dən istifadə edərək "telnet 192.168.1.1 9002" olaraq edin. Telefonun ekranında görünməsini görmək üçün bəzi simvolları daxil edin və Enter düyməsini basın. Python skriptinin çıxmasına səbəb olmaq üçün q yaza bilərsiniz ki, bu da terminal seansınızı bağlamalıdır. Hər hansı bir səbəbdən telnet vasitəsi ilə əlaqə qura bilmirsinizsə və proqramı öldürmək lazımdırsa, telefonu sadə bir şəkildə yenidən başlatmaq hiylə etməlidir. Qabaqcıl istifadəçilər proses identifikatorunu ps vasitəsi ilə tapmaq və sonra dayandırmaq üçün kill istifadə etmək istəyə bilərlər. Ətraflı: Bunun gələcək bir versiyası, telnet vasitəsilə əmrləri qəbul etməkdənsə, telefondan yerli bir web serveri işlədə bilər. Robotunuzla söhbət etmək üçün XMPP -ni də araşdırırıq.

Addım 6: Arduino'ya 3.3v -dən 5v -ə qədər Səviyyə dəyişdiricisini qoşun

Arduino'ya 3.3v -dən 5v -ə qədər Səviyyə dəyişdiricisini qoşun
Arduino'ya 3.3v -dən 5v -ə qədər Səviyyə dəyişdiricisini qoşun
Arduino'ya 3.3v -dən 5v -ə qədər Səviyyə dəyişdiricisini qoşun
Arduino'ya 3.3v -dən 5v -ə qədər Səviyyə dəyişdiricisini qoşun
Arduino'ya 3.3v -dən 5v -ə qədər Səviyyə dəyişdiricisini qoşun
Arduino'ya 3.3v -dən 5v -ə qədər Səviyyə dəyişdiricisini qoşun

Bu təlimatda istifadə olunan Arduino 5v modelidir, buna görə G1 -dən gələn 3.3v siqnalını səviyyə dəyişdirici istifadə edərək çevirməliyik. Birbaşa 3.3v Arduinoya qoşulmaq mümkün olmalıdır, amma bu sınadığım bir şey deyildi.

Buna yaxınlaşmağın bir neçə yolu var, ancaq bu nümunədə 74LS04 çipindən istifadə edəcəyik. Burada birini axtara bilərsiniz və ehtimal ki 1 dolların altındadır. Tim və mən Mountain View, CA -da Hacker Dojo -dan özümüzü götürdük, lakin bunlar çox yaygındır və fişlərin satıldığı və ya bağışlandığı yerlərdə bol olmalıdır. Yüksək səviyyədə, TTS siqnalını HTS USB açma lövhəsindən 74LS04 çipinin pin 1 -ə göndərəcəyik. İşləmək üçün çipdən iki dəfə keçirik və Freeduino SB üzərindəki RX pininə 4 pin çıxarırıq (başqa bir Arduino lövhəniz varsa serial pininiz fərqli ola bilər, amma hamısı bunu dəstəkləməlidir). Səviyyə dəyişdiricisini bağlamaq və HTC USB lövhəsini bağlamaq üçün bu addımları yerinə yetirin (hələ telefona qoşmayın və Arduino -ya enerji ayırmayın): 1. 74LS04 çipini çörək taxtanıza daxil edin. Çipin sancaqların qısaldılmaması üçün mərkəzin qırılmasına mane olduğuna əmin olun (əvvəlcə etdiyim lal hərəkət) 2. Bu təlimatda göstərildiyi kimi HTC USB lövhəsinə iki tel qoşun, ancaq yalnız sancaqlar 7 (Ground) və 8 (TX0), çünki bu dərs üçün yalnız bir tərəfli ötürmə edirik. 3. Torpağın digər ucunu (pin 7) çörək taxtanızdakı bir yerə (Arduino cihazınızdakı bir yerə bağlamalısınız) bağlayın 4. TX0 (pin 8) telinin digər ucunu çörək taxtasına bağlayın. 74LS04 çipinin 1 -ci pininə daxil olur. (çipin tam diaqramı üçün bir şəkil axtarışı edin) 5. Çipin 2 və 3 -cü pinlərini birləşdirmək üçün tel istifadə edin 6. Çipin 4 -cü pinini Arduino RX nöqtəsinə qoşun (Freeduino SB və Arduino Duemilanove -da pin 0)) 7. Çipdəki 7 pinini (GND) çörək taxtanız üçün yerə bağlayın (bu da Arduino torpağına qoşulur) 8. 14 pinini (VCC) çörək lövhənizdəki 5v gücünə (Arduinodan güc alan) qoşun 5v çıxışı) İndi HTC USB açma lövhəsini telefonun altına taxmağa və Arduino'yu işə salmağa hazır olmalısınız. Qığılcımları və qoxuları yoxlayın və sərin olduqlarından əmin olmaq üçün əşyalara toxunun. Qeyd: Robotun servo mühərrikləri işləyərkən cari hüceyrə kodu 13 saylı LED -i yandırır. Hələ bir robotunuz yoxdursa, işlətdiyini təsdiqləmək üçün LED -in açıldığını və söndüyünü yoxlaya bilərsiniz.

Addım 7: Cellbots Proqramını Arduinoya yükləyin

Cellbots Proqramını Arduinoya yükləyin
Cellbots Proqramını Arduinoya yükləyin
Cellbots Proqramını Arduinoya yükləyin
Cellbots Proqramını Arduinoya yükləyin

Google Kodu layihə saytımızdan Arduino mənbə kodunu əldə edin. Arduino redaktorunda Cellbots.pde Arduino proqramını açın. Sonra Arduino lövhəsinə itələyin.

Arduino redaktorunda serial monitoru açaraq Arduino kodu ilə danışmağı test edə bilərsiniz. Hər şeyi telefona bağlamadan əvvəl birbaşa Arduino ilə danışaraq robotunuzu və ya cihazınızı sınamaq üçün əla bir yoldur. Kod, robotunuz hələ qurulmamış olsa belə, nə etdiyini təsdiqləmək üçün ardıcıl əmrləri ardıcıl monitora göndərir.. Buna görə bir keçid qoymaq istəyə bilərsiniz, ancaq yeni bir proqram yükləməyim lazım olduqda onu ayırdım.

Addım 8: Bütün Prosesi Çalışdırın

Bütün Prosesi Çalışdırın
Bütün Prosesi Çalışdırın
Bütün Prosesi Çalışdırın
Bütün Prosesi Çalışdırın
Bütün Prosesi Çalışdırın
Bütün Prosesi Çalışdırın

HTC USB kartını telefona bağlaya, ASE -də cellbot.py faylını yandıra və telefona terminal seansları aça bilməlisiniz. Telefonun README.txt faylından salam və ya digər əmrləri alması üçün "H" yazın.

Bir "q", telefonda Python skriptindən çıxacaq və terminal yuvasını bağlayacaq. Burada bütün bunların necə işlədiyinə dair bir xülasə var: 1. Python skripti, daxil olan telnet əlaqələrini qəbul etmək və əmrləri serial 2 -dən çıxarmaq üçün bir yuva açır. Kompüterimizdən telefona 9002 portundakı telnet vasitəsi ilə qoşuluruq və ekranda gördüyümüz əmrləri 3 göndəririk. HTS USB kartı G1 -in USB portu ilə əlaqə qurur və 3.3v siqnalını 74LS04 pin 1 -ə göndərir. siqnal pin 2 -də çipdən çıxır, pin 3 -ə geri qayıdır və 5v 5 -də yenidən pin 4 -də çıxır. Arduino, RX pin 0 -da olan serial siqnalını qəbul edir və Cellbot.pde proqramı 6 vasitəsilə emal edir. Python skriptini öldürmək və telnet bağlantısını bağlamaq üçün 'q' yaza bilərsiniz İndi bir Arduino robotuna əsas əmrlər göndərmək üçün bu çox mürəkkəb prosesi başa vurduğunuza görə, onu daha da zəhmli etmək üçün vaxtınız gəldi! Hələ 2 tərəfli serial işimiz yoxdur, buna görə də Arduino telefona əmr göndərə bilmir, amma bunun üzərində işləyirik. Cellbots.com -dakı blogumuza abunə olaraq bu gün də qalın. Müəlliflər haqqında: Bu prosesi ilk dəfə üzv olduğu Menlo Parkdakı Tech Shop -da bir araya gətirən aparıcı tədqiqatçı Tim Heath. Python və Arduino kodu üzərində işləyən və bu Təlimatı təsdiqləyən Ryan Hickman Proqramçısı.

Tövsiyə: