Karolina wrote an article about small town, which we made to support a lecture about BeagleBone for Tkalci na Webu event. Her article is very brief and the project deserves more insight.
You can play with the town as you like. You do not have to worry about breaking something. If you break it, we'll put it all together again.
I think that the BeagleBone is a great alternative to single-chip microprocessors – microcontrollers (MCUs). MCUs usualy carries a lot of hardware peripherials. With most MCUs it is possible to communicate using different busses (SPI, I²C, UART), drive motors or LED lights (PWM), use timers, or just click with relays (GPIO). Similar properties have BeagleBone but the number of usable peripherals is larger than on average MCU. Comparison with other computers in Raspberry category is similar. In this category the BeagleBone is the leader in number of useable peripherials. BeagleBone uses quite normal Linux and this combination makes it an acceptable hardware platform for software developers.
I was fascinated with PWM (Pulse Width Modulation). What's going on: If the LED is turned on forever, the LED will light to 100%. If the LED is turned off forever, the LED will light to 0%. If we have the same diode flashing so the LED will light for a second and other second the LED will be dark, the LED will light up to 50%. But our head gets angry very quickly. But we can accelerate the blinking that we will not notice any flicker. Minimum frequency, which the human eye no longer recognize blinking, is in kHz order. Such a frequency cannot be created by software usualy. That's why the MCUs has a PWM device onboard. The PWM device is only instructed how often and how much it should blink and then the PWM device works independently on the main CPU. BeagleBone has eight such devices available.
For the first experiments I picked up the proven forging equipment and removed a switching MOSFET transistor from an old computer mother board. I soldered it to a primitive board with a powerful LED wired and it lit:
In the next step I made a board that uses all eight PWM channels in BeagleBone to drive eight LEDS and allows to connect fourteen buttons and DS18B20 thermometers. Some time ago I've also connected the atmospheric pressure sensor. Mostly we control the LED strips or power LEDs:
The device is carefully mounted into our office "snake terrarium" (Here I use an untranslatable language punch. The czech for male snake is "had". The czech for female snake does not exist but if so, it should be "hadice". But the czech world "hadice" is also the world for english "hose". So the "terarium pro hadice" is "female snake terrarium" or "hose terrarium". In fact, it's an ordinary small wall-mounted rack.)
If you are interested, I have one board available and I can asseble other seven boards in few weeks.
Software is written in C++ and Qt as a web application. Small parts are also created in QML for KDE5 (specifically I have written small plasmoid to control my desk lamp).
Software is available from our repository under the LGPL license: