Përmbajtje:

Pengesa Shmangia e Makinës Robotike: 9 Hapa
Pengesa Shmangia e Makinës Robotike: 9 Hapa

Video: Pengesa Shmangia e Makinës Robotike: 9 Hapa

Video: Pengesa Shmangia e Makinës Robotike: 9 Hapa
Video: Поездка на невероятном японском поезде с торговыми автоматами | Хинотори Экспресс 2024, Korrik
Anonim
Pengesa Shmangia e Makinës Robotike
Pengesa Shmangia e Makinës Robotike
Pengesa Shmangia e Makinës Robotike
Pengesa Shmangia e Makinës Robotike

Si të ndërtoni një pengesë duke shmangur robotin

Hapi 1: Kutia e Zezë

Kutia e Zezë
Kutia e Zezë

hapi i parë kam përdorur një kuti të zezë si bazë për robotin tim.

Hapi 2: Arduino

Arduino
Arduino

Arduino është truri i të gjithë sistemit dhe orkestron motorët tanë

Hapi 3: Bashkimi i Arduino në Blackbox

Bashkëngjitni Arduino në Blackbox
Bashkëngjitni Arduino në Blackbox

Unë e bashkova arduinon në kutinë e zezë duke përdorur zam të nxehtë

Hapi 4: Sensori tejzanor

Sensor tejzanor
Sensor tejzanor

Për të krijuar një robot që mund të lëvizë vetë, ne kemi nevojë për një lloj inputi, një sensor që i përshtatet qëllimit tonë. Një sensor tejzanor është një instrument që mat distancën në një objekt duke përdorur valë zanore tejzanor. Një sensor tejzanor përdor një dhënës për të dërguar dhe marrë impulse tejzanor që transmetojnë informacione në lidhje me afërsinë e një objekti

Hapi 5: Lidhja e Breadboard e Sensorit me Arduino

Lidhja e Breadboard e Sensorit me Arduino
Lidhja e Breadboard e Sensorit me Arduino
Lidhja e Breadboard e Sensorit me Arduino
Lidhja e Breadboard e Sensorit me Arduino

Kam përdorur tela për të përcaktuar lidhjen midis dërrasës së bukës dhe arduino.

Kushtojini vëmendje që sensori juaj i pingut mund të ketë një plan urbanistik të ndryshëm të kunjave, por duhet të ketë një kunj të tensionit, kunj tokëzues, kunj trig dhe një kunj jehonë.

Hapi 6: Mburoja e motorit

Mburoja motorike
Mburoja motorike

Pllakat Arduino nuk mund t'i kontrollojnë motorët DC, sepse rrymat që ata prodhojnë janë shumë të ulëta. Për të zgjidhur këtë problem ne përdorim mburoja motorike. Mburoja e motorit ka 2 kanale, e cila lejon kontrollin e dy motorëve DC, ose 1 motor stepper. … Duke iu drejtuar këtyre kunjave ju mund të zgjidhni një kanal motorik për të filluar, specifikoni drejtimin e motorit (polariteti), vendosni shpejtësinë e motorit (PWM), ndaloni dhe ndizni motorin dhe monitoroni thithjen aktuale të secilit kanal

Hapi 7: Lidhni Motor Shield me Arduino

Lidhja e Motor Shield me Arduino
Lidhja e Motor Shield me Arduino

Thjesht lidhni mburojën e motorit në arduino me telat e sensorit të shtypur

Hapi 8: Lidhja e 4 motorëve dhe baterive me mburojën

Lidhja e 4 motorëve dhe baterive me mburojën
Lidhja e 4 motorëve dhe baterive me mburojën

Çdo Motor Shield ka (të paktën) dy kanale, një për motorët dhe një për një burim energjie, Lidhini ato në lidhje me njëri -tjetrin

Hapi 9: Programoni Robotin

ekzekutoni këtë kod

#përfshi #përfshi

Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DC Motori motor1 (1, MOTOR12_1KHZ); AF_DC Motori motor2 (2, MOTOR12_1KHZ); AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DC Motori motor4 (4, MOTOR34_1KHZ); Servo myservo;

#define TRIG_PIN A2 #përcakto ECHO_PIN A3 #përcakto MAX_DISTANC 150 150 #përcakto MAX_SPEED 100 #përcakto MAX_SPEED_OFFSET 10

boolean shkonPërpara = false; int distanca = 80; int speedSet = 0;

void setup () {

myservo.tash (10); myservo.shkruaj (115); vonesa (2000); distanca = lexoPing (); vonesë (100); distanca = lexoPing (); vonesë (100); distanca = lexoPing (); vonesë (100); distanca = lexoPing (); vonesë (100); }

lak void () {int distanceR = 0; int distancaL = 0; vonesa (40); nëse (distanca <= 15) {moveStop (); vonesë (50); moveBackward (); vonesa (150); moveStop (); vonesë (100); distanceR = lookRight (); vonesë (100); distanceL = lookLeft (); vonesë (100);

if (distanceR> = distanceL) {turnRight (); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distance = readPing (); }

int lookRight () {myservo.write (50); vonesë (250); int distance = readPing (); vonesë (50); myservo.shkruaj (100); distanca e kthimit; }

int lookLeft () {myservo.shkruaj (120); vonesë (300); int distance = readPing (); vonesë (100); myservo.shkruaj (115); distanca e kthimit; vonesë (100); }

int readPing () {vonesë (70); int cm = sonar.ping_cm (); nëse (cm == 0) {cm = 200; } cm ktheje; }

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

nëse (! shkonPërpara) {shkonPërpara = e vërtetë; motor1.run (PARA); motor2.run (PARA); motor3.run (PARA); motor4.run (PARA); për (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); vonesa (5); }}}

void moveBackward () {shkonForward = false; motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.run (BACKWARD); motor4.run (BACKWARD); për (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); vonesa (5); } void turnLeft () {motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.run (PARA); motor4.run (PARA); vonesë (500); motor1.run (PARA); motor2.run (PARA); motor3.run (PARA); motor4.run (PARA); }

void turnLeft () {motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.run (PARA); motor4.run (PARA); vonesë (500); motor1.run (PARA); motor2.run (PARA); motor3.run (PARA); motor4.run (PARA); }

Recommended: