Skip to content

Instantly share code, notes, and snippets.

@monteslu
Created May 14, 2018 23:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save monteslu/0b495420806b0161edeebcf2fd3ccc58 to your computer and use it in GitHub Desktop.
Save monteslu/0b495420806b0161edeebcf2fd3ccc58 to your computer and use it in GitHub Desktop.
finally perfect ble-io controls for esp32 bot
[{"id":"w7289B2H_X4","type":"bluetooth out","z":"UFiUzfL0xVA","name":"digital","characteristicId":"2a56","bleServiceId":"bada5555-e91f-1337-a49b-8675309fb099","x":765,"y":159,"wires":[]},{"id":"IMIdfb8ZRDc","type":"bluetooth out","z":"UFiUzfL0xVA","name":"analog","characteristicId":"2a58","bleServiceId":"bada5555-e91f-1337-a49b-8675309fb099","x":777,"y":423,"wires":[]},{"id":"XLiyeeZNfHg","type":"iot buttons","z":"UFiUzfL0xVA","x":79.5,"y":38,"wires":[["ZpGYRy-6SjU"]]},{"id":"ZpGYRy-6SjU","type":"switch","z":"UFiUzfL0xVA","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"2","vt":"num"},{"t":"eq","v":"10","vt":"num"},{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"7","vt":"num"},{"t":"eq","v":"6","vt":"num"},{"t":"eq","v":"4","vt":"num"},{"t":"eq","v":"8","vt":"num"},{"t":"eq","v":"1","vt":"str"}],"checkall":"true","outputs":8,"x":157,"y":270,"wires":[["3G19J9pm8kg"],["Vy_DQgVO6Tg"],["ABJ-PXjp8L8"],["s1Vjl8NOHVM"],["in0eScdUR_o"],["m3dKjykASr8"],["tVJtHjltcWw"],[]]},{"id":"in0eScdUR_o","type":"change","z":"UFiUzfL0xVA","name":"stop","rules":[{"t":"set","p":"payload","pt":"msg","to":"[19,0,0,4,0,0]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":544,"y":368,"wires":[["IMIdfb8ZRDc"]]},{"id":"m3dKjykASr8","type":"change","z":"UFiUzfL0xVA","name":"medium","rules":[{"t":"set","p":"payload","pt":"msg","to":"[19,200,0,4,200,0]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":546,"y":428,"wires":[["IMIdfb8ZRDc"]]},{"id":"tVJtHjltcWw","type":"change","z":"UFiUzfL0xVA","name":"fast","rules":[{"t":"set","p":"payload","pt":"msg","to":"[19,255,255,4,255,255]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":546,"y":490,"wires":[["IMIdfb8ZRDc"]]},{"id":"3G19J9pm8kg","type":"change","z":"UFiUzfL0xVA","name":"forward","rules":[{"t":"set","p":"payload","pt":"msg","to":"[23,1,18,0,17,1,16,0]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":537,"y":72,"wires":[["w7289B2H_X4"]]},{"id":"Vy_DQgVO6Tg","type":"change","z":"UFiUzfL0xVA","name":"reverse","rules":[{"t":"set","p":"payload","pt":"msg","to":"[23,0,18,1,17,0,16,1]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":537,"y":138,"wires":[["w7289B2H_X4"]]},{"id":"ABJ-PXjp8L8","type":"change","z":"UFiUzfL0xVA","name":"left","rules":[{"t":"set","p":"payload","pt":"msg","to":"[23,1,18,0,17,0,16,1]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":538,"y":199,"wires":[["w7289B2H_X4"]]},{"id":"s1Vjl8NOHVM","type":"change","z":"UFiUzfL0xVA","name":"right","rules":[{"t":"set","p":"payload","pt":"msg","to":"[17,1,16,0,23,0,18,1]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":537,"y":265,"wires":[["w7289B2H_X4"]]},{"id":"aTttzrIqa_c","type":"debug","z":"UFiUzfL0xVA","name":"","active":true,"console":"false","complete":"power","x":627,"y":755,"wires":[]},{"id":"UAzkGtgvIhU","type":"gamepad","z":"UFiUzfL0xVA","name":"","controllerId":"0","refreshInterval":"100","onlyButtonChanges":false,"roundAxes":true,"x":101,"y":502,"wires":[["t0Tvt6yJjT8"]]},{"id":"t0Tvt6yJjT8","type":"function","z":"UFiUzfL0xVA","name":"control","func":"let prevPow, prevDir;\nreturn flow.get('dir')\n .then((pd) => {\n prevDir = pd;\n return flow.get('pow');\n })\n .then((pp) => {\n prevPow = pp;\n console.log('pp', prevPow, 'pd', prevDir);\n const a = msg.payload.axes || [0,0];\n const b = msg.payload.buttons || [{}, {}];\n \n if(a[1] === -1) {\n msg.dir = 'f';\n }\n else if(a[1] === 1) {\n msg.dir = 'b';\n }\n else if(a[0] === -1) {\n msg.dir = 'l';\n }\n else if(a[0] === 1) {\n msg.dir = 'r';\n }\n else {\n msg.dir = 's';\n }\n \n if(msg.dir === 's') {\n msg.power = 0;\n }\n else if(b[0].value) {\n msg.power = 1;\n }\n else if(b[1].value) {\n msg.power = 2;\n }\n else{\n msg.power = 0;\n }\n return msg;\n })\n .then(() => {\n return flow.set('pow', msg.power);\n })\n .then(() => {\n return flow.set('dir', msg.dir);\n })\n .then(() => {\n if((prevPow !== msg.power) || (prevDir !== msg.dir)){\n return [msg, null];\n }\n return [null, msg];\n });","outputs":"2","noerr":0,"x":145.5,"y":651,"wires":[["8U78x5WuN_Y","SS7zssP24Uo","lvrrumtod3g"],[]]},{"id":"8U78x5WuN_Y","type":"switch","z":"UFiUzfL0xVA","name":"","property":"dir","propertyType":"msg","rules":[{"t":"eq","v":"f","vt":"str"},{"t":"eq","v":"b","vt":"str"},{"t":"eq","v":"l","vt":"str"},{"t":"eq","v":"r","vt":"str"},{"t":"else"}],"checkall":"true","outputs":5,"x":281,"y":515,"wires":[["3G19J9pm8kg"],["Vy_DQgVO6Tg"],["ABJ-PXjp8L8"],["s1Vjl8NOHVM"],["in0eScdUR_o"]]},{"id":"SS7zssP24Uo","type":"switch","z":"UFiUzfL0xVA","name":"","property":"power","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"2","vt":"num"},{"t":"else"}],"checkall":"true","outputs":3,"x":337,"y":614,"wires":[["m3dKjykASr8"],["tVJtHjltcWw"],["in0eScdUR_o"]]},{"id":"lvrrumtod3g","type":"change","z":"UFiUzfL0xVA","name":"","rules":[{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":734,"wires":[["aTttzrIqa_c"]]}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment