![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
ESC Brazil 2012 Demo
Dependencies: mbed ID12RFID NokiaLCD
main.cpp@0:4fe41724cceb, 2012-06-20 (annotated)
- Committer:
- anaran
- Date:
- Wed Jun 20 15:35:12 2012 +0000
- Revision:
- 0:4fe41724cceb
Who changed what in which revision?
User | Revision | Line number | New 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 | } |