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.
Dependencies: ADXL345 DebounceIn USBDevice mbed
Revision 1:2721dc2acc2c, committed 2012-10-17
- Comitter:
- Brandon
- Date:
- Wed Oct 17 16:33:04 2012 +0000
- Parent:
- 0:cf17ea89fd09
- Commit message:
- Updated comments, added names, cleaned old code.
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sun Oct 14 18:58:38 2012 +0000
+++ b/main.cpp Wed Oct 17 16:33:04 2012 +0000
@@ -18,13 +18,15 @@
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Edited to use slider/pushbutton input instead of stretch sensor by Joshua Schrader and Brandon Yee, 2012
+
*/
#include "DebounceIn.h"
#include "mbed.h"
#include "USBMouse.h"
#include "ADXL345.h"
-//Serial pc(USBTX, USBRX);
USBMouse mouse;
ADXL345 accelerometer(p5, p6, p7, p8);
@@ -32,7 +34,6 @@
DebounceIn button(p13);
float str;
int push;
-// Physical interfaces
BusOut leds(LED1, LED2, LED3, LED4);
// Return slingshot angle in radians, up > 0 > down
@@ -106,7 +107,6 @@
Timer timer;
float angles[8] = {0};
- //float stretches[8] = {0};
while(1) {
@@ -118,7 +118,6 @@
float this_angle = get_angle();
// apply some filtering
- //float stretch = filter(stretches, 8, this_stretch);
float angle = filter(angles, 8, this_angle);
leds = state;
@@ -133,13 +132,13 @@
break;
case AIMING:
- if(push) { // rapid de-stretch, considered a fire
+ if(push) { // push button while aiming, considered a fire
mouse.release(MOUSE_LEFT);
move_mouse(0, 0);
timer.start();
wait(1);
state = FIRING;
- } else {
+ } else { //incrementally move mouse
int x = 0.0 - cos(angle) * stretch * 40;
int y = sin(angle) * stretch * 40;
move_mouse(x, y);
@@ -147,8 +146,8 @@
break;
case FIRING:
- push = !button;
- if(push) {
+ push = !button; //update button
+ if(push) { // if pushed, return to ready
timer.stop();
timer.reset();
state = WAITING;