Daftar Isi:

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

Video: Serial Android G1 ke Robot Arduino: 8 Langkah

Video: Serial Android G1 ke Robot Arduino: 8 Langkah
Video: Arduino project ๐Ÿ˜Ž^ Arduino #arduino #2022 #2021 #2023 #dc #arduinoproject #diy #foryou 2024, September
Anonim
Serial Android G1 ke Robot Arduino
Serial Android G1 ke Robot Arduino
Serial Android G1 ke Robot Arduino
Serial Android G1 ke Robot Arduino
Serial Android G1 ke Robot Arduino
Serial Android G1 ke Robot Arduino

Pelajari bagaimana ponsel Android Anda dapat mengontrol robot menggunakan papan Arduino. Telepon menerima perintah melalui telnet dari telepon lain atau PC, sehingga Anda dapat mengontrol robot dari jarak jauh. Proyek ini tidak akan mengubah G1 sehingga Anda dapat terus menggunakannya sebagai ponsel biasa setelah melepasnya. Mengapa? Dengan menggunakan komponen elektronik murah seperti papan Arduino, Anda dapat memasangkannya dengan ponsel seharga $400 untuk membuat robot yang luar biasa. Biayanya ratusan dolar untuk menambahkan GPS, LCD, sensor gerak, wi-fi, koneksi seluler, speaker, dan lainnya ke bot hobi, tetapi ponsel Anda sudah memilikinya! Bersama-sama, papan Android G1 dan Arduino memungkinkan Anda menggunakan elektronik murah seperti servo dan sensor sederhana, untuk membuat perangkat canggih seperti robot, telepresence jarak jauh, atau mainan menyenangkan untuk anak-anak. Informasi lebih lanjut di Cellbots.com. Notice: Proyek ini saat ini membutuhkan Android G1 dengan akses root untuk menggunakan output serial dari telepon ke robot Arduino. Anda dapat menambahkan modul BlueTooth $20 ke papan Arduino Anda agar telepon dapat berbicara dengannya melalui serial BlueTooth jika Anda ingin menggunakan perangkat lunak Android komersial. Terima kasih khusus: Kami memiliki Hacker Dojo di Mountain View, CA untuk berterima kasih karena telah menghubungkan kami, membantu dengan beberapa masalah rumit melalui milis anggota mereka yang luar biasa, dan karena memiliki stok chip 74LS04. Sebagian besar perakitan dilakukan di Tech Shop di Menlo Park.

Langkah 1: Item yang Dibutuhkan

Barang yang Dibutuhkan
Barang yang Dibutuhkan
Barang yang Dibutuhkan
Barang yang Dibutuhkan
Barang yang Dibutuhkan
Barang yang Dibutuhkan

Untuk menyelesaikan tutorial ini, Anda memerlukan yang berikut: Perangkat Keras: - Ponsel Android G1 Dev (atau perangkat Android lainnya dengan akses root dan output serial) - Arduino (Saya menggunakan Freeduino SB tetapi siapa pun harus melakukannya) - 3.3v hingga 5v konverter jika Anda tidak menggunakan Arduino 3.3v (Saya menggunakan chip 74LS04 dengan harga di bawah $ 1 tetapi opsi lain tersedia) - Papan pemutus USB HTC untuk G1 - Peralatan solder untuk dua koneksi cepat - Badan robot dengan micro servos (kardus, akrilik, tapak, roda, apa pun bisa dilakukan)Perangkat lunak: - Android Scripting Environment (ASE) - Klien Telnet untuk PC Anda (Saya menggunakan Putty di Windows) - Lingkungan pengembangan Arduino - (opsional) Klien serial untuk PC Anda (Saya juga menggunakan Putty di Windows untuk ini) - (opsional) Android SDK Jika Anda dapat mengikuti petunjuk, Anda dapat menyelesaikan tutorial ini dengan sedikit pengetahuan tentang Python, Arduino, Android, atau elektronik. Anda pasti ingin mengetahui hal-hal itu jika Anda ingin melampaui LED yang berkedip tetapi ini akan membantu Anda memulai.

Langkah 2: Android G1 Dengan Output Serial Diaktifkan

Android G1 Dengan Output Serial Diaktifkan
Android G1 Dengan Output Serial Diaktifkan
Android G1 Dengan Output Serial Diaktifkan
Android G1 Dengan Output Serial Diaktifkan
Android G1 Dengan Output Serial Diaktifkan
Android G1 Dengan Output Serial Diaktifkan

G1 tidak dikirimkan dengan kemampuan untuk mengirim perintah serial dari port USB dan tidak ada opsi asli untuk mengaktifkannya. Jika Anda adalah pengguna Android SDK tingkat lanjut, Anda dapat membuat build sendiri, tetapi saya memilih untuk menggunakan Cyanogenmod 4.2.13. Jika Anda mengetahui perangkat Android lain dengan serial yang berfungsi, tambahkan ke komentar.

Secara opsional, Anda dapat mengikuti tautan di sana untuk instruksi ini tentang berbicara dengan G1 Anda melalui USB dari PC Anda. Koneksi serial ke USB itu tidak diperlukan untuk tutorial ini, tetapi saya menggunakannya sebagai pemeriksaan kewarasan yang bagus untuk memverifikasi bahwa telepon mengirim serial. Jika Anda tidak menggunakan instruksi lain untuk memverifikasi keluaran serial berfungsi, Anda dapat mencoba pemeriksaan sederhana ini: 1. Buka aplikasi Terminal di G1 (dilengkapi dengan Cyanogen tetapi unduh satu dari Market jika Anda memiliki gambar yang berbeda) 2 Navigasi ke direktori /dev/ dengan mengetikkan cd /dev/ 3. Ketik ls (itu adalah L) dan cari ttyMSM2 dalam daftar yang dikembalikan Skrip Python yang akan kita gunakan nanti mengirimkan perintah ke '/dev/ttyMSM2' di agar mereka keluar dari koneksi serial. Karena itu memerlukan akses root, Anda harus mengubah izinnya setiap kali Anda me-reboot ponsel. Untuk melakukannya: 1. Buka aplikasi terminal di ponsel 2. Masukkan 'chmod 777 /dev/ttyMSM2' Kemudian Anda dapat menjalankan skrip Python dari edit Android Scripting pada langkah berikutnya dan skrip akan memiliki akses untuk mengirim output serial.

Langkah 3: Instal Lingkungan Scripting Android (ASE) Dengan Python

Instal Lingkungan Skrip Android (ASE) Dengan Python
Instal Lingkungan Skrip Android (ASE) Dengan Python
Instal Lingkungan Skrip Android (ASE) Dengan Python
Instal Lingkungan Skrip Android (ASE) Dengan Python

Skrip yang akan kita gunakan untuk membuat koneksi soket terbuka di telepon dan mengirim perintah ditulis dengan Python. Untuk menjalankan ini di G1 kita membutuhkan Android Scripting Environment. Jika Anda tidak melihatnya di Market, Anda dapat mengunduhnya dengan memindai kode batang di halaman itu yang tertaut ke file apk di halaman ini.

Setelah Anda menginstal dan menjalankan ASE, Anda ingin menambahkan modul Python dari menu: 1. Buka ASE dan pastikan Anda memiliki koneksi internet yang berfungsi (wi-fi atau 3G) 2. Tekan tombol menu di telepon dan pilih Interpreters 3. Tekan menu lagi dan pilih Add 4. Pilih Python (saat ini v2.6.2 pada saat penulisan ini) dan itu akan mengunduh beberapa file zip Anda mungkin ingin menjelajahi membuat, membuka, mengedit, dan menjalankan skrip untuk menjadi akrab dengan Python melalui ASE tetapi tidak diperlukan.

Langkah 4: Salin dan Jalankan Script Cellbot.py untuk Meluncurkan Program Python

Salin dan Jalankan Script Cellbot.py untuk Meluncurkan Program Python
Salin dan Jalankan Script Cellbot.py untuk Meluncurkan Program Python

Tutorial ini menggunakan script Python untuk menjadi "otak" robot. Dapatkan kode terbaru dari proyek Google Code open source kami. Anda hanya memerlukan file cellbot.py tetapi yang lain dapat membantu dengan berbagai hal yang ingin Anda jelajahi. Saya cukup mencolokkan telepon ke koneksi USB PC saya dan memasang drive sebelum menyalin file ke /sdcard/ase/scripts.

Program membuat koneksi soket terbuka untuk menerima sesi telnet yang masuk. Itu juga mencetak perintah yang diterima ke layar saat mengirimnya keluar dari port serial. Letakkan file ini di kartu SD ponsel di direktori /ase/scripts/. Langkah-langkah terperinci untuk memuat dan menjalankan skrip: 1. Salin skrip cellbot.py ke direktori /ase/scripts/ kartu SD 2. Pastikan untuk turun kartu SD dari PC Anda jika Anda menyalinnya seperti itu karena telepon tidak dapat mengakses file pada saat yang sama dengan PC Anda. 3. Buka aplikasi Android Scripting Environment 4. Klik cellbot.py untuk meluncurkannya Anda akan melihat konfirmasi bahwa perangkat siap saat ini untuk menerima sesi telnet masuk pada port 9002. Tip: Pastikan untuk menjalankan "chmod 777 /dev/ttyMSM2" perintah dari langkah #3 terlebih dahulu. Lihat langkah #5 untuk menemukan alamat IP telepon.

Langkah 5: Telnet Ke G1 dan Uji Mengirim Perintah

Telnet Ke G1 dan Uji Mengirim Perintah
Telnet Ke G1 dan Uji Mengirim Perintah
Telnet Ke G1 dan Uji Mengirim Perintah
Telnet Ke G1 dan Uji Mengirim Perintah
Telnet Ke G1 dan Uji Mengirim Perintah
Telnet Ke G1 dan Uji Mengirim Perintah

Telepon harus siap untuk Anda telnet ke dalamnya dan mengirimkan perintah dari PC Anda. Ini akan mencetaknya ke layar ponsel untuk mengkonfirmasi apa yang diterimanya. Saya menggunakan Putty di Windows tetapi kami telah mengonfirmasi bahwa minicom berfungsi dengan baik di Mac seperti yang dijelaskan dalam instruksi ini.

Pertama-tama Anda harus menemukan alamat IP ponsel Anda. Ini tersedia dengan masuk ke Menu > Settings > Wireless controls > Wi-Fi settings dan kemudian menekan koneksi yang sedang aktif. Pesan pop-up toast akan muncul dengan alamat IP saat ini di jaringan lokal. Catat ini karena Anda akan menggunakan ini setiap kali Anda ingin membuka sesi telnet dari PC Anda. Penetapan IP biasanya kedaluwarsa setelah beberapa hari sehingga Anda mungkin perlu memeriksanya lagi. Catatan: Tutorial ini mengasumsikan PC dan ponsel Anda berada di jaringan lokal yang sama. Perutean ke telepon dari luar jaringan lokal harus dimungkinkan tetapi tidak tercakup di sini. Buka klien telnet pilihan Anda dan sambungkan ke IP telepon pada port 9002. Dari baris perintah, Anda melakukan ini sebagai "telnet 192.168.1.1 9002" menggunakan IP telepon yang sebenarnya. Ketik beberapa karakter dan tekan enter untuk melihatnya muncul di layar ponsel. Anda dapat mengetik q untuk membuat skrip Python berhenti, yang akan menutup sesi terminal Anda. Jika karena alasan apa pun Anda tidak dapat terhubung melalui telnet dan perlu mematikan program, reboot ponsel sederhana akan berhasil. Pengguna tingkat lanjut mungkin ingin menemukan ID proses melalui ps dan kemudian menggunakan kill untuk menghentikannya. Lanjutan: Versi mendatang dari ini dapat menjalankan server web lokal dari telepon daripada menerima perintah melalui telnet. Kami juga menjelajahi XMPP untuk mengobrol dengan robot Anda.

Langkah 6: Hubungkan Penggeser Level 3.3v ke 5v ke Arduino

Hubungkan Penggeser Level 3.3v ke 5v ke Arduino
Hubungkan Penggeser Level 3.3v ke 5v ke Arduino
Hubungkan Penggeser Level 3.3v ke 5v ke Arduino
Hubungkan Penggeser Level 3.3v ke 5v ke Arduino
Hubungkan Penggeser Level 3.3v ke 5v ke Arduino
Hubungkan Penggeser Level 3.3v ke 5v ke Arduino

Arduino yang digunakan dalam tutorial ini adalah model 5v jadi kita perlu mengubah sinyal 3.3v yang keluar dari G1 menggunakan level shifter. Seharusnya dimungkinkan untuk terhubung langsung ke Arduino 3.3v tetapi itu bukan sesuatu yang saya uji.

