Gebaren-gestuurde Robot: Hands-free Arduino UNO Project
Onderdelen en benodigdheden
| Onderdeel | Aantal | Opmerkingen |
|---|---|---|
| Arduino UNO | 1 | Hoofdcontroller (zender) |
| SparkFun Triple Axis Accelerometer Breakout - ADXL335 | 1 | 3-as versnellingsmeter (X, Y, Z) |
| RF Module 434 MHz | 1 | Zender/ontvanger paar |
| HT12D Decoder IC | 1 | Ontvanger kant (decodeert 4-bit code) |
| HT12E Encoder IC | 1 | Zender kant (codeert 4-bit data) |
| SparkFun Dual H-Bridge Motor Driver L298 | 1 | Stuurt DC motoren |
| Experimenteer PCB | 1 | Voor permanente opbouw |
| Lineaire Regelaar 7805 (5V) | 2 | Eén voor zender, één voor ontvanger |
| DC Motor (standaard) | 1 | Voor robot aandrijving |
Software en online diensten
- Arduino IDE – Programmeeromgeving
Over dit project
UPDATE: EEN BIJGEWERKTE VERSIE VAN DIT PROJECT IS HIER TE VINDEN
Introductie
Ik wilde alles met mijn handen besturen! In mijn stoel zitten en dingen bedienen als een BAAS. Dat leek me geweldig. Uiteindelijk bouwde ik een coole DIY handgebaren-herkenningsrobot die commando's volgt via handgebaren. Klinkt gek, maar het is verrassend simpel. Deze robot is een verbetering van mijn eerdere RC-auto project met RF module.
Ook hier is de robot verdeeld in twee delen: zender (transmitter) en ontvanger (receiver). De ontvangerschema is identiek aan het oude project; de zender heeft een kleine wijziging – we moeten de zender programmeren. Daarvoor gebruik ik Arduino. Voor gebarenherkenning gebruik ik een versnellingsmeter (accelerometer). Laten we bouwen!
De robot in actie
Video demonstreert de robot in werking
Wat is een accelerometer (ADXL335)?
Kort gezegd: een accelerometer is een driedimensionale versnellingsmeter. De ADXL335 heeft 3 assen (X, Y, Z). Bijna alle smartphones hebben accelerometers (voor bewegingsgames zoals Temple Run – personage beweegt links/rechts bij kantelen van telefoon). Er is ook een gyroscoop in smartphones, maar die hebben we hier niet nodig.
Hoe werkt gebarenherkenning?
De "hersenen" is de Arduino Uno (ATmega328) met geladen code. Handgebaren worden gedetecteerd door de ADXL335 accelerometer.
De accelerometer leest X, Y, Z coördinaten bij handgebaren en stuurt deze naar de Arduino (Z-as niet nodig, alleen X en Y). De Arduino analyseert de waarden en stuurt een 4-bit code naar de Encoder IC (HT12E). De encoder geeft data door aan de RF zender. De ontvanger ontvangt de data en geeft het door aan de Decoder IC (HT12D), die het doorgeeft aan de Motor Driver IC (L298). De motor driver bepaalt de draairichting van de twee motoren.
Voeding bouwen
We bouwen twee voedingen: één voor zender (9V batterij), één voor ontvanger (12V voor 12V motor).
Bouw de voeding volgens schema. Optioneel: LED met 1kΩ weerstand als statusindicator.
- IC 7805 regelt 12V naar 5V (9V werkt ook)
- 0,1μF en 470μF condensatoren voor stabilisatie
- 1kΩ weerstand voor status LED
LET OP: Gebruik een koelplaat voor de 7805! We vallen 7V (12V-5V) wat veel warmte produceert – zonder koeling brandt de regelaar door.
Zender (Remote) bouwen
De zender bestaat uit accelerometer die handgebaren detecteert en data naar Arduino stuurt. Arduino stuurt 4-bit code naar Encoder IC (HT12E) die data via RF zendt.
BELANGRIJK: Sommige accelerometers werken op 3,3V en kunnen beschadigd raken door 5V. Controleer de leveranciersdocumentatie voor de juiste spanning!
Code uploaden naar Arduino
De bijgewerkte code is beschikbaar in de project repository.
Ontvanger bouwen
De ontvanger bestaat uit: HT12D decoder, L293D motor driver, RF ontvanger module.
Bouw volgens schema. Er zitten 2 LEDs op de ontvanger print: één voor voeding ontvanger, één voor voeding zender. De LED bij de HT12D (VT - Valid Transmission) moet branden wanneer de zender spanning krijgt. Brandt hij niet? Controleer verbindingen of RF TX/RX modules.
Welke gebaren herkent de robot?
De robot herkent vijf gebaren: vooruit, achteruit, links, rechts, stop. Foto's hieronder tonen de handposities:
Veel plezier met besturen van je robot!
Inkrimpen en permanent maken
Arduino Uno is groot en onhandig aan je hand. Als je Arduino voor ander project nodig hebt, moet je alles loskoppelen en verliest je werk. Oplossing: maak een standalone versie op PCB.
Download PCB layout voor standalone versie:
standalone_etch_copper_top_mirror1.pdf (gespiegeld voor etsen)
standalone_etch_copper_top1.pdf (normaal)
Video toont overdracht van code naar ATmega8 MCU (uitgangen getoond met LEDs).
Bekijk mijn blog voor nieuwe projecten. Vragen? Laat een reactie daar – ik check mijn blog vaker dan hier.
Productieproces
- Bouw een Bluetooth-gecontroleerde Raspberry Pi Robot met Audio Feedback
- Gebaren-gecontroleerde Robot Aangedreven door Raspberry Pi
- Bouw een Spraak-gecontroleerde Robot met Windows 10 IoT Core op Raspberry Pi 2
- Bouw een Wi-Fi-gecontroleerde Raspberry Pi Robot met Python – Stap-voor-stap Gids
- ROObockey: Precisie-geassisteerde Remote-gecontroleerde Straathockey-robot
- Gebarenbestuurde RGB-tafellamp – Interactief, Handvrij Verlichten
- DIY Arduino USB Gaming Controller – Bouw Je Eigen High-Performance Gamepad
- Slimme Arduino-waterfles – realtime monitoring & herinneringen
- Bouw een Stemgecontroleerde Robot met Arduino Nano
- Ethernet-gestuurde robotarm: Remote control gemaakt simpel
- Hand-geguideerde collaboratieve robots: Veiligheidsstandards uitgelegd