Bagaimana saya bisa mengintegrasikan ponsel pintar dengan proyek robotika saya? [Tutup]

24

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.

Robz
sumber
Hanya untuk menambahkan opsi iOS, lihat SESO iPhone sebagai pengontrol robot
Greenonline

Jawaban:

19

The Android Aksesori Development Kit (ADK) harus melakukan segala sesuatu yang Anda butuhkan.

ADK

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 :

Kit Pengembangan Aksesori Terbuka Android (ADK) menyediakan implementasi aksesori USB Android yang didasarkan pada platform prototipe elektronik sumber terbuka Arduino, file desain perangkat keras aksesori, kode yang mengimplementasikan firmware aksesori, dan aplikasi Android yang berinteraksi dengan tambahan. File dan kode desain perangkat keras terdapat dalam unduhan paket ADK.

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:

Lacak perkembangan perangkat keras ponsel Android Anda atau rancang robot ponsel dengan Arduino ADK! Arduino ADK adalah papan mikrokontroler berdasarkan ATmega2560 yang kuat (lembar data). Ini memiliki antarmuka host USB untuk terhubung dengan ponsel berbasis Android, dan konverter penambah catu daya untuk mengisi daya ponsel dari daya DC sementara dicolokkan ke ADK

(penekanan milikku)

tertanam.kyle
sumber
11

Opsi lain adalah papan IOIO-OTG :

Papan IOIO-OTG

The deskripsi produk Sparkfun menggambarkan fungsionalitas:

Ini fitur mikrokontroler PIC yang bertindak seperti jembatan yang menghubungkan aplikasi pada PC Anda atau perangkat Android ke perangkat tingkat rendah seperti GPIO, PWM, ADC, I2C, SPI, dan UART. Pustaka tingkat aplikasi membantu Anda menulis kode kontrol untuk periferal tingkat rendah ini dengan cara yang sama seperti Anda menulis aplikasi Java lainnya!

Papan ini harus melakukan semua yang Anda inginkan dan bahkan memiliki tutorial yang bagus untuk membantu Anda memulai.

brnd4n
sumber
6

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.

Manishearth
sumber
5

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.

Nis
sumber
4

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.

Jay Beavers
sumber