Isi kandungan:

Android G1 Serial to Arduino Robot: 8 Langkah
Android G1 Serial to Arduino Robot: 8 Langkah

Video: Android G1 Serial to Arduino Robot: 8 Langkah

Video: Android G1 Serial to Arduino Robot: 8 Langkah
Video: New App for programming your Arduino/ESP board | How to program Arduino and ESP board In Android 2024, November
Anonim
Android G1 Serial ke Arduino Robot
Android G1 Serial ke Arduino Robot
Android G1 Serial ke Arduino Robot
Android G1 Serial ke Arduino Robot
Android G1 Serial ke Arduino Robot
Android G1 Serial ke Arduino Robot

Ketahui bagaimana telefon bimbit Android anda dapat mengawal robot menggunakan papan Arduino. Telefon mengambil arahan melalui telnet dari telefon atau PC lain, sehingga anda dapat mengendalikan robot dari jarak jauh. Projek ini tidak akan mengubah G1 sebaliknya anda boleh terus menggunakannya sebagai telefon biasa anda setelah melepaskannya. Mengapa? Dengan menggunakan komponen elektronik yang murah seperti papan Arduino, anda boleh memasangkannya dengan telefon bimbit $ 400 anda untuk membuat robot yang hebat. Akan berharga ratusan dolar untuk menambahkan GPS, LCD, sensor gerakan, wi-fi, sambungan selular, pembesar suara, dan banyak lagi ke bot hobi, tetapi telefon anda sudah mempunyai ini! Bersama-sama, papan Android G1 dan Arduino membolehkan anda menggunakan elektronik yang murah seperti servos dan sensor sederhana, untuk membina peranti hebat seperti robot, jarak jauh jarak jauh, atau mainan yang menyeronokkan untuk anak-anak. Maklumat lebih lanjut di Cellbots.com. Catatan: Projek ini memerlukan Android G1 dengan akses root untuk menggunakan output bersiri dari telefon ke robot Arduino. Anda boleh menambahkan modul BlueTooth $ 20 ke papan Arduino anda untuk meminta telefon bercakap melalui siri BlueTooth jika anda ingin menggunakan perisian Android komersial. Terima kasih khas: Kami mempunyai Hacker Dojo di Mountain View, CA untuk mengucapkan terima kasih kerana menghubungi kami, membantu dengan beberapa masalah yang sukar melalui senarai mel ahli mereka yang hebat, dan kerana stok 74LS04 tersedia. Sebahagian besar perhimpunan dilakukan di Tech Shop di Menlo Park.

Langkah 1: Item Diperlukan

Item Diperlukan
Item Diperlukan
Item Diperlukan
Item Diperlukan
Item Diperlukan
Item Diperlukan

Untuk melengkapkan tutorial ini, anda memerlukan perkara berikut: Perkakasan: - Telefon Android G1 Dev (atau peranti Android lain dengan akses root dan output bersiri) - Arduino (Saya menggunakan Freeduino SB tetapi yang harus dilakukan) - 3.3v hingga 5v penukar jika anda tidak menggunakan Arduino 3.3v (Saya menggunakan cip 74LS04 dengan harga di bawah $ 1 tetapi ada pilihan lain) - Papan pemecah USB HTC untuk G1 - Peralatan pematerian untuk dua sambungan pantas - Badan robot dengan servo mikro (kadbod, akrilik, tapak, roda, apa sahaja yang akan dilakukan) Perisian: - Persekitaran Skrip Android (ASE) - Pelanggan Telnet untuk PC anda (Saya menggunakan PuTTY pada Windows) - Persekitaran pengembangan Arduino - (pilihan) Pelanggan bersiri untuk PC anda (saya juga menggunakan PuTTY pada Windows untuk ini) - (opsional) Android SDK Sekiranya anda dapat mengikuti arahan, anda boleh menyelesaikan tutorial ini dengan sedikit pengetahuan mengenai Python, Arduino, Android, atau elektronik. Anda pasti ingin mengetahui perkara-perkara tersebut sekiranya anda ingin melampaui LED yang berkedip tetapi ini akan memulakan anda.

Langkah 2: Android G1 Dengan Output Bersiri Diaktifkan

Android G1 Dengan Output Bersiri Diaktifkan
Android G1 Dengan Output Bersiri Diaktifkan
Android G1 Dengan Output Bersiri Diaktifkan
Android G1 Dengan Output Bersiri Diaktifkan
Android G1 Dengan Output Bersiri Diaktifkan
Android G1 Dengan Output Bersiri Diaktifkan

G1 tidak menghantar dengan keupayaan untuk menghantar arahan bersiri dari port USB dan tidak ada pilihan asli untuk mengaktifkannya. Sekiranya anda pengguna Android SDK yang maju, anda boleh membuat sendiri, tetapi saya memilih untuk menggunakan Cyanogenmod 4.2.13. Sekiranya anda mengetahui peranti Android lain dengan siri yang berfungsi, tambahkannya ke komen.

Sebagai pilihan, anda boleh mengikuti pautan yang terdapat di sini untuk bercakap dengan G1 melalui USB dari PC anda. Sambungan bersiri ke USB itu tidak diperlukan untuk tutorial ini tetapi saya menggunakannya sebagai pemeriksaan kewajaran untuk mengesahkan bahawa telefon menghantar siri keluar. Sekiranya anda tidak menggunakan yang lain yang dapat ditembus untuk mengesahkan output bersiri berfungsi, anda boleh mencuba cek mudah ini: 1. Buka aplikasi Terminal di G1 (dilengkapi dengan Cyanogen tetapi muat turun satu dari Market jika anda mempunyai gambar yang berbeza) 2 Navigasi ke direktori / dev / dengan mengetik cd / dev / 3. Ketik ls (itu L) dan cari ttyMSM2 dalam senarai yang dikembalikan Skrip Python yang akan kita gunakan kemudian menghantar arahan ke '/ dev / ttyMSM2' di suruh mereka keluar sambungan bersiri. Oleh kerana itu memerlukan akses root, anda perlu menukar izin setiap kali anda menghidupkan semula telefon. Untuk melakukannya: 1. Buka aplikasi terminal di telefon 2. Masukkan 'chmod 777 / dev / ttyMSM2' Kemudian anda boleh menjalankan skrip Python dari suntingan Skrip Android pada langkah berikutnya dan ia akan mempunyai akses untuk mengirim output bersiri.

Langkah 3: Pasang Persekitaran Skrip Android (ASE) Dengan Python

Pasang Persekitaran Skrip Android (ASE) Dengan Python
Pasang Persekitaran Skrip Android (ASE) Dengan Python
Pasang Persekitaran Skrip Android (ASE) Dengan Python
Pasang Persekitaran Skrip Android (ASE) Dengan Python

Skrip yang akan kita gunakan untuk membuat sambungan soket terbuka di telefon dan menghantar arahan ditulis dalam Python. Untuk menjalankannya di G1 kita memerlukan Persekitaran Skrip Android. Sekiranya anda tidak melihatnya di Market, anda boleh memuat turunnya dengan mengimbas kod bar di halaman tersebut yang memaut ke fail apk di halaman ini.

Setelah anda memasang dan menjalankan ASE, anda ingin menambah modul Python dari menu: 1. Buka ASE dan pastikan anda mempunyai sambungan internet yang berfungsi (wi-fi atau 3G) 2. Tekan butang menu di telefon dan pilih Jurubahasa 3. Tekan menu sekali lagi dan pilih Tambah 4. Pilih Python (saat ini v2.6.2 semasa menulis ini) dan ia akan memuat turun beberapa fail zip Anda mungkin ingin meneroka membuat, membuka, menyunting, dan menjalankan skrip untuk menjadi biasa dengan Python melalui ASE tetapi tidak diperlukan.

Langkah 4: Salin dan Jalankan Skrip Cellbot.py untuk Melancarkan Program Python

Salin dan Jalankan Skrip Cellbot.py untuk Melancarkan Program Python
Salin dan Jalankan Skrip Cellbot.py untuk Melancarkan Program Python

Tutorial ini menggunakan skrip Python untuk menjadi "otak" robot. Dapatkan kod terkini dari projek Kod Google sumber terbuka kami. Anda hanya memerlukan fail cellbot.py tetapi yang lain boleh membantu dengan pelbagai perkara yang ingin anda terokai. Saya hanya menyambungkan telefon ke sambungan USB PC saya dan memasang pemacu sebelum menyalin fail ke / sdcard / ase / script.

Program ini membuat sambungan soket terbuka untuk menerima sesi telnet yang masuk. Ini juga mencetak perintah yang diterima ke layar sambil mengirimkannya ke port serial. Letakkan file ini pada kartu SD telepon di / ase / scripts / direktori. Langkah-langkah terperinci untuk memuat dan menjalankan skrip: 1. Salin skrip cellbot.py ke kartu SD / ase / script / direktori 2. Pastikan turun kad SD dari PC anda jika anda menyalinnya dengan cara itu kerana telefon tidak dapat mengakses fail pada masa yang sama PC anda. 3. Buka aplikasi Lingkungan Skrip Android 4. Klik pada cellbot.py untuk melancarkannya. Anda akan melihat pengesahan bahawa peranti ini sudah siap untuk menerima sesi telnet masuk pada port 9002. Petua: Pastikan anda menjalankan "chmod 777 / dev / ttyMSM2 "arahan dari langkah # 3 terlebih dahulu. Lihat langkah # 5 untuk mencari alamat IP telefon.

Langkah 5: Telnet Ke G1 dan Uji Menghantarnya

Telnet Ke G1 dan Uji Menghantarnya
Telnet Ke G1 dan Uji Menghantarnya
Telnet Ke G1 dan Uji Menghantarnya
Telnet Ke G1 dan Uji Menghantarnya
Telnet Ke G1 dan Uji Menghantarnya
Telnet Ke G1 dan Uji Menghantarnya

Telefon harus siap untuk anda telnet ke dalamnya dan mengirimkannya perintah dari PC anda. Ia akan mencetaknya ke layar telefon untuk mengesahkan apa yang diterimanya. Saya menggunakan PuTTY pada Windows tetapi kami telah mengesahkan bahawa minicom berfungsi dengan baik pada Mac seperti yang dijelaskan dalam arahan ini.

Anda terlebih dahulu perlu mencari alamat IP telefon anda. Ini tersedia dengan pergi ke Menu> Tetapan> Kawalan tanpa wayar> Tetapan Wi-Fi dan kemudian tekan sambungan yang sedang aktif. Mesej toast timbul akan muncul dengan alamat IP semasa di rangkaian tempatan. Tuliskan ini kerana anda akan menggunakannya setiap kali anda ingin membuka sesi telnet dari PC anda. Tugasan IP biasanya tamat selepas beberapa hari, jadi anda mungkin perlu menyemaknya sekali lagi. Catatan: Tutorial ini menganggap PC dan telefon anda berada di rangkaian tempatan yang sama. Laluan ke telefon dari luar rangkaian tempatan boleh dilakukan tetapi tidak dilindungi di sini. Buka klien telnet pilihan anda dan sambungkan ke IP telefon pada port 9002. Dari baris arahan anda melakukan ini sebagai "telnet 192.168.1.1 9002" menggunakan IP sebenar telefon. Ketik beberapa watak dan tekan enter untuk melihatnya muncul di skrin telefon. Anda boleh mengetik q untuk menyebabkan skrip Python berhenti, yang akan menutup sesi terminal anda. Sekiranya atas sebab apa pun anda tidak dapat menyambung melalui telnet dan perlu membunuh program ini, but semula telefon mudah dilakukan. Pengguna lanjutan mungkin ingin mencari ID proses melalui ps dan kemudian menggunakan kill untuk menghentikannya. Lanjutan: Versi masa depan ini dapat menjalankan pelayan web tempatan dari telefon daripada menerima perintah melalui telnet. Kami juga meneroka XMPP untuk berbual dengan robot anda.

Langkah 6: Sambungkan 3.3v hingga 5v Level Shifter ke Arduino

Sambungkan 3.3v hingga 5v Level Shifter ke Arduino
Sambungkan 3.3v hingga 5v Level Shifter ke Arduino
Sambungkan 3.3v hingga 5v Level Shifter ke Arduino
Sambungkan 3.3v hingga 5v Level Shifter ke Arduino
Sambungkan 3.3v hingga 5v Level Shifter ke Arduino
Sambungkan 3.3v hingga 5v Level Shifter ke Arduino

Arduino yang digunakan dalam tutorial ini adalah model 5v jadi kita perlu menukar isyarat 3.3v yang keluar dari G1 menggunakan level shifter. Mungkin boleh menyambung terus ke Arduino 3.3v tetapi itu bukan sesuatu yang saya uji.

Terdapat beberapa cara untuk mendekati ini tetapi kami akan menggunakan cip 74LS04 dalam contoh ini. Anda boleh mencarinya di sini dan mereka mungkin di bawah $ 1. Tim dan saya mengambil dari Hacker Dojo di Mountain View, CA tetapi ini sangat biasa dan semestinya banyak di mana sahaja kerepek dijual atau didermakan. Pada tahap tinggi kita hanya akan menghantar isyarat TX dari papan pemecah USB HTS ke pin 1 cip 74LS04. Untuk membuatnya berfungsi, kita pergi melalui cip dua kali dan keluar pin 4 ke pin RX di Freeduino SB (pin bersiri anda mungkin berbeza jika anda mempunyai papan Arduino lain tetapi semua harus menyokong ini). Ikuti langkah-langkah ini untuk memasang pengubah level dan sambungkan papan USB HTC (jangan pasangkannya ke telefon dan cabut kuasa ke Arduino): 1. Masukkan cip 74LS04 ke papan roti anda. Pastikan cip menghalang pemecatan tengah supaya pin tidak terpendek (gerakan bodoh yang saya buat pada mulanya) 2. Askar dua wayar ke papan USB HTC seperti yang dijelaskan dalam arahan ini, tetapi kami hanya akan menggunakan pin 7 (Ground) dan 8 (TX0) kerana kami hanya melakukan penghantaran sehala untuk tutorial ini. 3. Sambungkan wayar hujung tanah (pin 7) yang lain ke tanah di papan roti anda (yang harus dihubungkan ke tanah di Arduino anda) 4. Sambungkan hujung wayar TX0 (pin 8) yang lain ke papan roti di mana ia masuk ke pin 1 cip 74LS04. (lakukan carian gambar untuk gambarajah penuh cip) 5. Gunakan wayar untuk menyambungkan pin 2 dan 3 cip 6. Sambungkan pin 4 cip ke titik Arduino RX (pin 0 pada Freeduino SB dan Arduino Duemilanove) 7. Sambungkan pin 7 (GND) pada cip ke tanah untuk papan roti anda (yang juga menghubungkan ke arduino ground) 8. Sambungkan pin 14 (VCC) ke kuasa 5v pada papan roti anda (yang mendapat kuasa dari Arduino Output 5v) Anda kini sudah bersedia untuk memasang papan pemecah USB HTC ke bahagian bawah telefon dan menghidupkan Arduino. Periksa bunga api dan bau dan sentuh benda untuk memastikannya sejuk. Catatan: Kod cellbot semasa menghidupkan LED # 13 ketika motor servo robot sedang berjalan. Sekiranya anda belum mempunyai robot, anda boleh memeriksa untuk memastikan LED menyala dan mati untuk mengesahkan ia berfungsi.

Langkah 7: Muatkan Program Cellbots di Arduino

Muatkan Program Cellbots di Arduino
Muatkan Program Cellbots di Arduino
Muatkan Program Cellbots di Arduino
Muatkan Program Cellbots di Arduino

Dapatkan kod sumber Arduino dari laman projek Google Code kami. Buka program Cellbots.pde Arduino di editor Arduino. Kemudian tolak ke papan Arduino anda.

Anda boleh menguji bercakap dengan kod Arduino dengan membuka monitor bersiri di editor Arduino. Ini adalah kaedah terbaik untuk menguji robot atau peranti anda dengan bercakap terus dengan Arduino sebelum menghubungkan semuanya ke telefon. Kod tersebut menghantar arahan bersiri kembali ke monitor bersiri untuk mengesahkan apa yang dilakukannya walaupun anda belum membuat robot anda dibina. Catatan: Anda tidak dapat memuatkan program ke Arduino semasa wayar disambungkan ke pin input siri RX. Oleh itu, anda mungkin mahu menukarnya, tetapi saya hanya mencabutnya apabila saya perlu memuatkan program baru.

Langkah 8: Jalankan Seluruh Proses

Jalankan Seluruh Proses
Jalankan Seluruh Proses
Jalankan Seluruh Proses
Jalankan Seluruh Proses
Jalankan Seluruh Proses
Jalankan Seluruh Proses

Anda seharusnya dapat menyambungkan papan USB HTC ke telefon, menghidupkan fail cellbot.py di ASE, dan membuka sesi terminal ke dalam telefon. Ketik "H" agar telefon bertanya khabar atau arahan lain dari fail README.txt.

A "q" akan menutup skrip Python di telefon dan menutup soket terminal. Berikut adalah ringkasan bagaimana semuanya berfungsi: 1. Skrip Python membuka soket untuk menerima sambungan telnet masuk dan menggema perintah keluar dari port bersiri 2 Kami menghubungkan dari PC kami ke telefon melalui telnet pada port 9002 dan mengirimkannya perintah yang kami lihat di layar 3. Papan USB HTS bersambung dengan port USB G1 dan menghantar isyarat 3.3v ke dalam pin 74LS04 1. 4. The isyarat keluar dari cip pada pin 2, masuk kembali pada pin 3, dan keluar lagi pada pin 4 pada 5v 5. Arduino kami menerima isyarat bersiri pada pin RX 0 dan memprosesnya melalui program Cellbot.pde 6. Kami boleh menaip 'q' untuk membunuh skrip Python dan menutup sambungan telnet Sekarang setelah anda menyelesaikan proses yang sangat rumit ini untuk menghantar arahan asas ke robot Arduino, sudah tiba masanya anda menggodamnya menjadi lebih hebat! Kami belum mempunyai siri dua hala yang berfungsi sehingga Arduino tidak dapat menghantar perintah kembali ke telefon tetapi kami sedang mengusahakannya. Ikuti perkembangan terkini dengan melanggan blog kami di Cellbots.com. Mengenai Pengarang: Tim Heath Penyelidik utama yang pertama kali mengumpulkan proses ini di Tech Shop di Menlo Park, di mana dia menjadi ahli. Ryan Hickman Programmer yang mengerjakan kod Python dan Arduino dan mengarang Instructable ini.

Disyorkan: