maandag 19 maart 2012

Extra sensors

De antibotsbot werkt ondertuseen zeer goed, maar op smalle plekken rijdt hij soms nog tijdens het achteruitrijden tegen de muur. Om dit te verhelpen, zal de robot twee extra sensors krijgen, namelijk achteraan: zo kan hij precies zien wat de afstand is met de muur.

Bij het robot startpakket van Dwengo had ik nog extra sensoren bijbesteld, deze waren echter nog niet aangesloten. Zodus heb ik ze op een printje gesoldeerd, en na enig schrijen in C ze werkend gekregen: dit was niet zo makkelijk, want de werking van de sensormodule mocht niet gestoord worden.


De Vout - pin van de fototransistor is aangeslotenop A3, de sturing voor de IR LED op E0. Merk op dat de waarde van de sensor door vier gedeeld wordt: de sensors op de module gaan maar tot en met 255, de extra sensor op A3 tot en met 1023. Ook wordt er ter vergelijking nog de sensor OS6 van het sensorbord op regel twee van het LCD weergegeven.

De sensor

Het (eenvoudige) programmaatje:

#include <dwengoBoard.h>
#include <dwengoConfig.h>
#include <dwengoADC.h>
#include <dwengoLCD.h>
#include <dwengoDelay.h>
#include <dwengoSensorModule.h>

#define IRLED PORTE     //Doorverwijzingen.
#define AF 0b00
#define AAN 0b11

void main(void) {

     int AMBIENT;
     int ACTIVE;

    TRISE = 0;     //Definieer poorten E0 en E1 als uitgang.

    initBoard();
     initLCD();
    initADC();
     initSensorModule();
    backlightOn();

    while(TRUE) {

      AMBIENT = readADC(3);

       IRLED = AAN;
      ACTIVE = readADC(3);
       IRLED = AF;

       clearLCD();
       printIntToLCD(((AMBIENT - ACTIVE)/4), 0, 0);
       printIntToLCD(readSensor(OS6, DIFF_MODE), 1, 0);
       //Geef ook waarde extra sensor ter vergelijking.

       delay_ms(250);
    }
}