Interessant en niet ingewikkeld de robotdie beweegt achter een object met een bepaalde kleur.
Om de positie van het object te bepalen, wordt een smartphone-camera gebruikt, gemonteerd op het robotchassis. U kunt een kant-en-klare constructeur gebruiken, waarover ik al schreef hier. Hier is een lijst van wat de auteur nodig had. Met uitzondering van de smartphone waren de kosten van deze robot $ 60
- Arduino Uno
- Smartphone met Android OS
- Robotchassis
- kabels voor aansluiting
- H-brug voor gelijkstroommotoren (auteur gebruikt pololu TB6612FNG)
De afbeelding laat zien hoe TB6612FNG en Arduino Uno met elkaar verbinden
Conclusies voor de bestuurder en waarvoor zij verantwoordelijk zijn:
1) GND - Verbind het met de GND-pinnen op de Arduino
2) VCC - Voedingsspanning van de driverlogica. Sluit hem aan op de 5V pin op de Arduino.
3) A01 - uitgangscontact, dat is aangesloten op de positieve pool van motor A.
4) A02 - uitgangscontact, dat is aangesloten op de negatieve pool van motor A
5) B02 - uitgangscontact, dat is aangesloten op de negatieve pool van motor B.
6) B01 - uitgangscontact dat is aangesloten op de positieve pool van motor B
7) VMOT- Uitgangsspanning van de motoren. Sluit hem aan op de positieve pool van de batterij. (Om de motoren aan te drijven)
8) GND- Sluit het aan op de negatieve pool van de batterij.
9) GND- Sluit het aan op de GND-pin op de Arduino.
10) PWMB- PWM-pin van de motoraandrijving om de snelheid van motor B aan te passen. Sluit deze aan op een van de PWM-pinnen op de Arduino en specificeer de snelheidswaarde voor de motor van 0-255.
11 en 12) en BIN2 BIN1 - Ingangscontacten van de motoraandrijving voor motor B, die de draairichting van motor B bepalen. Sluit deze aan op twee willekeurige Arduino digitale pinnen.
13) STBY- Sluit hem aan op een digitale uitgang. Bij installatie op een hoog niveau bevat het een stuurprogramma
14 en 15) AIN1 en AIN2- Ingangscontacten van de motoraandrijving voor de motor, die de draairichting van motor A aangeven. Sluit deze aan op twee willekeurige Arduino digitale pinnen.
16) PWMA- PWM-uitgang van de motorstuurprogramma voor het aanpassen van het motortoerental A. Sluit het aan op een van de PWM-pinnen op de Arduino en specificeer de snelheidswaarde voor de motor van 0-255.
Bluetooth-module HC-06
Aliexpress kost ongeveer $ 6
Hoe werkt het allemaal?
Dit project maakt gebruik van een Android-smartphone met een speciale applicatie die informatie van de camera verwerkt om te bepalen waar het rode object is, berekent de coördinaten en verzendt gegevens via Bluetooth naar de Arduino.De applicatie gebruikt de openCV-bibliotheek voor beeldverwerking. Dit is een bibliotheek met algoritmen voor computervisie, open source beeldverwerking. Je kunt erover lezen of. Het volgende is een codefragment voor deze toepassing die deze berekeningen uitvoert. Hieronder vindt u een deel van de Android-applicatiecode die deze berekeningen uitvoert
bitmap = Bitmap.createBitmap (mRgba.cols (), mRgba.rows (), Bitmap.Config.ARGB_8888); Utils.matToBitmap (mRgba, bitmap);
int x = 0;
int y = 0;
int all_x = 0;
int all_y = 0;
terwijl (x <176) {
terwijl (y <144) {
int pixel = bitmap.getPixel (x, y);
int redValue = Color.red (pixel);
int blueValue = Color.blue (pixel);
int greenValue = Color.green (pixel);
if (redValue> 200 && blueValue <70 && greenValue <70) {
punten ++;
all_x = all_x + x;
all_y = all_y + y;
}
y ++;
}
x ++;
y = 0;
}
y = 0;
x = 0;
x_center = all_x / punten;
y_center = all_y / punten;
In het archief, het aansluitschema en de printplaat voor de robot, voor degenen die geen Arduino UNO willen kopen
Wat is er nodig voor montage:
- Alles wat hierboven genoemd is, atmega 8, 128 of 328
- LED, ongeacht welke kleur
- 5v lineaire stabilisator (voor versie zonder Arduino)
- Pin connectoren M en F
- Geëtste en geboorde print (voor versie zonder Arduino)
- Boor, soldeerbout.
- Arduino Uno. Voor degenen die niet weten welke conclusies Arduino Uno nodig hebben, in de bijgevoegde bestandsbeschrijving.
Programma voor Arduino
Het programma voor Arduino is heel eenvoudig. De archiefcode voor dit programma.
Programma voor telefoon
In dit archief is het programma voor de telefoon geïnstalleerd, net als een gewone applicatie, en de broncode van dit programma Importeer het in Android studio, verzamel het apk-bestand en installeer het op je smartphone.
Dit programma gebruikt Bluetooth om gegevens te verzenden. De bibliotheekbeschrijving (openCV) is te vinden op internet. De auteur heeft een printplaat gemaakt voor atmega 328. Onthoud dit als je geen breadboard gebruikt, maar je signet distribueert: