Commander une voiture avec PhysicalEtoys Exercice de programmation du robot avec PhysicalEtoys Piloter le robot Robux avec un joystick virtuel Piloter le robot avec une télécommande Rendre le robot sumo autonome
La fonction d’un robot sumo est de se diriger vers son adversaire pour le pousser. Mais il ne doit pas sortir de la zone.
Un capteur à ultrason va permettre de détecter l’adversaire pour foncer sur lui.
Un capteur InfraRouge détectera la fin de la zone de jeu pour éviter de sortir.
On utilisera un capteur sharp HC-SR04.
http://www.arobose.com/shop/capteur...
#include <Servo.h>
#define trigPin 12
#define echoPin 13
Servo servo_pin_9;
int us;
Servo servo_pin_8;
void setup()
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
us = 40 ;
servo_pin_8.attach(8);
servo_pin_9.attach(9);
}
void loop()
{
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance >= 200 || distance <= 0){
Serial.println("Out of range");
}
else {
Serial.print(distance);
Serial.println(" cm");
}
if ((distance) > (us))
{
servo_pin_8.write( 0 );
servo_pin_9.write( 0 );
delay(200);
}
else
{
servo_pin_8.write( 0 );
servo_pin_9.write( 180 );
delay(200);
}
}
On utilisera un capteur DFrobot de ligne
http://www.arobose.com/shop/capteur...
int ir_Pin = 0; // connection analog 0
void setup()
{
Serial.begin(9600);
}
void loop()
{
int ir_Value = analogRead(ir_Pin);
Serial.println(ir_Value);
}
#include <Servo.h>
#define trigPin 12
#define echoPin 13
Servo servo_pin_9;
int us;
Servo servo_pin_8;
int ir_Pin = 0;
void setup()
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
us = 40 ;
servo_pin_8.attach(8);
servo_pin_9.attach(9);
}
void loop()
{
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
// if (distance >= 200 || distance <= 0){
// Serial.println("Out of range");
// }
// else {
// Serial.print(distance);
// Serial.println(" cm");
// }
int ir_Value = analogRead(ir_Pin);
Serial.print(ir_Value);
Serial.println();
if (ir_Value>=100)
{
servo_pin_8.write( 180 );
servo_pin_9.write( 0 );
delay(500);
}
else
{
if ((distance) > (us))
{
servo_pin_8.write( 0 );
servo_pin_9.write( 0 );
delay(200);
}
else
{
servo_pin_8.write( 0 );
servo_pin_9.write( 180 );
delay(200);
}
}
}