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: mbed
Revision 0:af4f83b43162, committed 2014-12-10
- Comitter:
- jstroud
- Date:
- Wed Dec 10 18:59:21 2014 +0000
- Commit message:
- force sensor code for processing
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r af4f83b43162 main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Wed Dec 10 18:59:21 2014 +0000
@@ -0,0 +1,160 @@
+#include "mbed.h"
+
+//serial connection to PC via USB
+Serial pc(USBTX, USBRX);
+AnalogIn strut1Force(P0_1);
+AnalogIn strut2Force(P0_2);
+AnalogIn strut3Force(P0_3);
+AnalogIn strut4Force(P0_4);
+AnalogIn seatForce(P0_5);
+AnalogIn cupBottomForce(P0_6);
+
+DigitalOut light(LED1);
+
+int main(void)
+{
+pc.printf("init\n");
+ while (true) {
+ //pc.printf("test");
+ //light = 1;
+ float vals[6] = { strut1Force.read(), strut2Force.read(), strut3Force.read(), strut4Force.read(), seatForce.read(), cupBottomForce.read() };
+ pc.printf("%1.2f,%1.2f,%1.2f,%1.2f,%1.2f,%1.2f\n", vals[0], vals[1], vals[2], vals[3], vals[4], vals[5]);
+ wait(0.001f); // wait 50ms (200Hz update rate)
+ //light = 0;
+ }
+
+}
+/* // Sensor graphing sketch with threshold
+// This program takes ASCII-encoded strings
+// from the serial port at 9600 baud and graphs them. It expects float values in the
+// range of -1.0 to 1.0, followed by a newline, or newline and carriage return
+
+// based on Tom Igoe's Arduino sensor graphing sketch, created 20 Apr 2005
+// Adapted 16 Sep 2014 by Bjoern Hartmann for mbed
+// This example code is in the public domain.
+
+import processing.serial.*;
+import java.util.Scanner;
+
+Serial myPort; // The serial port
+int xPos = 1; // horizontal position of the graph
+float threshold=0.3;
+float minThreshold = 0.1;
+float max = 0;
+boolean rise = true;
+PImage bearImg;
+
+void setup () {
+ // set the window size:
+ //size(400, 300);
+ //fullscreen
+ size(displayWidth, displayHeight);
+ // List all the available serial ports to help you find the one you need
+ println(Serial.list());
+ // Open whatever port is the one you're using.
+ myPort = new Serial(this, "/dev/tty.usbmodem1422", 9600);
+ // don't generate a serialEvent() unless you get a newline character:
+ myPort.bufferUntil('\n');
+ // set inital background:
+ redrawBG();
+
+ bearImg = loadImage("cal_bear.png");
+}
+
+void draw () {
+
+ // everything happens in the serialEvent()
+}
+
+void keyPressed() {
+if (key == CODED) {
+ if (keyCode == UP) {
+ threshold+=0.05;
+ } else if (keyCode == DOWN) {
+ threshold-=0.05;
+ }
+ redrawBG();
+ }
+}
+
+// threshold 0.2 - 0.9
+
+void serialEvent (Serial myPort) {
+ // get the ASCII string:
+
+ String inString = myPort.readStringUntil('\n');
+
+ if (inString != null) {
+ Scanner scanner = new Scanner(inString);
+
+ // trim off any whitespace:
+ inString = trim(inString);
+ // convert to an int and map to the screen height:
+ float inFloat =0.f;
+ try{
+ inFloat = scanner.nextFloat();//float(inString);
+ } catch (Exception e) {
+ print(e);
+ }
+
+
+ if(rise) { // we were last below
+ if(inFloat>threshold) { // we're above where we want to be
+ // rising edge, becoming true
+ rise = false;
+ drawHit(inFloat);
+
+ } // else // do nothing
+
+ } else { // below == false, above threshold
+ if(inFloat < threshold) { //we drop below threshold
+ rise = true;
+ delay(500);
+ redrawBG();
+ max = 0;
+ } else // below == false, still above threshold
+ drawHit(inFloat);
+ }
+
+
+ // at the edge of the screen, go back to the beginning:
+ }
+}
+
+void drawHit(float inFloat) {
+ if(max < inFloat) {
+ max = inFloat;
+ float screenY = map(inFloat, 1.0, 0, 0, height);
+
+ redrawBG();
+ // draw the line from bottom of screen to desired height
+ // choose color based on side of threshold we're on
+ float texty = map(threshold,0,1,height,0);
+ int percent = round(inFloat*100);
+ String hitText = "";
+ if(inFloat<threshold) {
+ fill(61,126,155);
+ hitText = "LAME";
+ } else {
+ hitText = percent + "%";
+ fill(231,76,70);
+ }
+ //println(inFloat);
+ textSize(72);
+ text(hitText,20,texty-40);
+ rect(width/2-20 , height, 40, -1*(height - screenY));
+ }
+}
+
+void redrawBG() {
+ background(236,240,241);
+ stroke(52,73,94);
+ float ty = height-map(threshold,0,1,0,height);
+ line(0,ty,width,ty);
+ fill(255,0,0);
+ stroke(0,0,0);
+ textSize(100);
+ text("Test your strength!",width/5.7,100);
+}
+*/
+
\ No newline at end of file
diff -r 000000000000 -r af4f83b43162 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Dec 10 18:59:21 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/031413cf7a89 \ No newline at end of file