Daftar Isi:

Robot Pencarian dan Pembuangan Jarak Jauh Terkendali Gerakan Leap: 5 Langkah
Robot Pencarian dan Pembuangan Jarak Jauh Terkendali Gerakan Leap: 5 Langkah

Video: Robot Pencarian dan Pembuangan Jarak Jauh Terkendali Gerakan Leap: 5 Langkah

Video: Robot Pencarian dan Pembuangan Jarak Jauh Terkendali Gerakan Leap: 5 Langkah
Video: (BAGIAN 13) SOUL LAND, WOY GAMPANG BANGET! ANAK KAMPUNG JENIUS DITANTANG PARA PANGERAN KERAJAAN 2024, November
Anonim
Image
Image

Sebagai bagian dari entri saya untuk Leap Motion #3D Jam, saya bersemangat untuk membangun Robot Pencarian/Penyelamatan yang dikendalikan gerakan nirkabel ini berdasarkan Raspberry Pi. Proyek ini mendemonstrasikan dan memberikan contoh minimalis tentang bagaimana gerakan tangan 3D nirkabel dapat digunakan untuk mengontrol dan berinteraksi dengan benda-benda fisik.

Karena proyek ini menggunakan kerangka kerja WebIOPi IoT yang populer di Raspberry Pi, proyek ini dapat dengan mudah diperluas untuk mengontrol dan menghubungkan biasanya semua Sensor/Perangkat Keras/Elektronik yang dapat dihubungkan dengan Raspberry Pi.

Beberapa skenario yang mungkin saya bayangkan sesama Pembuat dapat menggunakan proyek ini sebagai kerangka dasar mereka untuk membangun:

1. Robot Pembuang Bom yang Dioperasikan dengan Gerakan Jarak Jauh (mungkin menggunakan Lengan OWI dll)

2. Operasi Bedah Jarak Jauh oleh Dokter

3. Pameran Seni interaktif atau Konten Edukasi yang dikendalikan oleh gerakan

4. Kemungkinan/integrasi lain yang tak terbatas (saya dibatasi oleh imajinasi saya:))

Langkah 1: Ikhtisar

Memahami Kerangka WebIOPi
Memahami Kerangka WebIOPi

Proyek ini memungkinkan pengguna untuk mengontrol Robot secara interaktif menggunakan gerakan tangan 3D melalui Leap Motion yang terhubung ke PC.

Raspberry Pi on-board Robot juga memiliki Webcam USB yang mengalirkan video langsung kembali ke pengguna yang dapat dilihat di Browser Web. Pustaka JavaScript LeapMotion yang disematkan ke dalam Halaman Web ini memproses gerakan tangan dan mengirimkan sinyal kontrol kembali ke Robot, yang kemudian bergerak sesuai dengan itu.

Raspberry Pi pada Robot dikonfigurasi sebagai Hotspot (mode AP) dengan bantuan dongle WiFi USB yang terhubung dengannya. Ini memungkinkan PC/Perangkat kami terhubung langsung ke Raspberry Pi dan mengontrol melalui halaman web. Raspberry Pi juga dapat dikonfigurasi untuk beroperasi dalam mode klien, di mana ia terhubung secara nirkabel ke AP Router WiFi yang sudah terhubung dengan PC/Perangkat.

Proyek ini didasarkan pada WebIOPi (https://webiopi.trouch.com/) yang merupakan kerangka kerja IoT populer untuk Raspberry Pi. Dengan menggunakan Kit IoT Weaved yang dibundel (atau melalui penerusan port pada Router), Robot ini dapat dikendalikan dari jarak jauh dan/atau menerima data dari bagian mana pun di dunia.

Komponen berikut digunakan untuk membangun proyek:

  1. Raspberry Pi B (100% kompatibel ke depan dengan Raspberry Pi B+)
  2. Logitech USB Webcam (sepele 1,3 Megapiksel)
  3. IC Driver Motor L293D dan Breakout Shield
  4. Dongle WiFi USB untuk Raspberry Pi
  5. Bank Daya USB untuk Raspberry Pi
  6. Baterai 4V/1.5A Eksternal untuk menggerakkan Motor Robot

Langkah 2: Pembuatan Proyek

Menginstal WebIOPi, Menulis Kode Kustom dan mengkonfigurasi Webcam:

Petunjuk instalasi WebIoPi, dasar-dasar kerangka kerja dan banyak contoh tersedia di halaman proyek di sini:

Untuk mendapatkan fungsi LeapMotion yang disematkan di halaman web memicu tindakan GPIO pada Raspberry Pi, kami telah menggunakan Macro, detailnya dapat ditemukan di sini:

Saya juga telah menulis beberapa catatan awal tentang proses di atas yang dapat ditemukan terlampir.

Memasang dan Mengonfigurasi Webcam

Kami menggunakan MJPG-Streamer untuk mengalirkan umpan video dari Raspberry Pi kembali ke Browser melalui Webcam USB yang terhubung pada Pi. Silakan ikuti petunjuk penyiapan dan pembuatan yang ditunjukkan di sini https://blog.miguelgrinberg.com/post/how-to-build-… untuk membuat MJPG-Streamer bekerja di Raspberry Pi.

Mengkonfigurasi Raspberry Pi sebagai AP/Hotspot

Untuk mengatur Raspberry Pi sebagai Hostpot, ikuti instruksi yang diberikan di sini: https://elinux.org/RPI-Wireless-Hotspot. Saya mengonfigurasi IP statis Raspberry Pi sebagai 192.168.42.1 yang akan kami ketikkan ke browser setelah Pi boot ke mode AP.

WebIOPi, MJPG-Streamer, dan layanan hotspot WiFi telah dikonfigurasi untuk dijalankan secara otomatis saat boot dan ini memungkinkan kita untuk langsung membuka browser Web dan terhubung ke Robot setelah boot. File rc.local yang tersedia di repo digunakan untuk menjalankan Webcam saat boot.

Langkah 3: Petunjuk Pembuatan/Pengkabelan

4 GPIO dari Raspberry Pi yaitu GPIO 9, 11, 23 & 24 terhubung ke IC Driver Motor L293D yang menggerakkan motor sesuai setelah menerima permintaan makro dari Halaman Web yang dilayani oleh kerangka Webiopi. Dongle USB WiFi dan USB Logitech Webcam terhubung ke 2 port USB yang tersedia di Raspberry Pi. Bank Daya 5V 4000 Mah memasok daya utama ke Pi. Baterai Asam Timbal 4V 1.5A digunakan untuk menggerakkan Motor.

Catatan: Karena arus keluaran maksimum bank daya yang saya gunakan hanya 1000 Mah, saya harus menggunakan baterai Asam Timbal eksternal untuk menggerakkan motor. Jika Anda memiliki bank daya yang memberi> = 2000Mah, Anda dapat langsung menggerakkan motor dari rel 5V pada Pi (saya tidak akan merekomendasikan ini untuk motor yang haus daya)

3 subbagian utama dari proyek LeapMotion Javascript API, WebIOPi dan MJPG-Streamer dan kerja/penyiapan dasarnya diuraikan secara singkat di bawah ini.

Langkah 4: Memahami Kerangka WebIOPi

Frontend yang ditampilkan di Browser ditulis dalam HTML (Filename:index.html) & Javascript sedangkan backend yang menggerakkan GPIO ditulis dengan Python (Filename: script.py). Catatan terperinci tentang membuat WebApp khusus berdasarkan kerangka WebIOPi dilampirkan sebagai catatan di repo Bitbucket.

Makro khusus yang ditentukan dalam skrip Python dapat dipicu dari file HTML.

Misal: webiopi().callMacro("go_forward"); Ini adalah panggilan khusus ke makro go_forward yang didefinisikan dalam skrip Python yang menangani proses mengarahkan kedua Motor ke arah maju.

Hirarki Direktori tempat file disimpan di Pi ditunjukkan pada gambar terlampir.

Folder Robot berisi sub-folder ini:

  • html: berisi index.html
  • python: berisi script.py
  • mjpg-streamer-r63: berisi file build dan dapat dieksekusi untuk menjalankan Webcam

MJPG-Streamer: Streaming Video Langsung dari Webcam USB berjalan pada port 8080 Pi secara default. Untuk melihat streaming secara manual, navigasikan ke RASPBERRYPI_IP:8080 di browser setelah menyalakan Webcam.

Kode LeapMotion:

Cuplikan kode dari contoh yang disediakan di LeapMotion SDK disematkan ke dalam file index.html. File leap.js LeapMotion harus ditambahkan ke folder html di direktori proyek di Raspberry Pi.

Parameter palmPosition yang dikirim oleh LeapMotion digunakan untuk menentukan makro mana yang akan dipicu pada Raspberry Pi.

Langkah 5: Menjalankan Proyek

Cukup nyalakan Raspberry Pi dan tunggu kira-kira satu menit. Anda akan melihat hotpsot RaspberryPi baru muncul. Hubungkan ke hotspot ini dan buka alamat IP statis ini di browser: 192.168.42.1:8000. 8000 adalah port default WebIOPi.

Raspberry Pi juga dapat dikonfigurasi untuk terhubung ke jaringan WiFi lokal sebagai klien masuk alih-alih muncul sebagai hotspot. Anda kemudian perlu menentukan IP dinamis yang ditetapkan ke Raspberry Pi oleh Router dan kemudian menekannya di Browser untuk bermain-main dengan Bot.

Anda dapat meninggalkan komentar jika Anda memerlukan bantuan atau memiliki pertanyaan tentang proyek ini. Selamat Melompat!

Seluruh kode sumber telah dilampirkan. Anda dapat meninggalkan komentar jika Anda memerlukan bantuan dengan bagian mana pun dari pembangunan proyek. Selamat Melompat!

Direkomendasikan: