Sirkuit

Cara Membangun Robot - Pelajaran 7: Membangun Robot Arduino yang Terkendali Bluetooth: 14 Langkah

Ардуино робот идет / Arduino robot walks (sexual motions)

Ардуино робот идет / Arduino robot walks (sexual motions)

Daftar Isi:

Anonim

Karena robot Arduino dapat melakukan fungsi-fungsi dasar, kami sekarang memutakhirkannya dengan satu lagi fitur - kontrol romote via Bluetooth.

Sama seperti tutorial 'Cara Membangun Robot' lainnya, kit robot Arduino (Bajak Laut: 4WD Arduino Mobile Robot Kit dengan Bluetooth 4.0) digunakan di sini sebagai contoh. Selain itu, kami juga memerlukan bantuan GoBLE (Pengendali Aplikasi BLE Generik) yang memungkinkan Anda untuk menghubungkan dan mengendalikan robot, platform seluler, drone, atau apa pun seperti kendaraan udara tak berawak (uav) dengan perangkat seluler Anda melalui Bluetooth.

Menu Pelajaran:

Pelajaran 1: Pendahuluan

Pelajaran 2: Membangun Robot Arduino Dasar

Pelajaran 3: Membangun Robot Pelacakan Garis Arduino

Pelajaran 4: Bangun Robot Arduino yang Dapat Menghindari Rintangan

Pelajaran 5: Membangun Robot Arduino Dengan Efek Cahaya Dan Suara

Pelajaran 6: Membangun Robot Arduino yang Dapat Memantau Lingkungan

Pelajaran 7: Membangun Robot Arduino yang Terkendali Bluetooth

Persiapan

iPhone atau iPad × 1

APLIKASI GOBLE × 1

Persediaan:

Langkah 1:

Catatan: Saat ini, GoBLE hanya dapat digunakan pada perangkat iOS dan meminta Anda untuk setidaknya menginstal iOS 8.1.

Untuk pengguna iOS: silakan unduh GoBLE dari App Store.

Langkah 2:

Unggah Kode Pengujian

Silakan hubungkan Romeo BLE dengan komputer. Kode pengujian ‘GoBLE_Test.ino’ dapat ditemukan dalam paket perangkat lunak. Ini memungkinkan Anda untuk memeriksa output sinyal dari perangkat Anda. UNDUH ITU & PERIKSA ITU. Jangan lupa memuat pustaka GoBLE sebelum mengunduh kode pengujian.

Langkah 3:

Tes Bluetooth

Sekarang mari kita mulai pemasangan Bluetooth. Nyalakan bluetooth seluler dan kemudian buka aplikasi GoBLE. Layar Anda akan terlihat seperti ini!

Langkah 4:

Klik tombol pencarian Bluetooth (terlihat seperti kaca pembesar merah). Kemudian, pilih salah satu perangkat Bluetooth yang sesuai dengan nama Romeo BLE. Klik UUID dan mereka akan mulai berpasangan.

Langkah 5:

Setelah terhubung, warna kunci pencarian Bluetooth akan berubah dari merah menjadi hijau.

Langkah 6:

Pada saat yang sama, LINK yang dipimpin pada papan akan menyala, itu berarti iPhone Anda telah terhubung ke Romeo BLE (Arduino Robot Control Board dengan Bluetooth 4.0).

Langkah 7:

Sekarang mari kita uji apakah controller berhasil menerima sinyal dari iPhone Anda. Kembali ke antarmuka IDE Arduino dan klik Serial Monitor di sudut kanan atas.

Langkah 8:

Dialog seperti yang ditunjukkan pada gambar di bawah ini akan muncul. Pertama, baud rate port serial harus diatur menjadi 115200 seperti yang ditunjukkan pada lingkaran merah di bawah ini.

Langkah 9:

Sekarang Anda dapat mengeluarkan iPhone Anda, dan secara acak usap joystick virtual atau klik tombol di layar. Jika tidak ada yang lain, Anda akan melihat nilai yang sesuai pada Serial Monitor. Dan nilai joystick pada Serial Monitor akan berubah ketika Anda menggeser joystick virtual di layar. Anda akan menemukan bahwa nilai meningkat ketika joystick menggesek ke atas, atau nilai berkurang ketika joystick menggesek ke bawah.

ID Tombol berarti tombol mana yang Anda klik.

Langkah 10:

Unggah Kode untuk Kontrol Jarak Jauh

Jika semuanya baik-baik saja, mari lanjutkan dan unggah kode untuk kendali jarak jauh ke papan Arduino. Ada hal yang sangat penting untuk diingat!

IPhone Anda telah terhubung ke Romeo BLE Board pada tahap pengujian terakhir. Namun, Anda tidak dapat mengunggah kode ke papan Romeo BLE ketika Bluetooth telah dibuat antara ponsel Anda dan papan tersebut. Dengan demikian, Anda harus BREAK MATI dari pemasangan Bluetooth terlebih dahulu. Selain itu, Anda dapat mengunggah kode lagi jika papan telah diputus dari telepon. INI SANGAT PENTING!

Ada dua metode untuk mengganggu koneksi. Salah satu caranya adalah Anda cukup mematikan daya Remeo BLE dan kemudian menyalakannya lagi. Cara lainnya adalah matikan saja Bluetooth di ponsel Anda.

Setelah terputus, Anda dapat mengunggah kode contoh lagi. Kode tersebut dinamai GoBLE_APP.ino dalam paket kode.

Langkah 11:

Setelah berhasil diunggah, Anda dapat mengikuti panah merah pada gambar di bawah ini dan geser Joystick untuk mengontrol robot Anda. Anda juga dapat mengklik tombol merah untuk menghidupkan atau mematikan LED di papan yang terhubung dengan PIN13.

Langkah 12:

Sinopsis Kode

Setelah memainkan robot, mari mulai belajar bagaimana menggunakan kode. Tidak ada lagi kata untuk kode pengujian untuk pengujian GoBLE. Kemudian kita lanjutkan ke aplikasi GoBLE.

Tidak perlu membahas kode dasar - mari kita lihat bagian yang melibatkan kontrol bluethooth. Jika Anda ingin remote control robot, dua perpustakaan bernama Metro dan GoBLE akan digunakan.

#termasuk "Metro.h"

#sertakan "GoBLE.h"

int joystickX, joystickY;

int buttonState 6;

joystickX, joystickY dan buttonState 6, tiga variabel, ditentukan untuk pustaka GoBLE. Mereka digunakan untuk menyimpan nilai status untuk sumbu X, sumbu Y dan nilai-nilai dari enam tombol.

Peta di bawah ini menunjukkan tata letak semua tombol. Anda mungkin tahu arti + X, -X, + Y, dan –Y jika Anda telah menganalisis perubahan nilai status.

X & Y adalah arah pergerakan Joystick. "+, -" menunjukkan tren nilai. "+" Berarti nilai status meningkat. Dan "-" berarti nilai negara menurun.

Langkah 13:

Pengaturan awal harus ditulis dalam fungsi Pengaturan ().
Goble.begin ();

Baris ini digunakan untuk memulai pengaturan bluetooth. Dan itu tidak dapat dilewatkan setiap kali Anda menggunakan kode Bluetooth di papan Anda.

Serial.begin (115200);

Bahkan, baris ini telah digunakan pada tahap pengujian. Ini digunakan untuk memulai port serial. Jika Anda ingin membaca nilai dari Monitor Seri, Anda harus menulis pernyataan ini di fungsi pengaturan. DAN, juga perlu mengatur baud rate.

Karena baud rate Bluetooth adalah spesial, Anda perlu mengatur ke 115200. Pastikan baud rate telah diatur, jika tidak maka dapat menyebabkan beberapa masalah.

Silakan lanjutkan melihat ke bawah. Baris berikutnya adalah fungsi Goble.available ()

if (Goble.available ()) {lakukan sesuatu; }

Artinya apa tindakan selanjutnya adalah setelah angka telah diterima melalui Bluetooth.

Apa yang tertulis di dalam kurung akan menjadi tindakan kami selanjutnya. Pertama, kita perlu menganalisis angka yang diterima. Dua pernyataan berikut adalah membaca nilai pada sumbu X dan Y.

joystickX = Goble.readJoystickX ();

joystickY = Goble.readJoystickY ();

// Serial.print ("joystickX:");

// Serial.print (joystickX);

// Serial.print ("joystickY:");

// Serial.println (joystickX);

Coba tebak apa arti keempat pernyataan Serial.print () di atas. Ini terkait dengan Serial. Ini untuk serial untuk mencetak data yang diterima, yang nyaman untuk debug kode dan optimisasi.

”//” berarti penjelasan dari konten berikut. Keempat kalimat ini tidak akan disertakan saat menyusun kode. Yaitu, tidak ada data yang akan dikirim ke serial setelah kami menggunakan anotasi untuk empat pernyataan ini.

Silakan merujuk ke halaman Referensi Situs Web Arudino (www.arduino.cc) untuk informasi lebih lanjut.

buttonState SWITCH_UP = Goble.readSwitchUp ();

buttonState SWITCH_DOWN = Goble.readSwitchDown ();

buttonState SWITCH_LEFT = Goble.readSwitchLeft ();

buttonState SWITCH_RIGHT = Goble.readSwitchRight ();

buttonState SWITCH_SELECT = Goble.readSwitchSelect ();

buttonState SWITCH_START = Goble.readSwitchStart ();

Semua konten di atas digunakan untuk memuat informasi tentang keadaan tombol.

Tata letak tombol adalah sebagai berikut.

SWITCH_UP - 1 SWITCH_RIGHT - 2

SWITCH_DOWN - 3

SWITCH_LEFT - 4

SWITCH_SELECT - 5

SWITCH_START - 6

Langkah 14:

Kita perlu memproses semua data yang dibaca sebelum kita mulai menggunakannya.

Nilai yang dibaca pada Joystick harus dipetakan dengan kecepatan rotasi roda robot kami. Dengan demikian, kecepatan rotasi roda ternyata antara -255 dan 255.

int SpeedX = 2 * joystickX-256;

int SpeedY = 2 * joystickY-256;

Serial.print ("Kecepatan:");

Serial.print (SpeedX);

Serial.print ("");

Serial.println (SpeedY);

Serial ini juga akan mencetak kecepatan. Jika tidak perlu, Anda dapat menambahkan "//" di awal untuk menghapusnya.

Sekarang mari kita kendalikan robot dan membuatnya bergerak.

If (gerakkan Joystick ke atas atau (||) ke bawah) {Robot bergerak maju atau mundur; }

Jika (pindahkan Joystick ke kanan atau (||) kiri) {Robot pindahkan ke kanan atau ke kiri}

Jika (Sumbu X Joystick berada di tengah dan (&&) Sumbu Y Joystick berada di tengah) {Robot berhenti; }

Kode koresponden adalah sebagai berikut:

if (SpeedX> 200 || SpeedX <-200) {LeftWheelSpeed ​​= SpeedX; RightWheelSpeed ​​= SpeedX; Robot. Kecepatan (Kecepatan Roda Kiri, Kecepatan Roda Kanan); }

selain itu jika (SpeedY> 200 || SpeedY <-200) {LeftWheelSpeed ​​= SpeedY-80; RightWheelSpeed ​​= SpeedY-80; Robot.Speed ​​(LeftWheelSpeed, RightWheelSpeed);}

lain jika (SpeedX == 0 && SpeedY == 0) {Robot.Speed ​​(0,0); }

Kode terakhir digunakan untuk mengontrol LED di papan yang terhubung ke PIN13.

int ledPin = 13;

Pin 13 harus ditentukan di awal kode.

pinMode (ledPin, OUTPUT);

Atur mode keluaran untuk LED dengan menulis fungsi pengaturan (). Silakan merujuk ke instruksi untuk fungsi pinMode () di situs web Arduino (www.arduino.cc).

Ekspresi berikut menunjukkan status tombol. Setelah tombol No.1 ditekan, LED akan menyala. Artinya pin LED diatur ke TINGGI.

if (buttonState 1 == PRESSED) {digitalWrite (ledPin, HIGH); }

Setelah tombol No.1 dilepaskan, LED akan dimatikan. Berarti pin LED disetel RENDAH.

if (buttonState 1 == RELEASED) {digitalWrite (ledPin, LOW); }

Itu saja untuk pengkodean hari ini. Bukankah itu MENYENANGKAN? SO, bukan tidak mungkin menulis kode untuk Anda, bukan? Anda dapat mencoba mengubah tombol untuk mengontrol lampu LED dengan mengubah kode. Pasti lebih menarik ketika Anda bisa mengendalikannya dengan kode Anda. Sekarang, mulailah bersenang-senang dengan robot Anda !!!