İçindekiler:

Arduino Robot için Android G1 Seri: 8 Adım
Arduino Robot için Android G1 Seri: 8 Adım

Video: Arduino Robot için Android G1 Seri: 8 Adım

Video: Arduino Robot için Android G1 Seri: 8 Adım
Video: Arduino Nedir? Nasıl Kurulur ve Neler Yapılabilir? #1 2024, Kasım
Anonim
Arduino Robot için Android G1 Seri
Arduino Robot için Android G1 Seri
Arduino Robot için Android G1 Seri
Arduino Robot için Android G1 Seri
Arduino Robot için Android G1 Seri
Arduino Robot için Android G1 Seri

Android cep telefonunuzun bir Arduino kartı kullanarak bir robotu nasıl kontrol edebileceğini öğrenin. Telefon, başka bir telefondan veya bir PC'den telnet aracılığıyla komutları alır, böylece robotu uzaktan kontrol edebilirsiniz. Bu proje, G1'i başka bir şekilde değiştirmeyecek, böylece onu çıkardıktan sonra normal telefonunuz olarak kullanmaya devam edebilirsiniz. Neden? Arduino kartları gibi ucuz elektronik bileşenleri kullanarak bunları 400 dolarlık telefonunuzla eşleştirerek harika bir robot yapabilirsiniz. Bir hobi botuna GPS, LCD'ler, hareket sensörleri, wi-fi, hücresel bağlantılar, hoparlörler ve daha fazlasını eklemek yüzlerce dolara mal olur, ancak telefonunuzda zaten bunlar var! Android G1 ve Arduino kartı birlikte, robotlar, uzaktan telepresence veya çocuklar için eğlenceli oyuncaklar gibi güçlü cihazlar oluşturmak için basit servolar ve sensörler gibi ucuz elektronikleri kullanmanıza olanak tanır. Cellbots.com. Notice adresinde daha fazla bilgi: Bu proje şu anda telefondan Arduino robotuna seri çıkışı kullanmak için kök erişimi olan bir Android G1 gerektiriyor. Ticari Android yazılımını kullanmak istiyorsanız, telefonun seri BlueTooth üzerinden konuşmasını sağlamak için Arduino kartınıza 20 dolarlık bir BlueTooth modülü ekleyebilirsiniz. Özel teşekkürler: Mountain View, CA'daki Hacker Dojo'muz, bizimle iletişime geçtiği, harika üyelerden oluşan e-posta listeleri aracılığıyla bazı zor konularda yardımcı olduğu ve stokta 74LS04 çipleri olduğu için teşekkür ediyor. Montajın çoğu Menlo Park'taki Tech Shop'ta yapıldı.

Adım 1: Gerekli Öğeler

Gerekli Öğeler
Gerekli Öğeler
Gerekli Öğeler
Gerekli Öğeler
Gerekli Öğeler
Gerekli Öğeler

Bu öğreticiyi tamamlamak için aşağıdakilere ihtiyacınız olacak: Donanım: - Android G1 Dev Phone (veya root erişimi ve seri çıkışı olan başka bir Android cihazı) - Arduino (Bir Freeduino SB kullanıyorum ama herhangi birinin yapması gerekir) - 3.3v ila 5v 3.3v Arduino kullanmıyorsanız dönüştürücü (1 doların altında bir 74LS04 yongası kullanıyorum ancak başka seçenekler de mevcut) - G1 için HTC USB devre kartı - İki hızlı bağlantı için lehimleme ekipmanı - Bir robot gövdesi mikro servolar (karton, akrilik, basamaklar, tekerlekler, her şey yapar)Yazılım: - Android Komut Dosyası Ortamı (ASE) - PC'niz için Telnet istemcisi (Windows'ta PuTTY kullanıyorum) - Arduino geliştirme ortamı - (isteğe bağlı) PC'niz (Bunun için ayrıca Windows'ta PuTTY kullanıyorum) - (isteğe bağlı) Android SDK Talimatları takip edebiliyorsanız, bu öğreticiyi Python, Arduino, Android veya elektronik hakkında çok az bilgi ile tamamlayabilirsiniz. Yanıp sönen bir LED'in ötesine geçmek istiyorsanız bunları bilmek isteyeceksiniz, ancak bu başlamanıza yardımcı olacaktır.

2. Adım: Seri Çıkış Etkinleştirilmiş Android G1

Seri Çıkış Etkinleştirilmiş Android G1
Seri Çıkış Etkinleştirilmiş Android G1
Seri Çıkış Etkinleştirilmiş Android G1
Seri Çıkış Etkinleştirilmiş Android G1
Seri Çıkış Etkinleştirilmiş Android G1
Seri Çıkış Etkinleştirilmiş Android G1

G1'ler, USB bağlantı noktasından seri komut gönderme özelliği ile birlikte gönderilmez ve bunu etkinleştirmek için yerel bir seçenek yoktur. Gelişmiş bir Android SDK kullanıcısıysanız kendi derlemenizi yapabilirsiniz ama ben Cyanogenmod 4.2.13'ü kullanmayı seçtim. Seri çıkışlı çalışan diğer Android cihazları biliyorsanız, bunları yorumlara ekleyin.

İsteğe bağlı olarak, G1'inizle PC'nizden USB üzerinden konuşurken bu talimata verilen bağlantıları takip edebilirsiniz. Bu eğitim için bu seriden USB'ye bağlantı gerekli değil, ancak telefonun seri çıkış gönderdiğini doğrulamak için güzel bir akıl sağlığı kontrolü olarak kullandım. Seri çıkışın çalıştığını doğrulamak için diğer intractable'ı kullanmıyorsanız, bu basit kontrolü deneyebilirsiniz: 1. G1'de Terminal uygulamasını açın (Cyanogen ile birlikte gelir, ancak farklı bir imajınız varsa Market'ten bir tane indirin) 2 cd /dev/ yazarak /dev/ dizinine gidin. seri bağlantıdan çıkmalarını isteyin. Bu, root erişimi gerektirdiğinden, telefonu her yeniden başlattığınızda bununla ilgili izinleri değiştirmeniz gerekecektir. Bunu yapmak için: 1. Telefonda terminal uygulamasını açın 2. 'chmod 777 /dev/ttyMSM2' girin Ardından, bir sonraki adımda Android Komut Dosyası düzenlemesinden Python komut dosyasını çalıştırabilirsiniz ve seri çıktı gönderme erişimine sahip olacaktır.

Adım 3: Python ile Android Komut Dosyası Ortamını (ASE) Kurun

Python ile Android Komut Dosyası Ortamını (ASE) Kurun
Python ile Android Komut Dosyası Ortamını (ASE) Kurun
Python ile Android Komut Dosyası Ortamını (ASE) Kurun
Python ile Android Komut Dosyası Ortamını (ASE) Kurun

Telefonda açık bir soket bağlantısı oluşturmak ve komut göndermek için kullanacağımız scriptler Python'da yazılmıştır. Bunu G1'de çalıştırmak için Android Komut Dosyası Ortamına ihtiyacımız olacak. Eğer Market'te göremiyorsanız, bu sayfadaki apk dosyasına bağlantı veren o sayfadaki barkodu okutarak indirebilirsiniz.

ASE'yi kurup çalıştırdıktan sonra menüden Python modülüne eklemek isteyeceksiniz: 1. ASE'yi açın ve çalışan bir internet bağlantınız olduğundan emin olun (wi-fi veya 3G) 2. Telefonda menü düğmesine basın ve seçin Tercümanlar 3. Menüye tekrar basın ve Ekle'yi seçin 4. Python'u seçin (bunu yazarken şu anda v2.6.2) ve bazı zip dosyalarını indirecektir. ASE ama gerekli değil.

Adım 4: Python Programını Başlatmak için Cellbot.py Komut Dosyasını Kopyalayın ve Çalıştırın

Python Programını Başlatmak için Cellbot.py Komut Dosyasını Kopyalayın ve Çalıştırın
Python Programını Başlatmak için Cellbot.py Komut Dosyasını Kopyalayın ve Çalıştırın

Bu öğretici, robotun "beyni" olmak için bir Python betiği kullanır. Açık kaynak kodlu Google Code projemizden en son kodu alın. Yalnızca cellbot.py dosyasına ihtiyacınız vardır, ancak diğerleri keşfetmek istediğiniz çeşitli şeylerde yardımcı olabilir. Dosyayı /sdcard/ase/scripts dizinine kopyalamadan önce telefonu bilgisayarımın USB bağlantısına taktım ve sürücüyü taktım.

Program, gelen bir telnet oturumunu kabul etmek için açık bir soket bağlantısı oluşturur. Ayrıca alınan komutları seri porttan gönderirken ekrana yazdırır. Bu dosyayı telefonun SD kartına /ase/scripts/ dizinine koyun. Komut dosyalarını yüklemek ve çalıştırmak için ayrıntılı adımlar: 1. cellbot.py komut dosyasını SD kartın /ase/scripts/ dizinine kopyalayın 2. Çıkarmayı unutmayın. Telefonunuz, PC'nizle aynı anda dosyalara erişemediğinden, bunları bu şekilde kopyaladıysanız, PC'nizdeki SD kart. 3. Android Komut Dosyası Ortamı uygulamasını açın 4. Başlatmak için cellbot.py'ye tıklayın Cihazın bu noktada 9002 numaralı bağlantı noktasından gelen telnet oturumlarını kabul etmeye hazır olduğuna dair bir onay görmelisiniz. İpucu: "chmod 777'yi çalıştırdığınızdan emin olun. /dev/ttyMSM2" komutu ilk olarak 3. adımdan itibaren. Telefonun IP adresini bulmak için 5. adıma bakın.

Adım 5: G1'e Telnet ve Komutları Gönderme Testi

G1'e Telnet ve Komutları Gönderme Testi
G1'e Telnet ve Komutları Gönderme Testi
G1'e Telnet ve Komutları Gönderme Testi
G1'e Telnet ve Komutları Gönderme Testi
G1'e Telnet ve Komutları Gönderme Testi
G1'e Telnet ve Komutları Gönderme Testi

Telefon, ona telnet göndermeniz ve PC'nizden komutlar göndermeniz için hazır olmalıdır. Ne aldığını onaylamak için bunları telefonun ekranına yazdırır. PuTTY'yi Windows'ta kullandım, ancak bu talimatta açıklandığı gibi minicom'un Mac'lerde harika çalıştığını onayladık.

İlk önce telefonunuzun IP adresini bulmanız gerekecek. Bu, Menü > Ayarlar > Kablosuz kontroller > Wi-Fi ayarları'na giderek ve ardından o anda etkin olan bağlantıya basılarak kullanılabilir. Yerel ağdaki mevcut IP adresini içeren bir açılır mesaj mesajı gelecektir. Bunu, PC'nizden her telnet oturumu açmak istediğinizde kullanacağınız için yazın. IP atamaları genellikle belirli sayıda gün sonra sona erer, bu nedenle bunu tekrar kontrol etmeniz gerekebilir. Not: Bu öğretici, PC'nizin ve telefonunuzun aynı yerel ağda olduğunu varsayar. Yerel ağ dışından telefona yönlendirme mümkün olmalıdır, ancak burada kapsanmamaktadır. Seçtiğiniz telnet istemcinizi açın ve 9002 numaralı bağlantı noktasındaki telefonun IP'sine bağlanın. Bir komut satırından bunu telefonun gerçek IP'sini kullanarak "telnet 192.168.1.1 9002" olarak yaparsınız. Bazı karakterleri yazın ve telefonun ekranında göründüklerini görmek için enter tuşuna basın. Python betiğinin çıkmasına neden olmak için bir q yazabilirsiniz; bu, terminal oturumunuzu kapatmalıdır. Herhangi bir nedenle telnet üzerinden bağlanamıyorsanız ve programı kapatmanız gerekiyorsa, telefonun basit bir şekilde yeniden başlatılması hile yapmalıdır. İleri düzey kullanıcılar, işlem kimliğini ps aracılığıyla bulmak ve ardından durdurmak için kill'i kullanmak isteyebilir. Gelişmiş: Bunun gelecekteki bir sürümü, telnet yoluyla komutları kabul etmek yerine telefondan yerel bir web sunucusu çalıştırabilir. Ayrıca robotunuzla sohbet etmek için XMPP'yi keşfediyoruz.

Adım 6: Arduino'ya bir 3.3v ila 5v Seviye Değiştirici bağlayın

Arduino'ya 3.3v ila 5v Seviye Değiştirici bağlayın
Arduino'ya 3.3v ila 5v Seviye Değiştirici bağlayın
Arduino'ya bir 3.3v ila 5v Seviye Değiştirici bağlayın
Arduino'ya bir 3.3v ila 5v Seviye Değiştirici bağlayın
Arduino'ya bir 3.3v ila 5v Seviye Değiştirici bağlayın
Arduino'ya bir 3.3v ila 5v Seviye Değiştirici bağlayın

Bu eğitimde kullanılan Arduino 5v modelidir, bu nedenle G1'den gelen 3.3v sinyalini bir seviye değiştirici kullanarak dönüştürmemiz gerekiyor. Doğrudan bir 3.3v Arduino'ya bağlanmak mümkün olmalı ama bu test ettiğim bir şey değildi.

Buna yaklaşmanın birkaç yolu var ama biz bu örnekte bir 74LS04 yongası kullanacağız. Burada bir tane arayabilirsiniz ve muhtemelen 1 doların altındadır. Tim ve ben bizimkini Mountain View, CA'daki Hacker Dojo'dan aldık, ancak bunlar ÇOK yaygın ve çiplerin satıldığı veya bağışlandığı her yerde bol olmalı. Yüksek bir seviyede, HTS USB devre kartından TX sinyalini 74LS04 çipinin 1 pinine göndereceğiz. Çalışması için çipten iki kez geçiyoruz ve Freeduino SB'deki RX pinine 4 pinini çıkarıyoruz (başka bir Arduino kartınız varsa seri pininiz farklı olabilir, ancak hepsinin bunu desteklemesi gerekir). Seviye değiştiriciyi bağlamak ve HTC USB kartını bağlamak için şu adımları izleyin (henüz telefona takmayın ve Arduino'nun gücünü kesin): 1. 74LS04 yongasını devre tahtanıza takın. Çipin ortadaki kopmayı engellediğinden emin olun, böylece pimler kısa devre yapmaz (ilk başta yaptığım aptalca bir hareket) 2. Asker, bu talimatta açıklandığı gibi HTC USB kartına iki kablo bağlayın, ancak yalnızca pim 7'yi kullanacağız (Ground) ve 8 (TX0) çünkü bu eğitim için sadece tek yönlü iletim yapıyoruz. 3. Topraklama kablosunun diğer ucunu (pim 7) breadboard'unuzdaki bir toprağa bağlayın (ki bu, Arduino'nuzdaki bir toprağa bağlanması gerekir) 4. TX0 (pin 8) kablosunun diğer ucunu, devre tahtasına bağlayın. 74LS04 çipinin 1 numaralı pinine girer. (çipin tam şeması için resim araması yapın) 5. Çipin 2 ve 3 numaralı pinlerini bağlamak için bir kablo kullanın 6. Çipin 4 numaralı pinini Arduino RX noktasına bağlayın (Freeduino SB ve Arduino Duemilanove üzerindeki pin 0)) 7. Çip üzerindeki 7 numaralı pini (GND) breadboard'unuz için toprağa bağlayın (bu aynı zamanda Arduino toprağına da bağlanır) 8. Pin 14'ü (VCC) breadboard'unuzdaki (Arduino'dan güç alan) 5v gücüne bağlayın 5v çıkış) Artık HTC USB devre kartını telefonun altına takmaya ve Arduino'yu açmaya hazır olmalısınız. Kıvılcım ve koku olup olmadığını kontrol edin ve serin olduklarından emin olmak için nesnelere dokunun. Not: Robotun servo motorlarının çalışması gerektiğinde mevcut cellbot kodu LED #13'ü açar. Henüz bir robotunuz yoksa, çalıştığını doğrulamak için LED'in açılıp kapandığını kontrol edebilirsiniz.

Adım 7: Cellbots Programını Arduino'ya yükleyin

Arduino'ya Cellbots Programını yükleyin
Arduino'ya Cellbots Programını yükleyin
Arduino'ya Cellbots Programını yükleyin
Arduino'ya Cellbots Programını yükleyin

Arduino kaynak kodunu Google Code proje sitemizden alın. Arduino düzenleyicide Cellbots.pde Arduino programını açın. Ardından Arduino kartınıza itin.

Arduino düzenleyicide seri monitörü açarak Arduino koduyla konuşmayı test edebilirsiniz. Bu, her şeyi telefona bağlamadan önce doğrudan Arduino ile konuşarak robotunuzu veya cihazınızı test etmenin harika bir yoludur. Kod, robotunuzu henüz oluşturmamış olsanız bile ne yaptığını doğrulamak için seri komutları seri monitöre geri gönderir. Not: Kablo, RX seri giriş pinine bağlıyken Arduino'ya program yükleyemezsiniz.. Bu yüzden buna bir anahtar koymak isteyebilirsiniz, ancak yeni bir program yüklemem gerektiğinde fişini çektim.

8. Adım: Tüm Süreci Çalıştırın

Tüm Süreci Çalıştırın
Tüm Süreci Çalıştırın
Tüm Süreci Çalıştırın
Tüm Süreci Çalıştırın
Tüm Süreci Çalıştırın
Tüm Süreci Çalıştırın

HTC USB kartını telefona bağlayabilmeli, cellbot.py dosyasını ASE'de çalıştırabilmeli ve telefonda bir terminal oturumu açabilmelisiniz. Telefonun merhaba demesi için "H" yazın veya README.txt dosyasındaki diğer komutları yazın.

Bir "q", telefondaki Python betiğinden çıkar ve terminal soketini kapatır. İşte her şeyin nasıl çalıştığının bir özeti: 1. Python betiği, gelen telnet bağlantılarını kabul etmek ve komutları seri port 2'den yankılamak için bir soket açar. Bilgisayarımızdan telefona 9002 portundan telnet ile bağlanıyoruz ve ekran 3'te gördüğümüz komutları gönderiyoruz. çipten pin 2'de sinyal geliyor, pin 3'te tekrar giriyor ve 5v 5'te tekrar pin 4'te çıkıyor. Arduino'muz seri sinyali RX pin 0'da kabul ediyor ve Cellbot.pde programı 6 üzerinden işliyor. Python betiğini öldürmek ve telnet bağlantısını kapatmak için 'q' yazabilirsiniz Bir Arduino robotuna temel komutlar göndermek için bu çok karmaşık işlemi tamamladığınıza göre, onu daha harika olması için hacklemenizin zamanı geldi! Henüz 2 yönlü seri çalışmamız yok, bu nedenle Arduino komutları telefona geri gönderemez ama bunun üzerinde çalışıyoruz. Cellbots.com'daki blogumuza abone olarak güncel kalın. Yazarlar Hakkında: Tim Heath Bu süreci ilk kez üyesi olduğu Menlo Park'taki Tech Shop'ta bir araya getiren baş araştırmacı. Python ve Arduino kodu üzerinde çalışan ve bu Instructable'ı yazan Ryan Hickman Programcısı.

Önerilen: