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.
Fork of Team5_kode by
robot.cpp@4:62a6681510d6, 2016-11-23 (annotated)
- Committer:
- kimnielsen
- Date:
- Wed Nov 23 21:40:26 2016 +0000
- Revision:
- 4:62a6681510d6
- Parent:
- 3:30bdc3d9e1c6
.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kimnielsen | 0:d3dbe632b1a9 | 1 | /* |
kimnielsen | 0:d3dbe632b1a9 | 2 | ============================================================================ |
kimnielsen | 0:d3dbe632b1a9 | 3 | Name : robot.cpp |
kimnielsen | 2:1c27a43bb9b7 | 4 | Author : Team 5 |
kimnielsen | 0:d3dbe632b1a9 | 5 | Version : 0.1 |
kimnielsen | 2:1c27a43bb9b7 | 6 | Date : 13-10-2016 |
kimnielsen | 0:d3dbe632b1a9 | 7 | Copyright : Open for all |
kimnielsen | 4:62a6681510d6 | 8 | Description : Program to serve the platform for Pro1 2016 |
kimnielsen | 0:d3dbe632b1a9 | 9 | ============================================================================ |
kimnielsen | 0:d3dbe632b1a9 | 10 | */ |
kimnielsen | 4:62a6681510d6 | 11 | #include "odometry.h" |
kimnielsen | 0:d3dbe632b1a9 | 12 | #include "mbed.h" |
kimnielsen | 0:d3dbe632b1a9 | 13 | #include "HCSR04.h" |
kimnielsen | 0:d3dbe632b1a9 | 14 | #include "nucleo_servo.h" |
kimnielsen | 0:d3dbe632b1a9 | 15 | #include "hack_motor.h" |
kimnielsen | 2:1c27a43bb9b7 | 16 | #include <math.h> |
kimnielsen | 0:d3dbe632b1a9 | 17 | |
kimnielsen | 4:62a6681510d6 | 18 | void startfunction( ); |
kimnielsen | 0:d3dbe632b1a9 | 19 | Ticker T1; // create an object T1 of Ticker |
kimnielsen | 0:d3dbe632b1a9 | 20 | |
kimnielsen | 2:1c27a43bb9b7 | 21 | /* |
kimnielsen | 2:1c27a43bb9b7 | 22 | ---------------------------------------------------------------------------- |
kimnielsen | 4:62a6681510d6 | 23 | MAIN FUNCTION |
kimnielsen | 4:62a6681510d6 | 24 | ----------------------------------------------------------------------------*/ |
kimnielsen | 4:62a6681510d6 | 25 | int main() |
kimnielsen | 4:62a6681510d6 | 26 | { |
kimnielsen | 4:62a6681510d6 | 27 | /* |
kimnielsen | 4:62a6681510d6 | 28 | ============================================================================= |
kimnielsen | 4:62a6681510d6 | 29 | Driving and stopping the robot with member functions from the wheel class |
kimnielsen | 4:62a6681510d6 | 30 | =============================================================================*/ |
kimnielsen | 4:62a6681510d6 | 31 | startfunction(); // 1. DRIVE |
kimnielsen | 4:62a6681510d6 | 32 | while(Dtravel_1() <= DISTANCES[0]) // OVERVEJ AT SMIDE "get_to_goal" funktionen ind i selve while loopet, sådan, at beregningerne sker parallelt. |
kimnielsen | 4:62a6681510d6 | 33 | { |
kimnielsen | 4:62a6681510d6 | 34 | get_to_goal(); // TJEK DETTE |
kimnielsen | 4:62a6681510d6 | 35 | robot.FW(0.5, 0.5); |
kimnielsen | 4:62a6681510d6 | 36 | wait_ms(5000); |
kimnielsen | 4:62a6681510d6 | 37 | } |
kimnielsen | 4:62a6681510d6 | 38 | |
kimnielsen | 4:62a6681510d6 | 39 | robot.stop(); |
kimnielsen | 4:62a6681510d6 | 40 | printf("\n\rtimeused = %4d tickL= %4d tickR = %4d \n", t.read_ms(),tickL, |
kimnielsen | 4:62a6681510d6 | 41 | tickR); |
kimnielsen | 4:62a6681510d6 | 42 | wait_ms(3000); |
kimnielsen | 4:62a6681510d6 | 43 | } |
kimnielsen | 4:62a6681510d6 | 44 | /* |
kimnielsen | 2:1c27a43bb9b7 | 45 | ---------------------------------------------------------------------------- |
kimnielsen | 4:62a6681510d6 | 46 | END OF MAIN FUNCTION |
kimnielsen | 4:62a6681510d6 | 47 | ----------------------------------------------------------------------------*/ |
kimnielsen | 4:62a6681510d6 | 48 | |
kimnielsen | 4:62a6681510d6 | 49 | void startfunction() |
kimnielsen | 0:d3dbe632b1a9 | 50 | { |
kimnielsen | 0:d3dbe632b1a9 | 51 | T1.attach(&read_analog, 1.0); // attach the address of the read_analog |
kimnielsen | 0:d3dbe632b1a9 | 52 | //function to read analog in every second |
kimnielsen | 0:d3dbe632b1a9 | 53 | |
kimnielsen | 0:d3dbe632b1a9 | 54 | tacho_left.rise(&tickLeft); // attach the address of the count function |
kimnielsen | 0:d3dbe632b1a9 | 55 | //to the falling edge |
kimnielsen | 0:d3dbe632b1a9 | 56 | tacho_right.rise(&tickRight); // attach the address of the count function |
kimnielsen | 0:d3dbe632b1a9 | 57 | //to the falling edge |
kimnielsen | 0:d3dbe632b1a9 | 58 | |
kimnielsen | 0:d3dbe632b1a9 | 59 | HCSR04 sensor(PC_5,PC_6); // Create an object of HCSR04 ultrasonic with pin |
kimnielsen | 0:d3dbe632b1a9 | 60 | // (echo,trigger) on pin PC_5, PC6 |
kimnielsen | 0:d3dbe632b1a9 | 61 | Servo servo1(PC_8); //Create an object of Servo class on pin PC_8 |
kimnielsen | 0:d3dbe632b1a9 | 62 | |
kimnielsen | 0:d3dbe632b1a9 | 63 | sensor.setRanges(2, 400); // set the range for Ultrasonic |
kimnielsen | 0:d3dbe632b1a9 | 64 | |
kimnielsen | 2:1c27a43bb9b7 | 65 | /* |
kimnielsen | 2:1c27a43bb9b7 | 66 | ============================================================================= |
kimnielsen | 2:1c27a43bb9b7 | 67 | Demo of the servor and ulta sonic sensor |
kimnielsen | 4:62a6681510d6 | 68 | =============================================================================*/ |
kimnielsen | 0:d3dbe632b1a9 | 69 | wait_ms(2000); // just get time for you to enable your screeen |
kimnielsen | 0:d3dbe632b1a9 | 70 | servo1.set_position(0); // Servo right position (angle = 0 degree) for servo |
kimnielsen | 0:d3dbe632b1a9 | 71 | wait_ms (500); |
kimnielsen | 2:1c27a43bb9b7 | 72 | printf("\r\nDistance: %5.1f mm \n", sensor.getDistance_mm()); // display the |
kimnielsen | 0:d3dbe632b1a9 | 73 | //readings from ultra sonic at this position |
kimnielsen | 0:d3dbe632b1a9 | 74 | servo1.set_position(180); // Servo left position (angle = 180 degree) |
kimnielsen | 0:d3dbe632b1a9 | 75 | //for servo |
kimnielsen | 0:d3dbe632b1a9 | 76 | wait_ms (500); |
kimnielsen | 2:1c27a43bb9b7 | 77 | printf("\r\nDistance: %5.1f mm \n", sensor.getDistance_mm()); |
kimnielsen | 0:d3dbe632b1a9 | 78 | servo1.set_position(90); // Straight ahead (angle = 90 degree) for servo |
kimnielsen | 0:d3dbe632b1a9 | 79 | wait_ms (500); |
kimnielsen | 2:1c27a43bb9b7 | 80 | printf("\r\nDistance: %5.1f mm \n", sensor.getDistance_mm()); |
kimnielsen | 0:d3dbe632b1a9 | 81 | |
kimnielsen | 0:d3dbe632b1a9 | 82 | init(); // initialise parameters (just for you to remember if you need to) |
kimnielsen | 0:d3dbe632b1a9 | 83 | |
kimnielsen | 0:d3dbe632b1a9 | 84 | wait_ms(1000); //wait 1 secs here before you go |
kimnielsen | 0:d3dbe632b1a9 | 85 | t.start(); // start timer (just demo of how you can use a timer) |
kimnielsen | 0:d3dbe632b1a9 | 86 | } |