WiFiJoystick

From The Munich Maker Lab's Wiki
Jump to: navigation, search
one of the big and heavy joysticks
 
WiFiJoystick

Release status: experimental [box doku]

Description WiFi connected Joystick and Gamepad
Author(s)  Jorgen

This page shows a short description of how to create a WiFi enabled Gamepad / Joystick. The WiFiJoysticks can be used to play games on LED-Panels on events like makerfaires.


source code

github

joystick & buttons

pin mapping

pins/contacts (see table for color codes)
function state 1 state 2 state 3
Push Button WiFiJoystick pushbutton.png
left WiFiJoystick left1.png WiFiJoystick left2.png WiFiJoystick left3.png
right WiFiJoystick right1.png WiFiJoystick right2.png WiFiJoystick right3.png
up WiFiJoystick up1.png WiFiJoystick up2.png WiFiJoystick up3.png
down WiFiJoystick down1.png WiFiJoystick down2.png WiFiJoystick down3.png


mqtt topics (receive)

topic payload example
WiFiJoystick/<CHIP-ID>/config flags to configure reboot
WiFiJoystick/<CHIP-ID>/brightness brightness from 0 to 255 190
WiFiJoystick/<CHIP-ID>/debounce/push debounce delay in ms 200
WiFiJoystick/<CHIP-ID>/debounce/button1 debounce delay in ms 200
WiFiJoystick/<CHIP-ID>/debounce/button2 debounce delay in ms 200
WiFiJoystick/<CHIP-ID>/debounce/left state1,state2,state3 (debounce delay in ms) 150,100,200
WiFiJoystick/<CHIP-ID>/debounce/right state1,state2,state3 (debounce delay in ms) 150,100,200
WiFiJoystick/<CHIP-ID>/debounce/up state1,state2,state3 (debounce delay in ms) 150,100,200
WiFiJoystick/<CHIP-ID>/debounce/down state1,state2,state3 (debounce delay in ms) 150,100,200

mqtt messages (sending)

topic payload example
WiFiJoystick/<CHIP-ID>/button/push press or release press
WiFiJoystick/<CHIP-ID>/button/button1 press or release press
WiFiJoystick/<CHIP-ID>/button/button2 press or release press
WiFiJoystick/<CHIP-ID>/button/left1 press or release press
WiFiJoystick/<CHIP-ID>/button/left2 press or release press
WiFiJoystick/<CHIP-ID>/button/left3 press or release press
WiFiJoystick/<CHIP-ID>/button/right1 press or release press
WiFiJoystick/<CHIP-ID>/button/right2 press or release press
WiFiJoystick/<CHIP-ID>/button/right3 press or release press
WiFiJoystick/<CHIP-ID>/button/up1 press or release press
WiFiJoystick/<CHIP-ID>/button/up2 press or release press
WiFiJoystick/<CHIP-ID>/button/up3 press or release press
WiFiJoystick/<CHIP-ID>/button/down1 press or release press
WiFiJoystick/<CHIP-ID>/button/down2 press or release press
WiFiJoystick/<CHIP-ID>/button/down3 press or release press

status LEDs

mqtt topics (receive)

topic payload example
WiFiJoystick/<CHIP-ID>/color/led1 solid/once/flash/fade,red,green,blue(,interval,red2,green2,blue2)

solid,255,0,0
(solid red)

once,0,255,255,5000
(pink for 5s)

WiFiJoystick/<CHIP-ID>/color/led2 solid/once/flash/fade,red,green,blue(,interval,red2,green2,blue2)

fade,255,0,0,2000,0,255,0
(fade from red to green in 2s)

flash,0,0,255,500
(flash from blue to black every 500ms)

flash,255,0,0,1000,255,255,0
(flash from red to yellow every 1s)

I2C IO expander

The ESP8266 has too less IO pins - so we will use IO expander ICs with serial interface (I²C-Bus):