Rocky Rover: Robotische Visie met PixyCam en Arduino 101
Onderdelen en Benodigdheden
| Onderdeel | Aantal |
|---|---|
| Arduino 101 (Intel Curie) | 1 |
| Adafruit Motor/Stepper Shield V2 | 1 |
| SparkFun Dagu DG102 Tank Chassis (4 motoren) | 1 |
| AA-batterijen (voor motoren) | 1 set |
| USB-A naar B kabel | 1 |
| Adafruit USB-batterijpakket (voor Arduino) | 1 |
| M2.5 standoffs met bouten en moeren | 4 |
| JST-batterijconnectoren (man/vrouw) | 1 paar |
| Male headers 40-pin | 1 |
| Jumper wires (man/man) | 1 set |
| Pixy (CMUcam5) | 1 |
| Pixy Pan-Tilt Kit | 1 |
Apps & Online Diensten
- Arduino IDE
- Blynk (voor Bluetooth-besturing)
Over dit Project
Intel Arduino 101 Rover met PixyCam
Deze rover is gebouwd tijdens een Hackster Live evenement gesponsord door Intel. De basis is een BLE-rover (via Blynk) waarna een PixyCam is toegevoegd voor objectherkenning en -volging. De batterijhouder is naar voren verplaatst om ruimte te maken voor de pan/tilt-camera.
PixyCam
De PixyCam maakt robotvisie eenvoudig. Je leert hem een object door op een knop te drukken. Hij kan honderden objecten tegelijk volgen en stuurt alleen de relevante data door. In dit project volgen we een oranje pompoen.
Montage-instructies voor de pan/tilt-mechanisme en Arduino-integratie vind je op de PixyCam-wiki.
PixyCam Arduino API
De bibliotheek is eenvoudig:
#include <SPI.h>
#include <Pixy.h>
Pixy pixy; // globale instantie
void setup() {
pixy.init();
}
void loop() {
uint16_t blocks = pixy.getBlocks();
if (blocks) {
// pixy.blocks[i] bevat: signature, x, y, width, height, angle
// x: 0-319, y: 0-199
// Voorbeeld: grootste object volgen
int tracked = 0;
long maxSize = 0;
for (int i = 0; i < blocks; i++) {
long size = pixy.blocks[i].width * pixy.blocks[i].height;
if (size > maxSize) { maxSize = size; tracked = i; }
}
// Stuur servos voor pan/tilt, motoren voor rijden, etc.
}
}
Rover-code (kern)
De hoofdloop leest Pixy-blokken, berekent fouten voor pan/tilt (PID-regeling), en stuurt de vier motoren aan via de Adafruit Motor Shield. De rover volgt het gedetecteerde object: bij grote afstand rijdt hij ernaartoe, bij te korte afstand rijdt hij achteruit, en op de juiste afstand stopt hij.
De volledige code (inclusief Blynk-integratie) is te vinden op de GitHub-repo (zoals in de bron vermeld).
Belangrijk
- Zet de lenskap op de PixyCam als je alleen via Blynk wilt rijden zonder camera-interferentie.
- Gebruik een externe voeding voor de motoren (Arduino 101 kan niet voldoende stroom leveren).
- Kalibreer de Pixy-kenmerken (signatures) voor jouw specifieke object/omstandigheden.
Productieproces
- Arduino POV-klok: Bouw een Persistence-of-Vision LED-display
- SERENA: Een Aangepast Arduino Mega 2560 Alarmsysteem Met TFT LCD Touchscreen
- Bouw een Functionele, Arduino-aangedreven 3D-geprinte Robotarm – Stap-voor-Stap Handleiding
- Geoptimaliseerde Voedingsoplossingen voor Arduino Projecten
- Arduino-gebaseerde 6-DoF Robotarm Gestoeerd met Wii Nunchuk
- Arduino 101 BLE + Blynk: DIY Bluetooth-gestuurde Tank Robot
- Slimme Match-Making Zonnebril Maken met Arduino 101 en tinyTILE BLE
- Een draagbaar Persistence-of-Vision-display bouwen met Arduino UNO en ATtiny85
- DIY Arduino Smartwatch: Bouw Je Eigen Apple Watch-stijl Tijdwijzer
- Slimme Kelder Ventilatiesysteem: Arduino-gestuurde Vochtcontrole
- Optimaliseren van Verlichtingsontwerp voor Robotische Chirurgie Visiesystemen