Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Rocky Rover:Sistem Visi Robot PixyCam &Arduino 101

Komponen dan persediaan

Arduino 101
× 1
Adafruit Motor/Stepper Shield V2
× 1
SparkFun Dagu DG102 Tank Chassis
× 1
Baterai AA
× 1
Kabel USB-A ke B
× 1
Paket Baterai USB Adafruit
× 1
M2.5 Standoff dengan mur dan sekrup
× 4
Konektor baterai JST terpolarisasi Pria dan Wanita
× 1
Header Pria 40 Posisi 1 Baris (0,1")
× 1
Kabel Jumper Pria/Pria
× 1
Pixy (CMUcam5)
× 1
Pixy Pan-Tilt Kit untuk Pixy
× 1

Aplikasi dan layanan online

Arduino IDE
Blynk

Tentang proyek ini

Rover berbasis Intel Arduino 101 dengan PixyCam!

Acara langsung Hackster luar biasa! Intel mensponsori acara Hackster Dallas kami dan mengirimkan beberapa Intel Arduino 101 untuk membangun Rovers. Terima kasih Intel, terima kasih Arduino. Inilah Rover yang saya buat untuk acara tersebut.

Saya membuat perangkat ini mengikuti tutorial ini dari Johnathan Hottell. Dia membuat beberapa video untuk membangun BLE Rover. Dan itu mudah diikuti! Lihat disini. Ini video dari Johnathan Hottell.

Saya memiliki Rover dengan 4 motor jadi saya mengikuti ini.

Setelah membangun Rover, dan menghubungkannya dengan Blynk. Saya memutuskan untuk meningkatkan build dan menambahkan PixyCam. Saya memindahkan dudukan baterai di depan agar saya dapat memasang kamera pan/tilt.

PixyCam

PixyCam membuat visi Robot menjadi mudah. Pixy adalah sensor penglihatan cepat untuk robotika DIY, mudah untuk mengajari Pixy sebuah objek hanya dengan menekan sebuah tombol. Ini mampu melacak ratusan objek secara bersamaan dan hanya menyediakan data yang dilacaknya.

Saya memutuskan untuk melacak Labu Oranye.

Saya terkejut betapa mudahnya melakukannya. Berikut tautan untuk instruksi menghubungkan PixyCam ke Arduino. Klik di sini untuk instruksi perakitan mekanisme Pan/Tilt. Saya senang memiliki banyak gambar, sangat mudah diikuti. Saya mengikuti instruksi pengaturan dan pembuatan, cara berintegrasi dengan Arduino. Saya menguji contoh mereka.

Inilah yang saya temukan tentang API.

PixyCam Arduino API

Menggunakan Pixy dengan Arduino sangat sederhana. Anda cukup menyertakan header SPI dan Pixy:

#include  #include   

Dan buat contoh global Pixy dengan meletakkan pria kecil ini di luar setup() . Anda dan loop() fungsi:

Pixy pixy;  

Metode terpenting di perpustakaan Arduino adalah getBlocks() , yang mengembalikan jumlah objek yang telah dideteksi Pixy. Anda kemudian dapat melihat di pixy.blocks[] larik untuk informasi tentang setiap objek yang terdeteksi (satu anggota larik untuk setiap objek yang terdeteksi.) Setiap anggota larik (i ) berisi bidang-bidang berikut:

  • pixy.blocks[i].signature Nomor tanda tangan dari objek yang terdeteksi (1-7 untuk tanda tangan normal)
  • pixy.blocks[i].x Lokasi x pusat objek yang terdeteksi (0 hingga 319)
  • pixy.blocks[i].y Lokasi y dari pusat objek yang terdeteksi (0 hingga 199)
  • pixy.blocks[i].width Lebar objek yang terdeteksi (1 hingga 320)
  • pixy.blocks[i].height Ketinggian objek yang terdeteksi (1 hingga 200)
  • pixy.blocks[i].angle Sudut objek yang terdeteksi objek jika objek yang terdeteksi adalah kode warna.
  • pixy.blocks[i].print() Fungsi anggota yang mencetak informasi objek yang terdeteksi ke port serial

Jadi sangat mudah untuk berbicara dengan Pixy dengan Arduino Anda! Untuk informasi lebih lanjut tentang Perpustakaan dan API Arduino, buka di sini. Berikut kode yang digunakan untuk Rover. Saya memodifikasi kode BLE asli dan menambahkan pelacakan objek. Selama penyiapan:

pengaturan batal() { ..... pixy.init(); ....}  

Loop utama terlihat seperti ini:

void loop() { ...... // membaca data pixy dan mendapatkan blok static int i =0; int j; blok uint16_t; char buf[32]; int32_t panError, tiltError; blok =pixy.getBlocks(); //jika ada blok if (blok) { panError =X_CENTER-pixy.blocks[0].x; tiltError =pixy.blocks[0].y-Y_CENTER; panLoop.updatePan(panError); tiltLoop.update(tiltError); pixy.setServos(panLoop.m_pos, tiltLoop.m_pos); saya++; // frame akan menghambat Arduino if (i%10==0) { int trackedBlock =0; sprintf(buf, "Terdeteksi %d:\n", blok); Serial.print(buf); panjang maksUkuran =0; for (j=0; j ukuran maks) { trackedBlock =j; maxSize =ukuran baru; } } int32_t followError =RCS_CENTER_POS - panLoop.m_pos; // Ukuran adalah luas objek. // Kami menjaga rata-rata berjalan dari 8. ukuran terakhir +=pixy.blocks[trackedBlock].width * pixy.blocks[trackedBlock].height; ukuran -=ukuran>> 3; int forwardSpeed ​​=kendala(400 - (ukuran/256), -100, 400); int32_t diferensial =(followError + (followError * forwardSpeed))>>8; int leftSpeed ​​=constrain(Kecepatan maju + diferensial, -400, 400); int rightSpeed ​​=constrain(Kecepatan maju - diferensial, -400, 400); motor1->setSpeed(kecepatan kiri); //motor kiri3->setSpeed(kecepatan kiri); motor2->setSpeed(kecepatan kanan); //motor kiri4->setSpeed(kecepatan kanan); lebar ganda =pixy.blocks[trackedBlock].width; if (lebar <=5) { } else if (lebar <20 &&!berjalan) { Serial.println("berjalan"); motor1->lari(FOWARD); motor3->lari(MAJU); motor2->lari(FOWARD); motor4->lari(FOWARD); berjalan =benar; } else if (lebar> 80 &&!running) { Serial.println("running"); motor1->lari(Mundur); motor3->lari(Mundur); motor2->lari(Mundur); motor4->lari(Mundur); berjalan =benar; } else if (lebar>=20 &&lebar <=80 &&berjalan) { motor1->setSpeed(128); motor2->setSpeed(128); motor3->setSpeed(128); motor4->setSpeed(128); motor2->jalankan(LEPAS); motor4->jalankan(LEPAS); motor1->jalankan(LEPAS); motor3->jalankan(LEPAS); berjalan =salah; } } } }  

Untuk menjalankan Blynk tanpa kendali PixyCam, pasang tutup lensa. Ini akan memastikan bahwa PixyCam tidak akan mengganggu pengontrolan bot. Jika proyek ini membuat Anda tertarik untuk memprogram di Arduino atau menggunakan PixyCam di proyek Anda berikutnya, silakan klik tombol "Hormati Proyek" dan ikuti saya.

Jangan ragu untuk mengajukan pertanyaan.

Kode

Rocky Rover

Proses manufaktur

  1. Arduino pov vision clock
  2. Sistem Alarm Arduino:SERENA
  3. Arduino 3D-Printed Robotic Arm
  4. Arduino Power
  5. Lengan Robot Terkendali Nunchuk (dengan Arduino)
  6. Intel Arduino 101 BLE Blynk Tank
  7. Arduino101 / tinyTILE BLE:Kacamata Mencocokkan
  8. Kegigihan Visi
  9. Arduino Apple Watch
  10. Pertimbangan Desain Iluminasi untuk Sistem Penglihatan Bedah Robot