Cuprins:
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Buna ziua,
Sunt arduino maker și în acest tutorial îți voi arăta cum să faci un robot inteligent folosind arduino
dacă ți-a plăcut tutorialul meu, atunci ia în considerare sprijinirea canalului meu pe YouTube numit arduino maker
Provizii
LUCRURI DE CARE VREI NEVOIE:
1) arduino uno
2) senzor cu ultrasunete
3) Motor Bo
4) roți
5) bețe de înghețată
6) baterie de 9v
Pasul 1: CONEXIUNI
După ce obțineți toate consumabilele acum, ar trebui să începeți să conectați toate lucrurile conform schemei de circuite date mai sus
Pasul 2: CLEAȚI TOATE COMPONENTELE LA LOC
BINE,
conectați acum toate lucrurile la loc așa cum se arată în imaginea de mai sus
Pasul 3: PROGRAMARE
Acum,
începe programarea plăcii cu codul dat mai jos
// ARDUINO OBSTACLE EVITING CAR //// Înainte de a încărca codul, trebuie să instalați biblioteca necesară // // Biblioteca AFMotor https://learn.adafruit.com/adafruit-motor-shield/library-install // // Biblioteca NewPing https://github.com/livetronic/Arduino-NewPing// // Biblioteca Servo https://github.com/arduino-libraries/Servo.git // // Pentru a instala bibliotecile accesați schița >> Includeți Biblioteca >> Adăugați fișier. ZIP >> Selectați fișierele ZIP descărcate Din linkurile de mai sus //
#include
#include
#include
#define TRIG_PIN A0
#define ECHO_PIN A1 #define MAX_DISTANCE 200
#define MAX_SPEED 150 // setează viteza motoarelor de curent continuu
#define MAX_SPEED_OFFSET 20
Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
AF_DCMotor motor1 (1, MOTOR12_1KHZ);
// AF_DCMotor motor2 (2, MOTOR12_1KHZ); // AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo miservo;
boolean mergeForward = false;
int distanta = 100; int speedSet = 0;
configurare nulă () {
myservo.attach (10);
myservo.write (115); întârziere (1000); 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 (300); distanțăL = lookLeft (); întârziere (300);
if (distanceR> = distanceL)
{ Obligatoriu Dreapta(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distanță = readPing (); }
int lookRight ()
{myservo.write (50); întârziere (650); int distanță = readPing (); întârziere (100); myservo.write (115); distanța de întoarcere; }
int lookLeft ()
{myservo.write (170); întârziere (650); 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 () {
motor1.run (ELIBERARE); //motor2.run(RELEASE); //motor3.run(RELEASE); motor4.run (ELIBERARE); } void moveForward () {
if (! mergeForward)
{mergeForward = adevărat; motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FORWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // creșteți încet viteza pentru a evita încărcarea bateriilor prea repede {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); întârziere (5); }}}
void moveBackward () {
merge înainte = fals; motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // creșteți încet viteza pentru a evita încărcarea bateriilor prea repede {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); întârziere (5); }}
void turnRight () {
motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(FORWARD); motor4.run (FORWARD); întârziere (350); motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FORWARD); } void turnLeft () {motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); întârziere (350); motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (FORWARD); }
Recomandat:
Cum să faci un încălzitor inteligent: 8 pași
Cum să faci un încălzitor inteligent: Una dintre cele mai mari etape pentru umanitate este descoperirea focului. Ne-am construit drumul folosind legea fundamentală a fizicii gravate în universul nostru pentru a ne menține în viață. Milioane de ani mai târziu, acum avem electronice, WiFi, avioane și așa
Cum să faci ghiveci de flori inteligent: 8 pași
Cum să faci un ghiveci de flori inteligent: Știi ce i-a motivat pe oameni să creeze primul oraș vreodată? Este agricultura. În acest proiect, vom realiza un ghiveci de flori tipărit 3D care ar putea adăposti o plantă de dimensiuni mici și mijlocii, cu un afișaj LED în exterior pentru a indica umiditatea s
Cum să faci o linie după robot folosind Rpi 3: 8 pași
Cum să faci un robot de urmărire a liniei folosind Rpi 3: În acest tutorial, vei învăța să construiești un buggy de robot care să urmărească linia, astfel încât să poată flutura cu ușurință în jurul unei piste
Cum să faci un coridor inteligent cu un controler temporizator configurabil: 6 pași (cu imagini)
Cum să faci un coridor inteligent cu un controler temporizator configurabil: Acest tutorial demonstrează cum să faci un coridor inteligent cu un controler temporizator configurabil
Cum să faci un robot de baschet autonom folosind un IRobot Creați ca bază: 7 pași (cu imagini)
Cum să faci un robot de baschet autonom cu un IRobot Creare ca bază: Aceasta este intrarea mea pentru provocarea iRobot Create. Cea mai grea parte a întregului proces pentru mine a fost să decid ce va face robotul. Am vrut să demonstrez caracteristicile grozave ale Create-ului, adăugând în același timp un anumit stil robo. Toate