Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: QEI2 chair_BNO055 PID Watchdog VL53L1X_Filter ros_lib_kinetic
Dependents: wheelchairControlSumer2019
Diff: main.cpp
- Revision:
- 11:d14a1f7f1297
- Parent:
- 10:e5463c11e0a0
- Child:
- 12:921488918749
--- a/main.cpp Mon Jul 23 20:17:37 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-#include "wheelchair.h"
-
-AnalogIn x(A0);
-AnalogIn y(A1);
-
-DigitalOut off(D0);
-DigitalOut on(D1);
-DigitalOut up(D2);
-DigitalOut down(D3);
-
-bool manual = false;
-
-Serial pc(USBTX, USBRX, 57600);
-Timer t;
-
-MPU9250 imu(D14, D15);
-//Wheelchair smart(xDir,yDir, &pc, &t);
-
-int main(void)
-{
-
- uint8_t whoami = imu.readByte(MPU9250_ADDRESS, WHO_AM_I_MPU9250); // Read WHO_AM_I register for MPU-9250
- pc.printf("I AM 0x%x\n\r", whoami);
- pc.printf("I SHOULD BE 0x71\n\r");
-
- if (whoami == 0x71) { // WHO_AM_I should always be 0x68
- pc.printf("MPU9250 is online...\n\r");
-
- wait(1);
-
- imu.resetMPU9250(); // Reset registers to default in preparation for device calibration
- imu.calibrateMPU9250(imu.gyroBias, imu.accelBias); // Calibrate gyro and accelerometers, load biases in bias registers
- imu.initMPU9250();
- imu.initAK8963(imu.magCalibration);
- wait(2);
-
- } else {
- pc.printf("Could not connect to MPU9250: \n\r");
- pc.printf("%#x \n", whoami);
-
- while(1) ; // Loop forever if communication doesn't happen
- }
-
- imu.getAres(); // Get accelerometer sensitivity
- imu.getGres(); // Get gyro sensitivity
- imu.getMres(); // Get magnetometer sensitivity
- pc.printf("Accelerometer sensitivity is %f LSB/g \n\r", 1.0f/imu.aRes);
- pc.printf("Gyroscope sensitivity is %f LSB/deg/s \n\r", 1.0f/imu.gRes);
- pc.printf("Magnetometer sensitivity is %f LSB/G \n\r", 1.0f/imu.mRes);
- imu.magbias[0] = +470.; // User environmental x-axis correction in milliGauss, should be automatically calculated
- imu.magbias[1] = +120.; // User environmental x-axis correction in milliGauss
- imu.magbias[2] = +125.; // User environmental x-axis correction in milliGauss
-
-
- Wheelchair smart(xDir,yDir, &pc, &t);
-
- while(1) {
- if( pc.readable()) {
- char c = pc.getc();
-
- if( c == 'w') {
- pc.printf("up \n");
- smart.forward();
- }
-
- else if( c == 'd') {
- pc.printf("left \n");
- smart.left();
- }
-
- else if( c == 'a') {
- pc.printf("right \n");
- smart.right();
- }
-
- else if( c == 's') {
- pc.printf("down \n");
- smart.backward();
- }
-
- else if( c == 'r') {
- smart.turn_right();
- }
-
- else if( c == 'l') {
- smart.turn_left();
- }
-
- else if( c == 'm' || manual) {
- pc.printf("turning on joystick\n");
- manual = true;
- while(manual) {
- smart.move(x,y);
- if( pc.readable()) {
- char d = pc.getc();
- if( d == 'm') {
- pc.printf("turning off joystick\n");
- manual = false;
- }
- }
- }
- }
-
- else {
- pc.printf("none \n");
- smart.stop();
- }
- }
-
- else {
- // pc.printf("Nothing pressed \n");
- smart.stop();
- }
- /*
- smart.move(x,y);
- if( pc.readable()) {
- char c = pc.getc();
- if( c == 'r') {
- smart.turn_right();
- }
- if( c == 'l') {
- smart.turn_left();
- }
- }*/
- wait(process);
- }
-
-}
-