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: Encoder MODSERIAL TextLCD mbed mbed-dsp
Diff: main.cpp
- Revision:
- 4:69540b9c0646
- Parent:
- 3:adc3052039e7
- Child:
- 5:a1dcd605dd3d
diff -r adc3052039e7 -r 69540b9c0646 main.cpp
--- a/main.cpp Thu Oct 16 12:19:15 2014 +0000
+++ b/main.cpp Thu Oct 16 12:42:21 2014 +0000
@@ -6,6 +6,7 @@
//Constanten definiëren en waarde geven
#define SAMPLETIME_REGELAAR 0.005
#define KP 1
+#define SAMPLETIME_EMG 0.005
//Pinverdeling en naamgeving variabelen
TextLCD lcd(PTD2, PTB8, PTB9, PTB10, PTB11, PTE2); //LCD scherm
@@ -17,14 +18,18 @@
PwmOut pwm_motor_arm2(PTA12);
DigitalOut dir_motor_arm2(PTD3);
Encoder puls_motor_arm2(PTD4, PTC8);
+AnalogIn EMG_bi(PTB1);
-Ticker ticker_regelaar;
+
+Ticker ticker_regelaar;
+Ticker ticker_EMG;
//Gedefinieerde datatypen en naamgeving
bool rust = false; //Bool voor controleren volgorde in programma
bool kalibratie_positie_arm1 = false; //Bool voor controleren volgorde in programma
bool kalibratie_positie_arm2 = false;
-bool kalibratie_EMG = false; //Bool voor controleren volgorde in programma
+bool kalibratie_EMG_bi = false; //Bool voor controleren volgorde in programma
+bool kalibratie_EMG_tri = false;
char *lcd_r1 = new char[16]; //Char voor tekst op eerste regel LCD scherm
char *lcd_r2 = new char[16]; //Char voor tekst op tweede regel LCD scherm
@@ -34,6 +39,11 @@
regelaar_ticker_flag = true;
}
+volatile bool regelaar_EMG_flag;
+void setregelaar_EMG_flag(){
+ regelaar_EMG_flag = true;
+}
+
void keep_in_range(float * in, float min, float max){
if (*in < min){
*in = min;
@@ -61,7 +71,7 @@
pc.baud(38400); //PC baud rate is 38400 bits/seconde
//Aanzetten
- if (rust == false && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG == false){
+ if (rust == false && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false){
lcd_r1 = " BMT M9 GR. 4 "; //Tekst op eerste regel van LCD scherm
lcd_r2 = "Hoi! Ik ben PIPO"; //Tekst op tweede regel van LCD scherm
wait(2); //Twee seconden wachten
@@ -72,12 +82,12 @@
//Arm 1 naar thuispositie
- if (rust == true && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG == false){
+ if (rust == true && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false){
wait(1); //Een seconde wachten
ticker_regelaar.attach(setregelaar_ticker_flag,SAMPLETIME_REGELAAR); //Ticker iedere zoveel seconde de flag op laten steken
- while(rust == true && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG == false) {
+ while(rust == true && kalibratie_positie_arm1 == false && kalibratie_positie_arm2 == false && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false) {
while(regelaar_ticker_flag != true) ;
regelaar_ticker_flag = false;
@@ -102,12 +112,12 @@
}
//Arm 2 naar thuispositie
- if (rust == true && kalibratie_positie_arm1 == true && kalibratie_positie_arm2 == false && kalibratie_EMG == false){
+ if (rust == true && kalibratie_positie_arm1 == true && kalibratie_positie_arm2 == false && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false){
wait(1); //Een seconde wachten
//ticker_regelaar.attach(setregelaar_ticker_flag,SAMPLETIME_REGELAAR); //Ticker iedere zoveel seconde de flag op laten steken
- while(rust == true && kalibratie_positie_arm1 == true && kalibratie_positie_arm2 == false && kalibratie_EMG == false) {
+ while(rust == true && kalibratie_positie_arm1 == true && kalibratie_positie_arm2 == false && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false) {
while(regelaar_ticker_flag != true) ;
regelaar_ticker_flag = false;
@@ -129,4 +139,15 @@
wait(1);
}
}
+
+ //Ticker voor kalibratie
+ if (rust == true && kalibratie_positie_arm1 == true && kalibratie_positie_arm2 == true && kalibratie_EMG_bi == false && kalibratie_EMG_tri == false){
+
+ ticker_EMG.attach(setregelaar_EMG_flag,SAMPLETIME_EMG);
+ pc.printf("Ticker voor kalibratie compleet");
+ }
+
+
+
+
}
\ No newline at end of file