ROME 2 Praktikum 4
Embed:
(wiki syntax)
Show/hide line numbers
Main.cpp
00001 /* 00002 * Main.cpp 00003 * Copyright (c) 2020, ZHAW 00004 * All rights reserved. 00005 */ 00006 00007 #include <mbed.h> 00008 #include <EthernetInterface.h> 00009 #include "IMU.h" 00010 #include "HTTPServer.h" 00011 #include "HTTPScriptIMU.h" 00012 00013 int main() { 00014 00015 // initialise digital inputs and outputs 00016 00017 printf("Initialise digital inputs and outputs...\r\n"); 00018 00019 DigitalIn button(USER_BUTTON); 00020 00021 DigitalOut ledGreen(LED1); 00022 DigitalOut ledBlue(LED2); 00023 DigitalOut ledRed(LED3); 00024 00025 // create inertial measurement unit object 00026 00027 printf("Create inertial measurement unit object...\r\n"); 00028 00029 SPI spi(PC_12, PC_11, PC_10); 00030 DigitalOut csAG(PC_8); 00031 DigitalOut csM(PC_9); 00032 00033 IMU imu(spi, csAG, csM); 00034 00035 // create ethernet interface and webserver 00036 00037 printf("Create ethernet interface and webserver (please wait!)...\r\n"); 00038 00039 EthernetInterface* ethernet = new EthernetInterface(); 00040 ethernet->set_network("169.254.20.110", "255.255.0.0", "0.0.0.0"); // configure IP address, netmask and gateway address 00041 ethernet->connect(); 00042 00043 HTTPServer* httpServer = new HTTPServer(*ethernet); 00044 httpServer->add("imu", new HTTPScriptIMU(imu)); 00045 00046 // enter main loop 00047 00048 printf("Enter main loop...\r\n"); 00049 00050 while (true) { 00051 00052 // set LEDs on microcontroller 00053 00054 ledGreen = 1; 00055 ledBlue = 0; 00056 ledRed = 0; 00057 00058 ThisThread::sleep_for(100); 00059 00060 ledGreen = 0; 00061 ledBlue = 1; 00062 ledRed = 0; 00063 00064 ThisThread::sleep_for(100); 00065 00066 ledGreen = 0; 00067 ledBlue = 0; 00068 ledRed = 1; 00069 00070 // print sensor data into terminal 00071 00072 printf("Gyro: %.3f / %.3f / %.3f\r\n", imu.readGyroX(), imu.readGyroY(), imu.readGyroZ()); 00073 printf("Acceleration: %.3f / %.3f / %.3f\r\n", imu.readAccelerationX(), imu.readAccelerationY(), imu.readAccelerationZ()); 00074 printf("Magnetometer: %.3f / %.3f / %.3f\r\n", imu.readMagnetometerX(), imu.readMagnetometerY(), imu.readMagnetometerZ()); 00075 printf("Orientation: %.3f\r\n", imu.readHeading()); 00076 } 00077 } 00078
Generated on Wed Jul 13 2022 21:00:44 by
1.7.2