Taula de continguts:

Com fer un robot intel·ligent amb Arduino: 4 passos
Com fer un robot intel·ligent amb Arduino: 4 passos

Vídeo: Com fer un robot intel·ligent amb Arduino: 4 passos

Vídeo: Com fer un robot intel·ligent amb Arduino: 4 passos
Vídeo: Could this tiny tube of metal fix our broken suspension? - Edd China's Workshop Diaries 28 2024, Desembre
Anonim
Image
Image

Hola,

Sóc fabricant d’arduino i en aquest tutorial us mostraré com fer un robot intel·ligent amb arduino

si us ha agradat el meu tutorial, considereu donar suport al meu canal de youtube anomenat arduino maker

Subministraments

COSES QUE NECESSITAREU:

1) arduino uno

2) sensor d'ultrasons

3) Motor Bo

4) rodes

5) pals de gelat

6) bateria de 9v

Pas 1: CONNEXIONS

PEGAR TOTS ELS COMPONENTS QUE SIGUIN AL LLOC
PEGAR TOTS ELS COMPONENTS QUE SIGUIN AL LLOC

Després, obtenint tots els subministraments ara, hauríeu de començar a connectar totes les coses segons el diagrama de circuits que es mostra a dalt

Pas 2: PEGEU TOTS ELS COMPONENTS QUE SITUEN

D'ACORD,

ara connecteu totes les coses al lloc tal com es mostra a la imatge superior

Pas 3: PROGRAMACIÓ

Ara,

comenceu a programar el tauler amb el codi indicat a continuació

// ARDUINO OBSTACLE EVITING CAR //// Abans de carregar el codi heu d’instal·lar la biblioteca necessària // // Biblioteca AFMotor https://learn.adafruit.com/adafruit-motor-shield/library-install // // Biblioteca NewPing https://github.com/livetronic/Arduino-NewPing// // Servo Library https://github.com/arduino-libraries/Servo.git // // Per instal·lar les biblioteques aneu a sketch >> Inclou Biblioteca >> Afegir fitxer. ZIP >> Seleccioneu els fitxers ZIP descarregats dels enllaços anteriors //

#incloure

#incloure

#incloure

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // estableix la velocitat dels motors de corrent continu

#define MAX_SPEED_OFFSET 20

Newar 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;

booleà va endavant = fals;

int distància = 100; int speedSet = 0;

configuració nul·la () {

myservo.attach (10);

myservo.write (115); retard (1000); distància = readPing (); retard (100); distància = readPing (); retard (100); distància = readPing (); retard (100); distància = readPing (); retard (100); }

bucle buit () {

int distància R = 0; int distànciaL = 0; retard (40); if (distància <= 15) {moveStop (); retard (100); moveBackward (); retard (300); moveStop (); retard (200); distànciaR = lookRight (); retard (300); distànciaL = lookLeft (); retard (300);

si (distànciaR> = distànciaL)

{ giri a la dreta(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distància = readPing (); }

int lookRight ()

{myservo.write (50); retard (650); int distance = readPing (); retard (100); myservo.write (115); distància de retorn; }

int lookLeft ()

{myservo.write (170); retard (650); int distance = readPing (); retard (100); myservo.write (115); distància de retorn; retard (100); }

int readPing () {

retard (70); int cm = sonar.ping_cm (); if (cm == 0) {cm = 250; } retorn cm; }

void moveStop () {

motor1.run (LLANÇAMENT); //motor2.run(RELEASE); //motor3.run(RELEASE); motor4.run (LLANÇAMENT); } void moveForward () {

if (! goesForward)

{va endavant = cert; motor1.run (AVANT); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (AVANT); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // augmenta lentament la velocitat per evitar carregar les bateries massa ràpidament {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); retard (5); }}}

void moveBackward () {

va endavant = fals; motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // augmenta lentament la velocitat per evitar carregar les bateries massa ràpidament {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); retard (5); }}

void turnRight () {

motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(FORWARD); motor4.run (AVANT); retard (350); motor1.run (AVANT); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (AVANT); } void turnLeft () {motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); retard (350); motor1.run (AVANT); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (AVANT); }

Recomanat: