Rob Griffith / Mbed 2 deprecated rat_code

Dependencies:   mbed QEI

Committer:
dionigi
Date:
Thu Nov 15 17:19:20 2018 +0000
Revision:
1:6f18bb7a77a5
Child:
3:35deb5c21b33
Added assignment3 files

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dionigi 1:6f18bb7a77a5 1 #include <string>
dionigi 1:6f18bb7a77a5 2
dionigi 1:6f18bb7a77a5 3 #include "main_controller.h"
dionigi 1:6f18bb7a77a5 4 #include "pid_controller.h"
dionigi 1:6f18bb7a77a5 5
dionigi 1:6f18bb7a77a5 6 MainController::MainController() {
dionigi 1:6f18bb7a77a5 7 m_pid = new PIDController;
dionigi 1:6f18bb7a77a5 8 }
dionigi 1:6f18bb7a77a5 9
dionigi 1:6f18bb7a77a5 10 MainController::~MainController() {
dionigi 1:6f18bb7a77a5 11 delete m_pid;
dionigi 1:6f18bb7a77a5 12 }
dionigi 1:6f18bb7a77a5 13
dionigi 1:6f18bb7a77a5 14 /***
dionigi 1:6f18bb7a77a5 15 * Assignment 3
dionigi 1:6f18bb7a77a5 16 *
dionigi 1:6f18bb7a77a5 17 * Implement PID! Most of this work is done in "pid_controller".
dionigi 1:6f18bb7a77a5 18 ***/
dionigi 1:6f18bb7a77a5 19 void MainController::update() {
dionigi 1:6f18bb7a77a5 20 // Update PID controller. This is the function you should be
dionigi 1:6f18bb7a77a5 21 // calling every systick.
dionigi 1:6f18bb7a77a5 22 m_pid->update();
dionigi 1:6f18bb7a77a5 23 }
dionigi 1:6f18bb7a77a5 24
dionigi 1:6f18bb7a77a5 25 /***
dionigi 1:6f18bb7a77a5 26 * Assignment 3: Part 1
dionigi 1:6f18bb7a77a5 27 *
dionigi 1:6f18bb7a77a5 28 * Get your mouse driving straight.
dionigi 1:6f18bb7a77a5 29 ***/
dionigi 1:6f18bb7a77a5 30 void MainController::driveStraight() {
dionigi 1:6f18bb7a77a5 31 /**
dionigi 1:6f18bb7a77a5 32 * Set an X goal and W goal correctly! This is discussed in the lecture slides.
dionigi 1:6f18bb7a77a5 33 * For help, see example code: pid/drive-straight.cpp
dionigi 1:6f18bb7a77a5 34 **/
dionigi 1:6f18bb7a77a5 35 m_pid->setXGoal(10);
dionigi 1:6f18bb7a77a5 36 m_pid->setWGoal(0);
dionigi 1:6f18bb7a77a5 37 pc.printf("Driving straight\n");
dionigi 1:6f18bb7a77a5 38 }
dionigi 1:6f18bb7a77a5 39
dionigi 1:6f18bb7a77a5 40 /***
dionigi 1:6f18bb7a77a5 41 * Assignment 3: Part 2
dionigi 1:6f18bb7a77a5 42 *
dionigi 1:6f18bb7a77a5 43 * Get your mouse to turn, and drive a specific distance.
dionigi 1:6f18bb7a77a5 44 ***/
dionigi 1:6f18bb7a77a5 45 void MainController::turn(int deg) {
dionigi 1:6f18bb7a77a5 46 /**
dionigi 1:6f18bb7a77a5 47 * For help, see example code: pid/turning.cpp
dionigi 1:6f18bb7a77a5 48 **/
dionigi 1:6f18bb7a77a5 49 pc.printf("Turning %d degrees\n", deg);
dionigi 1:6f18bb7a77a5 50 }
dionigi 1:6f18bb7a77a5 51
dionigi 1:6f18bb7a77a5 52 void MainController::moveCells(float n) {
dionigi 1:6f18bb7a77a5 53 /**
dionigi 1:6f18bb7a77a5 54 * For help, see example code: pid/full.cpp
dionigi 1:6f18bb7a77a5 55 **/
dionigi 1:6f18bb7a77a5 56 pc.printf("Moving %d cells\n", n);
dionigi 1:6f18bb7a77a5 57 }