Coder Social home page Coder Social logo

led-bot's People

Contributors

danasf avatar dariajung avatar garborg avatar marqsm avatar punchagan avatar sophiadavis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

led-bot's Issues

Debian start-up script

We need to setup a debian startup script.

What it needs to do:

  1. Install the Octoscroller cape Device Tree Overlay, it lives in /lib/firmware the command to use is

echo CAPE-BONE-OCTO > /sys/devices/bone_capemgr.8/slots

You can cat /sys/devices/bone_capemgr.8/slots to see what's installed

  1. Run the LEDscape opc-rx listener

~/LEDscape/bin/opc-rx > /dev/null 2>&1

3.Run the bot-scheduler

~/LED-bot/bot_scheduler.py

Document how to test locally

Do we have simple instructions that explain how to run a local dev/test environment?
If we don't we could write some up. I noticed even i'm slightly confused as to how to test my stuff (in a hurry & didn't want to commit blindly :) )

integrate with our rfid tags

When someone opens the front door, say

' WELCOME BACK, 24601! #{random_compliment_or_motivational_generator()'

let people register with their rfid tag.

this only works of the tags are unique

Improve appearance of images

Images often appear too bright or with low contrast. Pillow has a bunch of image filtering methods, lets try to find some parameters that work better on the screen!

Implement Kill switch command

Add a command to kill the current item, or everything, in the queue (in case of spammer take-over, emergencies, overflows, or other unpredictable circumstances)

Thinking about long term evolution of architecture

I opened this issue to discuss long term ideas for this application!

Some day, in the future, if we were to refactor to remove Zulip code from the core and make it really modular it could suit a variety of LED installations and inputs (web interface, IRC, Zulip, Slack, SMS, etc).

Inputs -> Processing, Queuing and Scheduling -> out via Open Pixel Control

We could have a REST API something like

https://ledbot/status
https://ledbot/text?message=hi hi hi
https://ledbot/image?image=http://image.url or file

Thoughts?

Doorbot - LEDBot integration

It could be really fun to integrate the LEDs with Doorbot, when someone successfully opens the door it enqueues and displays a message, [Greeting] [Person]

Send response to messages on streams only to sender

Responses like "JUST GIVE ME A SEC I'LL SHOW YOUR STUFF WHEN I CAN!
WE'RE ALL UNDER A LOT OF PRESSURE HERE!!!" are sent to everyone instead of just the sender, when sent on a stream instead of a private message.

Simplify command structure

Currently you need to type:

led-bot show-text <your text>
led-bot show-image <your image url>

To display things. Marcus and I discussed simplifying things. Perhaps we could do something like:

led-bot image <your image url>
led-bot <your text>
?

Change LED-screen address from IP into a more stable format

Currently the IP of the beaglebone running the LED-screen is just hard-coded in bot_scheduler.py - this is not a stable solution (because of DHCP etc). It should always default to ledbone.local in local network. This should be tested.

Filler displays

When the screen is relatively idle, display filler information like weather, quotes, ...

switch to wireless

I've had success with the TP-LINK TL-WN722N Wireless but it should be tested more as it requires a relatively recent kernel, and I have no idea how to get the PRU working on newer kernels.

There's probably better adapters out there, suggestions?

Add HTTP Listener

Add HTTP-based listener to the bot, this would make it easy to send messages to LEDBot via other projects (doorbot, etc). A simple Flask server or something would probably work! Take a look at zulipRequestHandler and cli_handler

Implement OPC state status / control command

This bot monopolizes the connection to the Open Pixel Control socket. At some point I imagine folks will want to stream cool Processing sketches, Canvas games and other visualizations to LEDs in addition to what LEDBot can provide. Create a command that can get / toggle state of OPC connection. If inactive messages will queue up for later.

Need to make text display non-blocking

Currently upon receiving a textual message we just go to an infinite display loop.

We should have some kind of mechanism for handling incoming messages systematically (a queue probably?) and some kind of event emitter, scheduler or something that would trigger the next task when the time is right.

Use UDP for OPC socket connection

This one is for the systems programmers / C hackers out there!

Andrew pointed out that Open Pixel Control is communicating over a TCP socket, which is really unnecessary for this application. We're currently using this server code on the Beaglebone

LEDscape, which deals with lower level stuff, has a UDP option, but the protocol is a bit different. If we keep things in the OPC style this application would be more easily compatible with other LED products and existing OPC adapters. This fork of LEDscape has an improved OPC server with a UDP, but is designed for different LED hardware (WS2812 strips in a grid, rather than 16x32 panels of the type we are using) so adaptations will probably need to take place.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.