bamlor nuttymaisuay
Dependencies: mbed
Diff: main.cpp
- Revision:
- 6:1de63d5df56a
- Parent:
- 5:738285670edf
- Child:
- 7:61c1f10bf484
--- a/main.cpp Mon Dec 11 11:56:44 2017 +0000 +++ b/main.cpp Mon Dec 11 23:02:51 2017 +0000 @@ -1,42 +1,17 @@ -/* MPU9250 Basic Example Code - by: Kris Winer - date: April 1, 2014 - license: Beerware - Use this code however you'd like. If you - find it useful you can buy me a beer some time. - - Demonstrate basic MPU-9250 functionality including parameterizing the register addresses, initializing the sensor, - getting properly scaled accelerometer, gyroscope, and magnetometer data out. Added display functions to - allow display to on breadboard monitor. Addition of 9 DoF sensor fusion using open source Madgwick and - Mahony filter algorithms. Sketch runs on the 3.3 V 8 MHz Pro Mini and the Teensy 3.1. - - SDA and SCL should have external pull-up resistors (to 3.3V). - 10k resistors are on the EMSENSR-9250 breakout board. - - Hardware setup: - MPU9250 Breakout --------- Arduino - VDD ---------------------- 3.3V - VDDI --------------------- 3.3V - SDA ----------------------- A4 - SCL ----------------------- A5 - GND ---------------------- GND - - Note: The MPU9250 is an I2C sensor and uses the Arduino Wire library. - Because the sensor is not 5V tolerant, we are using a 3.3 V 8 MHz Pro Mini or a 3.3 V Teensy 3.1. - We have disabled the internal pull-ups used by the Wire library in the Wire.h/twi.c utility file. - We are also using the 400 kHz fast I2C mode by setting the TWI_FREQ to 400000L /twi.h utility file. - */ - -//#include "ST_F401_84MHZ.h" -//F401_init84 myinit(0); #include "mbed.h" #include "MPU9250.h" +#include <iostream> +#include <string> +string word; +char alphabet; float x; float sum = 0; uint32_t sumCount = 0; char buffer[14]; +int i = 0; MPU9250 mpu9250; @@ -45,13 +20,905 @@ Serial pc(PA_15, PB_7); // tx, rx float v, delt_t2 = 0, count2 = 0; int mode; -char cmode; +int cmode; Serial bam(D1,D0); - BusOut B(PA_0,PA_1,PA_4,PB_0,PC_1,PC_2,PC_3), A(PC_10,PC_12,PA_13,PA_14,PC_13,PC_11,PD_2), C(PA_5,PA_6,PA_7,PC_7,PB_2,PB_1,PB_15); + +void Text (char text,float posA,float posB,float posC,int i ) +{ + int n = i*60; + if (text == ' '){ + if (posA > 0+n && posA < 10+n) { A = 0x00; } + else if(posA > 10+n && posA < 20+n ) { A = 0x00; } + else if(posA > 20+n && posA < 30+n ) { A = 0x00; } + else if(posA > 30+n && posA < 40+n ) { A = 0x00; } + else if(posA > 40+n && posA < 50+n ) { A = 0x00; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x00; } + else if(posB > 10+n && posB < 20+n ) { B = 0x00; } + else if(posB > 20+n && posB < 30+n ) { B = 0x00; } + else if(posB > 30+n && posB < 40+n ) { B = 0x00; } + else if(posB > 40+n && posB < 50+n ) { B = 0x00; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x00; } + else if(posC > 10+n && posC < 20+n ) { C = 0x00; } + else if(posC > 20+n && posC < 30+n ) { C = 0x00; } + else if(posC > 30+n && posC < 40+n ) { C = 0x00; } + else if(posC > 40+n && posC < 50+n ) { C = 0x00; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'A'){ + if (posA > 0+n && posA < 10+n) { A = 0x3F; } + else if(posA > 10+n && posA < 20+n ) { A = 0x44; } + else if(posA > 20+n && posA < 30+n ) { A = 0x44; } + else if(posA > 30+n && posA < 40+n ) { A = 0x44; } + else if(posA > 40+n && posA < 50+n ) { A = 0x3F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x3F; } + else if(posB > 10+n && posB < 20+n ) { B = 0x44; } + else if(posB > 20+n && posB < 30+n ) { B = 0x44; } + else if(posB > 30+n && posB < 40+n ) { B = 0x44; } + else if(posB > 40+n && posB < 50+n ) { B = 0x3F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x3F; } + else if(posC > 10+n && posC < 20+n ) { C = 0x44; } + else if(posC > 20+n && posC < 30+n ) { C = 0x44; } + else if(posC > 30+n && posC < 40+n ) { C = 0x44; } + else if(posC > 40+n && posC < 50+n ) { C = 0x3F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'B'){ + if (posA > 0+n && posA < 10+n) { A = 0x36; } + else if(posA > 10+n && posA < 20+n ) { A = 0x49; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x49; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x36; } + else if(posB > 10+n && posB < 20+n ) { B = 0x49; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x49; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x36; } + else if(posC > 10+n && posC < 20+n ) { C = 0x49; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x49; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'C'){ + if (posA > 0+n && posA < 10+n) { A = 0x22; } + else if(posA > 10+n && posA < 20+n ) { A = 0x41; } + else if(posA > 20+n && posA < 30+n ) { A = 0x41; } + else if(posA > 30+n && posA < 40+n ) { A = 0x41; } + else if(posA > 40+n && posA < 50+n ) { A = 0x3E; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x22; } + else if(posB > 10+n && posB < 20+n ) { B = 0x41; } + else if(posB > 20+n && posB < 30+n ) { B = 0x41; } + else if(posB > 30+n && posB < 40+n ) { B = 0x41; } + else if(posB > 40+n && posB < 50+n ) { B = 0x3E; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x22; } + else if(posC > 10+n && posC < 20+n ) { C = 0x41; } + else if(posC > 20+n && posC < 30+n ) { C = 0x41; } + else if(posC > 30+n && posC < 40+n ) { C = 0x41; } + else if(posC > 40+n && posC < 50+n ) { C = 0x3E; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'D'){ + if (posA > 0+n && posA < 10+n) { A = 0x3E; } + else if(posA > 10+n && posA < 20+n ) { A = 0x41; } + else if(posA > 20+n && posA < 30+n ) { A = 0x41; } + else if(posA > 30+n && posA < 40+n ) { A = 0x41; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x3E; } + else if(posB > 10+n && posB < 20+n ) { B = 0x41; } + else if(posB > 20+n && posB < 30+n ) { B = 0x41; } + else if(posB > 30+n && posB < 40+n ) { B = 0x41; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x3E; } + else if(posC > 10+n && posC < 20+n ) { C = 0x41; } + else if(posC > 20+n && posC < 30+n ) { C = 0x41; } + else if(posC > 30+n && posC < 40+n ) { C = 0x41; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'E'){ + if (posA > 0+n && posA < 10+n) { A = 0x49; } + else if(posA > 10+n && posA < 20+n ) { A = 0x49; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x49; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x49; } + else if(posB > 10+n && posB < 20+n ) { B = 0x49; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x49; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x49; } + else if(posC > 10+n && posC < 20+n ) { C = 0x49; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x49; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'F'){ + if (posA > 0+n && posA < 10+n) { A = 0x40; } + else if(posA > 10+n && posA < 20+n ) { A = 0x40; } + else if(posA > 20+n && posA < 30+n ) { A = 0x48; } + else if(posA > 30+n && posA < 40+n ) { A = 0x48; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x40; } + else if(posB > 10+n && posB < 20+n ) { B = 0x40; } + else if(posB > 20+n && posB < 30+n ) { B = 0x48; } + else if(posB > 30+n && posB < 40+n ) { B = 0x48; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x40; } + else if(posC > 10+n && posC < 20+n ) { C = 0x40; } + else if(posC > 20+n && posC < 30+n ) { C = 0x48; } + else if(posC > 30+n && posC < 40+n ) { C = 0x48; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'G'){ + if (posA > 0+n && posA < 10+n) { A = 0x4F; } + else if(posA > 10+n && posA < 20+n ) { A = 0x49; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x41; } + else if(posA > 40+n && posA < 50+n ) { A = 0x3E; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x4F; } + else if(posB > 10+n && posB < 20+n ) { B = 0x49; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x41; } + else if(posB > 40+n && posB < 50+n ) { B = 0x3E; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x4F; } + else if(posC > 10+n && posC < 20+n ) { C = 0x49; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x41; } + else if(posC > 40+n && posC < 50+n ) { C = 0x3E; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'H'){ + if (posA > 0+n && posA < 10+n) { A = 0x7F; } + else if(posA > 10+n && posA < 20+n ) { A = 0x08; } + else if(posA > 20+n && posA < 30+n ) { A = 0x08; } + else if(posA > 30+n && posA < 40+n ) { A = 0x08; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x7F; } + else if(posB > 10+n && posB < 20+n ) { B = 0x08; } + else if(posB > 20+n && posB < 30+n ) { B = 0x08; } + else if(posB > 30+n && posB < 40+n ) { B = 0x08; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x7F; } + else if(posC > 10+n && posC < 20+n ) { C = 0x08; } + else if(posC > 20+n && posC < 30+n ) { C = 0x08; } + else if(posC > 30+n && posC < 40+n ) { C = 0x08; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'I'){ + if (posA > 0+n && posA < 10+n) { A = 0x41; } + else if(posA > 10+n && posA < 20+n ) { A = 0x41; } + else if(posA > 20+n && posA < 30+n ) { A = 0x7F; } + else if(posA > 30+n && posA < 40+n ) { A = 0x41; } + else if(posA > 40+n && posA < 50+n ) { A = 0x41; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x41; } + else if(posB > 10+n && posB < 20+n ) { B = 0x41; } + else if(posB > 20+n && posB < 30+n ) { B = 0x7F; } + else if(posB > 30+n && posB < 40+n ) { B = 0x41; } + else if(posB > 40+n && posB < 50+n ) { B = 0x41; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x41; } + else if(posC > 10+n && posC < 20+n ) { C = 0x41; } + else if(posC > 20+n && posC < 30+n ) { C = 0x7F; } + else if(posC > 30+n && posC < 40+n ) { C = 0x41; } + else if(posC > 40+n && posC < 50+n ) { C = 0x41; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'J'){ + if (posA > 0+n && posA < 10+n) { A = 0x7E; } + else if(posA > 10+n && posA < 20+n ) { A = 0x41; } + else if(posA > 20+n && posA < 30+n ) { A = 0x41; } + else if(posA > 30+n && posA < 40+n ) { A = 0x01; } + else if(posA > 40+n && posA < 50+n ) { A = 0x02; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x7E; } + else if(posB > 10+n && posB < 20+n ) { B = 0x41; } + else if(posB > 20+n && posB < 30+n ) { B = 0x41; } + else if(posB > 30+n && posB < 40+n ) { B = 0x01; } + else if(posB > 40+n && posB < 50+n ) { B = 0x02; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x7E; } + else if(posC > 10+n && posC < 20+n ) { C = 0x41; } + else if(posC > 20+n && posC < 30+n ) { C = 0x41; } + else if(posC > 30+n && posC < 40+n ) { C = 0x01; } + else if(posC > 40+n && posC < 50+n ) { C = 0x02; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'K'){ + if (posA > 0+n && posA < 10+n) { A = 0x41; } + else if(posA > 10+n && posA < 20+n ) { A = 0x22; } + else if(posA > 20+n && posA < 30+n ) { A = 0x14; } + else if(posA > 30+n && posA < 40+n ) { A = 0x08; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x41; } + else if(posB > 10+n && posB < 20+n ) { B = 0x22; } + else if(posB > 20+n && posB < 30+n ) { B = 0x14; } + else if(posB > 30+n && posB < 40+n ) { B = 0x08; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x41; } + else if(posC > 10+n && posC < 20+n ) { C = 0x22; } + else if(posC > 20+n && posC < 30+n ) { C = 0x14; } + else if(posC > 30+n && posC < 40+n ) { C = 0x08; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'L'){ + if (posA > 0+n && posA < 10+n) { A = 0x01; } + else if(posA > 10+n && posA < 20+n ) { A = 0x01; } + else if(posA > 20+n && posA < 30+n ) { A = 0x01; } + else if(posA > 30+n && posA < 40+n ) { A = 0x01; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x01; } + else if(posB > 10+n && posB < 20+n ) { B = 0x01; } + else if(posB > 20+n && posB < 30+n ) { B = 0x01; } + else if(posB > 30+n && posB < 40+n ) { B = 0x01; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x01; } + else if(posC > 10+n && posC < 20+n ) { C = 0x01; } + else if(posC > 20+n && posC < 30+n ) { C = 0x01; } + else if(posC > 30+n && posC < 40+n ) { C = 0x01; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'M'){ + if (posA > 0+n && posA < 10+n) { A = 0x7F; } + else if(posA > 10+n && posA < 20+n ) { A = 0x20; } + else if(posA > 20+n && posA < 30+n ) { A = 0x10; } + else if(posA > 30+n && posA < 40+n ) { A = 0x20; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x7F; } + else if(posB > 10+n && posB < 20+n ) { B = 0x20; } + else if(posB > 20+n && posB < 30+n ) { B = 0x10; } + else if(posB > 30+n && posB < 40+n ) { B = 0x20; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x7F; } + else if(posC > 10+n && posC < 20+n ) { C = 0x20; } + else if(posC > 20+n && posC < 30+n ) { C = 0x10; } + else if(posC > 30+n && posC < 40+n ) { C = 0x20; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'N'){ + if (posA > 0+n && posA < 10+n) { A = 0x7F; } + else if(posA > 10+n && posA < 20+n ) { A = 0x08; } + else if(posA > 20+n && posA < 30+n ) { A = 0x10; } + else if(posA > 30+n && posA < 40+n ) { A = 0x20; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x7F; } + else if(posB > 10+n && posB < 20+n ) { B = 0x08; } + else if(posB > 20+n && posB < 30+n ) { B = 0x10; } + else if(posB > 30+n && posB < 40+n ) { B = 0x20; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x7F; } + else if(posC > 10+n && posC < 20+n ) { C = 0x08; } + else if(posC > 20+n && posC < 30+n ) { C = 0x10; } + else if(posC > 30+n && posC < 40+n ) { C = 0x20; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'O'){ + if (posA > 0+n && posA < 10+n) { A = 0x7F; } + else if(posA > 10+n && posA < 20+n ) { A = 0x41; } + else if(posA > 20+n && posA < 30+n ) { A = 0x41; } + else if(posA > 30+n && posA < 40+n ) { A = 0x41; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x7F; } + else if(posB > 10+n && posB < 20+n ) { B = 0x41; } + else if(posB > 20+n && posB < 30+n ) { B = 0x41; } + else if(posB > 30+n && posB < 40+n ) { B = 0x41; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x7F; } + else if(posC > 10+n && posC < 20+n ) { C = 0x41; } + else if(posC > 20+n && posC < 30+n ) { C = 0x41; } + else if(posC > 30+n && posC < 40+n ) { C = 0x41; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'P'){ + if (posA > 0+n && posA < 10+n) { A = 0x30; } + else if(posA > 10+n && posA < 20+n ) { A = 0x48; } + else if(posA > 20+n && posA < 30+n ) { A = 0x48; } + else if(posA > 30+n && posA < 40+n ) { A = 0x48; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x30; } + else if(posB > 10+n && posB < 20+n ) { B = 0x48; } + else if(posB > 20+n && posB < 30+n ) { B = 0x48; } + else if(posB > 30+n && posB < 40+n ) { B = 0x48; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x30; } + else if(posC > 10+n && posC < 20+n ) { C = 0x48; } + else if(posC > 20+n && posC < 30+n ) { C = 0x48; } + else if(posC > 30+n && posC < 40+n ) { C = 0x48; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'Q'){ + if (posA > 0+n && posA < 10+n) { A = 0x3D; } + else if(posA > 10+n && posA < 20+n ) { A = 0x22; } + else if(posA > 20+n && posA < 30+n ) { A = 0x22; } + else if(posA > 30+n && posA < 40+n ) { A = 0x22; } + else if(posA > 40+n && posA < 50+n ) { A = 0x3C; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x3D; } + else if(posB > 10+n && posB < 20+n ) { B = 0x22; } + else if(posB > 20+n && posB < 30+n ) { B = 0x22; } + else if(posB > 30+n && posB < 40+n ) { B = 0x22; } + else if(posB > 40+n && posB < 50+n ) { B = 0x3C; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x3D; } + else if(posC > 10+n && posC < 20+n ) { C = 0x22; } + else if(posC > 20+n && posC < 30+n ) { C = 0x22; } + else if(posC > 30+n && posC < 40+n ) { C = 0x22; } + else if(posC > 40+n && posC < 50+n ) { C = 0x3C; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'R'){ + if (posA > 0+n && posA < 10+n) { A = 0x31; } + else if(posA > 10+n && posA < 20+n ) { A = 0x4A; } + else if(posA > 20+n && posA < 30+n ) { A = 0x4C; } + else if(posA > 30+n && posA < 40+n ) { A = 0x48; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7F; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x31; } + else if(posB > 10+n && posB < 20+n ) { B = 0x4A; } + else if(posB > 20+n && posB < 30+n ) { B = 0x4C; } + else if(posB > 30+n && posB < 40+n ) { B = 0x48; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7F; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x31; } + else if(posC > 10+n && posC < 20+n ) { C = 0x4A; } + else if(posC > 20+n && posC < 30+n ) { C = 0x4C; } + else if(posC > 30+n && posC < 40+n ) { C = 0x48; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7F; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'S'){ + if (posA > 0+n && posA < 10+n) { A = 0x46; } + else if(posA > 10+n && posA < 20+n ) { A = 0x49; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x49; } + else if(posA > 40+n && posA < 50+n ) { A = 0x31; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x46; } + else if(posB > 10+n && posB < 20+n ) { B = 0x49; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x49; } + else if(posB > 40+n && posB < 50+n ) { B = 0x31; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x46; } + else if(posC > 10+n && posC < 20+n ) { C = 0x49; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x49; } + else if(posC > 40+n && posC < 50+n ) { C = 0x31; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'T'){ + if (posA > 0+n && posA < 10+n) { A = 0x40; } + else if(posA > 10+n && posA < 20+n ) { A = 0x40; } + else if(posA > 20+n && posA < 30+n ) { A = 0x7F; } + else if(posA > 30+n && posA < 40+n ) { A = 0x40; } + else if(posA > 40+n && posA < 50+n ) { A = 0x40; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x40; } + else if(posB > 10+n && posB < 20+n ) { B = 0x40; } + else if(posB > 20+n && posB < 30+n ) { B = 0x7F; } + else if(posB > 30+n && posB < 40+n ) { B = 0x40; } + else if(posB > 40+n && posB < 50+n ) { B = 0x40; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x40; } + else if(posC > 10+n && posC < 20+n ) { C = 0x40; } + else if(posC > 20+n && posC < 30+n ) { C = 0x7F; } + else if(posC > 30+n && posC < 40+n ) { C = 0x40; } + else if(posC > 40+n && posC < 50+n ) { C = 0x40; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'U'){ + if (posA > 0+n && posA < 10+n) { A = 0x7E; } + else if(posA > 10+n && posA < 20+n ) { A = 0x01; } + else if(posA > 20+n && posA < 30+n ) { A = 0x01; } + else if(posA > 30+n && posA < 40+n ) { A = 0x01; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7E; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x7E; } + else if(posB > 10+n && posB < 20+n ) { B = 0x01; } + else if(posB > 20+n && posB < 30+n ) { B = 0x01; } + else if(posB > 30+n && posB < 40+n ) { B = 0x01; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7E; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x7E; } + else if(posC > 10+n && posC < 20+n ) { C = 0x01; } + else if(posC > 20+n && posC < 30+n ) { C = 0x01; } + else if(posC > 30+n && posC < 40+n ) { C = 0x01; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7E; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'V'){ + if (posA > 0+n && posA < 10+n) { A = 0x7C; } + else if(posA > 10+n && posA < 20+n ) { A = 0x02; } + else if(posA > 20+n && posA < 30+n ) { A = 0x01; } + else if(posA > 30+n && posA < 40+n ) { A = 0x02; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7C; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x7C; } + else if(posB > 10+n && posB < 20+n ) { B = 0x02; } + else if(posB > 20+n && posB < 30+n ) { B = 0x01; } + else if(posB > 30+n && posB < 40+n ) { B = 0x02; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7C; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x7C; } + else if(posC > 10+n && posC < 20+n ) { C = 0x02; } + else if(posC > 20+n && posC < 30+n ) { C = 0x01; } + else if(posC > 30+n && posC < 40+n ) { C = 0x02; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7C; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'W'){ + if (posA > 0+n && posA < 10+n) { A = 0x7E; } + else if(posA > 10+n && posA < 20+n ) { A = 0x01; } + else if(posA > 20+n && posA < 30+n ) { A = 0x0E; } + else if(posA > 30+n && posA < 40+n ) { A = 0x01; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7E; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x7E; } + else if(posB > 10+n && posB < 20+n ) { B = 0x01; } + else if(posB > 20+n && posB < 30+n ) { B = 0x0E; } + else if(posB > 30+n && posB < 40+n ) { B = 0x01; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7E; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x7E; } + else if(posC > 10+n && posC < 20+n ) { C = 0x01; } + else if(posC > 20+n && posC < 30+n ) { C = 0x0E; } + else if(posC > 30+n && posC < 40+n ) { C = 0x01; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7E; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'X'){ + if (posA > 0+n && posA < 10+n) { A = 0x77; } + else if(posA > 10+n && posA < 20+n ) { A = 0x08; } + else if(posA > 20+n && posA < 30+n ) { A = 0x08; } + else if(posA > 30+n && posA < 40+n ) { A = 0x08; } + else if(posA > 40+n && posA < 50+n ) { A = 0x77; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x77; } + else if(posB > 10+n && posB < 20+n ) { B = 0x08; } + else if(posB > 20+n && posB < 30+n ) { B = 0x08; } + else if(posB > 30+n && posB < 40+n ) { B = 0x08; } + else if(posB > 40+n && posB < 50+n ) { B = 0x77; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x77; } + else if(posC > 10+n && posC < 20+n ) { C = 0x08; } + else if(posC > 20+n && posC < 30+n ) { C = 0x08; } + else if(posC > 30+n && posC < 40+n ) { C = 0x08; } + else if(posC > 40+n && posC < 50+n ) { C = 0x77; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'Y'){ + if (posA > 0+n && posA < 10+n) { A = 0x70; } + else if(posA > 10+n && posA < 20+n ) { A = 0x08; } + else if(posA > 20+n && posA < 30+n ) { A = 0x07; } + else if(posA > 30+n && posA < 40+n ) { A = 0x08; } + else if(posA > 40+n && posA < 50+n ) { A = 0x70; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x70; } + else if(posB > 10+n && posB < 20+n ) { B = 0x08; } + else if(posB > 20+n && posB < 30+n ) { B = 0x07; } + else if(posB > 30+n && posB < 40+n ) { B = 0x08; } + else if(posB > 40+n && posB < 50+n ) { B = 0x70; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x70; } + else if(posC > 10+n && posC < 20+n ) { C = 0x08; } + else if(posC > 20+n && posC < 30+n ) { C = 0x07; } + else if(posC > 30+n && posC < 40+n ) { C = 0x08; } + else if(posC > 40+n && posC < 50+n ) { C = 0x70; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == 'Z'){ + if (posA > 0+n && posA < 10+n) { A = 0x61; } + else if(posA > 10+n && posA < 20+n ) { A = 0x51; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x45; } + else if(posA > 40+n && posA < 50+n ) { A = 0x43; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x61; } + else if(posB > 10+n && posB < 20+n ) { B = 0x51; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x45; } + else if(posB > 40+n && posB < 50+n ) { B = 0x43; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x61; } + else if(posC > 10+n && posC < 20+n ) { C = 0x51; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x45; } + else if(posC > 40+n && posC < 50+n ) { C = 0x43; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == '0'){ + if (posA > 0+n && posA < 10+n) { A = 0x3E; } + else if(posA > 10+n && posA < 20+n ) { A = 0x41; } + else if(posA > 20+n && posA < 30+n ) { A = 0x41; } + else if(posA > 30+n && posA < 40+n ) { A = 0x41; } + else if(posA > 40+n && posA < 50+n ) { A = 0x3E; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x3E; } + else if(posB > 10+n && posB < 20+n ) { B = 0x41; } + else if(posB > 20+n && posB < 30+n ) { B = 0x41; } + else if(posB > 30+n && posB < 40+n ) { B = 0x41; } + else if(posB > 40+n && posB < 50+n ) { B = 0x3E; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x3E; } + else if(posC > 10+n && posC < 20+n ) { C = 0x41; } + else if(posC > 20+n && posC < 30+n ) { C = 0x41; } + else if(posC > 30+n && posC < 40+n ) { C = 0x41; } + else if(posC > 40+n && posC < 50+n ) { C = 0x3E; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == '1'){ + if (posA > 0+n && posA < 10+n) { A = 0x01; } + else if(posA > 10+n && posA < 20+n ) { A = 0x01; } + else if(posA > 20+n && posA < 30+n ) { A = 0x7F; } + else if(posA > 30+n && posA < 40+n ) { A = 0x21; } + else if(posA > 40+n && posA < 50+n ) { A = 0x21; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x01; } + else if(posB > 10+n && posB < 20+n ) { B = 0x01; } + else if(posB > 20+n && posB < 30+n ) { B = 0x7F; } + else if(posB > 30+n && posB < 40+n ) { B = 0x21; } + else if(posB > 40+n && posB < 50+n ) { B = 0x21; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x01; } + else if(posC > 10+n && posC < 20+n ) { C = 0x01; } + else if(posC > 20+n && posC < 30+n ) { C = 0x7F; } + else if(posC > 30+n && posC < 40+n ) { C = 0x21; } + else if(posC > 40+n && posC < 50+n ) { C = 0x21; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == '2'){ + if (posA > 0+n && posA < 10+n) { A = 0x21; } + else if(posA > 10+n && posA < 20+n ) { A = 0x51; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x45; } + else if(posA > 40+n && posA < 50+n ) { A = 0x23; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x21; } + else if(posB > 10+n && posB < 20+n ) { B = 0x51; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x45; } + else if(posB > 40+n && posB < 50+n ) { B = 0x23; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x21; } + else if(posC > 10+n && posC < 20+n ) { C = 0x51; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x48; } + else if(posC > 40+n && posC < 50+n ) { C = 0x23; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == '3'){ + if (posA > 0+n && posA < 10+n) { A = 0x36; } + else if(posA > 10+n && posA < 20+n ) { A = 0x49; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x41; } + else if(posA > 40+n && posA < 50+n ) { A = 0x22; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x36; } + else if(posB > 10+n && posB < 20+n ) { B = 0x49; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x41; } + else if(posB > 40+n && posB < 50+n ) { B = 0x22; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x36; } + else if(posC > 10+n && posC < 20+n ) { C = 0x49; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x41; } + else if(posC > 40+n && posC < 50+n ) { C = 0x22; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == '4'){ + if (posA > 0+n && posA < 10+n) { A = 0x04; } + else if(posA > 10+n && posA < 20+n ) { A = 0x1F; } + else if(posA > 20+n && posA < 30+n ) { A = 0x04; } + else if(posA > 30+n && posA < 40+n ) { A = 0x04; } + else if(posA > 40+n && posA < 50+n ) { A = 0x7C; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x04; } + else if(posB > 10+n && posB < 20+n ) { B = 0x1F; } + else if(posB > 20+n && posB < 30+n ) { B = 0x04; } + else if(posB > 30+n && posB < 40+n ) { B = 0x04; } + else if(posB > 40+n && posB < 50+n ) { B = 0x7C; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x04; } + else if(posC > 10+n && posC < 20+n ) { C = 0x1F; } + else if(posC > 20+n && posC < 30+n ) { C = 0x04; } + else if(posC > 30+n && posC < 40+n ) { C = 0x04; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7C; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == '5'){ + if (posA > 0+n && posA < 10+n) { A = 0x46; } + else if(posA > 10+n && posA < 20+n ) { A = 0x49; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x49; } + else if(posA > 40+n && posA < 50+n ) { A = 0x79; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x46; } + else if(posB > 10+n && posB < 20+n ) { B = 0x49; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x49; } + else if(posB > 40+n && posB < 50+n ) { B = 0x79; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x46; } + else if(posC > 10+n && posC < 20+n ) { C = 0x49; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x49; } + else if(posC > 40+n && posC < 50+n ) { C = 0x7C; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == '6'){ + if (posA > 0+n && posA < 10+n) { A = 0x26; } + else if(posA > 10+n && posA < 20+n ) { A = 0x49; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x49; } + else if(posA > 40+n && posA < 50+n ) { A = 0x3E; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x26; } + else if(posB > 10+n && posB < 20+n ) { B = 0x49; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x49; } + else if(posB > 40+n && posB < 50+n ) { B = 0x3E; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x26; } + else if(posC > 10+n && posC < 20+n ) { C = 0x49; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x49; } + else if(posC > 40+n && posC < 50+n ) { C = 0x3E; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == '7'){ + if (posA > 0+n && posA < 10+n) { A = 0x60; } + else if(posA > 10+n && posA < 20+n ) { A = 0x50; } + else if(posA > 20+n && posA < 30+n ) { A = 0x47; } + else if(posA > 30+n && posA < 40+n ) { A = 0x40; } + else if(posA > 40+n && posA < 50+n ) { A = 0x40; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x60; } + else if(posB > 10+n && posB < 20+n ) { B = 0x50; } + else if(posB > 20+n && posB < 30+n ) { B = 0x47; } + else if(posB > 30+n && posB < 40+n ) { B = 0x40; } + else if(posB > 40+n && posB < 50+n ) { B = 0x40; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x60; } + else if(posC > 10+n && posC < 20+n ) { C = 0x50; } + else if(posC > 20+n && posC < 30+n ) { C = 0x47; } + else if(posC > 30+n && posC < 40+n ) { C = 0x40; } + else if(posC > 40+n && posC < 50+n ) { C = 0x40; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == '8'){ + if (posA > 0+n && posA < 10+n) { A = 0x36; } + else if(posA > 10+n && posA < 20+n ) { A = 0x49; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x49; } + else if(posA > 40+n && posA < 50+n ) { A = 0x36; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x36; } + else if(posB > 10+n && posB < 20+n ) { B = 0x49; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x49; } + else if(posB > 40+n && posB < 50+n ) { B = 0x36; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x36; } + else if(posC > 10+n && posC < 20+n ) { C = 0x49; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x49; } + else if(posC > 40+n && posC < 50+n ) { C = 0x36; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } + if (text == '9'){ + if (posA > 0+n && posA < 10+n) { A = 0x3E; } + else if(posA > 10+n && posA < 20+n ) { A = 0x49; } + else if(posA > 20+n && posA < 30+n ) { A = 0x49; } + else if(posA > 30+n && posA < 40+n ) { A = 0x49; } + else if(posA > 40+n && posA < 50+n ) { A = 0x32; } + else if(posA > 50+n && posA < 60+n ) { A = 0x00; } + + if (posB > 0+n && posB < 10+n) { B = 0x3E; } + else if(posB > 10+n && posB < 20+n ) { B = 0x49; } + else if(posB > 20+n && posB < 30+n ) { B = 0x49; } + else if(posB > 30+n && posB < 40+n ) { B = 0x49; } + else if(posB > 40+n && posB < 50+n ) { B = 0x32; } + else if(posB > 50+n && posB < 60+n ) { B = 0x00; } + + if (posC > 0+n && posC < 10+n) { C = 0x3E; } + else if(posC > 10+n && posC < 20+n ) { C = 0x49; } + else if(posC > 20+n && posC < 30+n ) { C = 0x49; } + else if(posC > 30+n && posC < 40+n ) { C = 0x49; } + else if(posC > 40+n && posC < 50+n ) { C = 0x32; } + else if(posC > 50+n && posC < 60+n ) { C = 0x00; } + } +} + +void Velocity(int v ,float posA,float posB,float posC){ + char value[3] ; + sprintf(value ,"%.2f",(v*10)); + Text(value[0],posA,posB,posC,0); + Text(value[1],posA,posB,posC,1); + if (posA > 110 && posA < 120) { A = 0x01; } + if (posB > 110 && posB < 120) { B = 0x01; } + if (posC > 110 && posC < 120) { C = 0x01; } + Text(value[2],posA,posB,posC,2); + if (posA > 180 && posA < 190) { A = 0x7F; } + else if(posA > 190 && posA < 200 ) { A = 0x04; } + else if(posA > 210 && posA < 220 ) { A = 0x0A; } + else if(posA > 220 && posA < 230 ) { A = 0x11; } + else if(posA > 230 && posA < 240 ) { A = 0x0F; } + else if(posA > 240 && posA < 250 ) { A = 0x08; } + else if(posA > 250 && posA < 260 ) { A = 0x04; } + else if(posA > 260 && posA < 270 ) { A = 0x08; } + else if(posA > 270 && posA < 280 ) { A = 0x0F; } + else if(posA > 280 && posA < 290 ) { A = 0x03; } + else if(posA > 290 && posA < 300 ) { A = 0x0C; } + else if(posA > 300 && posA < 310 ) { A = 0x30; } + else if(posA > 310 && posA < 320 ) { A = 0x7F; } + else if(posA > 320 && posA < 330 ) { A = 0x08; } + else if(posA > 330 && posA < 340 ) { A = 0x0F; } + else { A = 0x00; } + + if (posB > 180 && posB < 190) { B = 0x7F; } + else if(posB > 190 && posB < 200 ) { B = 0x04; } + else if(posB > 210 && posB < 220 ) { B = 0x0A; } + else if(posB > 220 && posB < 230 ) { B = 0x11; } + else if(posB > 230 && posB < 240 ) { B = 0x0F; } + else if(posB > 240 && posB < 250 ) { B = 0x08; } + else if(posB > 250 && posB < 260 ) { B = 0x04; } + else if(posB > 260 && posB < 270 ) { B = 0x08; } + else if(posB > 270 && posB < 280 ) { B = 0x0F; } + else if(posB > 280 && posB < 290 ) { B = 0x03; } + else if(posB > 290 && posB < 300 ) { B = 0x0C; } + else if(posB > 300 && posB < 310 ) { B = 0x30; } + else if(posB > 310 && posB < 320 ) { B = 0x7F; } + else if(posB > 320 && posB < 330 ) { B = 0x08; } + else if(posB > 330 && posB < 340 ) { B = 0x0F; } + else { B = 0x00; } + + if (posC > 180 && posC < 190) { C = 0x7F; } + else if(posC > 190 && posC < 200 ) { C = 0x04; } + else if(posC > 210 && posC < 220 ) { C = 0x0A; } + else if(posC > 220 && posC < 230 ) { C = 0x11; } + else if(posC > 230 && posC < 240 ) { C = 0x0F; } + else if(posC > 240 && posC < 250 ) { C = 0x08; } + else if(posC > 250 && posC < 260 ) { C = 0x04; } + else if(posC > 260 && posC < 270 ) { C = 0x08; } + else if(posC > 270 && posC < 280 ) { C = 0x0F; } + else if(posC > 280 && posC < 290 ) { C = 0x03; } + else if(posC > 290 && posC < 300 ) { C = 0x0C; } + else if(posC > 300 && posC < 310 ) { C = 0x30; } + else if(posC > 310 && posC < 320 ) { C = 0x7F; } + else if(posC > 320 && posC < 330 ) { C = 0x08; } + else if(posC > 330 && posC < 340 ) { C = 0x0F; } + else { C = 0x00; } + } + float posA = 0,posB,posC; + + + + + + + + + int main() { + A = 0; + B = 0; + C = 0; mode = 0; pc.baud(38400); //Set up I2C @@ -116,9 +983,9 @@ mpu9250.getAres(); // Get accelerometer sensitivity mpu9250.getGres(); // Get gyro sensitivity mpu9250.getMres(); // Get magnetometer sensitivity - // pc.printf("Accelerometer sensitivity is %f LSB/g \n\r", 1.0f/aRes); -// pc.printf("Gyroscope sensitivity is %f LSB/deg/s \n\r", 1.0f/gRes); -// pc.printf("Magnetometer sensitivity is %f LSB/G \n\r", 1.0f/mRes); + pc.printf("Accelerometer sensitivity is %f LSB/g \n\r", 1.0f/aRes); + pc.printf("Gyroscope sensitivity is %f LSB/deg/s \n\r", 1.0f/gRes); + pc.printf("Magnetometer sensitivity is %f LSB/G \n\r", 1.0f/mRes); magbias[0] = +470.; // User environmental x-axis correction in milliGauss, should be automatically calculated magbias[1] = +120.; // User environmental x-axis correction in milliGauss magbias[2] = +125.; // User environmental x-axis correction in milliGauss @@ -128,12 +995,6 @@ // If intPin goes high, all data registers have new data if(mpu9250.readByte(MPU9250_ADDRESS, INT_STATUS) & 0x01) { // On interrupt, check if data ready interrupt - - // mpu9250.readAccelData(accelCount); // Read the x/y/z adc values -// // Now we'll calculate the accleration value into actual g's -// ax = (float)accelCount[0]*aRes - accelBias[0]; // get actual g value, this depends on scale being set -// ay = (float)accelCount[1]*aRes - accelBias[1]; -// az = (float)accelCount[2]*aRes - accelBias[2]; mpu9250.readGyroData(gyroCount); // Read the x/y/z adc values // Calculate the gyro value into actual degrees per second @@ -141,301 +1002,39 @@ gy = (float)gyroCount[1]*gRes - gyroBias[1]; gz = (float)gyroCount[2]*gRes - gyroBias[2]; -// mpu9250.readMagData(magCount); // Read the x/y/z adc values -// // Calculate the magnetometer values in milliGauss -// // Include factory calibration per data sheet and user environmental corrections -// mx = (float)magCount[0]*mRes*magCalibration[0] - magbias[0]; // get actual magnetometer value, this depends on scale being set -// my = (float)magCount[1]*mRes*magCalibration[1] - magbias[1]; -// mz = (float)magCount[2]*mRes*magCalibration[2] - magbias[2]; -// } - - // Now = t.read_us(); -// deltat = (float)((Now - lastUpdate)/1000000.0f) ; // set integration time by time elapsed since last filter update -// lastUpdate = Now; - - //sum += deltat; -// sumCount++; - -// if(lastUpdate - firstUpdate > 10000000.0f) { -// beta = 0.04; // decrease filter gain after stabilized -// zeta = 0.015; // increasey bias drift gain after stabilized - // } - - // Pass gyro rate as rad/s -// mpu9250.MadgwickQuaternionUpdate(ax, ay, az, gx*PI/180.0f, gy*PI/180.0f, gz*PI/180.0f, my, mx, mz); mpu9250.MahonyQuaternionUpdate(ax, ay, az, gx*PI/180.0f, gy*PI/180.0f, gz*PI/180.0f, my, mx, mz); // Serial print and/or display at 0.5 s rate independent of data rates delt_t = t.read_us() - count; if (delt_t > 1) { // update LCD once per half-second independent of read rate - // pc.printf("delt_t = %f\n",delt_t); - - // if (gz < 1) -// { -// x = 0; -// } -// else if (gz < 50) -// { -// x = 19; -// } -// else -// { -// x = 13; -// } - // x=35; - // if(gz<0) -// { -// x = 0; -// } -// else{ -// x = 40 ; -// } - x = 97.5; + + x = 1.2; posA += (gz*delt_t*x/1000000); posA = fmod(posA,360); posB = fmod(posA + 240,360); posC = fmod(posA + 120,360); + count = t.read_us(); + //Text('O',posA,posB,posC,0); +// Text('B',posA,posB,posC,1); +// Text('I',posA,posB,posC,2); +// Text('F',posA,posB,posC,3); +// Text(' ',posA,posB,posC,4); +// Text(' ',posA,posB,posC,5); + if (mode == 1) { - //pc.printf("x = %f", x); - - - // if (posA >= 360 && posA < 720) -// { -// A = 0x7F; -// B = 0x7F; -// C = 0x7F; -// } -// else if (posA >= 720 && posA < 1080) -// { -// A = 0x7F; -// B = 0; -// C = 0; -// } -// else if (posA >= 1080 && posA < 1440) -// { -// A = 0x7F; -// B = 0x7F; -// C = 0x7F; -// } -// else if (posA >= 1440 && posA < 1800) -// { -// A = 0x7F; -// B = 0; -// C = 0; -// } -// else if (posA >= 1800) -// { -// A = 0x7F; -// B = 0x7F; -// C = 0x7F; -// } -// else -// { -// A = 0; -// B = 0; -// C = 0; -// } -// if (posA >= 360) -// { -// break; -// } - - if (posA > 0 && posA <= 6) - { - A = 0x70; - } - else if (posA > 6 && posA <= 12) - { - A = 0x70; - } - else if(posA > 12 && posA <= 18 ) - { - A = 0x08; - } - else if(posA > 18 && posA <= 24 ) - { - A = 0x08; - } - else if(posA > 24 && posA <= 30 ) - { - A = 0x07; + Velocity(v,posA,posB,posC); } - else if(posA > 30 && posA <= 36 ) - { - A = 0x07; - } - else if(posA > 36 && posA <= 42 ) - { - A = 0x08; - } - else if(posA > 42 && posA <= 48 ) - { - A = 0x08; - } - else if(posA > 48 && posA <= 54 ) - { - A = 0x70; - } - else if(posA > 54 && posA <= 59 ) - { - A = 0x70; - } - else - { - A = 0x00; - } - if (posB > 0 && posB <= 6) - { - B = 0x70; - } - else if (posB > 6 && posB <= 12) - { - B = 0x70; - } - else if(posB > 12 && posB <= 18 ) - { - B = 0x08; - } - else if(posB > 18 && posB <= 24 ) - { - B = 0x08; - } - else if(posB > 24 && posB <= 30 ) - { - B = 0x07; - } - else if(posB > 30 && posB <= 36 ) - { - B = 0x07; - } - else if(posB > 36 && posB <= 42 ) - { - B = 0x08; - } - else if(posB > 42 && posB <= 48 ) - { - B = 0x08; - } - else if(posB > 48 && posB <= 54 ) - { - B = 0x70; - } - else if(posB > 54 && posB <= 59 ) - { - B = 0x70; - } - else - { - B = 0x00; + else if (mode == 2) + { + Text((char)word[0],posA,posB,posC,5); + Text((char)word[1],posA,posB,posC,4); + Text((char)word[2],posA,posB,posC,3); + Text((char)word[3],posA,posB,posC,2); + Text((char)word[4],posA,posB,posC,1); + Text((char)word[5],posA,posB,posC,0); } - if (posC > 0 && posC <= 6) - { - C = 0x70; - } - else if (posC > 6 && posC <= 12) - { - C = 0x70; - } - else if(posC > 12 && posC <= 18 ) - { - C = 0x08; - } - else if(posC > 18 && posC <= 24 ) - { - C = 0x08; - } - else if(posC > 24 && posC <= 30 ) - { - C = 0x07; - } - else if(posC > 30 && posC <= 36 ) - { - C = 0x07; - } - else if(posC > 36 && posC <= 42 ) - { - C = 0x08; - } - else if(posC > 42 && posC <= 48 ) - { - C = 0x08; - } - else if(posC > 48 && posC <= 54 ) - { - C = 0x70; - } - else if(posC > 54&& posC <= 59 ) - { - C = 0x70; - } - else - { - C = 0x00; - } - } - else if (mode == 2) - { - - } -// pc.printf("ax = %f", 1000*ax); -// pc.printf(" ay = %f", 1000*ay); -// pc.printf(" az = %f mg\n\r", 1000*az); - -// pc.printf("gx = %f", gx); -// pc.printf(" gy = %f", gy); -// pc.printf(" %.2f\r", gz); -// pc.printf(" %.2f %.2f %.2f\n", posA, posB, posC); - - // pc.printf("gx = %f", mx); -// pc.printf(" gy = %f", my); -// pc.printf(" gz = %f mG\n\r", mz); - - // tempCount = mpu9250.readTempData(); // Read the adc values -// temperature = ((float) tempCount) / 333.87f + 21.0f; // Temperature in degrees Centigrade -// pc.printf(" temperature = %f C\n\r", temperature); - - // pc.printf("q0 = %f\n\r", q[0]); -// pc.printf("q1 = %f\n\r", q[1]); -// pc.printf("q2 = %f\n\r", q[2]); -// pc.printf("q3 = %f\n\r", q[3]); - - - - // Define output variables from updated quaternion---these are Tait-Bryan angles, commonly used in aircraft orientation. - // In this coordinate system, the positive z-axis is down toward Earth. - // Yaw is the angle between Sensor x-axis and Earth magnetic North (or true North if corrected for local declination, looking down on the sensor positive yaw is counterclockwise. - // Pitch is angle between sensor x-axis and Earth ground plane, toward the Earth is positive, up toward the sky is negative. - // Roll is angle between sensor y-axis and Earth ground plane, y-axis up is positive roll. - // These arise from the definition of the homogeneous rotation matrix constructed from quaternions. - // Tait-Bryan angles as well as Euler angles are non-commutative; that is, the get the correct orientation the rotations must be - // applied in the correct order which for this configuration is yaw, pitch, and then roll. - // For more see http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles which has additional links. -// yaw = atan2(2.0f * (q[1] * q[2] + q[0] * q[3]), q[0] * q[0] + q[1] * q[1] - q[2] * q[2] - q[3] * q[3]); -// pitch = -asin(2.0f * (q[1] * q[3] - q[0] * q[2])); -// roll = atan2(2.0f * (q[0] * q[1] + q[2] * q[3]), q[0] * q[0] - q[1] * q[1] - q[2] * q[2] + q[3] * q[3]); -// pitch *= 180.0f / PI; -// yaw *= 180.0f / PI; -// yaw -= 13.8f; // Declination at Danville, California is 13 degrees 48 minutes and 47 seconds on 2014-04-04 -// roll *= 180.0f / PI; - -// pc.printf("Yaw, Pitch, Roll: %f %f %f\n\r", yaw, pitch, roll); -// pc.printf("average rate = %f\n\r", (float) sumCount/sum); -// sprintf(buffer, "YPR: %f %f %f", yaw, pitch, roll); -// sprintf(buffer, "rate = %f", (float) sumCount/sum); -// - - count = t.read_us(); - - // if(count > 1<<21) { -// t.start(); // start the timer over again if ~30 minutes has passed -// count = 0; -// deltat= 0; -// lastUpdate = t.read_us(); -// } -// sum = 0; -// sumCount = 0; } delt_t2 = t.read_us() - count2; if (delt_t2 >= 1000000) @@ -444,19 +1043,29 @@ pc.printf("%0.1f",v); count2 = t.read_us(); } + if (pc.readable()) + { cmode = pc.getc(); - switch (cmode) + switch(cmode) { + case '&': + word.clear(); + break; + case '?': mode = 1; break; - case 'j' + case '!': mode = 2; break; + + default: + word += cmode; } +// bam.printf("%c %s %d\n",cmode, word, word.length()); } }