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.
src/main_controller.cpp@1:6f18bb7a77a5, 2018-11-15 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |
