
Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:41


Kuinka rakentaa este robotin välttämiseksi
Vaihe 1: Musta laatikko

Ensimmäisessä vaiheessa käytin robottini pohjana mustaa laatikkoa.
Vaihe 2: Arduino

Arduino on koko järjestelmän aivot ja järjestää moottorimme
Vaihe 3: Arduinon liittäminen Blackboxiin

Kiinnitin arduinon blackboxiin kuumaliimalla
Vaihe 4: 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


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

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

Kiinnitä vain moottorin suojus arduinoon anturijohdot rypistyneinä
Vaihe 8: 4 moottorin ja akun liittäminen 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:
Esteen välttäminen LEGO -robotti: 8 vaihetta (kuvilla)

Esteen välttäminen LEGO Robot: Rakastamme LEGOa ja rakastamme myös Crazy Circuitsia, joten halusimme yhdistää nämä kaksi yksinkertaiseksi ja hauskaksi robotiksi, joka voi välttää törmäämisen seiniin ja muihin esineisiin. Näytämme sinulle, miten rakensimme omamme, ja hahmotamme tarvittavat perusteet, jotta voit rakentaa omasi
Esteen välttäminen robotilta Arduino Nanon avulla: 5 vaihetta

Esteen välttäminen robotilta Arduino Nanon avulla: Tässä ohjeessa kuvailen, kuinka voit tehdä esteen välttämällä robottia Arduinolla
Esteen välttäminen melovene Arudinon kanssa: 9 vaihetta

Esteitä välttävä meluvene Arudinon kanssa: Hei ystävät, tässä opetusohjelmassa näytän sinulle, kuinka tehdä esteiden välttävä melovene. Sain tämän idean rentoutuessani kalalammeni lähellä ja ajatellessani ideaa muoviseen haasteeseen. Huomasin, että muovi täällä tulee olemaan erittäin
Esteen välttäminen robotilla, jossa IR -anturit ilman mikro -ohjainta: 6 vaihetta

Esteen välttäminen robotilla IR -antureilla ilman mikrokontrolleria: No tämä projekti on vanhempi projekti, tein sen vuonna 2014 heinä- tai elokuussa, ajattelin jakaa sen kanssasi. Se on yksinkertainen este, jolla vältetään robotti, joka käyttää IR -antureita ja toimii ilman mikro -ohjainta. IR -anturit käyttävät opamp IC
Esteen välttäminen Rover Dexterin kanssa: 4 vaihetta

Esteen välttäminen Roverin kanssa Dexterin kanssa: Jos olet uusi Dexter-yhteisössä, katso https://www.instructables.com/id/Getting-Started-With-Dexter/ ja ultraääni -anturi