1313#define CHARACTERISTIC_UUID_RX " 00002a37-b5a3-f393-e0a9-e50e24dcca9e"
1414
1515#define BUTTON_PIN 12
16+ #define LED_PIN A0
1617
1718HandServos handServos (15 );
1819SavePattern savePattern;
@@ -61,6 +62,9 @@ class ReceivedDataCallback: public BLECharacteristicCallbacks {
6162
6263void setup () {
6364 Serial.begin (115200 );
65+ pinMode (LED_PIN, OUTPUT);
66+ digitalWrite (LED_PIN, LOW);
67+
6468 savePattern.setupSavePattern ();
6569 savedPattern = savePattern.readFileString (SPIFFS, " /savedPattern.txt" );
6670 Serial.println (savedPattern);
@@ -80,14 +84,18 @@ void setup() {
8084
8185 pCharacteristic->setCallbacks (new ReceivedDataCallback ());
8286 pService->start ();
87+ // https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLETests/Arduino/BLE_uart/BLE_uart.ino
88+ pServer->getAdvertising ()->addServiceUUID (pService->getUUID ());
8389 pServer->getAdvertising ()->start ();
8490
8591 handServos.calibrate ();
8692 button.setClickHandler (handler);
8793 button.setDoubleClickHandler (handler);
8894 button.setTripleClickHandler (handler);
89- button.setLongClickHandler (handler);
90-
95+ button.setDoubleClickTime (500 );
96+ button.setLongClickTime (2000 );
97+ button.setLongClickDetectedHandler (longClick);
98+
9199 Serial.println (" Waiting for a client connection to notify..." );
92100}
93101
@@ -99,43 +107,51 @@ void loop() {
99107}
100108
101109void handler (Button2& btn) {
102- Serial.println (btn.isPressed ());
103110 switch (btn.getClickType ()) {
104111 case SINGLE_CLICK:
105- freezeThumb = !freezeThumb ;
112+ freezeThumbButton () ;
106113 break ;
107114 case DOUBLE_CLICK:
108- Serial.println (" double load" );
109- savedPattern = savePattern.readFileString (SPIFFS, " /savedPattern.txt" );
110- handServos.moveServos2 (savedPattern);
111- Serial.println (savedPattern);
115+ load ();
112116 break ;
113117 case TRIPLE_CLICK:
114- // save pose
115- savePattern.writeFile (SPIFFS, " /savedPattern.txt" , (char *)savePattern.lastPattern .c_str ());
116- Serial.println (" triple save" );
117- savedPattern = savePattern.readFileString (SPIFFS, " /savedPattern.txt" );
118- Serial.println (savedPattern);
118+ save ();
119119 break ;
120120 }
121121}
122122
123- void readMyo () {
124- int myo0 = analogRead (A2);
125-
126- if (myo0 < 750 ) {
127- Serial.println (" decrement" );
128- handServos.closeFingers ();
129- }
130-
131- int myo1 = analogRead (A3);
132-
133- if (myo1 < 500 ) {
134- Serial.println (" increment" );
135- handServos.openFingers ();
123+ void freezeThumbButton () {
124+ Serial.println (" single" );
125+ freezeThumb = !freezeThumb;
126+ if (freezeThumb) {
127+ Serial.println (" on" );
128+ digitalWrite (LED_PIN, 1 );
129+ delay (5 );
130+ } else {
131+ digitalWrite (LED_PIN, LOW); // turn the LED off by making the voltage LOW
132+ Serial.println (" off" );
133+ delay (5 );
136134 }
137135}
138136
137+ void load () {
138+ Serial.println (" double load" );
139+ savedPattern = savePattern.readFileString (SPIFFS, " /savedPattern.txt" );
140+ handServos.moveServos2 (savedPattern);
141+ Serial.println (savedPattern);
142+ }
143+
144+ void save () {
145+ savePattern.writeFile (SPIFFS, " /savedPattern.txt" , (char *)savePattern.lastPattern .c_str ());
146+ Serial.println (" triple save" );
147+ savedPattern = savePattern.readFileString (SPIFFS, " /savedPattern.txt" );
148+ Serial.println (savedPattern);
149+ }
150+
151+ void longClick (Button2& btn) {
152+ Serial.println (" long press" );
153+ }
154+
139155void buttonReadHold () {
140156 buttonState = digitalRead (BUTTON_PIN);
141157
0 commit comments