{"id":13827872,"url":"https://github.com/terkelg/brolly","last_synced_at":"2025-05-12T15:32:31.724Z","repository":{"id":43613583,"uuid":"71526114","full_name":"terkelg/brolly","owner":"terkelg","description":"Internet of Things Umbrella Game.","archived":false,"fork":false,"pushed_at":"2016-11-04T18:32:47.000Z","size":6072,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T07:51:36.316Z","etag":null,"topics":["canvas","game","iot","mqtt","mqtt-broker","nodemcu","sensor","tilt-sensor","umbrella"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terkelg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-21T03:24:48.000Z","updated_at":"2025-02-19T18:35:30.000Z","dependencies_parsed_at":"2022-09-22T15:40:18.087Z","dependency_job_id":null,"html_url":"https://github.com/terkelg/brolly","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terkelg%2Fbrolly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terkelg%2Fbrolly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terkelg%2Fbrolly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terkelg%2Fbrolly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terkelg","download_url":"https://codeload.github.com/terkelg/brolly/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253766009,"owners_count":21960834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["canvas","game","iot","mqtt","mqtt-broker","nodemcu","sensor","tilt-sensor","umbrella"],"created_at":"2024-08-04T09:02:17.166Z","updated_at":"2025-05-12T15:32:31.160Z","avatar_url":"https://github.com/terkelg.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Brolly\n\u003e A little umbrella game, you control with an actual umbrella - wireless of course.\n\n[![](media/brolly.gif)](https://vimeo.com/190290020)\n\n**[See short case video here](https://vimeo.com/190290020)**\n\nYou're a little guy flying with his umbrella through a dangerous world full of obstacles.\nAs the player, you control the speed by opening and closing the umbrella, and you move the player left/right by tilting.\nThe speed depends on how collapsed the umbrella is, where an fully opened umbrella is max speed and a closed umbrella is minimum speed.\n\nThe umbrella uses one flex sensor to detect how open/closed the umbrella is, two tilt sensors, a battery pack and a ESP8266 WiFi module to create a WiFI access point for MQTT communication.\n\n\n## How it works\n\nThe entire setup consists of three parts:\n\n1. **Controller:** Umbrella with NodeMCU and sensors.\n2. **Server:** MQTT broker to pass communication back and forth between umbrella and game.\n3. **Game:** Front-end canvas game\n\n### 1. Controller/Umbrella\nFirst, it creates a WiFi access point using the ESP8266 board, afterwards it connects to the server and start publishing sensor data to the server through the MQTT protocol. The controller is written in Lua.\n\n#### Microcontroller\n- **Name:** ESP8266 NodeMCU\n- **Producer:** LoLin/WeMos\n- **Generation:** 2nd\n- **Version:** 1.0\n- **“Common” name**: v3\n\n#### Sensors\n- 1x Flex\n- 1x Battery Pack\n- 2x Tilt Sensors\n\n### 2. Server\nMQTT Broker using [Mosca](https://github.com/mcollina/mosca).\nForwards events form the controller to the front-end and at the same time process the sensor inputs.\n\n\n### 3. Game/Front-end\nCanvas game made using [PIXI.JS](https://github.com/pixijs/pixi.js), and [MQTT.js](https://github.com/mqttjs/MQTT.js) for client-side MQTT.\n\n*Built in a few hours the night before delivery, prepare for spaghetti code, brain-farts and bugs.*\n\n\n## Setup Controller/NodeMCU\n[Controller README.md](controller/README.md)\n\n\n## Setup Server\n[Server README.md](server/README.md)\n\n\n## Setup Game\n[Game README.md](game/README.md)\n\n\n## Links\n- https://nodemcu.readthedocs.io/\n- https://github.com/nodemcu/nodemcu-firmware\n\n## Copyright\n*@ Terkel Gjervig*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterkelg%2Fbrolly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterkelg%2Fbrolly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterkelg%2Fbrolly/lists"}