FRDM-Copter is an attempt to build firmware for mbed based multicopter running on FRDM boards from Freescale.

Dependencies:   FXAS21000 FXOS8700Q PID mbed-dsp mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "rtos.h"
00003 #include "MotionSensor.h"
00004 #include "FXAS21000.h"
00005 #include "FXOS8700Q.h"
00006 
00007 Serial pc(USBTX, USBRX);
00008 I2C i2c(PTE25, PTE24);
00009 I2C i2c_gyro(A4, A5);
00010 
00011 FXOS8700QAccelerometer acc(i2c, FXOS8700CQ_SLAVE_ADDR1);    // Configured for the FRDM-K64F with onboard sensors
00012 FXOS8700QMagnetometer mag(i2c, FXOS8700CQ_SLAVE_ADDR1);
00013 FXAS21000Gyroscpe gyro(i2c_gyro, FXAS21000_SLAVE_ADDR);
00014 
00015 int main(void)
00016 {
00017     motion_data_units_t acc_data, mag_data, gyro_data;
00018     
00019     acc.enable();
00020     mag.enable();
00021     gyro.enable();
00022     //printf("FXOS8700QAccelerometer Who Am I= %X\r\n", acc.whoAmI());
00023     //printf("FXOS8700QMagnetometer Who Am I= %X\r\n", acc.whoAmI());
00024     //printf("FXAS21000Gyroscope Who am I= %X\r\n", gyro.whoAmI());
00025 
00026     while (true) {
00027         // unit based results
00028         acc.getAxis(acc_data);
00029         mag.getAxis(mag_data);
00030         gyro.getAxis(gyro_data);
00031         /*
00032         printf("%1.4f,%1.4f,%1.4f,%4.1f,%4.1f,%4.1f,%1.4f,%1.4f,%1.4f\r\n", acc_data.x, acc_data.y, acc_data.z, mag_data.x, mag_data.y, mag_data.z,
00033         gyro_data.x, gyro_data.y, gyro_data.z);
00034         */
00035      
00036         printf("%1.4f,%1.4f,%1.4f\r\n", gyro_data.x, gyro_data.y, gyro_data.z);
00037         wait(0.5f);
00038     }
00039 }