Ponsel pintar akhir-akhir ini biasanya dilengkapi dengan giroskop, akselerometer, kompas, kamera, dan sensor GPS. Mereka juga biasanya memiliki koneksi ke internet dengan Wifi dan jaringan data seluler. Saya telah melihat banyak kasus menggunakan telepon sebagai remote control untuk robot, tetapi bagi saya, sepertinya ponsel itu sendiri adalah komputasi ringan yang sempurna dan platform penginderaan untuk robot otonom.
Hambatan utama yang saya lihat adalah berinteraksi dengan aktuator. Mampu mengendalikan motor untuk mengarahkan bahkan robot table-top, atau mengendalikan servos, misalnya. Menghubungkan dan berkomunikasi dengan mikrokontroler bisa menjadi hambatan juga.
Sebagai penghobi robot, saya ingin tahu bagaimana saya bisa mengatasi ini dan hambatan lainnya untuk dapat memanfaatkan kekuatan ponsel pintar saya dengan proyek robotika saya.
Jawaban:
The Android Aksesori Development Kit (ADK) harus melakukan segala sesuatu yang Anda butuhkan.
Ini adalah papan Arduino yang dirancang khusus untuk berinteraksi dengan Android. Anda dapat menghubungkan keduanya melalui Bluetooth atau USB (atau WiFi / Ethernet, saya pikir).
Karena keseluruhan arsitektur terbuka, Anda dapat menggunakan setiap bagian untuk apa yang terbaik. Anda menulis kode Android untuk mendapatkan data dari sensor bawaan ponsel dan mengontrol tampilan. Dan Anda menulis kode Arduino untuk mengontrol aktuator, servo dan sensor lainnya yang tidak dimiliki ponsel. Kode untuk berkomunikasi antara keduanya disediakan sumber terbuka melalui Google.
Dari Blog Arduino :
Sebagian besar contoh dirancang dengan menggunakan telepon sebagai antarmuka grafis untuk beberapa jenis aksesori perangkat keras seperti jam. Tetapi tidak ada alasan Anda tidak dapat mengakses sensor telepon juga dan meneruskan data bolak-balik.
Adafruit bahkan menyebutkan menggunakannya untuk membuat robot di halaman toko mereka untuk ADK:
(penekanan milikku)
sumber
Opsi lain adalah papan IOIO-OTG :
The deskripsi produk Sparkfun menggambarkan fungsionalitas:
Papan ini harus melakukan semua yang Anda inginkan dan bahkan memiliki tutorial yang bagus untuk membantu Anda memulai.
sumber
Masalah utama seperti yang saya lihat itu tidak benar-benar berinteraksi dengan aktuator - jika Anda memiliki cara yang baik untuk mentransfer digital (bahkan lebih baik adalah analog, atau saluran yang cukup baik untuk melakukan PWM) sinyal nirkabel, Anda hanya dapat antarmuka dengan chip driver motor (mis. L293D) dan siap digunakan. Untuk servos, Anda memerlukan waktu respons yang baik sehingga Anda dapat menangani pulsa. Jika Anda memiliki saluran berkemampuan PWM, ini seharusnya tidak sulit karena saluran sudah memiliki baud yang tinggi. Jika Anda memiliki saluran lambat, servos mungkin tidak dapat dilakukan karena Anda memerlukan pengaturan waktu pulsa yang akurat.
Opsi pertama yang saya lihat (meskipun agak besar) adalah untuk mengambil Raspberry Pi, sambungkan melalui ethernet ke router nirkabel, dan sambungkan telepon ke nirkabel yang sama. Sekarang cukup tulis aplikasi dasar untuk ponsel Anda yang mengirimkan permintaan ke Pi berdasarkan input, dan tulis server lain seperti aplikasi untuk Pi yang menangani ini. Mungkin besar dan agak sulit, tetapi cukup bisa diperpanjang, IMO. Anda juga dapat meletakkan router di luar dan menempelkan ini ke dalam Pi (atau menggunakan hotspot dan menghilangkan router sepenuhnya).
Pilihan lain adalah menggunakan pengontrol bluetooth seperti yang ditunjukkan di sini . Saya belum pernah menggunakan ini sebelumnya, tetapi sepertinya Anda masih membutuhkan mikrokontroler untuk menangani ini. Saya kira Anda dapat menghubungkan pin RX / TX langsung ke TX / RX pada Arduino, meskipun saya tidak terlalu yakin tentang ini.
Jika Anda pernah menggunakan XBee / ZigBee sebelumnya, Anda mungkin ingin mencoba lebah bluetooth .
Opsi terakhir adalah menggunakan port USB telepon dengan pengaturan kontrol nirkabel konvensional (XBee / apa pun) - tetapi ini akan mengharuskan seseorang untuk menulis driver dan semuanya.
sumber
Ya, kurangnya pin GPIO pada ponsel pintar sangat memalukan. Jika Anda sudah menjalankan ROS pada robot, Anda bisa menggunakan aplikasi ini di ponsel Android untuk mendapatkan akses ke rangkaian sensor di ponsel.
sumber
Banyak perangkat Android terbaru, seperti Nexus 7, mendukung USB On The Go (OTG) yang merupakan cara mewah untuk mengatakan bahwa 'Mode Host USB' didukung. Dalam kasus ini, dengan kabel yang tepat yang dapat dimiliki dengan harga kurang dari $ 1, perangkat USB apa pun yang kompatibel dapat digunakan. Anda tidak memerlukan versi khusus Arduino yang memiliki perangkat keras untuk mode Host USB.
Saya telah bereksperimen dengan ini cukup untuk mengetahui bahwa Arduino 'normal' seperti Leonardo atau Teensy 2 muncul ke ponsel Android sebagai perangkat TTY (misalnya port serial) ketika terhubung dengan kabel OTG.
Artikel ini tentang cara menggunakan API Host USB Android untuk berkomunikasi dengan Arduino dari aplikasi Android. Ini membutuhkan Android 3.1+ dan tidak mengharuskan Anda untuk melakukan root pada perangkat.
sumber