ROBOT de CONTROL MANUAL / autónoma (mediante la técnica de la fusión de sensores) (8 / 12 paso)

Paso 8: El código: - el sensor HC-SR04

 const int serialPeriod = 250; // a period of 250ms = a frequency of 4 Hz unsigned long timeSerialDelay = 0;const int UltraloopPeriod = 20; // a period of 20ms = a frequency of 50 Hz unsigned UltraLoopDelay = 0; const int sensor_1_in = 10; // input/output from the sensor_1 const int sensor_1_out = 13; const int sensor_2 = 11; const int sensor_3 = 12; int motorL1 = 6; // output for motor driver pin 2 int motorL2 = 7; // output for motor driver pin 7 int motorR1 = 8; // output for motor driver pin 15 int motorR2 = 9; // output for motor driver pin 10 int d0 = 2; // input from DTMF pin D0 int d1 = 3; // input from DTMF pin D1 int d2 = 4; // input from DTMF pin D2 int d3 = 5; // input from DTMF pin D3 int ultrasonicTime; // variable to store time int ultrasonicDistance; // variable to store distance calculated void setup() { Serial.begin(9600); // setting serial communication speed pinMode(motorL1, OUTPUT); pinMode(motorL2, OUTPUT); pinMode(motorR1, OUTPUT); pinMode(motorR2, OUTPUT); pinMode(d0, INPUT); pinMode(d1, INPUT); pinMode(d2, INPUT); pinMode(d3, INPUT); }void loop() { int z = digitalRead(d0); int y = digitalRead(d1); int x = digitalRead(d2); int w = digitalRead(d3); /*----------------------------------------- M A N U A L M O D E ---------------------------------------*/ if(w == LOW) { if((w == LOW)&&(x == LOW)&&(y == HIGH)&&(z == LOW)) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } if((w == LOW)&&(x == HIGH)&&(y == LOW)&&(z == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } if((w == LOW)&&(x == HIGH)&&(y == LOW)&&(z == LOW)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } if((w == LOW)&&(x == HIGH)&&(y == HIGH)&&(z == LOW)) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } if((w == LOW)&&(x == HIGH)&&(y == HIGH)&&(z == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, LOW); } } /*----------------------------------- A U T O N O M O U S M O D E -----------------------------------*/ if(w == HIGH) { viewDistance(); if((millis() - UltraLoopDelay) >= UltraloopPeriod) { readUltrasonicsensor_1(); motorStart(); UltraLoopDelay = millis(); } } } void readUltrasonicsensor_1() // CHANGED { digitalWrite(sensor_1_out, LOW); delay(2); digitalWrite(sensor_1_out, HIGH); delay(10); digitalWrite(sensor_1_out, LOW); ultrasonicTime = pulseIn(sensor_1_in, HIGH); ultrasonicDistance = (ultrasonicTime/2)/29; //calculation to measure the distance of obstacle from ultrasonic sensor }void motorStart() //function to drive the motor according to sensed distance { int irsL = digitalRead(sensor_2); //IR left sensor int irsR = digitalRead(sensor_3); //IR right sensor if(ultrasonicDistance > 10) //this part code works to prevent side collisions even { //when there is no obstacle in front of the robot if((irsL == LOW)&&(irsR== LOW)) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } if((irsL == HIGH)&&(irsR == LOW)) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } if((irsL == LOW)&&(irsR == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } if((irsL == HIGH)&&(irsR == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } } if(ultrasonicDistance < 10) //this part of code works when there is some { //obstacle is infront of the robot and also if((irsL == HIGH)&&(irsR == LOW)) //to prevent side collision { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } if((irsL == LOW)&&(irsR == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, HIGH); digitalWrite(motorR2, LOW); } if((irsL == HIGH)&&(irsR == HIGH)) { digitalWrite(motorL1, LOW); digitalWrite(motorL2, HIGH); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } if((irsL == LOW)&&(irsR == LOW)) { digitalWrite(motorL1, HIGH); digitalWrite(motorL2, LOW); digitalWrite(motorR1, LOW); digitalWrite(motorR2, HIGH); } } }/*---------------------------CHECKING THE ULTRSONIC SENSOR-------------------------*/void viewDistance() //function to view distance on serial monitor { //to check if the ultra sonic sensor code working properly if((millis() - timeSerialDelay) >= serialPeriod) { Serial.print("Distance"); Serial.print(ultrasonicDistance); Serial.print("cm"); Serial.println(); timeSerialDelay = millis(); } } 

Artículos Relacionados

Araña de Terra: Robot de reparación autónoma

Araña de Terra: Robot de reparación autónoma

Este proyecto fue diseñado y construido por los estudiantes en el programa de arquitectura en la Universidad de California de los artes; Manali Chitré (MAAD), Anh Vu (BArch) y Mallory Van Ness (marzo). El curso de estudio se llamó máquinas de arquite
ROBOT de modo DUAL => (autónomo / MANUAL CONTROL)

ROBOT de modo DUAL => (autónomo / MANUAL CONTROL)

DTMF o doble tono multi frecuencia es ingenioso poco controlantes máquinas con su teléfono móvil. Este instructivo usted, amable lector muestra cómo hacer un más barato que la suciedad DTMF controlada robot que puede funcionar autónomamente, yeh! así
Swarmscapers: Robots de impresión 3D móvil autónoma

Swarmscapers: Robots de impresión 3D móvil autónoma

Swarmscapers es un mes 2 proyecto de larga investigación realizada en el estudio de Máquinas de arquitectura creativa , impartido por Jason Kelly Johnson y Michael Shiloh en el California College of the Arts en el Laboratorio de Arte Digital. Es una
K-9 2.0. Perro Robot controlada y Autónoma de WiFi.

K-9 2.0. Perro Robot controlada y Autónoma de WiFi.

NOTA:En el paso 22, he publicado una actualización, explicando algunos recientes cambios y mejoras que he hecho, principalmente al sistema eléctrico de K-9 y sensor de matriz que puede encontrar útiles.CaracterísticasAcrílico diseño y resistente made
Manual de robot de control atado con alambre

Manual de robot de control atado con alambre

Simple con cable Robot Manual atado por el control con cable, cable 4 x 2 o 4 x 4! engranaje de la c.c. motor rpm 300-1000 rpm.. .racing 4 x 4, mod robot, guerras robot luchan! Si quiere crear un robot en su casa, déjenme decirles esto. Básicamente e
Robot de AAA (autónoma analógico Arduino)

Robot de AAA (autónoma analógico Arduino)

la AAA Robot es un robot perfecto para principiantes. Es versátil, fácil de construir y discute muchos de los temas entre deben aprender, incluyendo pero no limitado a interruptores de transistor, motor de sensores analógicos de nad. Este Instructabl
Autónoma centinela Paintball

Autónoma centinela Paintball

hacer tu propio, personalizado centinela autónomo.Un subcampeón ganador y finalista del concurso de microcontrolador.Este instructable es obsoleto. Para la versión más reciente del tutorial, consulte el sitio web . ¡ Saludos!Este centinela arma autón
Marte - Rover múltiples funciones autónoma (FPV)

Marte - Rover múltiples funciones autónoma (FPV)

Arduino es un microcontrolador muy versátil, y he visto muchas aplicaciones diferentes. Pero quería ver cuánto podría hacer con uno solito. Tenía una idea muy básica de cómo utilizar arduino cuando comencé este proyecto. Empecé los fundamentos y cons
¿R/C autónoma Tonka camiones con seguimiento de cabeza de FPV (Tonka Cumbre construir)

¿R/C autónoma Tonka camiones con seguimiento de cabeza de FPV (Tonka Cumbre construir)

recuerda en el día, jugando con su gran camión Tonka, correr a través de todo, sentir que fue un impresionante camión que podría ir a cualquier parte? O ¿vives en un área urbana relativamente y le encantaría ir cubriendo pero no puede porque es demas
FPGA-accionado la búsqueda autónoma y rescate de vehículos

FPGA-accionado la búsqueda autónoma y rescate de vehículos

UPDATE2: revise http://www.digilentdesigncontest.com/2015-eu-contest-entries.html para el código fuente completo y la documentación.UPDATE1: añadido un nuevo módulo - 3 ejes magnetómetro (brújula digital). Consulte el paso 2 para más detalles.Este pr
Brazo robótico de Gripforce autónoma estabilizador

Brazo robótico de Gripforce autónoma estabilizador

El Brazo robótico autónomo de Gripforce estabilizador es un brazo de robot capaz de aplicar la cantidad exacta de presión necesaria para levantar cualquier objeto sin romper ni dejarlo caer, como se puede ver en el video. Primero se demuestra en el m
Autónoma de futbolín de mesa

Autónoma de futbolín de mesa

el objetivo principal del proyecto era completar un prototipo de trabajo para una mesa de futbolín autónoma (AFT), donde un jugador humano enfrenta a un rival robótico. Desde la perspectiva humana del juego, la mesa es muy similar a una tabla regular
PiniSEA - un barco océano autónoma - mar Tracker

PiniSEA - un barco océano autónoma - mar Tracker

El vehículo verde agua autónoma para rastrear el océano. Mecánicamente se inspiró en "Wave Glider" y tiene el propósito principal para rastrear el lugar de pesca. También puede utilizar para medir la condición del ambiente en el océano (nivel de
Loro autónoma AR Drone 2.0 vuelo

Loro autónoma AR Drone 2.0 vuelo

Este instructivo le dará una forma muy sencilla y rápida (< 15 minutos) para tener un loro de AR Drone 2.0 volar autónomamente con código escrito por ti! La mejor parte de este proyecto es sólo requiere el drone y una laptop (mac o windows). Sin modi