Kazalo:

Kako narediti domačega robota, ki se izogiba preprekam Arduino, doma: 4 koraki
Kako narediti domačega robota, ki se izogiba preprekam Arduino, doma: 4 koraki

Video: Kako narediti domačega robota, ki se izogiba preprekam Arduino, doma: 4 koraki

Video: Kako narediti domačega robota, ki se izogiba preprekam Arduino, doma: 4 koraki
Video: Bruce Lee - The Legend of the Dragon. BRUCE LEE'S LIFE. Conspiracy Theory 2022 !!! 2024, Julij
Anonim
Image
Image

Pozdravljeni fantje, v tem navodilu boste robotu preprečili oviro. Ta Instructable vključuje izdelavo robota z ultrazvočnim senzorjem, ki lahko zazna bližnje predmete in spremeni njihovo smer, da se tem predmetom izogne. Ultrazvočni senzor bo pritrjen na servo motor, ki nenehno skenira levo in desno ter išče predmete na svoji poti.

Torej, brez odlašanja, začnimo!

1. korak: Kaj potrebujete pri tem projektu:

Kaj potrebujete pri tem projektu
Kaj potrebujete pri tem projektu
Kaj potrebujete pri tem projektu
Kaj potrebujete pri tem projektu

Tu je seznam delov:

1) Arduino Uno

2) Ščit motornega voznika

3) Motor gonila, okvir in komplet koles

4) Servo motor

5) Ultrazvočni senzor

6) Li-ionska baterija (2x)

7) Nosilec baterije

8) Moška in ženska skakalna žica

9) Spajkalnik

10) Polnilnik

2. korak: Shema vezja

Shema vezja
Shema vezja

Delo:

Preden se lotite projekta, je pomembno razumeti, kako deluje ultrazvočni senzor. Osnovno načelo delovanja ultrazvočnega senzorja je naslednje:

S pomočjo zunanjega sprožilnega signala je sprožilni zatič na ultrazvočnem senzorju logično visok vsaj 10 μs. Iz oddajnega modula se pošlje zvočni signal. Ta je sestavljen iz 8 impulzov po 40KHz.

Signali se po udarcu v površino vrnejo nazaj in sprejemnik zazna ta signal. Echo pin je visok od trenutka pošiljanja signala in njegovega sprejema. Ta čas je mogoče z ustreznimi izračuni pretvoriti v razdaljo.

Cilj tega projekta je z uporabo ultrazvočnega senzorja in Arduina izvesti robota, ki se izogiba oviram. Vse povezave so izvedene v skladu s shemo vezja. Delo projekta je opisano spodaj.

Ko je robot vklopljen, bosta oba motorja normalno delovala in robot se bo pomaknil naprej. V tem času ultrazvočni senzor neprestano izračuna razdaljo med robotom in odsevno površino.

Te podatke obdeluje Arduino. Če je razdalja med robotom in oviro manjša od 15 cm, se robot ustavi in v levi in desni smeri poišče novo razdaljo s pomočjo servo motorja in ultrazvočnega senzorja. Če je razdalja proti levi strani večja od razdalje desne strani, se bo robot pripravil na zavoj v levo. Najprej se nekoliko podpre in nato aktivira motor levega kolesa v obratni smeri.

Podobno, če je desna razdalja večja od leve razdalje, Robot pripravi rotacijo v desno. Ta proces se nadaljuje večno in robot se še naprej premika, ne da bi udaril v kakršno koli oviro.

3. korak: Programiranje Arduino UNO

#vključi

#vključi

#vključi

# definiraj TRIG_PIN A1

# definiraj ECHO_PIN A0

# definiraj MAX_DISTANCE 200

# define MAX_SPEED 255 // nastavi hitrost enosmernih motorjev

# define MAX_SPEED_OFFSET 20

Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motorja3 (3, MOTOR34_1KHZ);

AF_DCMotor motorja4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goesForward = false;

int razdalja = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); zamuda (2000); distance = readPing (); zamuda (100); distance = readPing (); zamuda (100); distance = readPing (); zamuda (100); distance = readPing (); zamuda (100); }

void loop () {

int razdalja R = 0; int razdaljaL = 0; zamuda (40);

if (razdalja <= 15) {moveStop (); zamuda (100); moveBackward (); zamuda (300); moveStop (); zamuda (200); distanceR = lookRight (); zamuda (200); distanceL = lookLeft (); zamuda (200);

if (distanceR> = distanceL) {

zavij desno(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distance = readPing (); }

int lookRight () {

myservo.write (50); zamuda (500); int distance = readPing (); zamuda (100); myservo.write (115); povratna razdalja; }

int lookLeft () {

myservo.write (170); zamuda (500); int distance = readPing (); zamuda (100); myservo.write (115); povratna razdalja; zamuda (100); }

int readPing () {

zamuda (70); int cm = sonar.ping_cm (); če (cm == 0) {cm = 250; } vrnitev cm; }

void moveStop () {

motor3.run (RELEASE);

motor4.run (RELEASE); }

void moveForward () {

če (! gre naprej) {

gre naprej = res;

motor3.run (NAPREJ);

motor4.run (NAPREJ); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // počasi povečajte hitrost, da se izognete prehitremu polnjenju baterij {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); zamuda (5); }}}

void moveBackward () {

gre naprej = napačno;

motor3.run (NAZAD);

motor4.run (NAZAD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // počasi povečajte hitrost, da se izognete prehitremu polnjenju baterij {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); zamuda (5); }}

void turnRight () {

motor3.run (NAPREJ);

motor4.run (NAZAD); zamuda (500);

motor3.run (NAPREJ);

motor4.run (NAPREJ); }

void turnLeft () {

motor3.run (NAZAD);

motor4.run (NAPREJ); zamuda (500);

motor3.run (NAPREJ);

motor4.run (NAPREJ); }

1) Prenesite in namestite Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) Prenesite in prilepite datoteko knjižnice NewPing (knjižnica funkcij ultrazvočnega senzorja) v mapo knjižnic Arduino.

  1. Spodaj prenesite NewPing.rar
  2. Izvlecite ga na pot - knjižnice C: / Arduino

3) Prenesite kodo na ploščo Arduino prek kabla USB

Koda za prenos:

4. korak: Odlično

Zdaj je vaš robot pripravljen, da se izogne kakršni koli oviri …

Z veseljem bom odgovoril na vsa vaša vprašanja

Elektronski naslov: [email protected]

Spletno mesto:

Naročite se na moj YouTube kanal:

Instagram:

Facebook:

Hvala vam:)

Priporočena: