Hoe om 'n menslike robot te maak met Arduino: 3 stappe
Hoe om 'n menslike robot te maak met Arduino: 3 stappe
Anonim
Hoe om 'n menslike robot te maak met Arduino
Hoe om 'n menslike robot te maak met Arduino

Mens volg robot sin en volg mens

Stap 1: Kry die gereedskap

Kry die gereedskap
Kry die gereedskap
Kry die gereedskap
Kry die gereedskap
Kry die gereedskap
Kry die gereedskap

Kry die gereedskap soos: Ultrasoniese sensor Sensor Arduino uno 4 ratmotors met wiel Servo battery en batterykas Motorbestuurder Jumper drade Onderstel

Stap 2: Koppel

Koppel
Koppel
Koppel
Koppel
Koppel
Koppel
Koppel
Koppel

Koppel alle toerusting aan die motorbestuurder. Koppel die motorbestuurder aan die arduino.

Stap 3: Kodeer

Kode
Kode

#include#include#include#define RIGHT A2#definieer LINKS A3#definieer TRIGGER_PIN A1#definieer ECHO_PIN A0#definieer MAX_DISTANCE 100NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); AF_DCMotor Motor1 (1, MOTOR12_1KHZOR);; AF_DCMotor Motor3 (3, MOTOR34_1KHZ); AF_DCMotor Motor4 (4, MOTOR34_1KHZ); Servo myservo; int pos = 0; void setup () {// plaas u opstellingskode hier om een keer te hardloop: Serial.begin (9600); myservo.aanheg (10); {vir (pos = 90; pos <= 180; pos += 1) {myservo.write (pos); vertraging (15);} vir (pos = 180; pos> = 0; pos- = 1) {myservo.write (pos); vertraging (15);} vir (pos = 0; pos <= 90; pos += 1) {myservo.write (pos); vertraging (15);}} pinMode (REGS, INVOER); pinMode (LINKS, INVOER);} leemte lus () {// plaas u hoofkode hier om herhaaldelik uit te voer: vertraging (50); ongetekende int afstand = sonar.ping_cm (); Serial.print ("afstand"); Serial.println (afstand); 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 (VOORUIT); Motor2.setSpeed (120); Motor2.run (VOORUIT); Motor3.setSpeed (120); Motor3.run (VOORUIT); Motor4.setSpeed (120); Motor4.run (VOORUIT);} anders as ((Right_Value == 0) && (Left_Value == 1)) {Motor1.setSpeed (200); Motor1.run (VOORUIT); Motor2.setSpeed (200); Motor2.run (VOORUIT); Motor3.setSpeed (100); Motor3.run (TERUG); Motor4.setSpeed (100); Motor4.run (BACKWARD);} anders as ((Right_Value == 1) && (Left_Value == 0)) {Motor1.setSpeed (100); Motor1.run (TERUG); Motor2.setSpeed (100); Motor2.run (TERUG); Motor3.setSpeed (200); Motor3.run (VOORUIT); Motor4.setSpeed (200); Motor4.run (VOORUIT);} anders as ((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);} anders as (afstand> 1 && afstand <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); }}

Aanbeveel: