Josh Goldberg / Mbed 2 deprecated count_pills

Dependencies:   Servo mbed

Committer:
jgoldberg
Date:
Thu Dec 11 21:54:03 2014 +0000
Revision:
0:15d3cdafd311
Child:
1:9ebe670d8a19
Accurately counting 0-50 pills

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jgoldberg 0:15d3cdafd311 1 #include "mbed.h"
jgoldberg 0:15d3cdafd311 2 #include "util.h"
jgoldberg 0:15d3cdafd311 3 #include "weight.h"
jgoldberg 0:15d3cdafd311 4 #include "Servo.h"
jgoldberg 0:15d3cdafd311 5
jgoldberg 0:15d3cdafd311 6 Servo myservo(PTD4);
jgoldberg 0:15d3cdafd311 7 DigitalOut myled1(LED1);
jgoldberg 0:15d3cdafd311 8 DigitalOut myled2(LED2);
jgoldberg 0:15d3cdafd311 9 DigitalOut myled3(LED3);
jgoldberg 0:15d3cdafd311 10 AnalogIn myADC(A0);
jgoldberg 0:15d3cdafd311 11 Serial pc(USBTX, USBRX); // tx, rx
jgoldberg 0:15d3cdafd311 12
jgoldberg 0:15d3cdafd311 13 int main() {
jgoldberg 0:15d3cdafd311 14 int number_pills;
jgoldberg 0:15d3cdafd311 15
jgoldberg 0:15d3cdafd311 16 myled1 = 1; //red off
jgoldberg 0:15d3cdafd311 17 myled2 = 1; //green off
jgoldberg 0:15d3cdafd311 18 myled3 = 1; //blue off
jgoldberg 0:15d3cdafd311 19
jgoldberg 0:15d3cdafd311 20 while(1) {
jgoldberg 0:15d3cdafd311 21 number_pills = measure_pills();
jgoldberg 0:15d3cdafd311 22 //pc.printf("Number of pills: %d\n\r", number_pills);
jgoldberg 0:15d3cdafd311 23 wait(0.05);
jgoldberg 0:15d3cdafd311 24 }
jgoldberg 0:15d3cdafd311 25 }
jgoldberg 0:15d3cdafd311 26
jgoldberg 0:15d3cdafd311 27 void run_servo() {
jgoldberg 0:15d3cdafd311 28
jgoldberg 0:15d3cdafd311 29 /*wait(0.05);
jgoldberg 0:15d3cdafd311 30 for(float p=0; p<1.0; p += 0.1) {
jgoldberg 0:15d3cdafd311 31 myservo = p;
jgoldberg 0:15d3cdafd311 32 pc.printf("%f\n\r", p);
jgoldberg 0:15d3cdafd311 33 wait(0.2);
jgoldberg 0:15d3cdafd311 34 }*/
jgoldberg 0:15d3cdafd311 35
jgoldberg 0:15d3cdafd311 36 printf("Servo Calibration Controls:\n");
jgoldberg 0:15d3cdafd311 37 printf("1,2,3 - Position Servo (full left, middle, full right)\n");
jgoldberg 0:15d3cdafd311 38 printf("4,5 - Decrease or Increase range\n");
jgoldberg 0:15d3cdafd311 39
jgoldberg 0:15d3cdafd311 40 float range = 0.0005;
jgoldberg 0:15d3cdafd311 41 float position = 0.5;
jgoldberg 0:15d3cdafd311 42
jgoldberg 0:15d3cdafd311 43 while(1) {
jgoldberg 0:15d3cdafd311 44 switch(pc.getc()) {
jgoldberg 0:15d3cdafd311 45 case '1': position = 0.0; break;
jgoldberg 0:15d3cdafd311 46 case '2': position = 0.5; break;
jgoldberg 0:15d3cdafd311 47 case '3': position = 1.0; break;
jgoldberg 0:15d3cdafd311 48 case '4': range += 0.0001; break;
jgoldberg 0:15d3cdafd311 49 case '5': range -= 0.0001; break;
jgoldberg 0:15d3cdafd311 50 }
jgoldberg 0:15d3cdafd311 51 printf("position = %.1f, range = +/-%0.4f\n", position, range);
jgoldberg 0:15d3cdafd311 52 myservo.calibrate(range, 45.0);
jgoldberg 0:15d3cdafd311 53 myservo = position;
jgoldberg 0:15d3cdafd311 54 }
jgoldberg 0:15d3cdafd311 55 }