DIY hem LED transit-tecken (2 / 2 steg)

Steg 2:



Source Code

Som vanligt börjar jag med källkoden, som är på github. Här är en lokal spegel, bara i fall källkoden för en lappat nästa Muni pärla är här.

Hur man kör

Det finns en liten dokumentation i README-filen, och prov kommandorader finns i daemon startskriptet för denna spec. i princip, du väljer ett stopp på nextmuni.com att ta reda på ditt stop-ID, och köra client/client.rb--stopId 12345. Alternativt kan du köra en morgon instrumentpanel genom att ange upp till två linjer och hållplatser i texten och lägga till URL för att hämta väder fromweather.gov:

PI konfigurationsanteckningar

Under den första körningen, ansluta mus, tangentbord och Wi-Fi-kort via USB-navet. Följa upp guiden komma igång att ladda ner första bilden på SD-kortet. Starta upp, installera standard Raspbian Debian-baserade distributioner. Väljer "automatisk stöveln skrivbordsmiljö på uppstått" när frågat. Även om du inte behöver det, är det det enklaste sättet att konfigurera Wi-Fi. En gång på skrivbordet, välj "Wi-Fi konfigurationen" under en av menyerna nås via Start-knappen och konfigurera WiFi-kortet du in för att ansluta till routern. Se till att du också konfigurera den att starta WiFi automatiskt vid uppstart. Konfigurera SSH-server och se till att den startar vid uppstart. Antingen konfigurera hostname eller skriva ner IP-adress. Starta om och försök till SSH från en annan maskin. Om detta fungerar, koppla från mus, tangentbord och HDMI: du inte behöver dem längre. Git installeras via sudo lämplig-få installera git, Hämta källorna och följ README instruktionerna för att installera language runtimes. Spela med skriptet kommandoradsflaggor till räkna ut vad du vill köra och konfigurera en daemon genom att installera initskript. När tillräckligt säker i återhämtningsförmåga setup, montera detta på din vägg.

Resultat

Så lösningen hjälpte: jag slutat igång som japanska skolpojke, och började styra min morgon förhalning, alltför. Som en bonus, jag hade en ungefärlig uppskattning av hur mycket det skulle kosta skattebetalarna för att programmera detta tecken, och, naturligtvis, jag hade mycket roligt, också. Slutligen, jag har nu en töntig post i mitt vardagsrum... även om det ser andra som en ström av aktiekurser och inte av Muni ankomsttider.

Anteckningar

Resten är mindre "heta" sektioner, beskriver min erfarenhet med de verktyg som jag används för jobbet.

Ruby

Raspberry Pi: s standard Linux, som Debians derivat, innehålla anständig stöd för Ruby, inklusive 1,9. vilket är lite gammal redan, dock. Det tar Pi flera sekunder att ladda tolken och ett dussin av pärlor som jag behövde för detta tecken, men det är OK eftersom programmet bara startar upp en gång när systemet drivs upp.

LED-tecken

Så skylten jag använde enligt en Perl API, så skulle det vara naturligt att skriva klientprogram i Perl, alltför... inte riktigt. Medan jag har en massa erfarenhet programmering i Perl, jag skulle mycket hellre föredra skriver på ett mer intressant språk, Python eller Ruby. Det var en av anledningarna till varför jag skrev en liten vinjett över Perl API, så att jag kunde exec detta enkla program från något annat språk. En annan anledning till varför jag skrev detta API var att skylten inte stöder två rader text i dess inbyggda renderare. API kan du leverera en textrad, och tecknet kommer gärna göra det, och även lägga till vissa effekter, men jag ville ha två linjer i ett mindre teckensnitt i stället. API har inte en "render bild" funktion, men skylten kan du skapa dina egna teckensnitt glyfer, och infoga dem i text. Självklara idén att skriva ut en 16 x 96 "symbol" fungerade. Omslaget gör exakt. Skylten kan också loopa igenom flera bilder--precis som det verkliga Muni tecknet. API är detta mycket lätt att programmera: detta sker automatiskt när du skickar flera meddelanden. Integration med Pi gick smidigt: bara använda $sign -> Skicka (enhet = > "/ dev/ttyUSB0"); i ditt program. Det fanns flera glitches, dock. För det första centreras varje glyph automatiskt, om det inte är större än ca 80 pixlar bred, i vilket fall det är justerad till vänster. Loopa igenom olikt arrangera i rak linje meddelanden ser dåligt, så jag tvinga alla bilder jag skicka till tecknet som 16 x 96, stoppning dem med svarta pixlar. För det andra, det finns inget sätt att stänga av tecknet programmässigt. För att driva bort det, behöver jag fysiskt ta bort USB-anslutningen och stänga av eftersom det börjar med batteriet annars. Sign tillverkarens avsikt var förmodligen att du inte programmera skylten ofta, så programmerar det en gång och sedan slå på och stänga manuellt. Men vi är programmerare också; fungerar inte runt saker våra bröd och smör? Visa en helt svart bild gjorde susen för att tecknet "inaktivera". Det tredje jag uppdatera tecken varje 30 sekunder för att säkerställa lägligt prognos, men det tar 1-2 sekunder att uppdatera skylten. Jag skicka antar att detta beror på att skylten innehåller sin egen CPU och programmering, eller eftersom jag inte försökte att spela med Funktionsargument. Även om dess inre VVS förmodligen påverkar uppdateringshastighet, och jag såg exempel på lasta alla synkroniseringen och blinkande lampor till Raspberry Pi fullständigt med olika, mer låg nivå tecken, det skulle vara alltför tidskrävande för mig att bry sig om. Jag vet inte hur länge skylten kommer att vara när det är omprogrammeras två gånger en minut. Hittills är jag ganska nöjd med Bright LED-tecken jag använde och dess API.

Font Rendering

Jag förväntas spendera noll tid på font rendering, men det tog mycket längre tid än väntat. Tja, jag planerar att skriva min egen enkla dopfunten återgäldande motor, men flera dolda stenar väntade på mig under den tunna sanden. Först, jag kunde inte hitta ett "raster" teckensnitt som är bara en uppsättning bitmappar. Jag slutade ladda ner "pixelated" TTF teckensnitt och gör dem med FontConfig bibliotek. Jag ville inte tecknet har en hel del av beroenden, så jag pre-rendeded glyfer på min Pi i en ready-to-use sätt med detta skript, och skrev ett litet bibliotek för att driva dem. Det roligaste är att jag lätt kan lägga till nya glyfer, såsom nederbörd indikatorer. Vi tar också en hel del font rendering för givet, som arrangera i rak linje till center, ordet inslagning, kerning. Jag genomfört några av dem på ett mycket enkelt sätt (i Ruby!) men jag känner att ett par fler funktioner skulle göra mig ragequit till förmån för en riktig font rendering biblioteket istället.

Åtkomst till Muni förutsägelser

En annan anledning till att jag valde Ruby var Muni biblioteket i Ruby, färdiga att använda för att få prognoser från NextBus systemet. Eller så jag tänkte: biblioteket saknar vissa funktioner, till exempel raffinering vägar eller att få prognoser för alla vägar i stopp (detta är vad en Muni skylt visar). Det drog också i den hela järnväg stacken bara vill visa snyggt formaterad tid sträng! (som, konvertera intervallet i sekunder till något fancy som "över 1 timme"). Jag fast några av dessa saker och bundled pärla med den ursprungliga källan för din bekvämlighet eftersom det var lättare än forking det och lägga in en officiell databas.

Ange routeConfig!

Tydligen, officiella Muni monitorer arbetar med samma lydelse: routeConfig är något av kommandona API NextBus tjänst.

Hur som helst, NextBus systemet har en trevlig API, som är till synes fri att använda om användningen begränsas eller fördelas mellan klienter. En leker av denna webbplats, nextmuni.com ägnas åt SF Muni. Det enda jag hittade var namnen på de

Väderprognos hämtning

Åh, ja, här kommer den enkla biten,"tänkte jag när jag klar med allt annat, och beslutat att kasta i väderprognoser. Jag hade fel på ett mycket intressant sätt. Det visade sig, väderprognoser API: er inte är oftast gratis. De webbplatser som jag hittade på toppen av Google söka alla obligatoriska registreringar och inklusive din personliga nyckel till alla API-anrop. Många hade gratis begränsad versioner men krävs betalning för varje timme prognos-- och jag var främst intresserad av villkoren på en specifik plats på en viss tid av dagen (San Francisco väder är inte mycket stabil). Inte för att jag är motståndare till betaltjänster i sig, eller för att analysera webbsidor med regexps, men jag behöver inte att mycket från dem att betala, gör jag? Jag fortsatte med en fri regering weather.gov tjänst, som faktiskt är ganska cool trots webbdesign av förra seklet. Tjänsten är begränsad till USA, men San Francisco Muni förutsägelser är inte mycket användbar utanför landet heller. För att använda den, måste du ge en länk till XML-tabellen för din stad/område, som skulle se ut så här: http://forecast.weather.gov/MapClick.php?lat=37.77493 & lon =-122.41942 & FcstType = digitalDWML. Jag använder inte deras API, eftersom det är en fullt utvecklad tvål, och inte ingen har tid för detta.

Se Steg
Relaterade Ämnen

DIY konvertera LED lampa till ficklampa Solar Free Energy Generator hembakade

DIY konvertera LED lampa till ficklampa Solar Free Energy Generator hemlagadMaterial:LED lampa 7 x 3 Watt LED super ljus med power supply 220 v AC-25 v DCTa bort strömförsörjningen (AC adapter)Konvertera LED serien till parallell kretsar och ta bort...

DIY hem säkerhet + automatisering med en Raspberry Pi

Detta instructable bör hjälpa dig ställa in en DIY hemsäkerhet + automationssystem som använder 433Mhz dörr/fönster sensorer, 433 MHz PIR rörelsedetektorer och webbkameror att övervaka ditt hem och 433MHz uttag till kontroll lampor etc.Det ursprungli...

DIY hem sol: Planerar en solcellspaneler (Nybörjarguide)

Hi det!Kanske du har funderat på solenergi - även om bara för en kort stund - bara för att avfärda det som alltför komplicerat och för dyra, eller kanske du på allvar överväger ett projekt, men vet inte var du ska börja. Med detta Instructable hoppas...

Gör en LED akryl tecken

Jag gjorde detta LED akryl tecken för min granne, som är ägare av "Rob's Wood Shop - dagis för vuxna". Kolla in min video och följ dessa instruktioner för att göra en själv!Steg 1: Designa en logotyp och rista in i akryl. Jag fram logotypen i Ph...

DIY hem dekoration: Hur man gör Quilled Shell Wall Decor

Quilled shell wall decor är en unik och en intressant idé som kom att tänka på, när jag tänkte på idéer för min DIY hem dekoration projektet. Omvandla ett vardagliga rum till ett levande vardagsrum kan lätt göras, om du titta på denna kompletta steg...

DIY billiga LED-TV bakgrundsbelysning - en lekman Version

Hej beslutsfattare,Om du undrar gör vad detta DIY bakgrundsbelysning instructable så speciellt när det finns redan så många finns, Läs på:).Dessa dagar har alla en TV, närmare bestämt en LED, LCD eller Plasma TV. Så varför behöver en TV bakgrundsbely...

DIY hem gjorde Gym

DIY hem gjorde GymDet finns inget manlier som fungerar i ditt garage. I själva verket har många män överlåtit sina värdelösa gym medlemskap och använde dessa pengar till att köpa utrustning för sina egna personliga garage gym.Få en bra vikt uppsättni...

Klass av 2013 LED-banner/tecken

jag ville göra vår klass sticka ut mer än de andra på pep rallys, så jag beslöt att bygga en LED-banner/tecken som skulle Visa klass 2013.Steg 1:Material:LEDSskumWoodskruvarnaWireAA batterier och hållareströmbrytarekardborrbandlödaSteg 2: först skriv...

DIY Desktop LED förstoringsglas lampa

Detta DIY Desktop LED förstoringsglas lampan är ganska enkel, billig och nyttig projekt alla kan göra i ungefär en halv dag med alla ingredienser.Jag kommer att försöka täcka alla de viktigaste stegen för att bygga men jag tror bilderna talar för sig...

DIY motorcykel LED Daytime Running Lights (DRL) mod

Soffiter i UltraBright™ Design serie Bright White LED för detta särskiljande DIY motorcykel LED DRL mod.För att installera belysningen, börja med att skära LED strips till storlek. Sedan löda ihop remsorna och ställa dem i en plast glasfiber casing h...

DIY hem arkad maskin

Hej killar, detta är ett grundläggande lite steg för steg för att bygga din egen hem arkad. Jag har i princip alltid velat göra en redan innan MAME var runt. När jag var liten hade jag den stora idén av att sätta en NES i ett skåp och med NES fördele...

DIY stora LED lyser segmentet Visa 7

en vän till mig som undervisar i gymnasiet vetenskap beställt mig göra en fara stil frågesport spelenhet med en stor timer display och knappar för spelare. Den bästa sorteringen timer jag kunde tänka på var en stor 7 segment display med 3 siffror plu...

DIY hem inspelning Studio

detta DIY hjälper dig att göra ett hem inspelningsstudio.Steg 1: En bra dator En bra dator är en nyckelkomponent till att ha ett hem inspelningsstudio. En bra dator bör kunna hantera musik att göra apps som GarageBand, och bör inte upprepade gånger k...

Klockan LED Transit - aldrig missa bussen igen!

Vi kommer att bygga en rullning LED-display för busstider. Du kanske har sett en av dessa på din subway station eller hållplats. Du kan bygga en för hemmet till hjälp du vet exakt hur mycket tid du har kvar--speciellt om du tenderar att slå snooze al...

DIY: 100W LED ficklampa monterad i PVC-rör

I den här videon kommer jag att göra super ljusa 100W LED ficklampa i PVC pipe bostäder.Huvudsakliga delar köpte från ebay. Du kan enkelt hitta dem genom att skriva denna text på ebay söka låda:-100W COB LED chip;-100W LED reflektor, objektiv, lins f...

DIY uppladdningsbara LED ljus från Laptop batteri

Jag har några gamla laptop batterier i min skroten därför har jag beslutat att göra vissa användning av dessa batterier. Laptop batterier är vanligtvis av 3,6 till 4V betyg därför jag har sökt en LED strip från marknaden här i Pakistan de LED strips...

DIY 72 LED macro ring

Macro led ring with 72pcs of regular leds. Filter storlek: 72mmMed steg upp ringen kan användas på alla typer av lins (52mm till 72mm)Totalt aktuella avloppet ~ 1.2Ah på 5-6V, (4xAA batteri eller laddningsbara eller 6V DC adapter)Mycket lätt: 76gr, b...

DIY stel LED strip akvarium ljus

Jag var ute efter en billig LED ljus för min räkor tank (54 liters/15 gallons). Jag beslutade att starta en mycket enkel DIY projekt att spara pengar och att dela det på instructables.Saker du behöver:1 eller mer vattentät stel LED band; du hittar de...

LED-bakgrundsbelyst tecken

någonsin behöver ett kreativt sätt att fråga en tjej till balen eller någon annan sorts dans? Väl är här ett enkelt projekt som är visuellt imponerande, kreativ, flashiga och slår be med en normal affisch och choklad. Om du är kreativ och behöver för...