You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TactiloControllerPanda.ino 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. ///-------------------------------------------------------------------------------------------------
  2. ///
  3. /// \file TactiloControllerPanda.ino
  4. /// \brief Controlls the Tactilos on the Leonardos GPIOs, based on the messages from OpenVibes TactiloController Box Algorithm
  5. /// \author Tobias Baumann (TH-Nürnberg).
  6. /// \version 1.0.
  7. /// \date Mon Mar 7 14:02:56 2022.
  8. ///
  9. ///-------------------------------------------------------------------------------------------------
  10. //define used GPIO pins
  11. #define TAC1 7
  12. #define TAC2 8
  13. #define TAC3 9
  14. #define TAC4 10
  15. #define TAC5 11
  16. #define TAC6 12
  17. #define LED 13
  18. void setup()
  19. {
  20. //init serial
  21. Serial.begin(115200);
  22. //init GPIOs
  23. Serial.println("...init GPIOs");
  24. set_PinMode();
  25. set_AllLow();
  26. }
  27. void loop()
  28. {
  29. char SerialData;
  30. if(Serial.available() > 0)
  31. {
  32. SerialData = Serial.read();
  33. Serial.print("...Received Data: ");
  34. Serial.println(SerialData, DEC);
  35. }
  36. processSerialData(SerialData);
  37. }
  38. void set_PinMode()
  39. {
  40. //set all pins to OUTPUT
  41. pinMode(TAC1, OUTPUT);
  42. pinMode(TAC2, OUTPUT);
  43. pinMode(TAC3, OUTPUT);
  44. pinMode(TAC4, OUTPUT);
  45. pinMode(TAC5, OUTPUT);
  46. pinMode(TAC6, OUTPUT);
  47. pinMode(LED, OUTPUT);
  48. }
  49. void set_AllLow()
  50. {
  51. //set all pins to LOW
  52. digitalWrite(TAC1, LOW);
  53. digitalWrite(TAC2, LOW);
  54. digitalWrite(TAC3, LOW);
  55. digitalWrite(TAC4, LOW);
  56. digitalWrite(TAC5, LOW);
  57. digitalWrite(TAC6, LOW);
  58. digitalWrite(LED, LOW);
  59. }
  60. void processSerialData(char SerialData)
  61. {
  62. switch(SerialData)
  63. {
  64. case '0':
  65. if(digitalRead(LED) == LOW)
  66. {
  67. digitalWrite(LED, HIGH);
  68. Serial.println("...Start Tactile Session");
  69. }
  70. else
  71. {
  72. set_AllLow();
  73. Serial.println("...End Tactile Session");
  74. }
  75. break;
  76. case '1':
  77. digitalWrite(TAC1, !digitalRead(TAC1));
  78. Serial.println("Tactilo 1");
  79. break;
  80. case '2':
  81. digitalWrite(TAC2, !digitalRead(TAC2));
  82. Serial.println("Tactilo 2");
  83. break;
  84. case '3':
  85. digitalWrite(TAC3, !digitalRead(TAC3));
  86. Serial.println("Tactilo 3");
  87. break;
  88. case '4':
  89. digitalWrite(TAC4, !digitalRead(TAC4));
  90. Serial.println("Tactilo 4");
  91. break;
  92. case '5':
  93. digitalWrite(TAC5, !digitalRead(TAC5));
  94. Serial.println("Tactilo 5");
  95. break;
  96. case '6':
  97. digitalWrite(TAC6, !digitalRead(TAC6));
  98. Serial.println("Tactilo 6");
  99. break;
  100. default:
  101. break;
  102. }
  103. }