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: Stepper mbed PinDetect
Revision 0:88834eed3de0, committed 2018-03-18
- Comitter:
- rschimpf78
- Date:
- Sun Mar 18 02:40:25 2018 +0000
- Child:
- 1:4bda04eecf66
- Commit message:
- done
Changed in this revision
diff -r 000000000000 -r 88834eed3de0 PinDetect.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PinDetect.lib Sun Mar 18 02:40:25 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/AjK/code/PinDetect/#cb3afc45028b
diff -r 000000000000 -r 88834eed3de0 Stepper.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Stepper.lib Sun Mar 18 02:40:25 2018 +0000 @@ -0,0 +1,1 @@ +http://os.mbed.com/users/mederic/code/Stepper/#a456aa3935ca
diff -r 000000000000 -r 88834eed3de0 main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Sun Mar 18 02:40:25 2018 +0000
@@ -0,0 +1,283 @@
+/*#include "mbed.h"
+#include <vector>
+//--------Brushed Motor -------------------
+DigitalOut in3(PTC17);
+DigitalOut in4(PTC16);
+//---------Stepper Motor ------------------
+Stepper mot(PTA1,D2);//d2 and d3
+DigitalOut en(D4);
+Serial pc(USBTX, USBRX);
+
+//--Internal pullup resistors for Bumper Switches---
+DigitalIn bswitch(D1);
+DigitalIn tswitch(D0);
+int main() {
+ vector<int> time;
+ vector<int> plates;
+ int n,t,h,m,s = 0;
+ int tests = 0;
+ PULp.period(0.0006f);
+ ENp = 1;
+ DIRp = 0;
+ PULp.write(0.5f);
+ in3=0;
+ in4=0;
+ pc.printf("\nCommands ");
+ pc.scanf("%d",&tests);
+
+ for (int i = 1; i<=tests;i++){
+ pc.printf("\nEnter the Number of Plates for test %d: ",i);
+ pc.scanf("%d",&n);
+ pc.printf("\nEnter hours and minutes to test these plates\n\nHours: ");
+ pc.scanf("%d",&h);
+ pc.printf("Minutes: ");
+ pc.scanf("%d",&m);
+ pc.printf("Seconds: ");
+ pc.scanf("%d",&s);
+ t=(h*3600)+(m*60)+s;
+ time.push_back(t);
+ plates.push_back(n);
+ }
+ pc.printf("\nTesting in Progress...");
+ for (unsigned y=0; y<time.size(); y++){
+
+ //--------Turn Stepper on for a certain amount of time based on the number of plates----
+ in3=0; // stop actuator
+ in4=0; // stop actuator
+ ENp = 0;
+ DIRp = 0;
+ wait(1.9*(plates.at(y)-1));
+ ENp = 1;
+ wait(0.5);
+ //-------Move Plates Under X ray Beam---------------------------------------------------
+ in3=0;
+ in4=1;
+ wait(14); //reaches end after 10 seconds
+ in3=0; // stop actuator
+ in4=0; // stop actuator
+ //-----Test the Plate for specified time ----------------------------------------------
+ wait(time.at(y)); //Leave plates in beam path for the user inputted amount of time
+ //-----Retract plates to original position---------------------------------------------
+ in3=1;
+ in4=0;
+ wait(14);
+ in3=0;
+ in4=0;
+ wait(0.5);
+ //--------Return Stepper to base height with one plate selected------------------------
+ ENp = 0;
+ DIRp = 1;
+ wait(2*(plates.at(y)-1));
+ ENp = 1;
+ //-------------------------------------------------------------------------------------
+ pc.printf("\n\nTest number %d complete", y+1);
+ pc.printf("\nNumber of Plates: %d", plates.at(y));
+ pc.printf("\nLength of Test: %d seconds", time.at(y));
+ }
+ pc.printf("\n\nAll testing complete");
+ }
+*/
+
+/*#include "mbed.h"
+
+Serial pc(USBTX, USBRX);
+
+int main() {
+ char c;
+ char buffer[128];
+ pc.gets(buffer, 4);
+ pc.printf("I got '%s'\n", buffer);
+ if(strcmp(buffer,"on")==0) {
+ printf("success");
+ }
+ else{
+ printf("fail");
+ }
+}
+*/
+#include "mbed.h"
+#include "Stepper.h"
+DigitalIn homeSwitch(D8);
+DigitalIn endSwitch(D1);
+DigitalIn bottomSwitch(D0);
+DigitalIn topSwitch(D9);
+Stepper mot(PTA1,D2);
+DigitalOut en(D4);
+DigitalOut in1(D11);
+DigitalOut in2(D10);
+Serial pc(USBTX, USBRX);
+
+void positionStatus()
+{
+ int plateposition; //plate position -> 1 is home, 2 is traveling, 3 is under beam path
+ if(homeSwitch==0 && endSwitch==1)
+ {
+ plateposition = 1;
+ pc.printf("\nPlate position is home %d",plateposition);
+ }
+ else if (homeSwitch==1 && endSwitch==1)
+ {
+ plateposition = 2;
+ pc.printf("\nPlates are currently moving %d",plateposition);
+ }
+ else if(homeSwitch==1 && endSwitch==0)
+ {
+ plateposition = 3;
+ pc.printf("\nPlates are under beam path %d",plateposition);
+ }
+ else
+ {
+ pc.printf("\nError, cannot locate plate position");
+ }
+}
+
+void retractPMMA()
+{
+ in1=1;
+ in2=0;
+ wait(14);
+ in1=0;
+ in2=0;
+ positionStatus();
+}
+
+void sendPMMA() //Command: Send plates
+ { //Returns: plates arrived(),plates didn't arrive()
+ wait(2);
+ in1=1;
+ in2=0;
+ wait(14);
+ in1=0;
+ in2=0;
+ positionStatus();
+}
+
+void autoCalibrate() //if machine is plugged in when the plate selector isn't at the origin...
+{
+ en = 0; //...it automatically lowers it to the origin position
+ mot.setSpeed(800);
+ mot.rotate(0);
+ while(bottomSwitch); //While bottom switch is unpressed
+ mot.stop(); //Stop rotation when switch is pressed (pressed = logical level low)
+ en=1; //Disable driver
+ mot.setPositionZero(); //Set absolute origin for plate selector at switch hit
+}
+
+void internalpullups()
+{
+ bottomSwitch.mode (PullUp);
+ topSwitch.mode (PullUp);
+ homeSwitch.mode (PullUp);
+ endSwitch.mode (PullUp);
+ wait (.01);
+}
+
+void numberofPlates() // Command: Number of PMMA to send (plates)
+ // Returns: Actual number of plates selected (selectedplates), selectionerror (1 for command error, 0 for correct command)
+{
+ int stepheight,plates,selectionerror;
+ double selectedplates;
+ pc.printf("\nEnter the Number of Plates to send ");
+ pc.scanf("%d",&plates);
+ if (plates <= 0)
+ {
+ pc.printf("\nNot a valid number, must be 1 to 16");
+ selectionerror = 1;
+ }
+ else if (plates >= 17)
+ {
+ pc.printf("\nNot a valid number, must be 1 to 16");
+ selectionerror = 1;
+ }
+ else
+ {
+ selectionerror = 0;
+ pc.printf("\nCommand Valid\n");
+ en = 0;
+ mot.goesTo(plates*1620);
+ while(!mot.stopped());
+ stepheight = mot.getPosition();
+ selectedplates = stepheight/1620;
+ pc.printf("\n Steps taken: %d ",selectedplates);
+ mot.stop();
+ en = 1;
+ }
+}
+void selectionStatus()
+{
+ int stepheight;
+ double selectedplates;
+ stepheight = mot.getPosition();
+ selectedplates = stepheight/1620;
+ pc.printf("\n Number of plates currently selected: %d ",selectedplates);
+
+}
+
+
+int main()
+{
+ char command[256] = { 0 };
+ internalpullups();
+ wait (.01);
+ autoCalibrate(); //...it automatically lowers it to the origin position for initial power up
+
+ while(1)
+ {
+ pc.printf("\nEnter Command: \n send \n retract \n position (get status) \n selection (get status)" );
+ pc.scanf("\n%s", &command);
+ if (strcmp (command, "send") == 0)
+ {
+ pc.printf ("\nCommand Recieved: Send"); //confirmation of recieved command
+ numberofPlates(); //select number of plates to send
+ sendPMMA();
+ }
+ if (strcmp (command, "retract") == 0)
+ {
+ pc.printf ("\nCommand Recieved: retract");
+ retractPMMA();
+ }
+ if (strcmp (command, "position") == 0)
+ {
+ pc.printf ("\nCommand Recieved: position");
+ positionStatus();
+ }
+ if (strcmp (command, "selection") == 0)
+ {
+ pc.printf ("\nCommand Recieved: selection");
+ selectionStatus();
+ }
+ }
+}
+
+
+/* int main ()
+{
+ int steps, plates;
+ bswitch.mode (PullUp);
+ wait (.01);
+ mot.setSpeed (600);
+ mot.rotate (0); //if machine is plugged in when the plate selector isn't at the origin...
+
+ while (bswitch); //...it automatically lowers it to the origin positio
+ mot.stop (); //Stop rotation when switch is pressed (pressed = logical level low)
+ en = 1; //Disable driver
+ mot.setPositionZero (); //Set absolute origin for plate selector at switch hit
+ char c[256] = { 0 };
+
+ while (1)
+ {
+ pc.printf("Choose a command:\nPMMA 1");
+ pc.scanf ("%s", &c);
+
+ if (strcmp (c, "PMMA1") == 0)
+ {
+ pc.printf ("\n match ");
+ }
+
+ if (strcmp (c, "no") == 0)
+ {
+ pc.printf ("\n not match ");
+ }
+ }
+}
+*/
\ No newline at end of file
diff -r 000000000000 -r 88834eed3de0 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sun Mar 18 02:40:25 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/4336505e4b1c \ No newline at end of file