Cuprins:
- Pasul 1: De ce aveți nevoie în acest proiect:
- Pasul 2: Diagrama circuitului
- Pasul 3: Programarea Arduino UNO
- Pasul 4: Super
Video: Cum să faci un robot Arduino pentru evitarea obstacolelor acasă: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Bună ziua, băieți, în acest instructabil, veți face un robot care să evite obstacolele. Acest instructabil implică construirea unui robot cu un senzor cu ultrasunete care poate detecta obiecte din apropiere și își poate schimba direcția pentru a evita aceste obiecte. Senzorul cu ultrasunete va fi atașat la un servomotor care scanează în mod constant stânga și dreapta în căutarea obiectelor în calea sa.
Deci, fără alte întrebări, Să începem!
Pasul 1: De ce aveți nevoie în acest proiect:
Iată lista pieselor:
1) Arduino Uno
2) Scutul șoferului motorului
3) Motor de transmisie, cadru și roți setate
4) Servomotor
5) Senzor cu ultrasunete
6) Baterie Li-ion (2x)
7) Suport baterie
8) Sârmă jumper masculină și feminină
9) Fier de lipit
10) Încărcător
Pasul 2: Diagrama circuitului
Lucru:
Înainte de a începe să lucrați la proiect, este important să înțelegeți cum funcționează senzorul cu ultrasunete. Principiul de bază din spatele funcționării senzorului cu ultrasunete este următorul:
Folosind un semnal de declanșare extern, pinul Trig de pe senzorul cu ultrasunete devine logic pentru cel puțin 10µs. Se trimite o explozie sonoră de la modulul transmițător. Acesta constă din 8 impulsuri de 40KHz.
Semnalele se întorc înapoi după ce a lovit o suprafață și receptorul detectează acest semnal. Pinul Echo este ridicat din momentul trimiterii și recepționării semnalului. Acest timp poate fi convertit la distanță folosind calcule adecvate.
Scopul acestui proiect este de a implementa un robot care evită obstacolele folosind senzor cu ultrasunete și Arduino. Toate conexiunile sunt realizate conform schemei de circuit. Funcționarea proiectului este explicată mai jos.
Când robotul este pornit, ambele motoare ale robotului vor funcționa normal, iar robotul se deplasează înainte. În acest timp, senzorul cu ultrasunete calculează continuu distanța dintre robot și suprafața reflectorizantă.
Aceste informații sunt procesate de Arduino. Dacă distanța dintre robot și obstacol este mai mică de 15 cm, robotul se oprește și scanează în direcțiile stânga și dreapta pentru a obține o nouă distanță folosind servomotorul și senzorul cu ultrasunete. Dacă distanța spre partea stângă este mai mare decât cea din partea dreaptă, robotul se va pregăti pentru o virare la stânga. Dar, mai întâi, se întoarce puțin și apoi activează motorul roții stânga în sens invers.
În mod similar, dacă distanța corectă este mai mare decât cea a distanței din stânga, robotul pregătește rotația dreaptă. Acest proces continuă pentru totdeauna și robotul continuă să se miște fără să lovească niciun obstacol.
Pasul 3: Programarea Arduino UNO
#include
#include
#include
# definiți TRIG_PIN A1
# definiți ECHO_PIN A0
# definiți MAX_DISTANCE 200
# define MAX_SPEED 255 // setează viteza motoarelor de curent continuu
# define MAX_SPEED_OFFSET 20
Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
AF_DCMotor motor3 (3, MOTOR34_1KHZ);
AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo miservo;
boolean goesForward = false;
int distanta = 100; int speedSet = 0;
configurare nulă () {
myservo.attach (10);
myservo.write (115); întârziere (2000); distanță = readPing (); întârziere (100); distanță = readPing (); întârziere (100); distanță = readPing (); întârziere (100); distanță = readPing (); întârziere (100); }
bucla nulă () {
distanța intR = 0; int distanțaL = 0; întârziere (40);
if (distanță <= 15) {moveStop (); întârziere (100); mergi inapoi(); întârziere (300); moveStop (); întârziere (200); distanțăR = lookRight (); întârziere (200); distanțăL = lookLeft (); întârziere (200);
if (distanceR> = distanceL) {
Obligatoriu Dreapta(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distanță = readPing (); }
int lookRight () {
myservo.write (50); întârziere (500); int distanță = readPing (); întârziere (100); myservo.write (115); distanța de întoarcere; }
int lookLeft () {
myservo.write (170); întârziere (500); int distanță = readPing (); întârziere (100); myservo.write (115); distanța de întoarcere; întârziere (100); }
int readPing () {
întârziere (70); int cm = sonar.ping_cm (); if (cm == 0) {cm = 250; } returnează cm; }
void moveStop () {
motor3.run (ELIBERARE);
motor4.run (ELIBERARE); }
void moveForward () {
if (! mergeForward) {
merge înainte = adevărat;
motor3.run (FORWARD);
motor4.run (FORWARD); pentru (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // creșteți încet viteza pentru a evita încărcarea bateriilor prea repede {
motor3.setSpeed (speedSet);
motor4.setSpeed (speedSet); întârziere (5); }}}
void moveBackward () {
merge înainte = fals;
motor3.run (BACKWARD);
motor4.run (BACKWARD); pentru (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // creșteți încet viteza pentru a evita încărcarea bateriilor prea repede {
motor3.setSpeed (speedSet);
motor4.setSpeed (speedSet); întârziere (5); }}
void turnRight () {
motor3.run (FORWARD);
motor4.run (BACKWARD); întârziere (500);
motor3.run (FORWARD);
motor4.run (FORWARD); }
void turnLeft () {
motor3.run (BACKWARD);
motor4.run (FORWARD); întârziere (500);
motor3.run (FORWARD);
motor4.run (FORWARD); }
1) Descărcați și instalați Arduino Desktop IDE
- windows -
- Mac OS X -
- Linux -
2) Descărcați și lipiți fișierul bibliotecă NewPing (biblioteca funcției senzorului cu ultrasunete) în folderul bibliotecilor Arduino.
- Descărcați NewPing.rar de mai jos
- Extrageți-l în calea - biblioteci C: / Arduino
3) Încărcați codul pe placa Arduino printr-un cablu USB
Cod de descărcare:
Pasul 4: Super
Acum robotul dvs. este gata să evite orice obstacol …
Aș fi fericit să vă răspund la orice întrebări
Trimiteți-mi un e-mail: [email protected]
Site web:
Abonați-vă canalul YouTube:
Instagram:
Facebook:
Mulțumesc:)
Recomandat:
Robot LEGO pentru evitarea obstacolelor: 8 pași (cu imagini)
Robotul LEGO pentru evitarea obstacolelor: Ne place LEGO și adorăm și circuitele nebune, așa că am vrut să le combinăm pe cele două într-un robot simplu și distractiv care poate evita lovirea de pereți și alte obiecte. Vă vom arăta cum am construit-o pe a noastră și vă vom prezenta elementele de bază necesare, astfel încât să vă puteți construi propria
5 în 1 Arduino Robot - Urmează-mă - Urmărirea liniei - Sumo - Desen - Evitarea obstacolelor: 6 pași
5 în 1 Arduino Robot | Urmează-mă | Urmărirea liniei | Sumo | Desen | Evitarea obstacolelor: Această placă de control a robotului conține un microcontroler ATmega328P și un driver de motor L293D. Desigur, nu diferă de placa Arduino Uno, dar este mai utilă, deoarece nu are nevoie de un alt scut pentru a acționa motorul! Este liber de salt
Mașină pentru evitarea obstacolelor: 5 pași
Mașină pentru evitarea obstacolelor: Mașina cu senzor de unghi este o mașină inteligentă de autoevitare, caroseria mașinii folosind cadru din aluminiu, comanda principală utilizând microcontrolerul Arduino / Nano, placa de circuit adoptă un design plug-in (este mai ușor să conectați senzorul extern prin microcontroler
DIY Arduino Evitarea obstacolelor Mașina la domiciliu: 5 pași
DIY Arduino pentru a evita mașina la domiciliu: În acest articol vă voi arăta cum să faceți o mașină pentru a evita o obstacol Arduino acasă
Cel mai mic și mai simplu robot Arduino pentru evitarea obstacolelor vreodată: 5 pași
Cel mai mic și mai drăguț robot Arduino pentru evitarea obstacolelor vreodată: V-ați săturat de mari roboți stângaci care vă iau o jumătate de raft în cameră? Ești dispus să-ți iei robotul cu tine, dar pur și simplu nu ți se potrivește în buzunar? Poftim! Vă prezint Minibot, cel mai drăguț și mai mic robot de evitare a obstacolelor pe care l-ați putea evita