Satura rādītājs:

Kā izveidot cilvēku sekojošu robotu ar Arduino: 3 soļi
Kā izveidot cilvēku sekojošu robotu ar Arduino: 3 soļi

Video: Kā izveidot cilvēku sekojošu robotu ar Arduino: 3 soļi

Video: Kā izveidot cilvēku sekojošu robotu ar Arduino: 3 soļi
Video: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, Novembris
Anonim
Kā izveidot cilvēku pēc robota ar Arduino
Kā izveidot cilvēku pēc robota ar Arduino

Cilvēks seko robota izjūtai un seko cilvēkam

1. darbība: iegūstiet rīkus

Iegūstiet rīkus
Iegūstiet rīkus
Iegūstiet rīkus
Iegūstiet rīkus
Iegūstiet rīkus
Iegūstiet rīkus

Iegūstiet tādus rīkus kā: Ultraskaņas sensors SensorArduino uno 4 pārnesumu motori ar riteni Servo akumulators un akumulatora korpuss Motora vadītājs Džempera vadi Šasija

2. darbība. Savienojuma izveide

Notiek savienošana
Notiek savienošana
Notiek savienošana
Notiek savienošana
Notiek savienošana
Notiek savienošana
Notiek savienošana
Notiek savienošana

Savienojiet katru aprīkojumu ar motora draiveri. Pievienojiet motora draiveri arduino.

3. darbība: kods

Kods
Kods

#include#include#include#define RIGHT A2#define LEFT A3#define TRIGGER_PIN A1#define ECHO_PIN A0#define MAX_DISTANCE 100NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); AF_DCMotor Motor1 (1, MOTOR12_1KHM);; AF_DCMotor Motor3 (3, MOTOR34_1KHZ); AF_DCMotor Motor4 (4, MOTOR34_1KHZ); Servo myservo; int pos = 0; void setup () {// ievietojiet šeit savu iestatīšanas kodu, lai palaistu vienu reizi: Serial.begin (9600); myservo.attach (10); {for (pos = 90; pos <= 180; pos += 1) {myservo.write (pos); aizkave (15);} par (pos = 180; pos> = 0; pos- = 1) {myservo.write (pos); delay (15);} for (pos = 0; pos <= 90; pos += 1) {myservo.write (pos); delay (15);}} pinMode (RIGHT, INPUT); pinMode (LEFT, INPUT);} void loop () {// ievietojiet šeit savu galveno kodu, lai tas darbotos atkārtoti: delay (50); unsigned int distance = sonar.ping_cm (); Serial.print ("distance"); Serial.println (distance); int Right_Value = digitalRead (RIGHT); int Left_Value = digitalRead (LEFT); Serial.print ("RIGHT"); Serial.println (Right_Value); Serial.print ("LEFT"); Serial.println (Left_Value); if ((Right_Value == 1) && (distance> = 10 && distance <= 30) && (Left_Value == 1)) {Motor1.setSpeed (120); Motor1.run (uz priekšu); Motor2.setSpeed (120); Motor2.run (uz priekšu); Motor3.setSpeed (120); Motor3.run (uz priekšu); Motor4.setSpeed (120); Motor4.run (FORWARD);} else if ((Right_Value == 0) && (Left_Value == 1)) {Motor1.setSpeed (200); Motor1.run (uz priekšu); Motor2.setSpeed (200); Motor2.run (uz priekšu); Motor3.setSpeed (100); Motor3.run (ATPAKAĻ); Motor4.setSpeed (100); Motor4.run (BACKWARD);} else if ((Right_Value == 1) && (Left_Value == 0)) {Motor1.setSpeed (100); Motor1.run (ATPAKAĻ); Motor2.setSpeed (100); Motor2.run (ATPAKAĻ); Motor3.setSpeed (200); Motor3.run (uz priekšu); Motor4.setSpeed (200); Motor4.run (FORWARD);} else if ((Right_Value == 1) && (Left_Value == 1)) {Motor1.setSpeed (0); Motor1.run (RELEASE); Motor2.setSpeed (0); Motor2.run (RELEASE); Motor3.setSpeed (0); Motor3.run (RELEASE); Motor4.setSpeed (0); Motor4.run (RELEASE);} else if (distance> 1 && distance <10) {Motor1.setSpeed (0); Motor1.run (RELEASE); Motor2.setSpeed (0); Motor2.run (RELEASE); Motor3.setSpeed (0); Motor3.run (RELEASE); Motor4.setSpeed (0); Motor4.run (RELEASE); }}

Ieteicams: