Majordhome V1.0

Dependencies:   MD25 TextLCD mbed HTU21D PixyLibrary VCNL40x0

Committer:
johnylafleur
Date:
Mon Apr 13 12:33:04 2015 +0000
Revision:
1:38ebbd3ed083
Parent:
0:11ba3658cd5e
Maj;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
johnylafleur 1:38ebbd3ed083 1 // Include
johnylafleur 0:11ba3658cd5e 2 #include "mbed.h"
johnylafleur 0:11ba3658cd5e 3 #include "MD25.h"
johnylafleur 0:11ba3658cd5e 4 #include "mbed.h"
johnylafleur 0:11ba3658cd5e 5 #include "TextLCD.h"
johnylafleur 1:38ebbd3ed083 6 #include "HTU21D.h"
johnylafleur 1:38ebbd3ed083 7 #include "VCNL40x0.h"
johnylafleur 0:11ba3658cd5e 8
johnylafleur 1:38ebbd3ed083 9 void init_motors (void); // prototype initialisation des moteurs
johnylafleur 1:38ebbd3ed083 10 void setSpeed (int speedMotor1, int speedMotor2); // prototye Definir Vitesse moteurs
johnylafleur 1:38ebbd3ed083 11
johnylafleur 0:11ba3658cd5e 12
johnylafleur 0:11ba3658cd5e 13
johnylafleur 1:38ebbd3ed083 14 TextLCD lcd(D2, D3, D4, D5, D6, D7,TextLCD::LCD20x4); // rs, e, d4-d7
johnylafleur 1:38ebbd3ed083 15 MD25 i2c(I2C_SDA, I2C_SCL); //100kHz clock, addr B0, reg 0=speedl, 1=speedr (0 (Full Reverse) 128 (Stop) 255 (Full Forward). 15=mode (set to 0 default)
johnylafleur 1:38ebbd3ed083 16 //HTU21D temp(I2C_SDA, I2C_SCL); // SDA,SC
johnylafleur 1:38ebbd3ed083 17 //VCNL40x0 VCNL40x0_Device (I2C_SDA, I2C_SCL, VCNL40x0_ADDRESS); // Define SDA, SCL pin and I2C address
johnylafleur 1:38ebbd3ed083 18 DigitalIn bouton (USER_BUTTON); // Bouton d'arret total du robot
johnylafleur 1:38ebbd3ed083 19 DigitalIn bouton_poussoir(D9); // Pin PC7 Bouton poussoir demarrage
johnylafleur 1:38ebbd3ed083 20 DigitalIn cap_arret(PA_9); // Pin PA9 capteur d'arret
johnylafleur 1:38ebbd3ed083 21
johnylafleur 0:11ba3658cd5e 22
johnylafleur 1:38ebbd3ed083 23
johnylafleur 1:38ebbd3ed083 24 void init_motors(void){
johnylafleur 0:11ba3658cd5e 25 i2c.setMode(0); // MODE 0, 0=marche arriere 128=stop 255=marche arriere vmax
johnylafleur 0:11ba3658cd5e 26 i2c.setCommand(32); // 0x20 reset encoders
johnylafleur 0:11ba3658cd5e 27 i2c.setCommand(50); // 0X32 Disable time out
johnylafleur 1:38ebbd3ed083 28 //i2c.setCommand(32); // 0x20 reset encoders
johnylafleur 0:11ba3658cd5e 29 //i2c.setCommand(48); // 0X32 Disable speed regulation
johnylafleur 1:38ebbd3ed083 30 }
johnylafleur 1:38ebbd3ed083 31 void setSpeed (int vitMotor1, int vitMotor2){
johnylafleur 1:38ebbd3ed083 32 i2c.setSpeedRegisters(vitMotor1,vitMotor2);
johnylafleur 1:38ebbd3ed083 33 }
johnylafleur 1:38ebbd3ed083 34
johnylafleur 0:11ba3658cd5e 35
johnylafleur 1:38ebbd3ed083 36 int main() {
johnylafleur 1:38ebbd3ed083 37 int flag=0;
johnylafleur 1:38ebbd3ed083 38 unsigned char ID=0;
johnylafleur 1:38ebbd3ed083 39 //unsigned char Current=0;
johnylafleur 1:38ebbd3ed083 40 //unsigned int ProxiValue=0;
johnylafleur 1:38ebbd3ed083 41 //// unsigned int AmbiValue=0;
johnylafleur 1:38ebbd3ed083 42 //float Temp,Hum;
johnylafleur 1:38ebbd3ed083 43 bouton.mode (PullUp);
johnylafleur 1:38ebbd3ed083 44 bouton_poussoir.mode (PullUp);
johnylafleur 1:38ebbd3ed083 45 init_motors();
johnylafleur 1:38ebbd3ed083 46
johnylafleur 0:11ba3658cd5e 47
johnylafleur 0:11ba3658cd5e 48
johnylafleur 0:11ba3658cd5e 49
johnylafleur 1:38ebbd3ed083 50 lcd.printf("Majord'home: Hello!\n");
johnylafleur 1:38ebbd3ed083 51 while(bouton_poussoir==1){
johnylafleur 1:38ebbd3ed083 52 i2c.stopMotors();
johnylafleur 1:38ebbd3ed083 53 }
johnylafleur 1:38ebbd3ed083 54 setSpeed(60,60);
johnylafleur 1:38ebbd3ed083 55 wait(2);
johnylafleur 1:38ebbd3ed083 56 lcd.cls();
johnylafleur 1:38ebbd3ed083 57 //Temp=temp.sample_ctemp();
johnylafleur 1:38ebbd3ed083 58 //Hum=temp.sample_humid();
johnylafleur 1:38ebbd3ed083 59 //lcd.printf("Temp=%.2f, Humidite=%.2f",Temp,Hum);
johnylafleur 1:38ebbd3ed083 60 // VCNL40x0_Device.ReadID (&ID); // Read VCNL40x0 product ID revision register
johnylafleur 1:38ebbd3ed083 61 // VCNL40x0_Device.SetCurrent (20); // Set current to 200mA
johnylafleur 1:38ebbd3ed083 62 // VCNL40x0_Device.ReadCurrent (&Current); // Read back IR LED current
johnylafleur 1:38ebbd3ed083 63
johnylafleur 1:38ebbd3ed083 64
johnylafleur 1:38ebbd3ed083 65 //wait(2);
johnylafleur 1:38ebbd3ed083 66 //lcd.cls();
johnylafleur 1:38ebbd3ed083 67
johnylafleur 1:38ebbd3ed083 68
johnylafleur 0:11ba3658cd5e 69 while(flag==0) {
johnylafleur 1:38ebbd3ed083 70 // VCNL40x0_Device.ReadProxiOnDemand (&ProxiValue); // read prox value on demand
johnylafleur 1:38ebbd3ed083 71 //VCNL40x0_Device.ReadAmbiOnDemand (&AmbiValue); // read ambi value on demand
johnylafleur 1:38ebbd3ed083 72 //lcd.printf("Proxi:%5.0i cts \tAmbi:%5.0i cts \tIlluminance:%7.2f lx", ProxiValue, AmbiValue, AmbiValue/4.0);
johnylafleur 1:38ebbd3ed083 73
johnylafleur 1:38ebbd3ed083 74 //wait(3);
johnylafleur 1:38ebbd3ed083 75 //lcd.cls();
johnylafleur 0:11ba3658cd5e 76 cap_arret.read();
johnylafleur 0:11ba3658cd5e 77 if(cap_arret==0){
johnylafleur 0:11ba3658cd5e 78 i2c.stopMotors();
johnylafleur 1:38ebbd3ed083 79 lcd.printf("Engine break ON ");
johnylafleur 0:11ba3658cd5e 80 lcd.locate(0,0);
johnylafleur 1:38ebbd3ed083 81 wait(1);
johnylafleur 1:38ebbd3ed083 82 setSpeed(32,160);
johnylafleur 1:38ebbd3ed083 83 wait(0.77);//demi tour
johnylafleur 0:11ba3658cd5e 84 }
johnylafleur 0:11ba3658cd5e 85 else if(bouton==0){
johnylafleur 0:11ba3658cd5e 86 i2c.stopMotors();
johnylafleur 1:38ebbd3ed083 87 lcd.printf("Majord'home: Good Bye! ");
johnylafleur 0:11ba3658cd5e 88 lcd.locate(0,0);
johnylafleur 0:11ba3658cd5e 89 flag=1;
johnylafleur 0:11ba3658cd5e 90 }
johnylafleur 0:11ba3658cd5e 91 else{
johnylafleur 1:38ebbd3ed083 92 setSpeed(64,64);
johnylafleur 1:38ebbd3ed083 93 lcd.printf("Engine break OFF");
johnylafleur 1:38ebbd3ed083 94 lcd.locate(0,0);
johnylafleur 1:38ebbd3ed083 95 }
johnylafleur 1:38ebbd3ed083 96 }
johnylafleur 1:38ebbd3ed083 97 }
johnylafleur 1:38ebbd3ed083 98
johnylafleur 0:11ba3658cd5e 99
johnylafleur 1:38ebbd3ed083 100 /* Debug Serie
johnylafleur 1:38ebbd3ed083 101 Serial debug(USBTX,USBRX);
johnylafleur 1:38ebbd3ed083 102 debug.format(8,Serial::None,1);
johnylafleur 1:38ebbd3ed083 103 debug.baud(115200);
johnylafleur 1:38ebbd3ed083 104 */
johnylafleur 1:38ebbd3ed083 105
johnylafleur 1:38ebbd3ed083 106
johnylafleur 1:38ebbd3ed083 107
johnylafleur 1:38ebbd3ed083 108
johnylafleur 1:38ebbd3ed083 109
johnylafleur 1:38ebbd3ed083 110
johnylafleur 1:38ebbd3ed083 111
johnylafleur 1:38ebbd3ed083 112
johnylafleur 1:38ebbd3ed083 113
johnylafleur 1:38ebbd3ed083 114
johnylafleur 1:38ebbd3ed083 115
johnylafleur 1:38ebbd3ed083 116
johnylafleur 1:38ebbd3ed083 117