
Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38


Jak postavit robota, který se vyhýbá překážkám
Krok 1: Black Box

v prvním kroku jsem jako základ svého robota použil černou skříňku.
Krok 2: Arduino

Arduino je mozek celého systému a orchestruje naše motory
Krok 3: Připojení Arduina k Blackboxu

Arduino jsem připevnil na blackbox pomocí horkého lepidla
Krok 4: Ultrazvukový senzor

Abychom mohli robota, který se dokáže sám pohybovat, potřebujeme nějaký vstup, senzor, který odpovídá našemu cíli. Ultrazvukový senzor je nástroj, který měří vzdálenost k předmětu pomocí ultrazvukových zvukových vln. Ultrazvukový senzor používá snímač k odesílání a přijímání ultrazvukových impulsů, které přenášejí zpět informace o blízkosti objektu
Krok 5: Breadboard připojení senzoru k Arduinu


Použil jsem dráty k propojení spojení mezi prkénkem a arduinem.
Dávejte pozor, aby váš snímač ping měl jiné rozložení pinů, ale mělo by mít napěťový pin, zemnící pin, trigonový pin a echo pin.
Krok 6: Motorový štít

Desky Arduino nemohou samy řídit stejnosměrné motory, protože generované proudy jsou příliš nízké. K vyřešení tohoto problému používáme stínění motoru. Štít motoru má 2 kanály, což umožňuje ovládání dvou stejnosměrných motorů nebo 1 krokový motor. … Adresováním těchto pinů můžete vybrat kanál motoru, který chcete spustit, určit směr motoru (polaritu), nastavit otáčky motoru (PWM), zastavit a spustit motor a sledovat absorpci proudu každého kanálu
Krok 7: Připojení štítu motoru k Arduinu

Jednoduše připevněte stínění motoru k arduinu se zalomenými dráty senzoru
Krok 8: Připojení 4 motorů a baterií k štítu

Každý štít motoru má (alespoň) dva kanály, jeden pro motory a jeden pro zdroj energie, propojte je navzájem
Krok 9: Naprogramujte robota
spusťte tento kód
#include #include
NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
AF_DC Motor motoru1 (1, MOTOR12_1KHZ); AF_DC Motor motoru2 (2, MOTOR12_1KHZ); AF_DC Motor motoru3 (3, MOTOR34_1KHZ); AF_DC Motor motoru4 (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 goesForward = false; int vzdálenost = 80; int speedSet = 0;
neplatné nastavení () {
myservo.attach (10); myservo.write (115); zpoždění (2000); vzdálenost = readPing (); zpoždění (100); vzdálenost = readPing (); zpoždění (100); vzdálenost = readPing (); zpoždění (100); vzdálenost = readPing (); zpoždění (100); }
void loop () {int vzdálenostR = 0; int vzdálenostL = 0; zpoždění (40); if (vzdálenost <= 15) {moveStop (); zpoždění (50); jít zpět(); zpoždění (150); moveStop (); zpoždění (100); distanceR = lookRight (); zpoždění (100); vzdálenostL = lookLeft (); zpoždění (100);
if (distanceR> = distanceL) {turnRight (); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } vzdálenost = readPing (); }
int lookRight () {myservo.write (50); zpoždění (250); int vzdálenost = readPing (); zpoždění (50); myservo.write (100); návratová vzdálenost; }
int lookLeft () {myservo.write (120); zpoždění (300); int vzdálenost = readPing (); zpoždění (100); myservo.write (115); návratová vzdálenost; zpoždění (100); }
int readPing () {zpoždění (70); int cm = sonar.ping_cm (); if (cm == 0) {cm = 200; } vrátit cm; }
void moveStop () {motor1.run (RELEASE); motor2.run (RELEASE); motor3.run (RELEASE); motor4.run (RELEASE); } void moveForward () {
if (! goesForward) {goesForward = true; motor1.run (VPŘED); motor2.run (VPŘED); motor3.run (VPŘED); motor4.run (VPŘED); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); zpoždění (5); }}}
void moveBackward () {goesForward = false; motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.run (BACKWARD); motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); zpoždění (5); } void turnLeft () {motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.run (VPŘED); motor4.run (VPŘED); zpoždění (500); motor1.run (VPŘED); motor2.run (VPŘED); motor3.run (VPŘED); motor4.run (VPŘED); }
void turnLeft () {motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.run (VPŘED); motor4.run (VPŘED); zpoždění (500); motor1.run (VPŘED); motor2.run (VPŘED); motor3.run (VPŘED); motor4.run (VPŘED); }
Doporučuje:
Robot vyhýbající se překážkám pomocí Arduino Nano: 5 kroků

Robot vyhýbající se překážkám pomocí Arduino Nano: V tomto návodu popíšu, jak můžete pomocí Arduina vytvořit robota vyhýbajícího se překážkám
Robot vyhýbající se překážkám s infračervenými senzory bez mikrokontroléru: 6 kroků

Robot vyhýbající se překážkám s infračervenými senzory bez mikrokontroléru: Tento projekt je starší projekt, udělal jsem ho v roce 2014 v měsíci červenci nebo srpnu, přemýšlel jsem o tom, že se o něj s vámi podělím. Je to jednoduchý robot vyhýbající se překážkám, který používá IR senzory a pracuje bez mikrokontroléru. IR senzory používají operační zesilovač IC
Robot vyhýbající se překážkám (Arduino): 8 kroků (s obrázky)

Robot vyhýbající se překážkám (Arduino): Zde vás poučím o výrobě robota vyhýbajícího se překážkám na základě Arduina. Doufám, že udělám krok za krokem průvodce, jak tohoto robota udělat velmi jednoduchým způsobem. Robot vyhýbající se překážkám je plně autonomní robot, který se dokáže vyhnout jakýmkoli obs
Zatažený mrak vás uzdraví (Robot vyhýbající se překážkám s funkcí sběru): 8 kroků

Cloudy Cloud vás uzdraví (Robot vyhýbající se překážkám s funkcí sběru): Zbytečný stroj - robot Arduino
Robot vyhýbající se překážkám pomocí mikrokontroléru (Arduino): 5 kroků

Robot vyhýbající se překážkám pomocí mikrokontroléru (Arduino): V tomto návodu vás naučím, jak vytvořit robota vyhýbajícího se překážkám, který pracuje s Arduinem. Arduino musíte znát. Arduino je řídicí deska, která používá mikrokontrolér atmega. Můžete použít jakoukoli verzi Arduina, ale já