USB kontrollerade mini lavalampor
Detta projekt var tänkt som en present till min vän Chris Lasher att fira hans flyttar och börjar en forskarutbildning i bioinformatik. Christer kommer att göra en hel del programmering och är en anhängare av pragmatiska / Agile programmering, en av huvudmännen i som är enhet tester. Medan enhetstester för ett program körs, är det trevligt att veta om de lyckas eller misslyckas, och som är dominerande. Bekant, gjorde några pragmatisk programmerare en feedbacksystem genom att kontrollera full storlek lavalampor från en enhetstestning ram genom att koppla ihop några off-the-shelf hem anordningar (det kostade dem över $60). Lyktorna tillät dem att se om tester var passerar eller misslyckas, och gradvis uppvärmningen upp på en lampa tillät dem att se vilka händelser som var dominerande. Detta är en cool idé, men jag ville göra Chris något som:
1) skulle kontrollera två små USB-drivna lavalampor,
2) skulle drivas av Chris's fancy ny laptop, och gränssnitt via USB (inga äldre portar på nyare datorer, särskilt bärbara datorer),
3) skulle vara lite mer hemlagad och hacker-vänlig,
4) skulle vara tilld billigare.
Köra reläer från en USB till seriell port omvandlare verkar vara en enkel lösning. Det finns många kretsar on-line för serieport kontroll projekt. Ett utmärkt projekt som jag anpassat var på http://www.windmeadow.com/node/4. Tyvärr är nästan alla USB till seriella enheter tillåter inte för låga bit banka (manuellt växlar kontroll linjer) som krävs för att använda dessa kretsar. Ett annat tillvägagångssätt skulle vara att köpa en USB-gränssnittet krets, eller bygga en från en mikrokontroller. Hursomhelst, projektet skulle kräva mycket microcontroller kod och drivrutiner (även med den redan existerande mänskliga gränssnittet föraren eller en färdiga controller).
Jag valde att lösa detta problem med en bärgade USB-tangentbord, eftersom de är relativt billiga, och innehåller allt som behövs för tre enkel på/av utgångar, i form av antal, lock och scroll lock lysdioder. Under Linux finns det ett antal mekanismer för att växla din lysdioder från ett program eller en kommandorad (en refereras även i Cryptonomicon). Setled är den enklaste, och är förinstallerade på nästan alla maskiner, ledde är byggd på en klient-servermodell och det finns även en modul i Ruby programmering språk. Windows och Mac OSs och andra programmeringsspråk, bör har jämförbar mekanism - skicka dem i kommentarerna om du vet hur att växla tangentbord lysdioder i andra OSs eller programmeringsspråk!
Jag gav Chris hans nuvarande, och nu han inte kan bara se om sin enhetstester passerar, alla programmerare i hans nya avdelningen kan veta vad en cool DIY maker han är.