Steun onze actie WeGoSTEM

Voor onze actie WeGoSTEM zoeken we nog vrijwilligers. Doe mee via WeGoSTEM.be/meedoen

La commande de robots avec le panneau du capteur

Le panneau du capteur de robot contient tous les capteurs nécessaires pour construire une variété de robots. En utilisant les quatre capteurs au bas, vous pouvez facilement construire une robots qui suit une ligne rapidement. Avec les deux capteurs de lumière votre robot détecte chaque source de lumière. Les capteurs de distance (à court et à grande distance) permettent à votre robot de naviguer tous les parcours, même les plus difficiles. Ce panneau du capteur contient également un récepteur infra-rouge que vous pouvez utiliser pour diriger le robot avec la télécommande de votre téléviseur. Pour naviguer dans l'obscurité, le panneau de capteur dispose également de deux phares.


Fonctionnement

  • Quatre capteurs au sol (infra-rouge), type Vishay TCRT1000
  • Trois capteurs à courte distance (infra-rouge), type Vishay TCRT5000 avec une portée d'environ 3 cm
  • Un capteur longue distance, type Sharp GP2Y0A21 avec une portée de 8 à 80 cm
  • Deux fortes leds de puissance blanches comme les phares du robot
  • Deux capteurs de lumière, type Vishay TEPT5600
  • Un capteur infra-rouge de type TSOP2136
  • Une porte d extension MAX7320 (I2C)
  • Une puce MAX11604 pour conversion A/D (I2C)

Sensor panel

Getting started

Nous commençons par charger les bibliothèques requises.

  1. #include <Wire.h>
  2. #include <LiquidCrystal.h>
  3. #include <Dwenguino.h>
  4. #include <DwenguinoSensorPanel.h>

Après cela, nous pouvons déclarer un objet SensorPanel qui détermine la fonctionnalité du panneau capteur Dwengo.

  1. SensorPanel sensorpanel;

Dans la fonction setup nous devons initialiser le Dwenguino par initDwenguino() après que nous pouvons appeler le function SensorPanel() qui initie l’objet SensorPanel. Cet objet doit être initialisé en appelant la fonction init(). En réglant le powerLongRange à true nous pouvons activer le capteur de distance a longue portée. Si vous n‘ avez pas besoin de ce capteur, mettre ceci à false, ca permettra votre robot d'économiser l'énergie.

  1. void setup() {
  2. // put your setup code here, to run once:
  3. initDwenguino();
  4. sensorpanel = SensorPanel();
  5. sensorpanel.init();
  6. sensorpanel.powerLongRange(true); // if you want to use the long range distance sensor, you need to activate it
  7. }

Maintenant, nous pouvons utiliser le panneau de capteur. Par exemple, en appelant la fonction de setHeadlights nous pouvons activer (ou désactiver) les deux phares LD1 et LD2. La fonction setHeadlights contient deux arguments dont le premier définit les LED (LD1 ou LD2) et la seconde définit l'état (true ou false).

  1. void loop() {
  2. // put your main code here, to run repeatedly:
  3. unsigned char sensor;
  4. sensorpanel.setHeadlights(LD2,true);
  5. delay(200);
  6. sensorpanel.setHeadlights(LD2,false);
  7. delay(200);

Les capteurs peuvent être lues par la fonction readSensor. Cette fonction a deux arguments. Le premier argument spécifie le capteur. Cela peut être un des capteurs au sol (OS1, OS2, OS3 ou OS4) ou un des capteurs de distance à courte portée (OS5, OS6 et OS7). Le deuxieme argument spécifie le mode. Il y a trois possibilités: ACTIVE_MODE, AMBIENT_MODE et DIFF_MODE. Les capteurs au sol et les capteurs de distance ont différents modes parce qu'ils sont composes d'une LED IR et une photo-transistor. En mode ACTIVE_MODE la LED IR et le phototransistor seront activés. En mode AMBIENT_MODE ne soit activé que le photo-transistor, dans lequel le capteur reçoit que la lumière ambiante. En mode DIFF_MODE deux mesures sont réalisées: une en ACTIVE_MODE et AMBIENT_MODE. Ensuite les deux mesures sont soustraites l'une de l'autre. Par conséquent, en mode de DIFF_MODE les capteurs de distance et les capteurs au sol seront moins sensibles à la lumière ambiante.

  1.  
  2. dwenguinoLCD.setCursor(0, 0);
  3. sensor = sensorpanel.readSensor(OS1,DIFF_MODE);
  4. dwenguinoLCD.print("Sensor OS1: ");
  5. dwenguinoLCD.print((int)sensor);

Le capteur OS8 longue distance peut également être lu par la fonction readSensor. Cependant, le second argument ne est pas utilisé par cette fonction et peut prendre ne importe quelle valeur.

  1. dwenguinoLCD.setCursor(0, 1);
  2. sensor = sensorpanel.readSensor(OS8,ACTIVE_MODE);
  3. dwenguinoLCD.print("Sensor OS8: ");
  4. dwenguinoLCD.print((int)sensor);
  5. }

Schémas et fichiers de conception

CC-BY-SA Dwengo Sensor Panel par Dwengo est distribué sous licence Creative Commons Attribution-ShareAlike 4.0 International License. Veuillez lire la licence d’utilsation avant d'utiliser ce matériel.

Téléchargez tous les fichiers dont vous avez besoin.

Additional Materials