Lab 1 Task 2 example code

Dependencies:   mbed m3pi

Fork of 3pi_Lab1_Task2_Example1 by Craig Evans

Committer:
eencae
Date:
Tue Jul 09 12:34:38 2019 +0000
Revision:
3:28e9fddaff60
Parent:
2:b135039705fe
Updated m3pi library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 2:b135039705fe 1 /* 3pi Lab 1 Example 2
eencae 0:127d52afa7a9 2
eencae 0:127d52afa7a9 3 (c) Dr Craig A. Evans, University of Leeds
eencae 0:127d52afa7a9 4
eencae 0:127d52afa7a9 5 June 2017
eencae 0:127d52afa7a9 6
eencae 0:127d52afa7a9 7 */
eencae 0:127d52afa7a9 8
eencae 0:127d52afa7a9 9 #include "mbed.h"
eencae 0:127d52afa7a9 10 #include "m3pi.h"
eencae 0:127d52afa7a9 11
eencae 0:127d52afa7a9 12 // API objects
eencae 1:3143ad629ed8 13 m3pi robot;
eencae 0:127d52afa7a9 14 AnalogIn pot_P(p15);
eencae 0:127d52afa7a9 15
eencae 0:127d52afa7a9 16 // Function Prototypes
eencae 0:127d52afa7a9 17 void init();
eencae 0:127d52afa7a9 18
eencae 0:127d52afa7a9 19 // Main Function
eencae 0:127d52afa7a9 20 int main()
eencae 0:127d52afa7a9 21 {
eencae 0:127d52afa7a9 22 init();
eencae 0:127d52afa7a9 23
eencae 0:127d52afa7a9 24 // move cursor to position (0,0) - top-left
eencae 1:3143ad629ed8 25 robot.lcd_goto_xy(0,0);
eencae 2:b135039705fe 26 robot.lcd_print("Lab 1",5); // 5 is number of characters in message (max 8)
eencae 2:b135039705fe 27 robot.lcd_goto_xy(0,1);
eencae 2:b135039705fe 28 robot.lcd_print("Task 2",6);
eencae 0:127d52afa7a9 29
eencae 2:b135039705fe 30 // we will update the motors 100 times per second
eencae 2:b135039705fe 31 float dt = 1.0/100.0;
eencae 0:127d52afa7a9 32
eencae 0:127d52afa7a9 33 // main loop - this runs forever
eencae 0:127d52afa7a9 34 while(1) {
eencae 0:127d52afa7a9 35
eencae 0:127d52afa7a9 36 // this returns a value in the range 0.0 to 1.0
eencae 0:127d52afa7a9 37 float pot_P_val = pot_P.read();
eencae 0:127d52afa7a9 38
eencae 0:127d52afa7a9 39 // change to -1.0 to 1.0
eencae 0:127d52afa7a9 40 float motor_speed = 2.0*pot_P_val-1.0;
eencae 0:127d52afa7a9 41 // this gives full-speed backward (-1.0) to full-speed forward
eencae 0:127d52afa7a9 42
eencae 0:127d52afa7a9 43 // set the speed of the left and right motors
eencae 1:3143ad629ed8 44 robot.motors(motor_speed,motor_speed);
eencae 0:127d52afa7a9 45
eencae 0:127d52afa7a9 46 // wait for a short time before repeating the loop
eencae 0:127d52afa7a9 47 wait(dt);
eencae 0:127d52afa7a9 48
eencae 0:127d52afa7a9 49 }
eencae 0:127d52afa7a9 50 }
eencae 0:127d52afa7a9 51
eencae 0:127d52afa7a9 52 // Functions
eencae 0:127d52afa7a9 53 void init()
eencae 0:127d52afa7a9 54 {
eencae 1:3143ad629ed8 55 robot.init();
eencae 0:127d52afa7a9 56 }