From 1f74c443405b2827217275bbdc428bd9320bb99a Mon Sep 17 00:00:00 2001 From: schneefux Date: Sun, 24 Nov 2019 17:18:36 +0100 Subject: Rework index page layout to include projects --- content/projects/blinkiecar.md | 36 +++++++++++++++++++++++ content/projects/brokentalents.md | 8 +++++ content/projects/esp-ledstrip.md | 25 ++++++++++++++++ content/projects/internet-is-magic.md | 45 +++++++++++++++++++++++++++++ content/projects/jimmie-deauth.md | 20 +++++++++++++ content/projects/music-led-visualisation.md | 29 +++++++++++++++++++ content/projects/weather-snowman.md | 38 ++++++++++++++++++++++++ 7 files changed, 201 insertions(+) create mode 100644 content/projects/blinkiecar.md create mode 100644 content/projects/brokentalents.md create mode 100644 content/projects/esp-ledstrip.md create mode 100644 content/projects/internet-is-magic.md create mode 100644 content/projects/jimmie-deauth.md create mode 100644 content/projects/music-led-visualisation.md create mode 100644 content/projects/weather-snowman.md (limited to 'content/projects') diff --git a/content/projects/blinkiecar.md b/content/projects/blinkiecar.md new file mode 100644 index 0000000..6f1eb4a --- /dev/null +++ b/content/projects/blinkiecar.md @@ -0,0 +1,36 @@ +--- +date: 2015-12-21 +title: Blinkiecar - 3D printed car with turn signals +image: /images/blinkiecar/finished-front.jpg +--- + +With some support from a friend with a 3D printer, I successfully built a magnetic car with working turning lights. + + +![car front view](/images/blinkiecar/finished-front.jpg") + +_Right, it's a present._ + +The car was printed in two pieces, the top and the bottom part. My friend downloaded the model from somewhere, I repaired it with [netfabb](http://www.netfabb.com/) (didn't like their software due to an annoying startup dialog and paid features), cut it with [slic3r](http://slic3r.org) (this program looked better) and gave him the [repetier](http://www.repetier.com/)-converted model back. + +![car without top part](/images/blinkiecar/wip.jpg) + +_This is how it looks on the inside._ + +Inside the car is a 3.3V coin cell battery, which is connected to two switches and orange blink LEDs on the bottom of the car. You turn the switch on either the left or the right side on and thereby make the corresponding turn light blink. + +A strong magnet from an old hard drive is glued below the car so you can stick it onto a magnetic board. + +![magnet below car](/images/blinkiecar/magnet.jpg) + +_The magnet also covers the circuit a bit._ + +The blink LEDs are not in sync for some reason, but that did not matter as they still function as turning lights. + +![both leds blinking](/images/blinkiecar/blink-both.gif) + +_You can still try to use them as warning lights, but that's not reliable._ + +![front right led blinking](/images/blinkiecar/blink-right.gif) + +Next time, I should think of another solution for power - with this setup, you cannot swap the battery and the LEDs are quite dark. diff --git a/content/projects/brokentalents.md b/content/projects/brokentalents.md new file mode 100644 index 0000000..2667118 --- /dev/null +++ b/content/projects/brokentalents.md @@ -0,0 +1,8 @@ +--- +date: 2018-05-24 +title: Data science with functional programming and a MOBA API +image: /images/brokentalentsfun.jpg +link: https://brokentalents.fun +--- + +I built a meta statistics website for the League-of-Legends-like game Vainglory. \ No newline at end of file diff --git a/content/projects/esp-ledstrip.md b/content/projects/esp-ledstrip.md new file mode 100644 index 0000000..c3f716b --- /dev/null +++ b/content/projects/esp-ledstrip.md @@ -0,0 +1,25 @@ +--- +date: 2016-06-05 +title: (Almost) Wireless LED strip controller +image: /images/esp-ledstrip/glowgreen.jpg +--- + +After a [failed attempt]({{< ref "music-led-visualisation.md" >}}), I succeeded in building a wireless analog LED strip controller. + + +![Glowing led strip around controller](/images/esp-ledstrip/glowgreen.jpg) + +The most important part in this setup is a 12V-3.3V regulator that passes 12V to the transistors and 3.3V to the WiFi chip. Instead of gluing inefficient Darlington transistors on top of CD cases, I used IRFZ44N MOSFETs with a heatsink each on a stripboard. The principle remains the same as with the Arduino. + +![Controller top view](/images/esp-ledstrip/top.jpg) + +There are fewer long cables, which makes the controller more compact and less ugly. + +![Controller back view](/images/esp-ledstrip/back.jpg) + +On the ESP8266 runs a web server with a simple API to change the colors and a UDP listener that allows the Hyperion server to connect. +The Arduino sketch can be found [here](https://git.schneefux.xyz/electronics/esp-ledstrip/src/master/esp-ledstrip.ino). + +![Controller attached to FTDI](/images/esp-ledstrip/debug.jpg) + +A few weeks later, I spotted a mistake in my build. I used IRFZ44N transistors but I should have used IR**L**Z44N transistors instead. The difference is that the Z version needs a higher voltage at the base, so the LEDs were never bright and drew just about two thirds of the power at maximum brightness. diff --git a/content/projects/internet-is-magic.md b/content/projects/internet-is-magic.md new file mode 100644 index 0000000..943e0d3 --- /dev/null +++ b/content/projects/internet-is-magic.md @@ -0,0 +1,45 @@ +--- +date: 2015-10-29 +title: Internet is magic +image: /images/internet-is-magic/fluttershy-glow.jpg +aliases: +- /2015/10/29/internet-is-magic.html +--- + +I upgraded two figurenes with a LED to show whether my friends are online. + + +Friendship is magic! I like the My Little Pony series, and two of my best friends, knowing that, surprised me with self-made versions of Twilight and Fluttershy at my birthday. + +![Twilight and Fluttershy](/images/internet-is-magic/twilight-fluttershy.jpg) + +_Aren't they adorable?_ + +As you can see in the picture, I grabbed some diffused LEDs and illuminated my ponies. + +That was kind of unexciting after a while. Luckily, I had an [ESP8266](https://en.wikipedia.org/wiki/ESP8266) to spare. These modules are small Arduino compatible WiFi modules, so with some programming knowledge you can control GPIOs via WiFi. + +Awesome! Let's connect the ponies to the world wide web. + +![Inside view](/images/internet-is-magic/inside.jpg) + +_Not much to see here_ + +I wrote a quick-and-dirty Arduino sketch, [uploaded it]({% post_url 2015-10-14-esp8266%}) and was able to control the LEDs via netcat. You can find the sketch [here](https://git.schneefux.xyz/electronics/internet-is-magic/src/master/luminate.ino). + +![Twilight glows](/images/internet-is-magic/twilight-glow.jpg) + +_The cables in the background supply power._ + +And now comes the fun part. Both of my friends chat with me via [Telegram](https://telegram.org). Unlike WhatsApp, Telegram has an open API that allows me to easily receive their online status. + +I installed the [telegram-cli](https://github.com/vysheng/tg) client on my [Raspberry Pi](https://raspberrypi.org), a cheap and small computer, and set up an autostart script. telegram-cli runs in bot mode, a python script updates the LEDs every minute. I uploaded the script [here](https://git.schneefux.xyz/electronics/internet-is-magic/src/master/client.py). + +So whenever my friends are online, their corresponding pony starts to glow. + +![Fluttershy glows](/images/internet-is-magic/fluttershy-glow.jpg) +![Twilight and Fluttershy glowing in the dark](/images/internet-is-magic/night.jpg) + +_When they light up at night, you can feel the magic._ + +If you want to build something similar to this, be sure to ask your friends whether it's okay for them that you monitor their presence all day long. diff --git a/content/projects/jimmie-deauth.md b/content/projects/jimmie-deauth.md new file mode 100644 index 0000000..0458b1d --- /dev/null +++ b/content/projects/jimmie-deauth.md @@ -0,0 +1,20 @@ +--- +date: 2016-06-12 +title: Jimmie Deauth +image: /images/jimmie-jammer/front.jpg +--- + +Jimmie Deauth is a cheap and small ESP8266 WiFi deauthentication tool. + +![jimmie front view](/images/jimmie-jammer/front.jpg) + +The ESP8266 module is capable of sending almost arbitrary WiFi packets, including so-called deauthentication packets and packets including beacon information. +Browsing the internet, I found that RandDruid [already did](https://github.com/RandDruid/esp8266-deauth) most of the work for me. He wrote software for the ESP that kicks everyone in range out of their WiFi hotspot. Why does that work? The router and the client talk to each other. The router can send a special packet - the deauthentication packet - to the client that makes the client disconnect. The software now searches for nearby hotspots and clients, and as soon as there are any found, the module, claiming to be the router, sends the deauthentication packet. +There is another special packet that tells a client a router's name (SSID) and a kind of address (MAC). kripthor wrote a [small example](https://github.com/kripthor/WiFiBeaconJam) that sends random beacon packets in the air. I used their code as template for a function that I included in RandDruid's original software. You can download the code [here](https://git.schneefux.xyz/schneefux/jimmiedeauth/blob/master/jimmiedeauth.ino). + +Next came the hardware part. The ESP8266 is a 3.3V device that draws up to 200mA, maybe about 100 mA on average in this application. As power supply, I used rechargable LiFePo4 batteries. Those are very robust and, unlike typical batteries, stay at 3V for a long time. Mine has a capacity of 700mAh which should be enough for a few hours. +The battery can be directly connected to the ESP. I added a switch to be able to turn it on and off. + +Modern WiFi devices are immune to a deauthentication, but be aware to not to disturb clients that are not your own. Use at your own risk and only for testing purposes. + +![rear view](/images/jimmie-jammer/battery.jpg) diff --git a/content/projects/music-led-visualisation.md b/content/projects/music-led-visualisation.md new file mode 100644 index 0000000..33d1fc7 --- /dev/null +++ b/content/projects/music-led-visualisation.md @@ -0,0 +1,29 @@ +--- +date: 2016-02-13 +title: Visualize music with MPD and an LED strip +image: /images/music-led/led-floor.jpg +--- + +With Arduinos, 5050 RGB LED strips, Hyperion and MPD on a Raspberry Pi I created a low cost party lightning environment. + + +![First test results](/images/music-led/led-floor.jpg) + +_First tests show that the setup seems to work._ + +The setup consists of cheap RGB LED strips, 2 \* 5 meters, powered by two 12V 3.5A adapters and an Arduino with three TO-120 transistors each. +For strips with 30 LEDs per meter, you need 0.5A per meter. To be safe, add additional 10% to the total. So for my 10 meters, I could also have used a single adapter with at least 5.5A. +The Arduino's GPIOs are not nearly able to supply 5.5A \* 12V = 66W, so we need transistors - either darlington transistors or MOSFETs. [Adafruit](https://learn.adafruit.com/rgb-led-strips/usage) has more information and detailed explanations. After wiring, the Arduino needs to be flashed with a software that communicates with the Raspberry Pi. I adapted a sketch that implements the Adalight protocol, you can find it [here](https://git.schneefux.xyz/electronics/mpd-rgb-vis/src/master/adastrip.ino). + +The Raspberry Pi as server runs [Hyperion](https://github.com/tvdzwan/hyperion) which is AmbiLight-like. On the same host, MPD outputs music to speakers and a FIFO. I wrote a Hyperion plugin that processes the output of the FIFO and thus visualizes the music that is currently be played. The plugin and more installation instructions are [here](https://git.schneefux.xyz/electronics/mpd-rgb-vis). In my case, I started two Hyperion daemons, because I had two Arduinos connected and it is currently not possible to output the same data to two Hyperion compatible devices. + +Initially, I planned using an ESP8266 instead of the Arduino. I had not the right parts to step down 12V to 3.3V and tried to hack something together with LEDs and a 7V-3.3V-stepdown converter. +Well… that didn't work out quite well. I used Arduino Unos instead. + +![Failed attempt of connecting an ESP8266](/images/music-led/controller-failed.jpg) + +_Do not reproduce, this fries the ESP…_ + +![Arduino controller](/images/music-led/controller.jpg) + +_The controller in use_ diff --git a/content/projects/weather-snowman.md b/content/projects/weather-snowman.md new file mode 100644 index 0000000..d27cbbe --- /dev/null +++ b/content/projects/weather-snowman.md @@ -0,0 +1,38 @@ +--- +date: 2015-12-12 +title: Weather snowman - Embedded LED forecast +image: /images/weather-snowman/snowman-glowblue.jpg +--- + +It's christmas time! As a kind of pre-christmas gift, I built an Internet of Things enabled snowman for one of my best friends. + + +Like in [my last project]({{< ref "internet-is-magic.md" >}}), I used an ESP8266 again, some LEDs and an old acrylic snowman that I cut open. + +![blue glowing snowman](/images/weather-snowman/snowman-glowblue.jpg) + +_The electronics were cheaper than the snowman._ + +Inside the snowman was a fading RGB led, a switch and batteries. Boring! + +I replaced it with the ESP8266, which had 3 LEDs attached to it (red, green, blue). Via a USB cable and a voltage converter, I powered it: + +![inside setup](/images/weather-snowman/leds.jpg) + +_Luckily, you don't see how messy it really becomes once you put all this in that tiny snowman…_ + +![inside setup, top view](/images/weather-snowman/leds-esp.jpg) + +Coding took a while. + +The ESP creates a wireless access point with a web server after powerup and asks you to enter your WiFi credentials. After first setup and whenever the module is started again, it connects to your wireless network and queries [OpenWeatherMap](http://openweathermap.org/) every hour for a 3 hour forecast. + +Depending on the forecast, the blue and red LEDs glow in different patterns. If a rainy day is to be expected, the top red LED lights up and the bottom blue LED fades in and out. A storm at night is displayed via a deep blue head and a blinking snowman's body. + +If you inspect [the source code](https://git.schneefux.xyz/electronics/weather-snowman), you'll see that there also is an Android app. The app simplifies the setup and runs a background service that makes your snowman's green LED flash on new notifications. + +![new notification snowman](/images/weather-snowman/snowman-blink.jpg) + +_Gotta check my mails._ + +![blue and red glowing snowman](/images/weather-snowman/snowman-glowbluered.jpg) -- cgit v1.3.1