Daftar Isi:
- Langkah 1: Komponen yang Diperlukan
- Langkah 2: Merakit Robot
- Langkah 3: Buat Labirin Anda Sendiri - Opsional
- Langkah 4: Menyiapkan Lingkungan
- Langkah 5: Memprogram GiggleBot - Bagian I
- Langkah 6: Memprogram Remote - Bagian II
- Langkah 7: Menafsirkan Layar Jarak Jauh
Video: Membuat Robot Berpanduan Lidar Dengan GiggleBot: 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Dalam tutorial ini, kami membuat GiggleBot mengatasi kesulitan labirin.
Kami memasang servo pada GiggleBot tempat kami memasang sensor jarak. Saat berjalan, servo akan berputar maju mundur sehingga sensor jarak dapat mengukur jarak hingga setiap rintangan. Ini bekerja seperti sensor LIDAR yang biasanya jauh lebih mahal.
Pada saat yang sama, GiggleBot mengirimkan data ini ke mikro: bit BBC jarak jauh yang menampilkan ke matriks LED 5-kali-5 posisi relatifnya terhadap rintangan.
Tugas Anda adalah dapat menavigasi GiggleBot hanya dengan melihat apa yang ditampilkan di mikro:bit BBC lainnya. Untuk mengontrol GiggleBot, tombol-tombol pada remote BBC micro:bit digunakan.
Itu terdengar menyenangkan! Mari kita turun ke sana, oke?
Langkah 1: Komponen yang Diperlukan
Kita akan membutuhkan:
- GiggleBot.
- Paket baterai untuk mikro BBC: bit. Itu datang bersama dengan mikro BBC: bit dalam paketnya.
- baterai AA x3 untuk GiggleBot.
- Kabel Grove untuk menghubungkan sensor jarak ke GiggleBot.
- Kit Servo dari DexterIndustries.
- x3 BBC mikro: bit. Satu untuk GiggleBot dan satu lagi digunakan untuk mengontrol robot dari jauh.
- Sensor Jarak dari DexterIndustries.
Dapatkan robot GiggleBot untuk mikro BBC: bit di sini!
Langkah 2: Merakit Robot
Untuk membuat GiggleBot siap diprogram, kita perlu merakitnya, meskipun tidak banyak yang harus dilakukan.
Masukkan 3 baterai AA di kompartemennya di bawah GiggleBot.
Merakit paket servo. Untuk lengan servo yang berputar, gunakan lubang terakhir untuk memasang servo ke konektor depan GiggleBot. Anda dapat menggunakan sekrup dan/atau kawat untuk membuatnya lebih stabil di tempatnya. Atau Anda bisa menempelkannya ke papan. Dalam kasus saya, saya menggunakan sekrup dan kabel pendek untuk mengikat lengan servo ke papan GiggleBot.
Saat memasang servo arm ke servo, pastikan servo sudah diatur ke posisi 80. Anda dapat melakukannya dengan memanggil cekikikan.set_servo(gigglebot. RIGHT, 80). Anda dapat membaca lebih lanjut tentang itu di sini.
Selanjutnya, letakkan sensor jarak di sisi depan paket servo dan perbaiki seperti pada contoh di atas.
Terakhir, sambungkan sensor jarak dengan kabel Grove ke salah satu dari 2 port I2C dan motor servo ke port kanan yang ada di GiggleBot - port kanan disebutkan di atasnya.
Langkah 3: Buat Labirin Anda Sendiri - Opsional
Dalam hal ini, saya telah menggunakan banyak kotak untuk membuat trek loop tertutup, mirip dengan trek NASCAR.
Pada langkah ini, Anda bisa menjadi sangat kreatif dan membuatnya sepelintir yang Anda inginkan atau membuatnya sangat panjang karena itu terserah Anda.
Atau jika Anda tidak menginginkan trek sama sekali, Anda bisa meletakkan GiggleBot di dapur atau ruang tamu misalnya - itu sudah cukup bagus karena masih banyak tembok dan rintangan yang harus Anda hindari.
Langkah 4: Menyiapkan Lingkungan
Agar Anda dapat memprogram BBC micro:bit di MicroPython, Anda harus menyiapkan editor untuknya (Mu Editor) dan mengatur GiggleBot MicroPython Runtime sebagai runtime-nya. Untuk itu, Anda harus mengikuti petunjuk di halaman ini. Pada saat ini, runtime versi v0.4.0 digunakan.
Langkah 5: Memprogram GiggleBot - Bagian I
Pertama, mari kita siapkan skrip GiggleBot. Script ini akan membuat GiggleBot memutar motor servonya 160 derajat (80 derajat di setiap arah) sementara pada saat yang sama mengambil 10 pembacaan dari sensor jarak per putaran.
Saat dihidupkan, GiggleBot akan berdiri sampai menerima perintah dari remote control. Hanya ada 3 perintah: maju, ke kiri atau ke kanan.
Catatan: Skrip berikut mungkin memiliki spasi putih yang hilang dan ini tampaknya disebabkan oleh beberapa masalah dalam menampilkan GitHub Gists. Klik pada intinya untuk membawa Anda ke halaman GitHub di mana Anda dapat menyalin-tempel kode.
GiggleBot berbasis LIDAR yang dikendalikan dari jarak jauh
dari impor cekikikan* |
dari distance_sensor impor DistanceSensor |
dari microbit impor tidur |
dari utime import ticks_us, sleep_us |
impor ustruk |
impor radio |
#hentikan robot jika sudah bergerak |
berhenti() |
# aktifkan radio |
radio.on() |
# objek sensor jarak |
ds = Sensor Jarak() |
ds.start_continuous() |
rotate_time =0,7# diukur dalam detik |
rotate_span =160# diukur dalam derajat |
putar_langkah = 10 |
overhead_compensation = 1,05# ditentukan dalam persentase |
time_per_step =10**6* rotate_time / (rotate_steps * overhead_compensation) |
last_read_time =0 |
radar =bytearray(rotate_steps) |
servo_rotate_direction =0# 0 untuk naik (0->160) dan 1 sebaliknya |
radar_index =0 |
set_servo(KANAN, 0) |
sementara Benar: |
# membaca dari radar |
jika ticks_us() - last_read_time > time_per_step: |
# membaca dari sensor jarak |
radar[radar_index] =int(ds.read_range_continuous() /10) |
last_read_time = ticks_us() |
cetak (indeks_radar) |
# lakukan logika untuk memutar servo dari kiri ke kanan |
jika radar_index == rotate_steps -1and servo_rotate_direction ==0: |
set_servo(KANAN, 0) |
servo_rotate_direction = 1 |
elif radar_index ==0dan servo_rotate_direction ==1: |
set_servo(KANAN, rotate_span) |
servo_rotate_direction =0 |
lain: |
radar_index +=1jika servo_rotate_direction ==0else-1 |
# dan kirim nilai radar |
radio.send_bytes(radar) |
mencoba: |
# membaca perintah robot |
lmotor, rmotor = ustruct.unpack('bb', radio.receive_bytes()) |
# dan aktifkan motor jika ada perintah yang diterima |
set_speed(lmotor, rmotor) |
menyetir() |
exceptionTypeError: |
lulus |
lihat rawgigglebot_lidar_robot.py dihosting dengan ❤ oleh GitHub
Langkah 6: Memprogram Remote - Bagian II
Yang tersisa untuk dilakukan adalah memprogram micro:bit BBC ke-2 yang berfungsi sebagai remote.
Remote digunakan untuk menampilkan pada layar 5-kali-5 piksel jarak relatif ke rintangan. Paling-paling, akan ada 10 piksel yang dihidupkan.
Pada saat yang sama, remote memberi Anda kemampuan untuk mengontrol GiggleBot dari jarak jauh dengan menekan 2 tombolnya: maju, ke kiri dan ke kanan.
Catatan: Skrip berikut mungkin memiliki spasi putih yang hilang dan ini tampaknya disebabkan oleh beberapa masalah dalam menampilkan GitHub Gists. Klik pada intinya untuk membawa Anda ke halaman GitHub di mana Anda dapat menyalin-tempel kode.
GiggleBot Berbasis LIDAR Terkendali Jarak Jauh - Kode Jarak Jauh
dari microbit import sleep, display, button_a, button_b |
impor ustruk |
impor radio |
impor matematika |
radio.on() |
putar_langkah = 10 |
rotate_span =160# dalam derajat |
rotate_step = rotate_span / rotate_steps |
max_distance =50# dalam sentimeter |
side_length_leds =3# diukur dalam # piksel |
radar =bytearray(rotate_steps) |
xar =bytearray(rotate_steps) |
yar =bytearray(rotate_steps) |
save_xar =bytearray(rotate_steps) |
save_yar =bytearray(rotate_steps) |
kecepatan_motor = 50 |
sementara Benar: |
status = radio.receive_bytes_into(radar) |
jika statusnya bukan Tidak Ada: |
# tampilan.clear() |
untuk c, val inenumerate(radar): |
jika radar[c] <= max_distance: |
# hitung koordinat 2d dari setiap jarak |
angle = rotate_steps / (rotate_steps -1) * rotate_step * c |
sudut += (180- rotate_span) /2.0 |
x_c = math.cos(angle * math.pi /180.0) * radar[c] |
y_c = math.sin(angle * math.pi /180.0) * radar[c] |
# skala jarak agar sesuai dengan tampilan mikrobit 5x5 |
x_c = x_c * (side_length_leds -1) / max_distance |
y_c = y_c * (side_length_leds +1) / max_distance |
# reposisi koordinat |
x_c += (sisi_panjang_led -1) |
y_c = (sisi_panjang_led +1) - y_c |
# koordinat bulat persis di mana LED ditemukan |
if x_c - math.floor(x_c) <0,5: |
x_c = matematika.lantai(x_c) |
lain: |
x_c = matematika.ceil(x_c) |
jika y_c - math.floor(y_c) <0,5: |
y_c = matematika.lantai(y_c) |
lain: |
y_c = matematika.ceil(y_c) |
xar[c] = x_c |
yar[c] = y_c |
lain: |
xar[c] =0 |
yar[c] =0 |
tampilan.clear() |
untuk x, y inzip(xar, yar): |
display.set_pixel(x, y, 9) |
# print(daftar(zip(xar, yar, radar))) |
stateA = button_a.is_pressed() |
stateB = button_b.is_pressed() |
jika stateA dan stateB: |
radio.send_bytes(ustruct.pack('bb', motor_speed, motor_speed)) |
print('maju') |
jika stateA dan bukan stateB: |
radio.send_bytes(ustruct.pack('bb', motor_speed, -motor_speed)) |
cetak('kiri') |
ifnot stateA dan stateB: |
radio.send_bytes(ustruct.pack('bb', -motor_speed, motor_speed)) |
cetak('kanan') |
ifnot stateA dan not stateB: |
radio.send_bytes(ustruct.pack('bb', 0, 0)) |
cetak('berhenti') |
lihat rawgigglebot_lidar_remote.py dihosting dengan ❤ oleh GitHub
Langkah 7: Menafsirkan Layar Jarak Jauh
"loading="lazy" mengontrol GiggleBot, Anda memiliki opsi berikut:
- Tekan tombol A dan tombol B untuk menggerakkan GiggleBot ke depan.
- Tekan tombol A untuk memutar GiggleBot ke kiri.
- Tekan tombol B untuk memutar GiggleBot ke kanan.
Untuk melihat ke arah mana rintangan terdekat terdeteksi, lihat saja di layar remote (remote BBC micro:bit yang Anda pegang). Anda harus dapat mengontrol GiggleBot dari jauh tanpa melihatnya.
Direkomendasikan:
Cara Membuat Drone Menggunakan Arduino UNO - Membuat Quadcopter Menggunakan Mikrokontroler: 8 Langkah (dengan Gambar)
Cara Membuat Drone Menggunakan Arduino UNO | Membuat Quadcopter Menggunakan Mikrokontroler: PendahuluanKunjungi Saluran Youtube Saya Drone adalah gadget (produk) yang sangat mahal untuk dibeli. Pada postingan kali ini saya akan membahas, bagaimana cara membuatnya dengan harga murah?? Dan Bagaimana Anda bisa membuat sendiri seperti ini dengan harga murah … Nah di India semua bahan (motor, ESC
Stasionary Radar (LIDAR) Array Dengan Arduino: 10 Langkah (dengan Gambar)
Stationary Radar (LIDAR) Array With Arduino: Ketika saya membuat robot berkaki dua, saya selalu berpikir untuk memiliki semacam gadget keren yang dapat melacak lawan saya dan melakukan gerakan menyerang dengannya. Banyak proyek radar/lidar sudah ada di sini. Namun, ada beberapa batasan untuk tujuan saya
[Robot Arduino] Cara Membuat Robot Penangkap Gerak - Robot Jempol - Motor Servo - Kode Sumber: 26 Langkah (dengan Gambar)
[Robot Arduino] Cara Membuat Robot Penangkap Gerak | Robot Jempol | Motor Servo | Kode Sumber: Robot Jempol. Menggunakan potensiometer motor servo MG90S. Ini sangat menyenangkan dan mudah! Kodenya sangat sederhana. Hanya sekitar 30 baris. Ini terlihat seperti penangkapan gerak. Silakan tinggalkan pertanyaan atau umpan balik! [Instruksi] Kode Sumber https://github.c
Music Reactive Light--Cara Membuat Lampu Reaktif Musik Super Sederhana untuk Membuat Desktop Menakjubkan.: 5 Langkah (dengan Gambar)
Music Reactive Light||Cara Membuat Lampu Reaktif Musik Super Sederhana untuk Membuat Desktop Mengagumkan.: Hai apa kabar, Hari ini kita akan membuat proyek yang sangat menarik. Hari ini kita akan membuat lampu reaktif musik. LED akan berubah kecerahannya sesuai dengan bass yang sebenarnya adalah sinyal audio frekuensi rendah. Pembuatannya sangat mudah. Kami akan
Cara Membuat Kalender Kakek & Scrapbook (Bahkan Jika Anda Tidak Tahu Cara Membuat Scrapbook): 8 Langkah (dengan Gambar)
Cara Membuat Kalender Kakek & Scrapbook (bahkan Jika Anda Tidak Tahu Cara Membuat Scrapbook): Ini adalah hadiah liburan yang sangat ekonomis (dan sangat dihargai!) untuk kakek-nenek. Saya membuat 5 kalender tahun ini dengan harga masing-masing kurang dari $7. Bahan: 12 foto bagus anak Anda, anak-anak, keponakan, anjing, kucing, atau kerabat lainnya12 bagian berbeda