Fablab ado > mbot : déplacement et BIP

(actualisé le ) par Antoine

Voici le code pour un déplacement et une sonnerie appelée BIP  :

pour configurer le bip, modifiez le "buzzer tone" dans void BIP

#include "MeMCore.h"
#define ledPin 13
#define buttonPin 7
#define leftLed 1
#define rightLed 0

#define NONE 0
#define GAUCHE 1
#define DROITE 2
#define AVANT 3

MeRGBLed led(0, 30);
MeLineFollower lineFinder(PORT_2); /* Line Finder module can only be connected to PORT_2, PORT_4, PORT_5, PORT_6 of base shield. */
MeDCMotor motG(M1); //Motor1 is Left Motor
MeDCMotor motD(M2); //Motor2 is Right Motor
MeBuzzer buzzer;
MeLightSensor lightSensor(PORT_8);
MeUltrasonicSensor ultrasonic(PORT_3);

int oldMove=NONE;
int speedMot=100;

void BIP ()
{
 buzzer.tone(600, 200);   //Buzzer sounds 600Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(700, 200);   //Buzzer sounds 700Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(800, 200);   //Buzzer sounds 800Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(900, 200);   //Buzzer sounds 900Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(1000, 200);   //Buzzer sounds 1000Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(1200, 200);   //Buzzer sounds 2000Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(400, 200);  //Buzzer sounds 400Hz for 200ms
 delay(1000);              //Pause for 1000ms, Buzzer no sound
}



void setup(){}

void loop()
{
 //motor.run() maximum speed is 255 to -255, 0 is stop
 motG.run(-speedMot); //Motor1 (Left)  forward is -negative
 motD.run(speedMot);  //Motor2 (Right) forward is +positive
 delay(1000);

 motG.run(speedMot); //Motor1 (Left)  forward is -negative
 motD.run(-speedMot);  //Motor2 (Right) forward is +positive
 delay(1000);
 
 motG.stop(); //Stop Motor1
 motD.stop(); //Stop Motor1
 delay(500);

 BIP();
}

Avec une mélodie, (à modifier) c’est encore mieux !

#include "MeMCore.h"
#define ledPin 13
#define buttonPin 7
#define leftLed 1
#define rightLed 0

#define NONE 0
#define GAUCHE 1
#define DROITE 2
#define AVANT 3

MeRGBLed led(0, 30);
MeLineFollower lineFinder(PORT_2); /* Line Finder module can only be connected to PORT_2, PORT_4, PORT_5, PORT_6 of base shield. */
MeDCMotor motG(M1); //Motor1 is Left Motor
MeDCMotor motD(M2); //Motor2 is Right Motor
MeBuzzer buzzer;
MeLightSensor lightSensor(PORT_8);
MeUltrasonicSensor ultrasonic(PORT_3);

int oldMove=NONE;
int speedMot=100;

void BIP ()
{
 buzzer.tone(392, 900);   //Buzzer sounds 600Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(392, 900);   //Buzzer sounds 700Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(392, 900);   //Buzzer sounds 800Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(329.63, 900);   //Buzzer sounds 800Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(493.88, 450);   //Buzzer sounds 900Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(392, 900);   //Buzzer sounds 1000Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(329.63, 450);   //Buzzer sounds 2000Hz for 200ms
 delay(20);  
 buzzer.tone(493.88, 900);   //Buzzer sounds 900Hz for 200ms
 delay(20);              //Pause for 20ms, Buzzer no sound
 buzzer.tone(392, 900);  //Buzzer sounds 400Hz for 200ms
 delay(1000);              //Pause for 1000ms, Buzzer no sound
}



void setup(){}

void loop()
{
 //motor.run() maximum speed is 255 to -255, 0 is stop
 motG.run(-speedMot); //Motor1 (Left)  forward is -negative
 motD.run(speedMot);  //Motor2 (Right) forward is +positive
 delay(1000);

 motG.run(speedMot); //Motor1 (Left)  forward is -negative
 motD.run(-speedMot);  //Motor2 (Right) forward is +positive
 delay(1000);
 
 motG.stop(); //Stop Motor1
 motD.stop(); //Stop Motor1
 delay(500);

 BIP();
}