claude
This commit is contained in:
parent
fcb0e25ebd
commit
3441a7e4af
108 changed files with 641 additions and 869 deletions
|
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
title: 'My First Real Project: LEDs Driven by an FFT'
|
||||
description: A Raspberry Pi music player that drove RGB strips through MOSFETs. The first thing I started and actually finished.
|
||||
date: 2026-04-26
|
||||
projectPeriod: 'Spring 2016'
|
||||
thumbnail:
|
||||
src: ./_assets/leds.jpg
|
||||
alt: RGB LED strips lit by a music synchronisation project.
|
||||
tags: ['systems', 'tools']
|
||||
role: Hardware and software author
|
||||
stack: ['Python', 'NumPy', 'FFT', 'Raspberry Pi', 'MOSFETs', 'vanilla web']
|
||||
outcome: The first non-trivial project I started and finished
|
||||
audience: technical
|
||||
links: []
|
||||
---
|
||||
|
||||
Spring 2016. I had a Raspberry Pi, a couple of 12V RGB LED strips someone had given me, a handful of MOSFETs from an electronics kit, and zero idea what I was doing. I wired one of the MOSFETs backwards and it got hot enough to leave a small mark on the breadboard. I learned to read a datasheet, slowly, by needing one. This was the first thing I started and actually finished.
|
||||
|
||||
The plan was something like: play music, look at it, make the lights match. I got bands wrong first. Mapping raw audio amplitude to brightness made the lights pulse with anything (clipping, voice, fan noise), a strobing mess that hurt to look at. Reading about Fourier transforms long enough to type `numpy.fft.fft(audio_chunk)` into a REPL was the moment the project started actually behaving like the thing I'd imagined. Bass-heavy frequency bins went to red; mids to green; highs to blue. Smoothing the output over a few frames stopped the seizure-inducing flicker.
|
||||
|
||||
The frontend was a vanilla web page on the same Pi: pick a track, tweak the band thresholds, see what changed. No framework. Just a `<select>`, a few sliders, and an `XMLHttpRequest`. It worked.
|
||||
|
||||
It's not impressive in 2026. The thing I actually keep from it isn't the FFT or the MOSFETs; it's the discovery that I'd rather have a finished janky thing than an elegant unfinished one. Most of the projects on this site are downstream of that discovery; [the ATtiny85 handheld](/articles/ad-astra-attiny85-game-engine/) four years later is the same instinct with the soldering iron held steadier. I'd still recommend the same path to anyone learning: pick something physical, plug things together until they work, accept that the first version will be ugly.
|
||||
Loading…
Add table
Add a link
Reference in a new issue