///------------------------------------------------------------------------------------------------- /// /// \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; } }