ESC Brazil 2012 Demo

Dependencies:   mbed ID12RFID NokiaLCD

Committer:
anaran
Date:
Wed Jun 20 15:35:12 2012 +0000
Revision:
0:4fe41724cceb

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
anaran 0:4fe41724cceb 1 #include "mbed.h"
anaran 0:4fe41724cceb 2 #include "NokiaLCD.h"
anaran 0:4fe41724cceb 3 #include "ID12RFID.h"
anaran 0:4fe41724cceb 4 #include "SRF08.h"
anaran 0:4fe41724cceb 5
anaran 0:4fe41724cceb 6 ID12RFID rfid(p10); // UART RX
anaran 0:4fe41724cceb 7 NokiaLCD lcd(p5, p7, p8, p9); // mosi, sclk, cs, rst, type
anaran 0:4fe41724cceb 8 SRF08 srf08(p28, p27, 0xE0); // SDA, SCL pin and I2C address
anaran 0:4fe41724cceb 9 I2C i2c (p28,p27); // Setup the I2C interface: sda, scl
anaran 0:4fe41724cceb 10 Serial pc (USBTX,USBRX);
anaran 0:4fe41724cceb 11
anaran 0:4fe41724cceb 12 AnalogIn pot1(p15); // Pot1
anaran 0:4fe41724cceb 13 AnalogIn pot2(p16); // Pot2
anaran 0:4fe41724cceb 14 AnalogIn pot3(p20); // Pot3
anaran 0:4fe41724cceb 15
anaran 0:4fe41724cceb 16 int main() {
anaran 0:4fe41724cceb 17
anaran 0:4fe41724cceb 18 int i = 0;
anaran 0:4fe41724cceb 19 int id = 0;
anaran 0:4fe41724cceb 20 char stop_led[1] = {'o'}; // BlinkM LED stop command
anaran 0:4fe41724cceb 21 char led_data[4] = {'c', 0x00, 0x00, 0x00};
anaran 0:4fe41724cceb 22
anaran 0:4fe41724cceb 23 // set up the LCD, and draw some bands of colour
anaran 0:4fe41724cceb 24 lcd.foreground(0x000000);
anaran 0:4fe41724cceb 25 lcd.background(0xFFFFFF);
anaran 0:4fe41724cceb 26 lcd.cls();
anaran 0:4fe41724cceb 27 lcd.fill(2, 11, 128, 10, 0xFF0000);
anaran 0:4fe41724cceb 28 lcd.fill(2, 41, 128, 10, 0x00FF00);
anaran 0:4fe41724cceb 29 lcd.fill(2, 61, 128, 10, 0x0000FF);
anaran 0:4fe41724cceb 30
anaran 0:4fe41724cceb 31 // A friendly welcome message
anaran 0:4fe41724cceb 32 lcd.locate(0,3);
anaran 0:4fe41724cceb 33 lcd.printf("ESC Brazil 2012");
anaran 0:4fe41724cceb 34 pc.printf("Welcome to ESC Brazil 2012\n\r");
anaran 0:4fe41724cceb 35
anaran 0:4fe41724cceb 36 i2c.write(0x00, stop_led, 1); // Stop previous BlinkM script
anaran 0:4fe41724cceb 37
anaran 0:4fe41724cceb 38 // forever....
anaran 0:4fe41724cceb 39 while (1) {
anaran 0:4fe41724cceb 40
anaran 0:4fe41724cceb 41 // Plot the three potentiometers
anaran 0:4fe41724cceb 42 lcd.pixel(i, 80 + int(pot1.read() * 50), 0xFF0000);
anaran 0:4fe41724cceb 43 lcd.pixel(i, 80 + int(pot2.read() * 50), 0x00FF00);
anaran 0:4fe41724cceb 44 lcd.pixel(i, 80 + int(pot3.read() * 50), 0x0000FF);
anaran 0:4fe41724cceb 45
anaran 0:4fe41724cceb 46 //Update LED
anaran 0:4fe41724cceb 47 led_data[1] = char(pot1.read()*255);
anaran 0:4fe41724cceb 48 led_data[2] = char(pot2.read()*255);
anaran 0:4fe41724cceb 49 led_data[3] = char(pot3.read()*255);
anaran 0:4fe41724cceb 50 i2c.write(0x00, led_data, 4);
anaran 0:4fe41724cceb 51
anaran 0:4fe41724cceb 52
anaran 0:4fe41724cceb 53 // Blank the canvas when we wrap
anaran 0:4fe41724cceb 54 if (i==130) {
anaran 0:4fe41724cceb 55 lcd.fill(0, 80, 130, 50, 0xFFFFFF);
anaran 0:4fe41724cceb 56 i=0;
anaran 0:4fe41724cceb 57 } else {
anaran 0:4fe41724cceb 58 i++;
anaran 0:4fe41724cceb 59 }
anaran 0:4fe41724cceb 60
anaran 0:4fe41724cceb 61 // Check for ID tag, and Process
anaran 0:4fe41724cceb 62 if (rfid.readable()) {
anaran 0:4fe41724cceb 63
anaran 0:4fe41724cceb 64 id = rfid.read();
anaran 0:4fe41724cceb 65 lcd.locate(0,0);
anaran 0:4fe41724cceb 66 lcd.printf("RFID:%d", id );
anaran 0:4fe41724cceb 67 pc.printf("Tag ID = %d\n\r",id);
anaran 0:4fe41724cceb 68
anaran 0:4fe41724cceb 69 }
anaran 0:4fe41724cceb 70
anaran 0:4fe41724cceb 71 // Take and RFIF Reading
anaran 0:4fe41724cceb 72 lcd.locate(0,4);
anaran 0:4fe41724cceb 73 lcd.printf("SRF:%dcm",int(srf08.read()));
anaran 0:4fe41724cceb 74
anaran 0:4fe41724cceb 75 // give the loop a slower tick
anaran 0:4fe41724cceb 76 wait(0.05);
anaran 0:4fe41724cceb 77
anaran 0:4fe41724cceb 78 }
anaran 0:4fe41724cceb 79
anaran 0:4fe41724cceb 80 }