Test with EzSbc2 LPC1347 board and Adafruit 0,96" display, connected to i2c
Dependencies: Adafruit_GFX I2CDevLib MPU9150 SmallGUI USBDevice WeeESP8266 mbed nRF24L01P
main.txt
- Committer:
- JojoS
- Date:
- 2017-04-24
- Revision:
- 3:8d93e16c38a6
- Parent:
- 2:2eb3f38f9141
File content as of revision 3:8d93e16c38a6:
#include "mbed.h" #include "Adafruit_SSD1306.h" #include "MPU9150.h" #include "USBSerial.h" #include "Controls.h" #include "ArduinoAPI.h" #include "ESP8266.h" //#define USE_USBSERIAL // modified für EzSBC2 DigitalOut ledRed(P1_16); DigitalOut ledGreen(P1_15); float sum = 0; uint32_t sumCount = 0; char buffer[14]; Timer t; #ifdef USE_USBSERIAL USBSerial pc; #endif // an SPI sub-class that provides a constructed default class SPI2 : public SPI { public: SPI2(PinName mosi, PinName miso, PinName clk) : SPI(mosi,miso,clk) { format(8,3); frequency(2000000); }; }; // an I2C sub-class that provides a constructed default class I2C2 : public I2C { public: I2C2(PinName sda, PinName scl) : I2C(sda, scl) { frequency(400000); start(); }; }; I2C2 gI2C(P0_5, P0_4); Adafruit_SSD1306_I2c gOled2(gI2C, NC, 0x78, 64, 128); I2Cdev i2Cdev; MPU9150 mpu(i2Cdev); ArduinoSerial esp_uart(P1_13, P1_14); ESP8266 wifi(esp_uart, 115200); int main() { uint16_t x=0; //while(1) { ledRed = 1; ledGreen = 0; wait(0.5); ledRed = 0; ledGreen = 1; wait(0.5); } int16_t y = 12; int16_t ySize = 4; int16_t yGap = 2; Canvas canvasBG(gOled2); barGraph bgAx(barGraph::bgHorizontal, 0, y, 127, y+ySize); canvasBG.addControl(bgAx); bgAx.setScale(-16383.0f, 16384.0f); y = y + ySize + yGap; barGraph bgAy(barGraph::bgHorizontal, 0, y, 127, y+ySize); canvasBG.addControl(bgAy); bgAy.setScale(-16383.0f, 16384.0f); y = y + ySize + yGap; barGraph bgAz(barGraph::bgHorizontal, 0, y, 127, y+ySize); canvasBG.addControl(bgAz); bgAz.setScale(-16383.0f, 16384.0f); y = y + ySize + yGap; barGraph bgGx(barGraph::bgHorizontal, 0, y, 127, y+ySize); canvasBG.addControl(bgGx); bgGx.setScale(-16383.0f, 16384.0f); y = y + ySize + yGap; barGraph bgGy(barGraph::bgHorizontal, 0, y, 127, y+ySize); canvasBG.addControl(bgGy); bgGy.setScale(-16383.0f, 16384.0f); y = y + ySize + yGap; barGraph bgGz(barGraph::bgHorizontal, 0, y, 127, y+ySize); canvasBG.addControl(bgGz); bgGz.setScale(-16383.0f, 16384.0f); gOled2.clearDisplay(); gOled2.display(); //gOled2.setTextCursor(1, 0); gOled2.printf("%ux%u OLED Display\r\n", gOled2.width(), gOled2.height()); #ifdef USE_USBSERIAL pc.printf("MPU6050 test\n\n"); pc.printf("MPU6050 initialize \n"); #endif int16_t ax, ay, az; int16_t gx, gy, gz; mpu.initialize(); #ifdef USE_USBSERIAL pc.printf("MPU6050 testConnection \n"); #endif bool mpu6050TestResult = mpu.testConnection(); #ifdef USE_USBSERIAL if(mpu6050TestResult) { pc.printf("MPU6050 test passed \n"); } else { pc.printf("MPU6050 test failed \n"); } #endif bool wifiOk = false; // wifi connect { wifiOk = wifi.setOprToStationSoftAP(); if (wifiOk) wifiOk = wifi.joinAP("JojosWLan2", "1883057324535716"); if (wifiOk) wifiOk = wifi.disableMUX(); //wifiOk = wifi.enableMUX(); if (wifiOk) wifiOk = wifi.registerUDP("192.168.100.74", 8090); } char buffer[32]; while(1) { ledRed = !ledRed; gOled2.clearDisplay(); mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); //writing current accelerometer and gyro position //pc.printf("%d;%d;%d;%d;%d;%d\n",ax,ay,az,gx,gy,gz); if (wifiOk) { sprintf(buffer, "%i %i %i", ax, ay, az); wifi.send((const uint8_t*)buffer, strlen(buffer)); } gOled2.setTextCursor(0, 0); gOled2.printf("wifi ok: %u\r", wifiOk); bgAx.setValue(ax); bgAy.setValue(ay); bgAz.setValue(az); bgGx.setValue(gx); bgGy.setValue(gy); bgGz.setValue(gz); canvasBG.draw(); gOled2.display(); x++; //wait(0.1); } }