Intressant och inte komplicerat robotensom rör sig bakom ett objekt med en viss färg.
För att bestämma objektets position används en smarttelefonkamera, monterad på robotchassit. Du kan använda en färdigbyggd konstruktör, som jag redan skrev om här. Här är en lista över vad författaren behövde. Med undantag för smarttelefonen var kostnaden för denna robot $ 60
- Arduino UNO
- Smartphone med Android OS
- Robotchassi
- kablar för anslutning
- H-brygga för likströmsmotorer (författare använde pololu TB6612FNG)
Bilden visar hur TB6612FNG och Arduino Uno ansluter
Förarens slutsatser och vad de ansvarar för:
1) GND - Anslut den till GND-stiften på Arduino
2) VCC - matningsspänning för förarlogiken. Anslut den till 5V-stiftet på Arduino.
3) A01 - utgångskontakt, som är ansluten till den positiva terminalen i motor A.
4) A02 - utgångskontakt, som är ansluten till den negativa polen i motor A
5) B02 - utgångskontakt, som är ansluten till den negativa polen i motor B.
6) B01 - utgångskontakt som är ansluten till den positiva terminalen på motor B
7) VMOT - Motorspänning. Anslut den till batteriets positiva pol. (Att driva motorerna)
8) GND- Anslut den till batteriets negativa terminal.
9) GND- Anslut den till GND-stiftet på Arduino.
10) PWMB-PWM-stift på motordrivaren för att justera hastigheten på motor B. Anslut den till någon av PWM-stiften på Arduino och ange hastighetsvärdet för motorn från 0-255.
11 och 12) och BIN2 BIN1 - Ingångskontakter för motordrivaren för motor B, som bestämmer rotationsriktningen för motor B. Anslut den till valfri två Arduino digitala stift.
13) STBY- Anslut den till vilken digital utgång som helst. När den installeras på en hög nivå inkluderar den en drivrutin
14 och 15) AIN1 och AIN2- Ingångskontakter från motordrivaren för motorn, som indikerar rotationsriktningen för motor A. Anslut den till alla två Arduino digitala stift.
16) PWMA-PWM-utgången från motordrivaren för att justera motorvarvtalet A. Anslut den till någon av PWM-stiften på Arduino och ange hastighetsvärdet för motorn från 0-255.
Bluetooth-modul HC-06
Aliexpress kostar cirka $ 6
Hur fungerar det?
Projektet använder en Android-smartphone med en speciell applikation som bearbetar information från kameran för att avgöra var det röda objektet är, beräknar sina koordinater och skickar data via Bluetooth till Arduino.Programmet använder openCV-biblioteket för bildbehandling. Detta är ett bibliotek med algoritmer för datorsyn, öppen källkodsbehandling. Du kan läsa om det eller. Följande är ett kodavsnitt för den här applikationen som utför dessa beräkningar. Nedan är en bit av Android-applikationskoden som utför dessa beräkningar
bitmapp = Bitmap.createBitmap (mRgba.cols (), mRgba.rows (), Bitmap.Config.ARGB_8888); Utils.matToBitmap (mRgba, bitmapp);
int x = 0;
int y = 0;
int all_x = 0;
int all_y = 0;
medan (x <176) {
medan (y <144) {
int pixel = bitmapp.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) {
poäng ++;
all_x = all_x + x;
all_y = all_y + y;
}
y ++;
}
x ++;
y = 0;
}
y = 0;
x = 0;
x_center = all_x / poäng;
y_center = all_y / poäng;
I arkivet, anslutningsdiagrammet och kretskortet för roboten, för de som inte vill köpa Arduino UNO
Vad behövs för montering:
- Allt som nämns ovan, atmega 8, 128 eller 328
- LED, oavsett färg
- 5v linjär stabilisator (för version utan Arduino)
- Stiftanslutningar M och F
- Etsad och borrad PCB (för version utan Arduino)
- Borr, lödkolv.
- Arduino Uno. För de som inte vet vilka slutsatser Arduino Uno behövs, i den bifogade filbeskrivningen.
Program för Arduino
Programmet för Arduino är mycket enkelt. Arkivkoden för detta program.
Program för telefon
I det här arkivet är programmet för telefonen installerat, som en vanlig applikation, och källkoden för detta program. Importera det i Android-studio, samla apk-filen och installera den på din smartphone.
Detta program använder Bluetooth bara för att skicka data. Biblioteksbeskrivningen (openCV) finns på Internet. Författaren skapade ett tryckt kretskort för atmega 328. Kom ihåg detta om du inte kommer att använda en brödskiva utan kommer att distribuera din signet: