-
Notifications
You must be signed in to change notification settings - Fork 5
Frequently Asked Questions
In short, say 150€ distributed as is:
- 5m LED strip: 40€
- Arduino board: 20€
- Wood: 25€
- Glass: 15€
- 5V AC adapter: 10€
- Cheap table to hack: 10€
- Other: 30€ (micro-USB, electronics, tape, paint)
In practice it will depend of where your place is (China or US have cheaper LED strips/electronics, no importation taxes...), the prices of your local stores, and the pieces you decide to buy, salvage and reuse, or ignore.
Currently none, sensors will come later. The existing apps that require inputs use a USB keyboard or joystick. But you can obviously plug any sensor that has a driver for your OS and a Python API.
Like other LED table projects, we may use infrared lights and reflection as a touch interface. The difficulty is that this kind of sensor is not sold as a ready-to-use strip and will require more electronics hacking and plenty of wires/multiplexers that increase a lot the complexity of Arbalet building.
Consider also writing nice interactive apps with a Kinect or a Leapmotion for instance.
Yes, you can use the simulator and see if Arbalet is really what you're looking for. You'll be able to execute the arbapps
existing application and also develop your own. Just follow the software tutorials without activating the --hardware
argument.
The essence of Arbalet is to be accessible to everyone with a programming language that is easy to learn, interactive and open to the outside world (libraries and data). Python was the initial choice for this reason. Consequence of this choice are the need of fastest system to talk to the LED strip (Arduino) and globally slower programs than compiled languages.
If the community is interested in other API's the project may evolve, but as for now, using another language X should be achieved by creating an app coded in X that streams JSON models to the Arbaserver
via a ZMQ publisher that is basically compatible with ~250% of existing programming languages in this world. A detailed tutorial about creating an Arbalet client in another language will be here soon.
If your only motivation is to use a faster language for a high refresh rate then the Arbalet software SDK is not made for you. You should program directly the Arduino microcontroller itself or any SoC without Operating System. But interface to the rest of the world (cloud data, joysticks, libraries) will be lower level and less easy.
This remark could be split in 2 more precise remarks:
- "Decreasing the pixels size would end up to a higher resolution": The charm of this device and its identity are its big pixels, several centimetres long, recalling arcade games. Decreasing their size doesn't make sense, you would basically just integrate a standard PC in a furniture. Using big pixels also influences the way your program your device. Some hundreds or even thousands of pixels are programmable one-by-one, while programming 2 millions of them (Full HD) would require a higher graphical layer to rely on.
- "A high resolution screen can simulate a low-resolution surface, the pixels would be even smoother": This is exactly what Arbasim does. Whatever your electronics is, in the end your apps only care about big pixels and still rely on the same software library powered by the same essence: a pixelated world. A special Arbalink could be dedicated to this type of usage, instead of sending the colors to the strip through serial, it would print a full screen image on a monitor. By doing that you would just remove some DIYbility to your device, but it could also be your way to customize Arbalet somehow.
A better question would be where is the limit between a LED grid and a LED monitor? But answers differ...
Think about how you would read a joystick, a keyboard, a leap motion or a kinect with an Arduino, how you would compute a fast Fourier transform, and so on... You'll find handmade Arduino libraries for each of these features, but generally specific to a special hardware setup for a specific project, that may not work with yours. While Python modules are already generic and robust.
Willing to download data from Internet? Willing to receive and decode a JSON stream? Connection to the external world is immediate with Python. It is doable for sure on Arduino, but you will take more time doing hand parsing, with bugs and limitations, while smart people already did that for you in a robust way in some python module.
The Python SDK comes with a simulator, don't forget it. You may want to simulate your crazy 1200 pixels surface before spending money.
Remember that Arbalet is not only a LED table, but also a development platform, don't think about a specific usage, a game, a musical spectrum analyser or anything else, just consider that one day, you may need to do some crazy thing and will want to concentrate on the content and not the style/low-level stuff.
In that sense, you might also render things that are hard to compute and need a powerful computer.
If your question is related to the project you should instead publish it on twitter so that it's open for everyone. If this is really intended for the creator of the project, send an e-mail with what you find on my Github profile.