Inhoudsopgave:

Twitter Watcher, de #twatch: 6 stappen (met afbeeldingen)
Twitter Watcher, de #twatch: 6 stappen (met afbeeldingen)

Video: Twitter Watcher, de #twatch: 6 stappen (met afbeeldingen)

Video: Twitter Watcher, de #twatch: 6 stappen (met afbeeldingen)
Video: Villamedia Tooltip - Handige hulpjes op Twitter 2024, Juli-
Anonim
Twitter Watcher, de #twatch
Twitter Watcher, de #twatch
Twitter Watcher, de #twatch
Twitter Watcher, de #twatch
Twitter Watcher, de #twatch
Twitter Watcher, de #twatch
Twitter Watcher, de #twatch
Twitter Watcher, de #twatch

De #twatch scrolt de nieuwste trending topics van Twitter op een LCD-scherm. Het is een stand-alone netwerkapparaat dat zonder pc up-to-date blijft. Het was geweldig om #iranelection, Michael Jackson en andere historische gebeurtenissen voorbij te zien komen terwijl we de #twatch ontwikkelden. Deze Instructable documenteert de #twatch-hardware en -ontwerp. Naast een Twitter-trendticker is de #twatch ook een generieke ethernet-LCD-rugzak. Het toont afspeellijsten, pc-statistieken en andere informatie met programma's zoals LCD Smartie. Het is ook software-upgradebaar, dus het is nooit verouderd. De #twatch is open source, dus je kunt onze ontwerpen downloaden en je eigen ontwerpen maken. Seeed Studio heeft een paar geassembleerde #twatch ethernet LCD-packpacks voor $ 45, inclusief wereldwijde verzending. Haal ze zolang ze nog kunnen, want we zullen er niet snel meer maken. Als je dit project hebt gemist, meld je dan hier aan om op de hoogte te worden gehouden van toekomstige #twatch-voorbestellingen. Zie dit artikel met de originele opmaak op DangerousPrototypes.com, meer discussie op het #twatch-forum. We sturen een gratis #twatch PCB als je de eerste bent die de #twatch tweet !Conceptoverzicht De #twatch haalt de nieuwste trending topics van Twitter en laadt vervolgens een paar tweets voor elke tweet. De trending topics en tweets scrollen over een scherm. De #twatch pakt elke vijf minuten nieuwe trends en tweets, zodat je altijd de nieuwste trending topics ziet. We hebben ook een generieke ethernet-rugzakmodus toegevoegd, zodat de #twatch ook pc-statistieken kan tonen van een programma als LCD Smartie, meer over deze functie in deel 2.

Stap 1: Het gebruiken

Het gebruiken
Het gebruiken

De #twatch is eenvoudig te gebruiken.

  • Sluit hem aan op een ethernet-thuisnetwerk met internettoegang. De #twatch vereist automatische netwerkconfiguratie (DHCP), dit is de standaardinstelling op bijna elk modern thuisnetwerk.
  • Zet het aan. De #twatch heeft een 6-7volt DC voeding nodig. Het gebruikt een 2,1 mm DC-stekker, het meest voorkomende type. Universele gelijkstroomvoedingen moeten een stekker van 2,1 mm bevatten.
  • Pas het contrast aan. LCD-schermen veranderen met temperatuur en leeftijd, gebruik de stelschroef om het schermcontrast aan te passen.
  • De #twatch configureert de netwerkinstellingen en begint te scrollen door de nieuwste trending topics en een paar tweets van elk. Mogelijk moet u het contrast opnieuw aanpassen voor het schoonste scrolleffect.

Ontvang #twatch-updates op de Dangerous Prototype-blog.

Stap 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

We gebruikten de freeware-versie van Cadsoft Eagle om het circuit en de PCB te maken. Download de nieuwste bestanden van de project Google Code-pagina. Deze sectie heeft veel opmaak verloren bij Instructables, je kunt de originele versie hier zien. Ethernet PIC 18F67J60 microcontroller De Microchip PIC 18F67J60 is perfect voor dit project omdat het een ethernet netwerkinterface en een 41MHz microcontroller (10MIP's) combineert in een klein pakket voor slechts een paar dollar. Het wordt alleen geleverd in 64pin+ TQFP-pakketten, maar we hadden geen probleem om het met de hand op een professionele PCB te solderen. De PIC vereist een voeding van 3,3 volt. Het ethernetgedeelte is echt hongerig, dus we hebben een gigantische TO-220 LD117-3.3volt-regelaar (VR1) gebruikt. We kozen voor een grote regelaar omdat deze mogelijk een hoop warmte moet afvoeren, afhankelijk van de ingangsvoeding. De regelaar heeft een kleine ingangsontkoppelcondensator (C15) en een grote 10uF uitgangscondensator (C3) nodig. Er is een groot nadeel aan deze chips: ze kunnen slechts ongeveer 100 keer worden geprogrammeerd. Dat maakt ontwikkelen lastig, dus hebben we ook een ontwikkelversie van de #twatch ontworpen op basis van een andere chip. Meer over dat ontwerp in een toekomstig artikel. Elke PIC power pin krijgt een 0.1uF ontkoppelcondensator (C17-C23). De PIC heeft een interne 2.5volt regelaar voor de microcontroller en ethernet cores, de regelaar vereist een 10uF tantaal condensator (C1). De PIC wordt geprogrammeerd via een 5pin ICSP header. De MCLR-resetpin wordt hoog gehouden met een 10K pull-up-weerstand (R21), een extra weerstand (R4) en condensator (C16), aanbevolen door de datasheet, bieden bescherming tegen verschillende onopzettelijke reset-omstandigheden. Het ethernet-gedeelte verplicht een 25 MHz extern kristal (Q1). Twee 33pF-condensatoren (C4, C5) completeren het oscillatorcircuit. We gebruikten een ethernet-aansluiting met geïntegreerde magneten (J2). De aansluiting is een HanRun HR911105A, aan ons geleverd door Seeed Studio - zorg ervoor dat u dezelfde aansluiting krijgt, een compatibele aansluiting, of pas de PCB aan voor een aansluiting die u kunt vinden. De Ethernet-interface vereist een afsluitcircuit (R30-33, C10-11, L1) en een 2,28 Kohm 1% bias-weerstand (R7, niet getoond). HD44780 karakter LCD De #twatch ondersteunt een 'standaard' 4line bij 20 karakter 5volt HD44780 LCD met een +5volt backlight. Je kunt ze meestal voor ongeveer $ 10 op eBay vinden. Zorg ervoor dat u controleert of uw LCD overeenkomt met de #twatch-pinout voordat u deze bevestigt. De meeste LCD's zijn hetzelfde, maar niet allemaal. Bijna alle karakter-LCD's werken op 5 volt, dus we bieden een 5 volt voeding van een gewone 7805-regelaar (VR2, C14, C2). Het LCD-scherm met achtergrondverlichting kan mogelijk veel stroom gebruiken, dus hebben we een andere grote To-220-regelaar gebruikt. C12 is een ontkoppelingscondensator voor de LCD-voeding, maar LCD's hebben al een on-board ontkoppeling. C12 hoeft niet te worden ingevuld, we hebben het alleen toegevoegd in geval van stabiliteitsproblemen. Voor maximale verversingssnelheid wordt het LCD-scherm bestuurd via de volledige 8bit-interface. De meeste LCD's zijn 5 volt-onderdelen die ongeveer 4,25 volt + nodig hebben om een hoog niveau op de datapinnen te registreren, maar de PIC 18F65J60 is slechts een onderdeel van 3,3 volt. Gelukkig heeft de PIC een aantal 5 volt-tolerante pinnen, zodat we het signaal op 5 volt kunnen houden met een 10K pull-up-weerstand (R10-R19), en het vervolgens kunnen aarden door de instelling van de PIC-pinrichting te wijzigen. Dit wordt meestal een open drain-uitgang genoemd. Sommige nieuwere LCD's werken op 5 volt, maar werken nog steeds op 3,3 volt-interfaceniveaus. De #twatch ondersteunt deze modus als je R10-19 weglaat, zodat er geen pull-up-spanning op de pinnen komt, en de firmware verandert om het LAT-register te schakelen in plaats van het TRIS-register in HD44780.c. Het contrast van het LCD-scherm wordt geregeld door een voorspanning, meestal gegenereerd met een 10Kohm-potentiometer. De #twatch PCB heeft voetafdrukken voor een goedkope 3 mm SMD-pot (R2) en een tweede ruimte om een grotere, doorlopende pot (R2A) te gebruiken. Er mag er maar één bevolkt zijn! Voor het geval er ruis in de voeding is van al het ethernetmateriaal, filteren we de voorspanning door een kleine ferrietkraal (L2). We hebben ook een condensator meegeleverd voor extra filtering (C13), maar die hebben we niet gebruikt omdat geen van beide elementen echt nodig is. De #twatch kan eenvoudige +5 volt achtergrondverlichting tot 400 mA of zo aansturen. De PIC schakelt een transistor (NPN1) door een stroombegrenzingsweerstand van 240 ohm (R3, niet getoond). We gebruikten een transistor die 800mA+ aankan met een versterking van 250hfe+, zodat de PIC een grote belasting kan schakelen met zijn 20mA maximale pin-uitgangsstroom. R1 is een stroombeperkende weerstand voor de LCD-achtergrondverlichting, indien nodig. We hebben een doorlopende weerstand gebruikt, zodat deze veel warmte kan afvoeren met grote achtergrondverlichting, en omdat dit de gemakkelijkste maat is om lokaal te vinden en zelf te solderen. Als uw achtergrondverlichting geen weerstand nodig heeft, vervangt u R1 gewoon door een stuk draad. Ons LCD-scherm had een weerstand van 3 ohm nodig voor een 240 mA backlight-voeding. Sommige backlights gebruiken veel stroom, dus hebben we de voedingspinnen direct naast de voeding geplaatst en het grondvlak versterkt met een aantal VIA's. Sommige fraaie LCD-achtergrondverlichting vereisen speciale stuurcircuits, dus zorg ervoor dat de uwe een eenvoudige +5 volt-voeding gebruikt om schade te voorkomen. Voeding De #twatch heeft een 6-7volt voeding nodig via een 2.1mm voedingsaansluiting (J1). Stekkers van 2,1 mm zijn de meest voorkomende maat en zouden bij elke universele voeding moeten worden geleverd. Hoe hoger de voedingsspanning die u gebruikt, hoe meer warmte er moet worden afgevoerd van VR1 en VR2. Onthoud dat de #twatch een prototype leerbord is, het is geen compleet en getest commercieel product. Neem de juiste veiligheidsmaatregelen en laat het niet onbeheerd draaien.

Stap 3: PCB en onderdelenlijst

PCB en onderdelenlijst
PCB en onderdelenlijst
PCB en onderdelenlijst
PCB en onderdelenlijst

We gebruikten de freeware-versie van Cadsoft Eagle om het schema en de PCB te maken. Download de nieuwste bestanden van de project Google Code-pagina. De PCB is een 2-laags ontwerp met kleine sporen en scheiding (10mil) rond de 64-pins TQFP PIC-chip. We hebben gerbers voorbereid en naar de PCB-service van Seeed Studio gestuurd voor open source-werken. Extra PCB's uit onze bestelling zijn verkrijgbaar in de Seeed Studio shop. Als u onze extra PCB's koopt, zorg er dan voor dat u de HanRun-ethernetaansluiting krijgt die op het bord past. Aangezien de montagegaten op 20x4 LCD's variëren, hebben we niet geprobeerd de PCB in de LCD-gaten te passen. We hebben hem zo klein mogelijk gemaakt, zoals SparkFun's seriële LCD-rugzak, zodat hij uit de buurt van de originele gaten blijft. Als neveneffect is het niet al te onhandig achter een kleiner scherm zoals dit 16x2 LCD-scherm bij Adafruit. Onderdelenlijst Klik voor een plaatsingsafbeelding op volledige grootte [PNG]. Deel | Waarde | PackageIC1 PIC 18F67J60 TQFP-64C1-3 10uF tantaal condensator, 10volts+ SMC_AC4, 5 33pF condensator 0805C10, 11, C14-23 0.1uF condensator 0805ICSP 5x 0.1" male pin headerJ1 2.1mm SMD power jack SMDJ2 HR911105A ethernet jack RJ-45L1, L2 kraal, 200ma+ 0805NPN1 NPN-transistor, 250hfe+, 800ma+ SOT-23Q1 25MHz SMD-kristal HC49UPR2(A) 10K single-turn trimweerstand 3 mm SMD of doorgaand gatR3 240 ohm weerstand 0805R4-6 390 ohm weerstand 0805R7 2, 260 ohm weerstand, 1% 0805R10- 21 10, 000 ohm weerstand 0805R30-33 49,9 ohm weerstand, 1% 0805VR1 LDO 3,3 volt regelaar (LD1117) TO-220VR2 7805T 5 volt regelaar TO-220HD44780-LCD 20x4 HD44780 karakter LCD

Stap 4: Firmware

Firmware
Firmware
Firmware
Firmware
Firmware
Firmware

De nieuwste complete #twatch-firmwaredownload staat op de Google Code-pagina van het project. De code is geschreven in C en is gecompileerd met de Microchip C18 demonstratiecompiler. TCP/IP-stack en basisnetwerkfuncties De 'gratis' TCP/IP-stack van Microchip biedt alle netwerkfuncties die we nodig hebben om op een thuisnetwerk te bestaan en gegevens van Twitter te halen. De stapel is open source en gratis als in bier, maar de Microchip-licentie verbiedt distributie. Vanwege licentieproblemen plaatsen we alleen onze broncode voor het publieke domein in het project Google Code SVN, leer hier hoe u de bron downloadt en compileert. De stapel heeft een Dynamic Host Configuration Protocol-client die automatisch de netwerkinstellingen configureert met behulp van de DHCP server op uw lokale netwerk. De #twatch vereist een DHCP-server, maar de overgrote meerderheid van netwerken en routers hebben dit ingeschakeld. Het IP-adres, masker, gateway en eerste DNS-server worden op het LCD-scherm weergegeven totdat geldige Twitter-gegevens beschikbaar zijn. De stapel bevat ook de aankondigingsserver van Microchip. Wanneer het IP-adres wordt verkregen door DHCP, kondigt de #twatch zijn IP-adres aan met een broadcastpakket aan alle computers op het lokale netwerk. Gebruik het hulpprogramma MCHPDetect.exe in het projectarchief om deze pakketten te bekijken. Ten slotte hebben we een ping-server (IMCP) toegevoegd. Gebruik een willekeurige ping-client om te controleren of de #twatch actief is op het netwerk. Twitter TCP-client Het Twitter-trendvolgprogramma is een eenvoudige TCP-client, vergelijkbaar met een webbrowser, die gegevens van webservers haalt. De API van Twitter geeft ons gegevens in verschillende formaten. We hebben het lichtgewicht JSON-formaat gebruikt omdat het het gemakkelijkst is voor de low-power PIC-chip om te decoderen, bekijk JSONView als je Firefox gebruikt. Nadat #twatch automatisch netwerkinstellingen configureert, neemt de Twitter TCP-client de controle over en pakt de huidige trending topics aan. Het doorzoekt deze JSON-datafeed en zoekt naar de tag "name". Tot 10 trending topics worden gekopieerd naar een buffer van 225 bytes. Een aparte array slaat de eindpositie van elk onderwerp op in de buffer, zodat we de onderwerpen in de volgende stap kunnen ophalen. Vervolgens doorzoekt de #twatch Twitter naar 2 tweets voor elk onderwerp. Het voegt elk onderwerp toe aan het einde van de Twitter JSON-zoek-url, speciale tekens zoals spaties en interpunctie zijn URL-gecodeerd. De TCP-client analyseert de zoekresultaten en zoekt naar tweets die volgen op de "tekst"-tag. Tweets hebben meerdere coderingslagen. We decoderen gereserveerde HTML-tekens zoals ampersand (&) en aanhalingstekens (") omdat het LCD-scherm ze kan weergeven. We verwijderen internationale UTF8-tekens omdat de HD44780 LCD ze niet in de tekenset heeft. De geparseerde, gedecodeerde tweets worden opgeslagen in een buffer van 2100 bytes, een extra array markeert het begin en einde van elke tweet in de buffer. RAM-ruimte was een groot probleem op de 18F67J60-chip, het heeft in totaal slechts ongeveer 4000 bytes, maar de buffer van 2100 bytes lijkt groot genoeg om 20 gemiddelde grootte te verwerken tweets. We hebben speciale aandacht besteed aan bescherming tegen problemen met onvoldoende geheugen en we hebben de client getest onder verminderde RAM-omstandigheden om ervoor te zorgen dat deze probleemloos faalt tijdens fouten. Twitter staat bekend om zijn occasionele downtime. Als de #twatch dat niet kan verbinding maken met Twitter, het geeft een verbindingsfoutbericht weer en de pogingen twee keer. Als het na drie pogingen geen verbinding kan maken, wacht het vijf minuten voordat het opnieuw probeert. Dit geeft Twitter een kans om hun problemen op te lossen zonder te worden gehamerd door #twatch q ueries. The #twatch pakt elke vijf minuten een nieuwe trend en tweet feeds. Twitter stelt een limiet aan het aantal vragen dat een klant mag stellen, dus wees voorzichtig met vaker verversen. Twitter staat 150 trending topic updates per uur toe, en "aanzienlijk meer" zoekopdrachten. Netwerk LCD-rugzakmodus TCP-server De #twatch kan ook systeemstatusinformatie weergeven van programma's zoals LCD Smartie. De #twatch heeft een TCP-server op poort 1337 die Matrix Orbital-geformatteerde opdrachten accepteert. Dit biedt ook controle over de LCD-achtergrondverlichting. We laten je zien hoe je LCD Smartie omleidt van een COM-poort naar de #twatch TCP-server in deel twee van ons #twatch-artikel.

Stap 5: Bootloader voor netwerkfirmware-upgrades

Bootloader voor netwerkfirmware-upgrades
Bootloader voor netwerkfirmware-upgrades
Bootloader voor netwerkfirmware-upgrades
Bootloader voor netwerkfirmware-upgrades
Bootloader voor netwerkfirmware-upgrades
Bootloader voor netwerkfirmware-upgrades

De #twatch kan worden bijgewerkt vanaf een pc op het lokale netwerk dankzij de internet-bootloader van Microchip. Onthoud dat de 18F ethernet PIC's maar gemiddeld 100 keer geprogrammeerd kunnen worden, dus upgrades zijn enigszins beperkt. We moeten nog een chip uitbranden, maar we hebben tijdens de ontwikkeling slechts ongeveer 55 cycli bereikt. Als je een gloednieuwe chip gebruikt, moet je de bootloader in de PIC18F67J60 programmeren via de ICSP-header, dan kun je de #twatch-firmware via het netwerk. Programmeer twatchv2-bl-vxx. HEX in de chip met een PIC-programmer zoals een ICD2 of PicKit. Wanneer de #twatch wordt ingeschakeld, wordt de bootloader uitgevoerd voordat het hoofdprogramma start. De bootloader controleert op een verbinding tussen de PGD- en PGC-pinnen van de programmeerkop, zoals weergegeven in de afbeelding hierboven. Als er een verbinding wordt gevonden, neemt de bootloader het over en wacht op het uploaden van nieuwe firmware. Er is een zeer kleine kans dat de bootloader per ongeluk start, zelfs zonder een jumper tussen de PGC- en PGD-pinnen. Dit beschadigt de #twatch niet, koppel gewoon de voeding los en probeer het opnieuw. Het per ongeluk invoeren van de bootloader kan worden voorkomen door de jumper over één positie te verplaatsen, zodat deze de PGD- en GND-pinnen verbindt. De #twatch-bootloader gebruikt het IP-adres 192.168.1.123 en subnetmasker 255.255.255.0. Uw computer moet ook een IP-adres hebben dat begint met 192.168.1.xxx om te kunnen communiceren met de #twatch. We kozen voor het 192.168.1.xxx-bereik omdat dit de meest gebruikelijke standaard is voor thuisrouters. Als uw computer een ander IP-adresbereik gebruikt, moet u dit tijdelijk aanpassen voordat u de update kunt uitvoeren. Upgraden:

  • Zorg ervoor dat uw pc zich in hetzelfde IP-bereik en subnet bevindt als de #twatch. Uw pc moet een IP-adres hebben in het bereik 192.168.1.xxx en een subnetmasker van 255.255.255.0. Het standaard IP-adres van de #twatch bootloader is 192.168.1.123, zorg ervoor dat geen enkele andere computer die op dezelfde router is aangesloten dit adres al gebruikt.
  • Koppel de #twatch-voeding los.
  • Plaats een jumper tussen de PGC- en PGD-pinnen.
  • Sluit eventueel de netwerkkabel aan en steek de stekker in het stopcontact. Het scherm kan leeg zijn, stevige blokken hebben of afval.
  • Gebruik een TFTP-hulpprogramma om de nieuwe firmware naar het #twatch IP-adres te sturen, we gebruiken TFTP.exe vanaf de Windows-opdrachtregel.
  • De TFTP-update meldt succes of fout.
  • Haal de stekker uit het stopcontact, verwijder de update-jumper.
  • Sluit de voeding weer aan. De #twatch zou moeten beginnen met scrollen met tweets. Als in plaats daarvan de bootloader start, plaats dan een jumper tussen de PGD- en GND-pinnen en probeer het opnieuw.

Stap 6: Ga verder, pak je eigen

Ga verder, pak je eigen
Ga verder, pak je eigen
Ga verder, pak je eigen
Ga verder, pak je eigen
Ga verder, pak je eigen
Ga verder, pak je eigen
Ga verder, pak je eigen
Ga verder, pak je eigen

We hebben de #twatch ontworpen om volledig gebruik te maken van de bronnen op een enkele chip, een uitgebreid ontwerp zou functies toevoegen maar duurder zijn. De #twatch zou je eigen Twitter-feed kunnen volgen. Het zou een kleine webserver nodig hebben om uw Twitter-login in te voeren en een externe EEPROM om de configuratie-informatie op te slaan. De #twatch kan ook meer tweets of extra informatie over elke tweeter opslaan, zoals naam en locatie. Microchip maakt geen geïntegreerde ethernetcontroller met meer dan 4K RAM, maar we zouden een externe SRAM kunnen toevoegen om tweets en tweet-meta-info op te slaan. Bijgewerkte hardware zou een I/O-header kunnen toevoegen voor het verbinden van knoppen met LCD Smartie. by 4line LCD heeft niet veel weergaveruimte. We hebben de #twatch-interface ontworpen rond deze beperkte hoeveelheid ruimte. Een bijgewerkte firmware kan meerdere schermformaten aan. De bootloader kan het IP-adres overnemen dat door DHCP is verkregen. Een toekomstige #twatch-firmware-update zal profiteren van deze functie voor eenvoudigere netwerkupgrades. Volgende week behandelen we de LCD Smartie-compatibele TCP-server die is ingebouwd in de #twatch. Koop er een! Wat verandert er op je #twatch? Als je een geassembleerde #twatch of PCB wilt, zijn hier een paar opties:

  • Seeed Studio heeft een paar geassembleerde #twatch ethernet LCD-packpacks voor $ 45, inclusief wereldwijde verzending. Haal ze zolang ze nog kunnen, want we zullen er niet snel meer maken. Als je dit project hebt gemist, meld je dan hier aan om op de hoogte te worden gehouden van toekomstige #twatch-voorbestellingen.
  • Als je er zelf een wilt bouwen, verkoopt Seeed Studio de extra #twatch v1 en v2 PCB's van onze bestelling. Zorg ervoor dat je een ethernet-aansluiting van Seeed krijgt, of zorg ervoor dat je er een kunt vinden die overeenkomt met de PCB. Over v1 schrijven we over een paar dagen, het schema en de print zitten in het project SVN.
  • We sturen een gratis #twatch v2 kale PCB naar de eerste 2 mensen die de #twatch tweeten.

Als je mee wilt doen, sluit je dan aan bij het Dangerous Prototypes open hardware-project op Google Code, of kom chatten op het #twatch-forum. Volgende week laten we je zien hoe je LCD Smartie-systeemstatistieken omleidt naar de #twatch TCP-server.

Aanbevolen: