Archive:WiFiJoystick: Difference between revisions

From The Munich Maker Lab's Wiki
Jump to navigation Jump to search
(add IO expander section)
m (Vrs moved page WiFiJoystick to Archive:WiFiJoystick without leaving a redirect)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{outdated|type=member project}}
[[File:WiFiJoystick_joystick.jpg|left|thumb|one of the big and heavy joysticks]]
{{project
{{project
|name        = WiFiJoystick
|name        = WiFiJoystick
Line 14: Line 17:
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.
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.


[[File:WiFiJoystick_pins_color.jpg|left|thumb|pins/contacts (see table for color codes)]]
<br style="clear:both;" />
<br style="clear:both;" />
 
= source code =
[https://github.com/munichmakerlab/WiFiJoystick github]
= joystick & buttons =
= joystick & buttons =


== pin mapping ==
== pin mapping ==
[[File:WiFiJoystick_pins_color.jpg|right|thumb|pins/contacts (see table for color codes)]]
{| class="wikitable"
{| class="wikitable"
! function
! function
Line 51: Line 55:
| [[File:WiFiJoystick_down3.png|150px]]
| [[File:WiFiJoystick_down3.png|150px]]
|}
|}
<br style="clear:both;" />


== mqtt topics (receive) ==
== mqtt topics (receive) ==
Line 60: Line 65:
| WiFiJoystick/<CHIP-ID>/config
| WiFiJoystick/<CHIP-ID>/config
| flags to configure
| flags to configure
| reboot
| '''reboot'''
|-
|-
| WiFiJoystick/<CHIP-ID>/brightness
| WiFiJoystick/<CHIP-ID>/brightness
| brightness from 0 to 255
| brightness from 0 to 255
| 190
| '''190'''
|-
|-
| WiFiJoystick/<CHIP-ID>/debounce/push
| WiFiJoystick/<CHIP-ID>/debounce/push
| debounce delay in ms
| debounce delay in ms
| 200
| '''200'''
|-
|-
| WiFiJoystick/<CHIP-ID>/debounce/button1
| WiFiJoystick/<CHIP-ID>/debounce/button1
| debounce delay in ms
| debounce delay in ms
| 200
| '''200'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/debounce/button2
| WiFiJoystick/<CHIP-ID>/debounce/button2
| debounce delay in ms
| debounce delay in ms
| 200
| '''200'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/debounce/left
| WiFiJoystick/<CHIP-ID>/debounce/left
| state1,state2,state3 (debounce delay in ms)
| state1,state2,state3 (debounce delay in ms)
| 150,100,200
| '''150,100,200'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/debounce/right
| WiFiJoystick/<CHIP-ID>/debounce/right
| state1,state2,state3 (debounce delay in ms)
| state1,state2,state3 (debounce delay in ms)
| 150,100,200
| '''150,100,200'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/debounce/up
| WiFiJoystick/<CHIP-ID>/debounce/up
| state1,state2,state3 (debounce delay in ms)
| state1,state2,state3 (debounce delay in ms)
| 150,100,200
| '''150,100,200'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/debounce/down
| WiFiJoystick/<CHIP-ID>/debounce/down
| state1,state2,state3 (debounce delay in ms)
| state1,state2,state3 (debounce delay in ms)
| 150,100,200
| '''150,100,200'''
|}
|}


Line 103: Line 108:
| WiFiJoystick/<CHIP-ID>/button/push
| WiFiJoystick/<CHIP-ID>/button/push
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/button1
| WiFiJoystick/<CHIP-ID>/button/button1
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/button2
| WiFiJoystick/<CHIP-ID>/button/button2
| press or release
| press or release
| press
| '''press'''
|-
|-
| WiFiJoystick/<CHIP-ID>/button/left1
| WiFiJoystick/<CHIP-ID>/button/left1
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/left2
| WiFiJoystick/<CHIP-ID>/button/left2
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/left3
| WiFiJoystick/<CHIP-ID>/button/left3
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/right1
| WiFiJoystick/<CHIP-ID>/button/right1
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/right2
| WiFiJoystick/<CHIP-ID>/button/right2
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/right3
| WiFiJoystick/<CHIP-ID>/button/right3
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/up1
| WiFiJoystick/<CHIP-ID>/button/up1
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/up2
| WiFiJoystick/<CHIP-ID>/button/up2
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/up3
| WiFiJoystick/<CHIP-ID>/button/up3
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/down1
| WiFiJoystick/<CHIP-ID>/button/down1
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/down2
| WiFiJoystick/<CHIP-ID>/button/down2
| press or release
| press or release
| press
| '''press'''
|-  
|-  
| WiFiJoystick/<CHIP-ID>/button/down3
| WiFiJoystick/<CHIP-ID>/button/down3
| press or release
| press or release
| press
| '''press'''
|}
|}


= status LEDs =
= status LEDs =
Line 172: Line 176:
|-
|-
| WiFiJoystick/<CHIP-ID>/color/led1
| WiFiJoystick/<CHIP-ID>/color/led1
| (solid|once|flash|fade),red,green,blue(,interval,red2,green2,blue2)
| solid/once/flash/fade,red,green,blue(,interval,red2,green2,blue2)
| solid,255,0,0
| <p>'''solid,255,0,0''' <br/>(solid red)</p><p>'''once,0,255,255,5000''' <br/>(pink for 5s)</p>
|-  
|-  
| WiFiJoystick/<CHIP-ID>/color/led2
| WiFiJoystick/<CHIP-ID>/color/led2
| (solid|once|flash|fade),red,green,blue(,interval,red2,green2,blue2)
| solid/once/flash/fade,red,green,blue(,interval,red2,green2,blue2)
| fade,255,0,0,2000,0,255,0
| <p>'''fade,255,0,0,2000,0,255,0''' <br/>(fade from red to green in 2s)</p><p>'''flash,0,0,255,500''' <br/>(flash from blue to black every 500ms)</p><p>'''flash,255,0,0,1000,255,255,0''' <br/>(flash from red to yellow every 1s)</p>
|}
|}


= I2C IO expander =
= I2C IO expander =

Latest revision as of 17:18, 10 September 2022

Attention.png You are visiting an old member project. The information found on "WiFiJoystick" might be out of date.
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):