![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
RenBuggyTimed with edited function and access to seven segment display
Dependencies: SevenSegmentDisplay mbed
Fork of 1-RenBuggyTimed by
Revision 1:91ca3ea0f578, committed 2016-04-13
- Comitter:
- DanArgust
- Date:
- Wed Apr 13 07:04:28 2016 +0000
- Parent:
- 0:9870f526ddd1
- Commit message:
- Release 0.0.1 1-RenBuggyTimed with changes all functions and including access to Seven Segment Display
Changed in this revision
diff -r 9870f526ddd1 -r 91ca3ea0f578 SevenSegmentDisplay.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SevenSegmentDisplay.lib Wed Apr 13 07:04:28 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/jf1452/code/SevenSegmentDisplay/#cb7339a2e196
diff -r 9870f526ddd1 -r 91ca3ea0f578 TimedMovement.cpp --- a/TimedMovement.cpp Fri Mar 11 10:36:38 2016 +0000 +++ b/TimedMovement.cpp Wed Apr 13 07:04:28 2016 +0000 @@ -1,6 +1,6 @@ /********************************************************* *TimedMovement.cpp * -*Author: Elijah Orr * +*Author: Dan Argust * * * *A library of functions that can be used to control the * *RenBuggy. * @@ -12,6 +12,7 @@ /* necessary includes */ #include "mbed.h" #include "TimedMovement.h" +#include "SevenSegmentDisplay.h" /* PwmOut is a class included in the mbed.h library that allows a pin to be configured as a PWM output. This is used to control @@ -21,6 +22,11 @@ PwmOut Lmotor(LeftMotorPin); PwmOut Rmotor(RightMotorPin); +DigitalIn CurrentButtonState(p7); +bool LastButtonState = 0; + +SevenSegmentDisplay seg(0); + /* Function definitions contain the code that will execute when the function is called. These must have the same return type and parameters as the function declarations. */ @@ -35,16 +41,31 @@ * * * Returns: none * ****************************************************************/ +extern void hold(float time) +{ + seg.DisplayDigits(0,0); + for (float i = time;i>0;i-=0.01){ + seg.DisplayDigits((int)i/10,(int)i%10); + //if (CurrentButtonState == 1 and LastButtonState == 0){ + // rollDice(); + //} + //LastButtonState = CurrentButtonState; + wait(0.01); + } +} + extern void forward(float time) { /* Lmotor and Rmotor are set to 1.0 (i.e. the motors will operate at full speed). As both motors will move at the same speed, the RenBuggy will go directly forward. */ + //Lmotor = Rmotor = 1.0; Lmotor = Rmotor = 1.0; /* the program will wait here for the length of time passed - to the function before continuing. wait() is a function - provided from mbed.h; a loop could be used instead. */ - wait(time); + to the function before continuing. hold() is used to wait a + number of seconds and display them on the seven seg display */ + hold(time); + stop(); } /**************************************************************** @@ -60,8 +81,10 @@ extern void left(float time) { Rmotor = 1.0; - Lmotor = 0.2; - wait(time); + Lmotor = 0.0; + hold(time); + //readButton(time); + stop(); } /**************************************************************** @@ -77,8 +100,9 @@ extern void right(float time) { Lmotor = 1.0; - Rmotor = 0.2; - wait(time); + Rmotor = 0.0; + hold(time); + stop(); } /**************************************************************** @@ -95,4 +119,31 @@ Lmotor = Rmotor = 0; } +extern void readButton(float time) +{ + seg.DisplayDigits(0,0); + for (float i = time;i>0;i-=0.01) + { + if (CurrentButtonState == 1 and LastButtonState == 0){ + rollDice(); + //stop(); + //right(2.0); + } + LastButtonState = CurrentButtonState; + wait(0.01); + } +} + +extern int rollDice() +{ + int tens; + int units; + for (int i = 20;i>0;i--){ + tens = rand()%9; + units = rand()%9; + seg.DisplayDigits(tens,units); + wait(0.04); + } + return tens*10+units; +} #endif // TIMEDMOVEMENT_C \ No newline at end of file
diff -r 9870f526ddd1 -r 91ca3ea0f578 TimedMovement.h --- a/TimedMovement.h Fri Mar 11 10:36:38 2016 +0000 +++ b/TimedMovement.h Wed Apr 13 07:04:28 2016 +0000 @@ -31,9 +31,13 @@ extern void forward(float); extern void left(float); extern void right(float); +extern void hold(float); +extern void stop(); + +extern void readButton(float); +extern int rollDice(); /* stop() is slightly different in that it doesn't expect to be passed any variables, so the parentheses can be left empty. Passing a variable to this function would cause an error */ -extern void stop(); #endif // TIMEDMOVEMENT_H \ No newline at end of file
diff -r 9870f526ddd1 -r 91ca3ea0f578 main.cpp --- a/main.cpp Fri Mar 11 10:36:38 2016 +0000 +++ b/main.cpp Wed Apr 13 07:04:28 2016 +0000 @@ -1,6 +1,6 @@ /********************************************************* *RenBuggyTimed * -*Author: Elijah Orr * +*Author: Dan Argust * * * *This program demonstates use of a library of functions * *(TimedMovement) to control the movement of the RenBuggy.* @@ -33,8 +33,22 @@ and TimedMovement.cpp, and specify the length of time we want them to run for by passing a variable which represents a length of time in seconds */ - forward(5); + forward(5.5); + hold(16); + readButton(11); + forward(3); left(2); - forward(5); - stop(); -} + right(6.5); + forward(3); + hold(5); + + right(0.25); + for (int i = 0;i<6;i++) + { + left(0.5); + right(0.5); + } + left(0.25); + forward(1.0); + +} \ No newline at end of file