Ada beberapa cara untuk mendekati ini, tetapi kami akan menggunakan chip 74LS04 dalam contoh ini. Anda dapat mencarinya di sini dan kemungkinan harganya di bawah $1. Tim dan saya mengambil milik kami dari Hacker Dojo di Mountain View, CA tetapi ini SANGAT umum dan harus berlimpah di mana pun chip dijual atau disumbangkan. Pada level tinggi, kami hanya akan mengirim sinyal TX dari papan breakout USB HTS ke pin 1 chip 74LS04. Untuk membuatnya berfungsi, kami melewati chip dua kali dan mengeluarkan pin 4 ke pin RX pada Freeduino SB (pin serial Anda mungkin berbeda jika Anda memiliki papan Arduino lain tetapi semua harus mendukung ini). Ikuti langkah-langkah ini untuk memasang pengatur level dan menghubungkan papan USB HTC (jangan mencolokkannya ke telepon dan cabut daya ke Arduino): 1. Masukkan chip 74LS04 ke papan tempat memotong roti Anda. Pastikan chip menghalangi bagian tengah sehingga pin tidak korslet (langkah bodoh yang saya buat pada awalnya) 2. Pasang dua kabel ke papan USB HTC seperti yang dijelaskan dalam instruksi ini, tetapi kami hanya akan menggunakan pin 7 (Ground) dan 8 (TX0) karena kita hanya melakukan transmisi satu arah untuk tutorial ini. 3. Hubungkan ujung kabel ground (pin 7) yang lain ke ground pada breadboard Anda (yang seharusnya terhubung ke ground pada Arduino Anda) 4. Hubungkan ujung kabel TX0 (pin 8) lainnya ke breadboard tempat itu berjalan ke pin 1 dari chip 74LS04. (lakukan pencarian gambar untuk diagram lengkap chip) 5. Gunakan kabel untuk menghubungkan pin 2 dan 3 chip 6. Hubungkan pin 4 chip ke titik Arduino RX (pin 0 pada Freeduino SB dan Arduino Duemilanove) 7. Hubungkan pin 7 (GND) pada chip ke ground untuk breadboard Anda (yang juga terhubung ke ground Arduino) 8. Hubungkan pin 14 (VCC) ke daya 5v pada breadboard Anda (yang mendapat daya dari Arduino Output 5v) Anda sekarang harus siap untuk mencolokkan papan pemutus USB HTC ke bagian bawah telepon dan nyalakan Arduino. Periksa percikan api dan bau dan sentuh benda-benda untuk memastikannya dingin. Catatan: Kode cellbot saat ini menyalakan LED #13 ketika motor servo robot harus berjalan. Jika Anda belum memiliki robot, Anda dapat memeriksa apakah LED menyala dan mati untuk memastikannya berfungsi.

Langkah 7: Muat Program Cellbots di Arduino

Muat Program Cellbots di Arduino
Muat Program Cellbots di Arduino
Muat Program Cellbots di Arduino
Muat Program Cellbots di Arduino

Dapatkan kode sumber Arduino dari situs proyek Google Code kami. Buka program Arduino Cellbots.pde di editor Arduino. Kemudian dorong ke papan Arduino Anda.

Anda dapat menguji berbicara dengan kode Arduino dengan membuka monitor serial di editor Arduino. Ini adalah cara yang bagus untuk menguji robot atau perangkat Anda dengan berbicara langsung ke Arduino sebelum menghubungkan semuanya ke telepon. Kode mengirimkan perintah serial kembali ke monitor serial untuk mengonfirmasi apa yang dilakukannya meskipun robot Anda belum dibuat. Catatan: Anda tidak dapat memuat program ke Arduino saat kabel terhubung ke pin input serial RX. Jadi, Anda mungkin ingin mengganti yang ini, tetapi saya cukup mencabutnya ketika saya perlu memuat 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 harus dapat menghubungkan papan USB HTC ke telepon, menjalankan file cellbot.py di ASE, dan membuka sesi terminal ke telepon. Ketik "H" agar ponsel menyapa atau perintah lain dari file README.txt.

A "q" akan keluar dari skrip Python di telepon dan menutup soket terminal. Berikut adalah rekap cara kerjanya: 1. Skrip Python membuka soket untuk menerima koneksi telnet yang masuk dan menggemakan perintah keluar dari port serial 2 Kami menghubungkan dari PC kami ke telepon melalui telnet pada port 9002 dan mengirimkan perintah yang kita lihat di layar 3. Papan USB HTS berinteraksi dengan port USB G1 dan mengirimkan sinyal 3.3v ke pin 74LS04 1. 4. sinyal keluar dari chip pada pin 2, masuk kembali pada pin 3, dan keluar lagi pada pin 4 pada 5v 5. Arduino kami menerima sinyal serial pada RX pin 0 dan memprosesnya melalui program Cellbot.pde 6. Kami dapat mengetik 'q' untuk mematikan skrip Python dan menutup koneksi telnet Sekarang setelah Anda menyelesaikan proses yang sangat rumit ini untuk mengirim perintah dasar ke robot Arduino, saatnya bagi Anda untuk meretasnya agar lebih dahsyat! Kami belum memiliki serial 2 arah yang berfungsi sehingga Arduino tidak dapat mengirim perintah kembali ke telepon tetapi kami sedang mengerjakannya. Tetap terkini dengan berlangganan blog kami di Cellbots.com. Tentang Penulis: Tim Heath Peneliti utama yang pertama kali melakukan proses ini di Tech Shop di Menlo Park, tempat dia menjadi anggota. Ryan Hickman Programmer yang mengerjakan kode Python dan Arduino dan menulis Instruksi ini.

Direkomendasikan: