Devices & Components
Modulino™ Buttons
Arduino® Nano R4
Arduino USB Type-C® Cable 2-in1
Breadboard 400 Points White
Software & Tools
Arduino IDE
Project description
Code
arduino_mission_control.ino
cpp
A sketch to control the Modulino Buttons module
1/* 2 Arduino Mission Control 3 4 A sketch to send commands via the HID/USB interface to a computer. 5 Specifically this commands are compatible with the following shortcut 6 on a MacBook Pro 7 1. Ctrl+Arrow Left -> Move left a space 8 2. Ctrl+Arrow Right -> Move right a space 9 3. Cril+Arrow Up -> Activate Mission Control 10 11 Author: Christian Sarnataro 12 13 This code is also available at 14 https://codeberg.org/csarnataro/arduino_mission_control 15*/ 16 17#include "Keyboard.h" 18#include <Arduino_Modulino.h> 19 20ModulinoButtons buttons; 21 22// State variables for LEDs 23bool led_a = false; 24bool led_b = false; 25bool led_c = false; 26 27 28void setup() { 29 Serial.begin(115200); 30 while(!Serial && millis() < 2000); // if serial port is not available, just continue 31 32 // Initialize Modulino and buttons 33 Modulino.begin(); 34 buttons.begin(); 35 36 // Turn on all LEDs initially 37 buttons.setLeds(true, true, true); 38 39 // Wait a bit before starting Keyboard 40 delay(1000); 41 42 // Turn off all LEDs 43 buttons.setLeds(false, false, false); 44 45 Keyboard.begin(); 46 Serial.println("Keyboard HID initialized."); 47} 48 49void loop() { 50 // Check for new button events 51 if (buttons.update()) { 52 // Button A 53 if (buttons.isPressed(0)) { 54 led_a = true; 55 buttons.setLeds(led_a, led_b, led_c); 56 Serial.println("Button A pressed! (swipe left)"); 57 58 // Send HID message for Button A 59 Keyboard.press(KEY_LEFT_CTRL); 60 Keyboard.press(KEY_LEFT_ARROW); 61 delay(50); 62 led_a = false; 63 buttons.setLeds(led_a, led_b, led_c); 64 } else { 65 Keyboard.releaseAll(); 66 } 67 68 // Button B 69 if (buttons.isPressed(1)) { 70 led_b = true; 71 buttons.setLeds(led_a, led_b, led_c); 72 Serial.println("Button B pressed! (swipe up)"); 73 74 // Send HID message for Button B 75 Keyboard.press(KEY_LEFT_CTRL); 76 Keyboard.press(KEY_UP_ARROW); 77 delay(50); 78 led_b = false; 79 buttons.setLeds(led_a, led_b, led_c); 80 } else { 81 Keyboard.releaseAll(); 82 } 83 84 // Button C 85 if (buttons.isPressed(2)) { 86 led_c = true; 87 buttons.setLeds(led_a, led_b, led_c); 88 Serial.println("Button C pressed! (swipe right)"); 89 90 // Send HID message for Button C 91 Keyboard.press(KEY_LEFT_CTRL); 92 Keyboard.press(KEY_RIGHT_ARROW); 93 delay(50); 94 led_c = false; 95 buttons.setLeds(led_a, led_b, led_c); 96 } else { 97 Keyboard.releaseAll(); 98 } 99 } 100}
Comments
Only logged in users can leave comments