From f198fd7a6982b4593398bb10cfb8b28e9c340488 Mon Sep 17 00:00:00 2001 From: Tobias Baumann Date: Tue, 28 Jun 2022 09:35:24 +0000 Subject: [PATCH] =?UTF-8?q?Dateien=20hochladen=20nach=20=E2=80=9Earduino?= =?UTF-8?q?=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- arduino/README.md | 3 + arduino/TactiloControllerPanda.ino | 144 +++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 arduino/README.md create mode 100644 arduino/TactiloControllerPanda.ino diff --git a/arduino/README.md b/arduino/README.md new file mode 100644 index 0000000..4c59f8d --- /dev/null +++ b/arduino/README.md @@ -0,0 +1,3 @@ +# 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/arduino/TactiloControllerPanda.ino b/arduino/TactiloControllerPanda.ino new file mode 100644 index 0000000..ad538f8 --- /dev/null +++ b/arduino/TactiloControllerPanda.ino @@ -0,0 +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 + + + +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; + } +}