Interesant și nu complicat robotulcare se deplasează în spatele unui obiect de o anumită culoare.
Pentru a determina poziția obiectului, se utilizează o cameră de telefonie inteligentă, montată pe șasiul robotului. Puteți utiliza un constructor gata, despre care am scris deja aici. Iată o listă cu ceea ce autorul avea nevoie. Cu excepția smartphone-ului, costul acestui robot a fost de 60 de dolari
- Arduino Organizația Națiunilor Unite
- Smartphone cu sistem de operare Android
- Sasiul robotului
- cabluri pentru conectare
- Pod H pentru motoare cu curent continuu (autorul folosit pololu TB6612FNG)
Imaginea arată cum se conectează TB6612FNG și Arduino Uno
Concluziile șoferului și pentru ce sunt responsabili:
1) GND - Conectați-l la pinii GND de pe Arduino
2) VCC - Tensiunea de alimentare a logicii șoferului. Conectați-l la pinul 5V de pe Arduino.
3) A01 - contact de ieșire, care este conectat la borna pozitivă a motorului A.
4) A02 - contact de ieșire, care este conectat la polul negativ al motorului A
5) B02 - contact de ieșire, care este conectat la polul negativ al motorului B.
6) B01 - contact de ieșire conectat la borna pozitivă a motorului B
7) VMOT - Tensiunea de ieșire a motoarelor. Conectați-l la polul pozitiv al bateriei. (Pentru a alimenta motoarele)
8) GND - Conectați-l la terminalul negativ al bateriei.
9) GND - Conectați-l la pinul GND de pe Arduino.
10) PWMB-Pinul PWM al șoferului motorului pentru a regla viteza motorului B. Conectați-l la oricare dintre pinii PWM de pe Arduino și specificați o valoare a vitezei pentru motor între 0-255.
11 și 12) și BIN2 BIN1 - Contactele de intrare ale șoferului motorului pentru motorul B, care determină direcția de rotație a motorului B. Conectați-l la oricare doi pini digitali Arduino.
13) STBY - Conectați-l la orice ieșire digitală. Când este instalat la un nivel înalt, include un driver
14 și 15) AIN1 și AIN2- Contactele de intrare ale șoferului pentru motor, care indică direcția de rotație a motorului A. Conectați-l la oricare două ieșiri digitale Arduino.
16) Ieșirea PWMA-PWM a șoferului motorului pentru reglarea turației motorului A. Conectați-l la oricare dintre pinii PWM de pe Arduino și specificați valoarea vitezei pentru motor între 0-255.
Modul Bluetooth HC-06
Aliexpress costă aproximativ 6 dolari
Cum funcționează totul?
Acest proiect utilizează un smartphone Android cu o aplicație specială care prelucrează informații de pe cameră pentru a determina unde se află obiectul roșu, calculează coordonatele sale și trimite date prin Bluetooth către Arduino.Aplicația folosește biblioteca openCV pentru procesarea imaginilor. Aceasta este o bibliotecă de algoritmi pentru viziunea computerului, procesarea imaginilor cu sursă deschisă. Puteți citi despre asta sau. Următorul este un fragment de cod pentru această aplicație care efectuează aceste calcule. Mai jos este o bucată din codul aplicației Android care efectuează aceste calcule
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;
while (x <176) {
while (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) {
puncte ++;
all_x = all_x + x;
all_y = all_y + y;
}
y ++;
}
x ++;
y = 0;
}
y = 0;
x = 0;
x_center = all_x / puncte;
y_center = all_y / puncte;
În arhivă, diagrama de conexiune și placa de circuit imprimat pentru robot, pentru cei care nu doresc să cumpere Arduino UNO
Ceea ce este necesar pentru asamblare:
- Toate cele menționate mai sus, atmega 8, 128 sau 328
- LED, indiferent de culoare
- Stabilizator liniar 5v (pentru versiunea fără Arduino)
- Conectori pin M și F
- PCB gravat și găurit (pentru versiunea fără Arduino)
- burghiu, fier de lipit.
- Arduino Uno. Pentru cei care nu știu ce concluzii sunt necesare Arduino Uno, în descrierea fișierului atașat.
Program pentru Arduino
Programul pentru Arduino este foarte simplu. Codul de arhivă pentru acest program.
Program pentru telefon
În această arhivă, programul pentru telefon este instalat, ca o aplicație obișnuită, și codul sursă al acestui program. Importați-l în studio Android, colectați fișierul apk și instalați-l pe smartphone.
Acest program utilizează Bluetooth doar pentru a trimite date. Descrierea bibliotecii (openCV) poate fi găsită pe Internet. Autorul a realizat o placă de circuite tipărită pentru atmega 328. Nu uitați acest lucru dacă nu veți utiliza o placă de panou, ci vă va distribui semnul: