Pololu Zumo Guide Utilisateur page 42

Table des Matières

Publicité

* Cette exemple utilise également la bibliothèque RunningAverage (domaine publique) du site Arduino;
* Le code utile a été copié dans ce fichier .ino. Vous n'avez donc pas besoin de le
* télécharger séparément .
*/
// #define LOG_SERIAL // écrire la sortie du log vers le port série
#define LED 13
Pushbutton button(ZUMO_BUTTON);
// Paramètre de l'accéléromètre
#define RA_SIZE 3
// Nombre de lectures à inclure dans la moyenne de accélération durant la phase de déplacement (running average of accelerometer readings)
#define XY_ACCELERATION_THRESHOLD 2400
// Configuration du réseau senseur infrarouge (Reflectance Sensor)
#define NUM_SENSORS 6
unsigned int
sensor_values[NUM_SENSORS];
// Ce paramètre pourrait avoir besoin d'être mis au point en fonction des conditions de luminosité, surface, etc.
#define QTR_THRESHOLD 1500
// microseconds
ZumoReflectanceSensorArray sensors(QTR_NO_EMITTER_PIN);
// Configuration moteur
ZumoMotors motors;
// Ces valeurs pourrait avoir besoin d'être mis-au-pnt en fonction des différents types de moteur
// 0 = à l'arrêt, 400 = pleine vitesse
#define REVERSE_SPEED
200
#define TURN_SPEED
200
#define SEARCH_SPEED
200
// Vitesse soutenue SUSTAINED_SPEED après la vitesse FULL_SPEED appliquée durant FULL_SPEED_DURATION_LIMIT ms
#define SUSTAINED_SPEED 400
#define FULL_SPEED
400
#define STOP_DURATION
100
// ms
#define REVERSE_DURATION 200
#define TURN_DURATION
300
// ms
#define RIGHT 1
#define LEFT -1
enum
ForwardSpeed { SearchSpeed, SustainedSpeed, FullSpeed };
ForwardSpeed _forwardSpeed;
// Configuration de la vitesse actuelle
unsigned long
full_speed_start_time;
#define FULL_SPEED_DURATION_LIMIT
// Effet sonore
ZumoBuzzer buzzer;
const
char
sound_effect[] PROGMEM
// Utiliser V0 pour supprimer le son; v15 pour volume max
// Minutage
unsigned long
loop_start_time;
unsigned long
last_turn_time;
unsigned long
contact_made_time;
#define MIN_DELAY_AFTER_TURN
#define MIN_DELAY_BETWEEN_CONTACTS 1000
// classe RunningAverage
// Basé sur la bibliothèque RunningAverage pour Arduino
// source: http://playground.arduino.cc/Main/RunningAverage
template
<typename
T>
class RunningAverage
{
public:
RunningAverage(void);
RunningAverage(int);
~RunningAverage();
void
clear();
void
addValue(T);
T getAverage() const;
void
fillValue(T, int);
protected:
int
_size;
int
_cnt;
int
_idx;
T _sum;
T
*
_ar;
static
T zero;
};
// Classe Accelerometer -- étend la bibliothèque LSM303 pour supporter la lecture et moyenne des vecteurs
// d'accélérations x-y provenant de l'accéléromètre/magnétomètre LSM303DLHC.
class Accelerometer
:
public LSM303
{
typedef struct
acc_data_xy
{
unsigned long
timestamp;
int
x;
int
y;
float
dir;
// bouton poussoir sur la broche 12
// pour la détection de contact (~16000 = mangitude de l'accélération du à la gravité)
// ms
250
// ms
=
"O4 T100 V15 L4 MS g12>c12>e12>G6>E12
400
// ms = délais minimum avant la détection d'un événement collision
// ms = délais minimum entre avant la détection d'un nouvel événement collision
// Mélodie de "charge"
ML>G2";

Publicité

Table des Matières
loading

Table des Matières