From b11fe766aca05c6c0aac4c13d2274c465933580e Mon Sep 17 00:00:00 2001 From: Tobias Baumann Date: Tue, 28 Jun 2022 09:28:32 +0000 Subject: [PATCH] =?UTF-8?q?Dateien=20hochladen=20nach=20=E2=80=9E=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +- TactiloControllerPanda.ino | 301 ++++++++++++++++++------------------- 2 files changed, 147 insertions(+), 160 deletions(-) diff --git a/README.md b/README.md index af2c957..4c59f8d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# TactiloControllerPanda -Dieses Programm fuer den, auf dem Lattepanda integrierten Arduino Leonardo, empfaengt Daten von der Korrespondierenden OpenViBE Box ueber eine serielle Schnittstelle.
-Auf Basis der erhaltenen Daten, werden die sechs bis zehn Tactilos des Taktilen Brain Computer Interface angesteuert. Das Timing wird dabei komplett von OpenViBE uebernommen. +# TactiloControllerPanda +Dieses Programm empfaengt Daten von der Korrespondierenden OpenViBE Box ueber eine serielle Schnittstelle.
+Auf Basis der erhaltenen Daten, werden die bis zu zehn Tactilos des Taktilen Brain Computer Interface angesteuert. Das Timing wird dabei komplett von OpenViBE uebernommen. diff --git a/TactiloControllerPanda.ino b/TactiloControllerPanda.ino index d6a8eae..ad538f8 100644 --- a/TactiloControllerPanda.ino +++ b/TactiloControllerPanda.ino @@ -1,157 +1,144 @@ - -///------------------------------------------------------------------------------------------------- -/// -/// \file TactiloControllerPanda.ino -/// \brief Controlls the Tactilos on the Leonardos GPIOs, based on the messages from OpenVibes TactiloController Box Algorithm -/// Hochladen mit der Arduino IDE -/// \author Tobias Baumann (TH-Nürnberg). -/// \version 1.0. -/// \date Mon Mar 7 14:02:56 2022. -/// -///------------------------------------------------------------------------------------------------- - -//define used GPIO pins -#define TAC1 13 //PWM -#define TAC2 11 //PWM -#define TAC3 10 //PWM -#define TAC4 9 //PWM -#define TAC5 6 //PWM -#define TAC6 5 //PWM -//reserve -#define TAC7 3 //PWM -#define TAC8 2 -#define TAC9 1 -#define TAC10 0 - - -#define LED 13 - - -void setup() -{ - //init serial - Serial.begin(115200); - - //init GPIOs - Serial.println("...init GPIOs"); - set_PinMode(); - set_AllLow(); -} - -void loop() -{ - char SerialData; - - if(Serial.available() > 0) - { - SerialData = Serial.read(); - processSerialData(SerialData); - } -} - -void set_PinMode() -{ - //set all pins to OUTPUT - pinMode(TAC1, OUTPUT); - pinMode(TAC2, OUTPUT); - pinMode(TAC3, OUTPUT); - pinMode(TAC4, OUTPUT); - pinMode(TAC5, OUTPUT); - pinMode(TAC6, OUTPUT); - pinMode(TAC7, OUTPUT); - pinMode(TAC8, OUTPUT); - pinMode(TAC9, OUTPUT); - pinMode(TAC10, OUTPUT); - - pinMode(LED, OUTPUT); -} - -void set_AllLow() -{ - //set all pins to LOW - digitalWrite(TAC1, LOW); - digitalWrite(TAC2, LOW); - digitalWrite(TAC3, LOW); - digitalWrite(TAC4, LOW); - digitalWrite(TAC5, LOW); - digitalWrite(TAC6, LOW); - digitalWrite(TAC7, LOW); - digitalWrite(TAC8, LOW); - digitalWrite(TAC9, LOW); - digitalWrite(TAC10, LOW); - - digitalWrite(LED, LOW); -} - -void processSerialData(char SerialData) -{ - switch(SerialData) - { - case '0': - digitalWrite(TAC1, !digitalRead(TAC1)); - Serial.print("Tactilo 1: "); - Serial.println(digitalRead(TAC1)); - break; - case '1': - digitalWrite(TAC2, !digitalRead(TAC2)); - Serial.print("Tactilo 2: "); - Serial.println(digitalRead(TAC2)); - break; - case '2': - digitalWrite(TAC3, !digitalRead(TAC3)); - Serial.print("Tactilo 3: "); - Serial.println(digitalRead(TAC3)); - break; - case '3': - digitalWrite(TAC4, !digitalRead(TAC4)); - Serial.print("Tactilo 4: "); - Serial.println(digitalRead(TAC4)); - break; - case '4': - digitalWrite(TAC5, !digitalRead(TAC5)); - Serial.print("Tactilo 5: "); - Serial.println(digitalRead(TAC5)); - break; - case '5': - digitalWrite(TAC6, !digitalRead(TAC6)); - Serial.print("Tactilo 6: "); - Serial.println(digitalRead(TAC6)); - break; - case '6': - digitalWrite(TAC7, !digitalRead(TAC7)); - Serial.print("Tactilo 7: "); - Serial.println(digitalRead(TAC7)); - break; - case '7': - digitalWrite(TAC8, !digitalRead(TAC8)); - Serial.print("Tactilo 8: "); - Serial.println(digitalRead(TAC8)); - break; - case '8': - digitalWrite(TAC9, !digitalRead(TAC9)); - Serial.print("Tactilo 9: "); - Serial.println(digitalRead(TAC9)); - break; - case '9': - digitalWrite(TAC10, !digitalRead(TAC10)); - Serial.print("Tactilo 10: "); - Serial.println(digitalRead(TAC10)); - break; - case 'b': - if(digitalRead(LED) == LOW) - { - digitalWrite(LED, HIGH); - Serial.println("...Begin Tactile Session"); - } - break; - case 'e': - if(digitalRead(LED) == HIGH) - { - set_AllLow(); - Serial.println("...End Tactile Session"); - } - break; - default: - break; - } -} \ No newline at end of file + +///------------------------------------------------------------------------------------------------- +/// +/// \file TactiloControllerPanda.ino +/// \brief Controlls the Tactilos on the Leonardos GPIOs, based on the messages from OpenVibes TactiloController Box Algorithm +/// Hochladen mit der Arduino IDE +/// \author Tobias Baumann (TH-Nürnberg). +/// \version 1.0. +/// \date Mon Mar 7 14:02:56 2022. +/// +///------------------------------------------------------------------------------------------------- + +//define used GPIO pins +#define TAC1 13 //PWM +#define TAC2 11 //PWM +#define TAC3 10 //PWM +#define TAC4 9 //PWM +#define TAC5 6 //PWM +#define TAC6 5 //PWM +//reserve +#define TAC7 3 //PWM +#define TAC8 2 +#define TAC9 1 +#define TAC10 0 + + + +void setup() +{ + //init serial + Serial.begin(115200); + + //init GPIOs + Serial.println("...init GPIOs"); + set_PinMode(); + set_AllLow(); +} + +void loop() +{ + char SerialData; + + if(Serial.available() > 0) + { + SerialData = Serial.read(); + processSerialData(SerialData); + } +} + +void set_PinMode() +{ + //set all pins to OUTPUT + pinMode(TAC1, OUTPUT); + pinMode(TAC2, OUTPUT); + pinMode(TAC3, OUTPUT); + pinMode(TAC4, OUTPUT); + pinMode(TAC5, OUTPUT); + pinMode(TAC6, OUTPUT); + pinMode(TAC7, OUTPUT); + pinMode(TAC8, OUTPUT); + pinMode(TAC9, OUTPUT); + pinMode(TAC10, OUTPUT); +} + +void set_AllLow() +{ + //set all pins to LOW + digitalWrite(TAC1, LOW); + digitalWrite(TAC2, LOW); + digitalWrite(TAC3, LOW); + digitalWrite(TAC4, LOW); + digitalWrite(TAC5, LOW); + digitalWrite(TAC6, LOW); + digitalWrite(TAC7, LOW); + digitalWrite(TAC8, LOW); + digitalWrite(TAC9, LOW); + digitalWrite(TAC10, LOW); +} + +void processSerialData(char SerialData) +{ + switch(SerialData) + { + case '0': + digitalWrite(TAC1, !digitalRead(TAC1)); + //Serial.print("Tactilo 1: "); + //Serial.println(digitalRead(TAC1)); + break; + case '1': + digitalWrite(TAC2, !digitalRead(TAC2)); + //Serial.print("Tactilo 2: "); + //Serial.println(digitalRead(TAC2)); + break; + case '2': + digitalWrite(TAC3, !digitalRead(TAC3)); + //Serial.print("Tactilo 3: "); + //Serial.println(digitalRead(TAC3)); + break; + case '3': + digitalWrite(TAC4, !digitalRead(TAC4)); + //Serial.print("Tactilo 4: "); + //Serial.println(digitalRead(TAC4)); + break; + case '4': + digitalWrite(TAC5, !digitalRead(TAC5)); + //Serial.print("Tactilo 5: "); + //Serial.println(digitalRead(TAC5)); + break; + case '5': + digitalWrite(TAC6, !digitalRead(TAC6)); + //Serial.print("Tactilo 6: "); + //Serial.println(digitalRead(TAC6)); + break; + case '6': + digitalWrite(TAC7, !digitalRead(TAC7)); + //Serial.print("Tactilo 7: "); + //Serial.println(digitalRead(TAC7)); + break; + case '7': + digitalWrite(TAC8, !digitalRead(TAC8)); + //Serial.print("Tactilo 8: "); + //Serial.println(digitalRead(TAC8)); + break; + case '8': + digitalWrite(TAC9, !digitalRead(TAC9)); + //Serial.print("Tactilo 9: "); + //Serial.println(digitalRead(TAC9)); + break; + case '9': + digitalWrite(TAC10, !digitalRead(TAC10)); + //Serial.print("Tactilo 10: "); + //Serial.println(digitalRead(TAC10)); + break; + case 'b': + Serial.println("...Begin Tactile Session"); + break; + case 'e': + set_AllLow(); + Serial.println("...End Tactile Session"); + break; + default: + break; + } +}