Sisällysluettelo:

Robotti -auton esteen välttäminen: 9 vaihetta
Robotti -auton esteen välttäminen: 9 vaihetta

Video: Robotti -auton esteen välttäminen: 9 vaihetta

Video: Robotti -auton esteen välttäminen: 9 vaihetta
Video: Vinyyli sivuraide! Asennuksen salaisuudet ja hyödylliset temput, joista harvat ihmiset tietävät! 2024, Heinäkuu
Anonim
Robotti -auton välttämisen este
Robotti -auton välttämisen este
Robotti -auton välttämisen este
Robotti -auton välttämisen este

Kuinka rakentaa este robotin välttämiseksi

Vaihe 1: Musta laatikko

Musta laatikko
Musta laatikko

Ensimmäisessä vaiheessa käytin robottini pohjana mustaa laatikkoa.

Vaihe 2: Arduino

Arduino
Arduino

Arduino on koko järjestelmän aivot ja järjestää moottorimme

Vaihe 3: Arduinon liittäminen Blackboxiin

Arduinon liittäminen Blackboxiin
Arduinon liittäminen Blackboxiin

Kiinnitin arduinon blackboxiin kuumaliimalla

Vaihe 4: Ultraääni -anturi

Ultraääni -anturi
Ultraääni -anturi

Jotta voimme tehdä robotin, joka voi liikkua itse, tarvitsemme jonkinlaisen tulon, anturin, joka sopii tavoitteeseemme. Ultraääni -anturi on laite, joka mittaa etäisyyden kohteeseen ultraääni -aaltojen avulla. Ultraäänianturi käyttää kaikuanturia lähettääkseen ja vastaanottaakseen ultraäänipulsseja, jotka välittävät takaisin tietoja kohteen läheisyydestä

Vaihe 5: Anturilevyn liittäminen Arduinoon

Leipälevyn liitäntäanturi Arduinoon
Leipälevyn liitäntäanturi Arduinoon
Leipälevyn liitäntäanturi Arduinoon
Leipälevyn liitäntäanturi Arduinoon

Käytin johtoja uroslevyn ja arduinon välisen yhteyden muodostamiseen.

Huomaa, että ping -anturillasi voi olla erilainen pin -asettelu, mutta siinä pitäisi olla jännite-, maadoitus-, liipaisintappi ja kaiku.

Vaihe 6: Moottorin suoja

Moottorin suojus
Moottorin suojus

Arduino -levyt eivät voi ohjata tasavirtamoottoreita yksinään, koska niiden tuottamat virrat ovat liian pieniä. Tämän ongelman ratkaisemiseksi käytämme moottorinsuojia. askelmoottori. … Näiden nastojen avulla voit valita käynnistettävän moottorikanavan, määrittää moottorin suunnan (napaisuuden), asettaa moottorin nopeuden (PWM), pysäyttää ja käynnistää moottorin ja seurata kunkin kanavan virrankulutusta

Vaihe 7: Liitä moottorisuoja Arduinoon

Moottorisuojan yhdistäminen Arduinoon
Moottorisuojan yhdistäminen Arduinoon

Kiinnitä vain moottorin suojus arduinoon anturijohdot rypistyneinä

Vaihe 8: 4 moottorin ja akun liittäminen suojaan

4 moottorin ja akun kytkeminen suojaan
4 moottorin ja akun kytkeminen suojaan

Jokaisessa moottorisuojuksessa on (vähintään) kaksi kanavaa, toinen moottoreille ja toinen virtalähteelle, yhdistä ne toisiinsa nähden

Vaihe 9: Ohjelmoi robotti

suorita tämä koodi

#Sisällytä #Sisällytä

NewPing -luotain (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMoottorimoottori1 (1, MOTOR12_1KHZ); AF_DCMoottorimoottori2 (2, MOTOR12_1KHZ); AF_DCMoottorimoottori3 (3, MOTOR34_1KHZ); AF_DCMoottorimoottori4 (4, MOTOR34_1KHZ); Servo myservo;

#define TRIG_PIN A2 #define ECHO_PIN A3 #define MAX_DISTANCE 150 #define MAX_SPEED 100 #define MAX_SPEED_OFFSET 10

boolean menee Eteenpäin = false; int etäisyys = 80; int speedSet = 0;

void setup () {

myservo.attach (10); myservo.write (115); viive (2000); etäisyys = lukuPing (); viive (100); etäisyys = lukuPing (); viive (100); etäisyys = lukuPing (); viive (100); etäisyys = lukuPing (); viive (100); }

tyhjä silmukka () {int etäisyysR = 0; int etäisyysL = 0; viive (40); if (etäisyys <= 15) {moveStop (); viive (50); liikkua takaperin(); viive (150); moveStop (); viive (100); etäisyysR = lookRight (); viive (100); etäisyysL = lookLeft (); viive (100);

jos (etäisyysR> = etäisyysL) {käännösoikea (); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } etäisyys = lukuPing (); }

int lookRight () {myservo.write (50); viive (250); int etäisyys = lukuPing (); viive (50); myservo.write (100); paluumatka; }

int lookLeft () {myservo.write (120); viive (300); int etäisyys = lukuPing (); viive (100); myservo.write (115); paluumatka; viive (100); }

int readPing () {viive (70); int cm = kaikuluotain.ping_cm (); jos (cm == 0) {cm = 200; } paluu cm; }

void moveStop () {motor1.run (RELEASE); motor2.run (RELEASE); motor3.run (RELEASE); motor4.run (RELEASE); } void moveForward () {

jos (! menee eteenpäin) {menee eteenpäin = totta; motor1.run (ETEENPÄIN); motor2.run (ETEENPÄIN); motor3.run (ETEENPÄIN); motor4.run (eteenpäin); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); viive (5); }}}

void moveBackward () {goForward = false; motor1.run (TAKAISIN); motor2.run (TAKAISIN); motor3.run (TAKAISIN); motor4.run (TAKAISIN); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); viive (5); } void turnLeft () {motor1.run (BACKWARD); motor2.run (TAKAISIN); motor3.run (ETEENPÄIN); motor4.run (eteenpäin); viive (500); motor1.run (ETEENPÄIN); motor2.run (ETEENPÄIN); motor3.run (ETEENPÄIN); motor4.run (eteenpäin); }

void turnLeft () {motor1.run (BACKWARD); motor2.run (TAKAISIN); motor3.run (ETEENPÄIN); motor4.run (eteenpäin); viive (500); motor1.run (ETEENPÄIN); motor2.run (ETEENPÄIN); motor3.run (ETEENPÄIN); motor4.run (eteenpäin); }

Suositeltava: