Innehållsförteckning:

Twitter Watcher, #twatch: 6 steg (med bilder)
Twitter Watcher, #twatch: 6 steg (med bilder)

Video: Twitter Watcher, #twatch: 6 steg (med bilder)

Video: Twitter Watcher, #twatch: 6 steg (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Twitter Watcher, #twatch
Twitter Watcher, #twatch
Twitter Watcher, #twatch
Twitter Watcher, #twatch
Twitter Watcher, #twatch
Twitter Watcher, #twatch
Twitter Watcher, #twatch
Twitter Watcher, #twatch

#Twatch rullar de senaste trendämnena från Twitter på en LCD -skärm. Det är en fristående nätverksapparat som håller sig uppdaterad utan en dator. Det var fantastiskt att se #iranelection, Michael Jackson och andra historiska händelser rulla förbi medan vi utvecklade #twatch. Denna instruktionsbok dokumenterar #twatch -hårdvaran och designen. Utöver en Twitter -trend -ticker är #twatch också en generisk ethernet LCD -ryggsäck. Det kommer att visa spellistor, PC -statistik och annan information med program som LCD Smartie. Det är också mjukvara som kan uppgraderas, så det är aldrig föråldrat. #Twatch är öppen källkod, så du kan ladda ner våra mönster och bygga din egen. Seeed Studio har några sammanställda #twatch ethernet LCD -paket för $ 45, inklusive frakt över hela världen. Skaffa dem så länge de räcker eftersom vi inte kommer att göra fler snart. Om du missade detta projekt kan du registrera dig här för att få besked om framtida #twatch -förbeställningar. Se den här artikeln med sin ursprungliga formatering på DangerousPrototypes.com, mer diskussion i #twatchforumet. Vi skickar ett gratis #watch -kretskort om du är den första som twittrar #twatch! Konceptöversikt #twatchet tar de senaste trendämnena från Twitter och laddar sedan några tweets för varje. De trendiga ämnena och tweets rullar på en skärm. #Twatch fångar nya trender och tweets var femte minut så att du alltid ser de senaste trendiga ämnena. Vi har också lagt till ett generiskt ethernet -ryggsäcksläge, så #twatch kan också visa PC -statistik från ett program som LCD Smartie, mer om den här funktionen i del 2.

Steg 1: Använda den

Använder det
Använder det

#Twatch är lätt att använda.

  • Anslut den till ett hemmanätverk med internetåtkomst. #Twatchet kräver automatisk nätverkskonfiguration (DHCP), detta är standardinställningen på nästan alla moderna hemnätverk.
  • Starta den. #Twatchet kräver en 6-7 volt likström. Den använder en 2,1 mm likströmskontakt, den vanligaste typen. Universal DC -nätaggregat bör innehålla en 2,1 mm -kontakt.
  • Justera kontrasten. LCD -skärmar ändras med temperatur och ålder, använd justeringsskruven för att justera skärmkontrasten.
  • #Twatch kommer att konfigurera nätverksinställningarna och börja rulla de senaste trendiga ämnena och några tweets från varje. Du kan behöva justera kontrasten igen för den renaste rullningseffekten.

Få #twatch -uppdateringar på bloggen Dangerous Prototype.

Steg 2: Hårdvara

Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara

Vi använde freeware -versionen av Cadsoft Eagle för att göra kretsen och kretskortet. Ladda ner de senaste filerna från projektets Google Code -sida. Detta avsnitt förlorade mycket formatering på Instructables, du kan se originalversionen här. Ethernet PIC 18F67J60 mikrokontroller Microchip PIC 18F67J60 är perfekt för detta projekt eftersom den kombinerar ett Ethernet -nätverksgränssnitt och en 41MHz mikrokontroller (10MIP) i ett litet paket för endast några dollar. Den finns bara i 64pin+ TQFP -paket, men vi hade inga problem med att löda den för hand till ett professionellt kretskort. PIC kräver en 3,3 volt strömförsörjning. Ethernet-delen är verkligen energisugen, så vi använde en jätte TO-220 LD117-3.3volts regulator (VR1). Vi valde en stor regulator eftersom den kan behöva avleda en massa värme beroende på ingångseffekten. Regulatorn kräver en liten ingångskopplingskondensator (C15) och en stor 10uF utgångskondensator (C3). Det finns en stor hake med dessa marker: de kan bara programmeras cirka 100 gånger. Det gör utvecklingen svår, så vi har också utformat en utvecklingsversion av #twatchet baserat på ett annat chip. Mer om den designen i en framtida artikel. Varje PIC-strömstift får en 0.1uF avkopplingskondensator (C17-C23). PIC har en intern 2,5 volts regulator för mikrokontroller och ethernet -kärnor, regulatorn kräver en 10uF tantalkondensator (C1). PIC är programmerad via ett 5 -poligt ICSP -huvud. MCLR-återställningsstiftet hålls högt med ett 10K uppdragningsmotstånd (R21), ett extra motstånd (R4) och kondensator (C16) som rekommenderas av databladet ger skydd mot olika oavsiktliga återställningsförhållanden. Ethernet-sektionen kräver en 25MHz extern kristall (Q1). Två 33pF -kondensatorer (C4, C5) kompletterar oscillatorkretsen. Vi använde ett Ethernet -uttag med integrerad magnetik (J2). Jacket är en HanRun HR911105A, som tillhandahålls av Seeed Studio - se till att få samma jack, ett kompatibelt jack eller justera kretskortet för ett jack som du kan hitta. Ethernet-gränssnittet kräver en avslutningskrets (R30-33, C10-11, L1) och 2,28Kohm 1% förspänningsmotstånd (R7, visas inte). HD44780 tecken LCD #klockan stöder en "standard" 4line med 20 tecken 5 volts HD44780 LCD med +5 volts bakgrundsbelysning. Du kan vanligtvis hitta dem för cirka $ 10 på eBay. Var noga med att kontrollera att din LCD -skärm matchar #watch pinout innan du ansluter den. De flesta LCD -skärmar är desamma, men inte alla. Nästan alla tecken LCD -skärmar fungerar med 5 volt, så vi tillhandahåller en 5 volts strömförsörjning från en vanlig 7805 -regulator (VR2, C14, C2). LCD-skärmen med bakgrundsbelysning kan eventuellt använda en massa ström, så vi använde en annan stor To-220-regulator. C12 är en avkopplingskondensator för LCD-strömförsörjningen, men LCD-skärmar har redan inbyggd avkoppling. C12 behöver inte fyllas i, vi inkluderade det bara vid stabilitetsproblem. För maximal uppdateringshastighet styrs LCD -skärmen via hela 8 -bitars gränssnittet. De flesta LCD -skärmar är 5 volts delar som kräver cirka 4,25 volt+ för att registrera en hög nivå på datapinnarna, men PIC 18F65J60 är bara en 3.3volts del. Lyckligtvis har PIC ett gäng 5 volt toleranta stift så att vi kan hålla signalen på 5 volt med ett 10K uppdragningsmotstånd (R10-R19) och sedan jorda den genom att ändra inställningen för PIC-stiftets riktning. Detta kallas vanligtvis en öppen dräneringsutgång. Några nyare LCD -skärmar körs på 5 volt, men fungerar fortfarande på 3,3 volt gränssnittsnivåer. #Twatchet stöder det här läget om du lämnar R10-19 så att ingen uppdragsspänning går in på stiften och ändrar firmware för att byta LAT-register istället för TRIS-registret i HD44780.c. LCD-skärmkontrast styrs av en förspänning, vanligtvis genererad med en 10Kohm potentiometer. #Twatch-kretskortet har fotavtryck för en billig 3 mm SMD-kruka (R2) och ett andra utrymme för att använda en större, genomgående hålkanna (R2A). Endast en ska vara befolkad! Om det finns brus i strömförsörjningen från alla ethernet -grejer filtrerar vi förspänningen genom en liten ferritpärla (L2). Vi inkluderade också en kondensator för ytterligare filtrering (C13), men vi använde den inte eftersom inget element faktiskt behövs. #Twatch kan styra enkla +5volts bakgrundsbelysning upp till 400mA eller så. PIC växlar en transistor (NPN1) genom ett 240ohm strömbegränsande motstånd (R3, visas inte). Vi använde en transistor som kan hantera 800mA+ med en förstärkning på 250hfe+, så PIC kan byta en stor belastning med sin 20mA maximala utgångsström. R1 är ett strömbegränsande motstånd för LCD -bakgrundsbelysningen, om det behövs. Vi använde ett genomgående hålmotstånd så att det kan sprida mycket värme med stora bakgrundsbelysning, och eftersom det är den enklaste storleken att hitta lokalt och lödda själv. Om din bakgrundsbelysning inte kräver ett motstånd, ersätt bara R1 med en bit tråd. Vår LCD -skärm krävde ett 3ohm -motstånd för 240mA motljusförsörjning. Vissa bakgrundsbelysningar använder mycket ström, så vi placerade matningsstiftet bredvid strömförsörjningen och förstärkte markplanet med en massa VIA. Vissa snygga LCD -bakgrundsbelysning kräver speciella drivkretsar, så se till att din använder en enkel +5 volts strömförsörjning för att undvika skador. Strömförsörjning #twatchet kräver en 6-7volts strömförsörjning via ett 2,1 mm nätuttag (J1). 2,1 mm -kontakter är den vanligaste storleken och bör levereras med varje universell strömförsörjning. Ju högre matningsspänning du använder, desto mer värme måste släppas ut från VR1 och VR2. Kom ihåg att #twatch är en inlärningstavla för prototyper, det är inte en komplett och testad kommersiell produkt. Vidta lämpliga säkerhetsåtgärder och kör den inte utan uppsikt.

Steg 3: PCB och Partlist

PCB och Partlist
PCB och Partlist
PCB och Partlist
PCB och Partlist

Vi använde freeware -versionen av Cadsoft Eagle för att göra schemat och PCB. Ladda ner de senaste filerna från projektets Google Code -sida. Kretskortet är en tvåskiktsdesign med små spår och separering (10mil) runt 64-stifts TQFP PIC-chipet. Vi förberedde gerber och skickade dem till Seeed Studios PCB -tjänst för öppen källkod. Extra kretskort från vår beställning finns i Seeed Studio -butiken. Om du köper våra extra kretskort, se till att få HanRun -Ethernet -uttaget som passar brädet. Eftersom monteringshålen på 20x4 LCD -skärmar varierar försökte vi inte montera kretskortet till LCD -hålen. Vi gjorde den så liten som möjligt, som SparkFuns seriella LCD -ryggsäck, så den håller sig ur vägen för de ursprungliga hålen. Som en bieffekt är det inte alltför besvärligt bakom en mindre skärm som den här 16x2 LCD -skärmen på Adafruit. Dellista Klicka för en fullständig placeringsbild [PNG]. Del | Värde | Förpackning IC1 PIC 18F67J60 TQFP-64C1-3 10uF tantalkondensator, 10volts+ SMC_AC4, 5 33pF kondensator 0805C10, 11, C14-23 0.1uF kondensator 0805ICSP 5x 0.1 "hanstiftshuvudJ1 2.1mm SMD-uttag SMDJ2 HR911105A etherl-jack RJ pärla, 200ma+ 0805NPN1 NPN-transistor, 250hfe+, 800ma+ SOT-23Q1 25MHz SMD-kristall HC49UPR2 (A) 10K enkelvarvsmotstånd 3mm SMD eller genomgående hålR3 240 ohm motstånd 0805R4-6 390 ohm motstånd 0805R7 2, 260 ohm motstånd, 1% 0805R10 21 10 000 ohm motstånd 0805R30-33 49,9 ohm motstånd, 1% 0805VR1 LDO 3,3 volt regulator (LD1117) TO-220VR2 7805T 5 volt regulator TO-220HD44780-LCD 20x4 HD44780 tecken LCD

Steg 4: Firmware

Firmware
Firmware
Firmware
Firmware
Firmware
Firmware

Den senaste kompletta #twatch -nedladdningen av den fasta programvaran finns på projektets Google Code -sida. Koden är skriven i C och sammanställs med Microchip C18 demonstrationskompilatorn. TCP/IP -stack- och basnätverksfunktioner Microchips "gratis" TCP/IP -stack tillhandahåller alla nätverksfunktioner vi behöver för att existera i ett hemnätverk och hämta data från Twitter. Stacken är öppen källkod och gratis-som-i-öl, men Microchip-licensen förbjuder distribution. På grund av licensproblem lägger vi bara in vår offentliga källkod i projektet Google Code SVN, lär dig hur du laddar ner och kompilerar källan här. Stacken har en Dynamic Host Configuration Protocol -klient som automatiskt konfigurerar nätverksinställningarna med DHCP server på ditt lokala nätverk. #Twatchet kräver en DHCP -server, men de allra flesta nätverk och routrar har detta aktiverat. IP -adressen, masken, gatewayen och den första DNS -servern visas på LCD -skärmen tills giltiga Twitter -data finns tillgängliga. Stacken innehåller också Microchips meddelandeserver. När IP -adressen förvärvas av DHCP meddelar #twatch sin IP -adress med ett sändningspaket till alla datorer i det lokala nätverket. Använd verktyget MCHPDetect.exe i projektarkivet för att se dessa paket. Slutligen inkluderade vi en ping -server (IMCP). Använd vilken ping -klient som helst för att kontrollera om #twatchet lever i nätverket. Twitter TCP -klient Twitter -trenden som följer programmet är en enkel TCP -klient, liknande en webbläsare, som hämtar data från webbservrar. Twitters API kommer att ge oss data i en mängd olika format. Vi använde det lätta JSON-formatet eftersom det är lättast för PIC-chipet med låg effekt att avkoda, kolla in JSONView om du använder Firefox.. Den söker igenom denna JSON -datafeed och letar efter "namn" -taggen. Upp till 10 trendiga ämnen kopieras till en 225byte buffert. En separat grupp lagrar slutpositionen för varje ämne i bufferten så att vi kan hämta ämnena i nästa steg. Därefter söker #twatch Twitter efter två tweets för varje ämne på Twitter. Det lägger till varje ämne i slutet av Twitter JSON -sökadressen, specialtecken som mellanslag och skiljetecken är URL -kodade. TCP -klienten analyserar sökresultaten och letar efter tweets som följer "text" -taggen. Tweets har flera lager av kodning. Vi avkodar HTML reserverade tecken som ampersand (&) och citattecken (") eftersom LCD -skärmen kan visa dem. Vi tar bort UTF8 internationella tecken eftersom HD44780 LCD inte har dem i sin teckenuppsättning. De analyserade, avkodade tweetsna lagras i en 2100byte buffert, en ytterligare array markerar början och slutet på varje tweet i bufferten. RAM-utrymme var ett stort problem på 18F67J60-chipet, det har bara cirka 4000bytes totalt, men 2100byte-bufferten verkar tillräckligt stor för att hantera 20 medelstora storlekar Vi var särskilt noga med att skydda oss mot problem med minne, och vi testade klienten under reducerade RAM-förhållanden för att säkerställa att den misslyckas graciöst under fel. Twitter är välkänt för sin tillfälliga driftstopp. Om #twatch inte kan anslut till Twitter, det visar ett anslutningsfelmeddelande och försöker igen två gånger. Om det inte kan ansluta efter tre försök väntar det fem minuter innan det försöker igen. Detta ger Twitter en chans att lösa sina problem utan att hamras av #twatch q ueries. #twatch tar ny trend och tweetflöden var femte minut. Twitter sätter en gräns för antalet frågor en klient kan göra, så var försiktig med att uppdatera oftare. Twitter tillåter 150 trendiga ämnesuppdateringar per timme och "betydligt fler" sökfrågor. Nätverk LCD -ryggsäcksläge TCP -server #twatchen kan också visa systemstatusinformation från program som LCD Smartie. #Twatch har en TCP -server på port 1337 som accepterar Matrix Orbital -formaterade kommandon. Detta ger också kontroll över LCD -bakgrundsbelysningen. Vi visar dig hur du omdirigerar LCD Smartie från en COM -port till #twatch TCP -servern i del två av vår #twatch -artikel.

Steg 5: Bootloader för uppgraderingar av nätverksprogramvara

Bootloader för uppgraderingar av nätverksprogramvara
Bootloader för uppgraderingar av nätverksprogramvara
Bootloader för uppgraderingar av nätverksprogramvara
Bootloader för uppgraderingar av nätverksprogramvara
Bootloader för uppgraderingar av nätverksprogramvara
Bootloader för uppgraderingar av nätverksprogramvara

#Twatchen kan uppdateras från en dator i det lokala nätverket tack vare Microchips internetstartloader. Kom ihåg att 18F ethernet PIC bara kan programmeras i genomsnitt 100 gånger, så uppgraderingar är något begränsade. Vi har ännu inte bränt ut ett chip, men vi har bara nått cirka 55 cykler under utvecklingen. Om du använder ett helt nytt chip måste du programmera startladdaren till PIC18F67J60 via ICSP -rubriken, så kan du ladda upp #twatch firmware över nätverket. Programmera twatchv2-bl-vxx. HEX in i chipet med en PIC-programmerare som en ICD2 eller PicKit. När #twatch startar, startar bootloader innan huvudprogrammet startar. Startladdaren söker efter en anslutning mellan PGD- och PGC -stiften i programmeringsrubriken, som visas i bilden ovan. Om den hittar en anslutning tar bootloader över och väntar på att ny firmware ska laddas upp. Det finns en mycket liten chans att bootloadern av misstag startar även utan en bygel mellan PGC- och PGD -stiften. Detta kommer inte att skada #twatch, bara koppla bort strömförsörjningen och försök igen. Oavsiktlig start av laddare kan förhindras genom att flytta bygeln över en position så att den ansluter PGD- och GND -stiften. #Twatch -bootloader använder IP -adressen 192.168.1.123 och nätmask 255.255.255.0. Din dator måste också ha en IP -adress som börjar med 192.168.1.xxx för att kunna kommunicera med #twatch. Vi valde intervallet 192.168.1.xxx eftersom det är den vanligaste standarden för hemrouter. Om din dator använder ett annat IP -adressintervall måste du tillfälligt justera det innan du kan göra uppdateringen.

  • Se till att din dator har samma IP -intervall och delnät som #twatch. Din dator bör ha en IP -adress i intervallet 192.168.1.xxx och en nätmask på 255.255.255.0. Standard #watch bootloader IP -adress är 192.168.1.123, se till att ingen annan dator som är ansluten till samma router redan använder denna adress.
  • Koppla ur #watch -strömförsörjningen.
  • Sätt en bygel mellan PGC- och PGD -stiften.
  • Anslut nätverkskabeln vid behov och anslut strömförsörjningen. Skärmen kan vara tom, ha fasta block eller skräp.
  • Använd ett TFTP -verktyg för att skicka den nya firmware till #twatch IP -adressen, vi använder TFTP.exe från kommandoraden i Windows.
  • TFTP -uppdateringen rapporterar framgång eller fel.
  • Koppla ur strömförsörjningen, ta bort uppdateringsbygeln.
  • Anslut strömförsörjningen igen. #Twatch bör börja rulla tweets. Om startladdaren startar istället, sätt en bygel mellan PGD- och GND -stiften och försök igen.

Steg 6: Ta det vidare, skaffa ditt eget

Ta det vidare, skaffa ditt eget
Ta det vidare, skaffa ditt eget
Ta det vidare, skaffa ditt eget
Ta det vidare, skaffa ditt eget
Ta det vidare, skaffa ditt eget
Ta det vidare, skaffa ditt eget
Ta det vidare, skaffa ditt eget
Ta det vidare, skaffa ditt eget

Vi utformade #twatch för att utnyttja resurserna fullt ut på ett enda chip, en utökad design skulle lägga till funktioner men bli dyrare. #Twatchen kunde följa ditt eget Twitter -flöde. Det skulle behöva en liten webbserver för att ange din Twitter -inloggning och en extern EEPROM för att lagra konfigurationsinformationen. #Twatch kan också lagra fler tweets eller extra information om varje diskant, till exempel namn och plats. Microchip gör inte en integrerad ethernetkontroller med mer än 4K RAM, men vi kan lägga till en extern SRAM för att lagra tweets och tweet meta-info. Uppdaterad hårdvara kan lägga till ett I/O-huvud för anslutning av knappar med LCD Smartie. 20 tecken by 4line LCD har inte mycket displayutrymme. Vi utformade #twatch -gränssnittet kring denna begränsade mängd utrymme. En uppdaterad firmware kan hantera flera skärmstorlekar. Startladdaren kan anta IP -adressen som DHCP erhållit. En framtida #twatch -firmwareuppdatering kommer att dra nytta av den här funktionen för enklare nätverksuppgraderingar. Nästa vecka täcker vi LCD Smartie -kompatibla TCP -servern inbyggd i #twatch. Skaffa en! Vad twending på din #twatch? Om du vill ha en monterad #twatch eller PCB, här är några alternativ:

  • Seeed Studio har några sammanställda #twatch ethernet LCD -paket för $ 45, inklusive frakt över hela världen. Skaffa dem så länge de räcker eftersom vi inte kommer att göra fler snart. Om du missade det här projektet kan du registrera dig här för att få besked om framtida #twatch -förbeställningar.
  • Om du vill bygga ditt eget säljer Seeed Studio de extra #twatch v1 och v2 PCB från vår beställning. Var noga med att skaffa ett Ethernet -uttag från Seeed, eller se till att du kan hitta en som matchar kretskortet. Vi skriver om v1 om några dagar, schemat och PCB finns i projektet SVN.
  • Vi kommer att skicka en gratis #twatch v2 bar PCB till de två första personerna som twittrar #watchen.

Om du vill engagera dig, gå med i Dangerous Prototypes open hardware -projekt på Google Code, eller kom och chatta i #twatch -forumet. Nästa vecka visar vi dig hur du omdirigerar LCD Smartie -systemstatistik till #twatch TCP -servern.

Rekommenderad: