Dit project was bedoeld als een geschenk voor mijn vriend Chris Lasher ter herdenking van zijn beweging en het begin van een masteropleiding in bioinformatics. Chris zal doen een heleboel programmering, en is een aanhanger van pragmatische / Agile Programing, is één van de opdrachtgevers van die eenheid testen. Terwijl de tests van de eenheid van een programma zijn uitgevoerd, is het leuk om te weten als ze zijn slagen of bij ontstentenis, en die overheersend is. Beroemde, sommige pragmatische programmeurs gemaakt een feedback-systeem door het beheersen van de full-size lavalampen van een eenheid testen kader door aan te sluiten samen sommige off-the-shelf huiscontrole apparaten (het kost hen meer dan $60). De lichten konden ze zien of proeven werden passeren of bij ontstentenis, en de geleidelijke opwarming op één licht konden ze om te zien welke gebeurtenissen waren overheersend. Dit is een cool idee, maar ik wilde iets Chris maken dat:
1) twee kleine USB-aangedreven lavalampen, zou controleren
2) Chris van fancy nieuwe laptop en interface via USB (geen oudere havens op nieuwere computers, met name laptops), zou worden uitgeschakeld
3) zou een beetje meer zelfgemaakte en hacker-vriendelijk,
4) zou worden goedkoper toewijzen.
Relais rijden vanaf een USB naar seriële poort converter lijkt een eenvoudige oplossing. Er zijn vele schakelingen online beschikbaar voor seriële poort controle projecten. Een uitstekend project dat ik aangepast bedroeg http://www.windmeadow.com/node/4. Helaas, bijna alle USB naar seriële apparaten niet toestaan voor lage bits bonken (de handmatig gelijkwaardige controle lijnen) die is vereist voor het gebruik van deze circuits. Een andere benadering zou zijn om een USB interface circuitkopen of bouwen van een microcontroller. Hoe dan ook, het project zou vereisen een goede deal van microcontroller code en stuurprogramma's (zelfs met behulp van de vooraf bestaande menselijke interface-stuurprogramma's of een pre-en-klare controller).
Ik koos voor dit probleem te verhelpen met een geborgen USB-toetsenbord, omdat ze zijn relatief goedkoop, en bevatten alles wat nodig is voor drie eenvoudige op/af uitgangen, in de vorm van het nummer, caps en scroll lock LED's. Onder Linux zijn er een aantal mechanismen om te schakelen de LEDs van een programma of de opdrachtregel (één wordt zelfs verwezen in Cryptonomicon). Setled is de eenvoudigste is vooraf geïnstalleerd op bijna alle machines, ledd is gebaseerd op een client / server-model, en er is zelfs een module in de Ruby programmeertaal. Windows en Mac OSs, en andere programmeertalen, moeten beschikken over vergelijkbare mechanismen - post ze in de comments als je weet hoe om te wisselen van toetsenbord LEDs in andere OSs of programmeertalen!
Ik gaf Chris zijn heden, en nu hij niet alleen zien kan als zijn eenheid proeven voorbij, alle de programmeurs in zijn nieuwe afdeling kunnen weten wat een koele DIY maker hij is.