Forum >Bluno to BLE Gamepad
Bluno General Arduino

Bluno to BLE Gamepad

userHead dfrobot 2020-01-18 06:43:37 2919 Views2 Replies
Hi,

I have a Blune Beetle and a BLE Gamepad V2.

The BLuno is conenected to a string of WS2812b Leds. I am trying to write a sketch so when I press a button on the Gamepad the leds react.

I have managed to set the Gamepad as the CENTRAL and the Bluno as the PERIPHERAL. Made a unique BIND with the MAC address of the BLUNO.

When the Gamepad is switched on I get the 3 RX light blinks and then the 2 Rx light saying it is all connected.
When I press a button on the Gamepad the Tx light flashes which I think means they are communicating with each other.

However when I run the sketch below nothing happens.

I know it is not the led turning on and off code that is not working as it I have tested it on a none BLE comms sketch.

Any guidance would be appreciated

Many Thanks
Ian
Code: Select all
// Binnoccio Heart Program - Bluno Beetle Test Code
// Basic Functions Vr4
// Used libraries:
#include <FastLED.h> // Include the FastLed Library
#include "DFRobotBLEGamepad.h" // Include the DFRobot BLE Gamepad Library
DFRobotBLEGamepad myDFRobotBLEGamepad; //init the bluetooth Serial port
// Define Constants
#define LED_PIN 5
#define COLOR_ORDER GRB
#define CHIPSET WS2812B
#define NUM_LEDS 46
//Define Variables
byte LEDBrightness = 55;
int LEDMode = 0;
int LEDState = 0;
int joystickLeftX, joystickLeftY; //Left joystick value
// Define LED Array
CRGB leds[NUM_LEDS];
// ----------------------------------------------------------
void setup() {
// Soft Start
delay(2000);
Serial.begin(115200);
myDFRobotBLEGamepad.begin(Serial);
// Define the LED array "leds" parameters
FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
// Pin Mode Setup
pinMode(LED_PIN, OUTPUT);
// Ensure LEDs off
// FastLED.setBrightness(LEDBrightness);
FastLED.clear();
FastLED.show();
myDFRobotBLEGamepad.ButtonUpIsPressed(switchUpEvent); // call the custom switch event function
myDFRobotBLEGamepad.ButtonDownIsPressed(switchDownEvent); // call the custom switch event function
} // End Setup
// ----------------------------------------------------------
void loop() {
if ( myDFRobotBLEGamepad.available() ) {
joystickLeftX = myDFRobotBLEGamepad.readJoystickLeftX();
joystickLeftY = myDFRobotBLEGamepad.readJoystickLeftY();
} // End If Serial Read
} // End loop
// ----------------------------------------------------------
void switchDownEvent( void ) {
FastLED.clear();
FastLED.show();
} // End switchDownEvent
// ----------------------------------------------------------
void switchUpEvent( void ) {
FillLEDs(0);
FastLED.show();
} // End switchUpEvent
// ----------------------------------------------------------
void FillLEDs(int x) {
// Fill 0 to (x-1) in blue
for (int j = 0; j < x ; j++) {
leds[j] = CRGB::Blue;
} // end for j loop
// fill from x to NUM_LEDS in red
for (int i = x; i < NUM_LEDS; i++) {
leds[i] = CRGB::Red;
} // end for i loop
} // End FillLEDs
// ----------------------------------------------------------
2020-01-18 06:53:22 Ooops - senior moment

new batteries and suddenly it works

Cheers
Ian
userHeadPic dfrobot