Índice:

Twitter Watcher, o #twatch: 6 etapas (com imagens)
Twitter Watcher, o #twatch: 6 etapas (com imagens)

Vídeo: Twitter Watcher, o #twatch: 6 etapas (com imagens)

Vídeo: Twitter Watcher, o #twatch: 6 etapas (com imagens)
Vídeo: The Vanishing of Flight 370 2024, Novembro
Anonim
Twitter Watcher, o #twatch
Twitter Watcher, o #twatch
Twitter Watcher, o #twatch
Twitter Watcher, o #twatch
Twitter Watcher, o #twatch
Twitter Watcher, o #twatch
Twitter Watcher, o #twatch
Twitter Watcher, o #twatch

O #twatch rola os tópicos de tendências mais recentes do Twitter em uma tela LCD. É um dispositivo de rede autônomo que permanece atualizado sem um PC. Foi incrível assistir #iranelection, Michael Jackson e outros eventos históricos passarem enquanto desenvolvíamos o #twatch. Este Instructable documenta o hardware e design do #twatch. Além de um relógio de tendências do Twitter, o #twatch também é uma mochila de LCD ethernet genérica. Ele mostra listas de reprodução, estatísticas do PC e outras informações com programas como o LCD Smartie. Também pode ser atualizado por software, por isso nunca está desatualizado. O #twatch é de código aberto, então você pode baixar nossos designs e construir os seus. O Seeed Studio tem alguns packpacks #twatch ethernet LCD por US $ 45, incluindo frete para todo o mundo. Pegue-os enquanto duram porque não faremos mais em breve. Se você perdeu este projeto, inscreva-se aqui para ser notificado sobre futuras encomendas de #twatch. Veja este artigo com sua formatação original em DangerousPrototypes.com, mais discussão no fórum #twatch. Enviaremos um #twatch PCB gratuito se você for o primeiro a twittar o #twatch! Visão geral do conceito O #twatch pega os tópicos de tendências mais recentes do Twitter e carrega alguns tweets para cada um. Os tópicos de tendência e tweets rolam em uma tela. O #twatch captura novas tendências e tweets a cada cinco minutos para que você sempre veja os tópicos de tendências mais recentes. Também adicionamos um modo de mochila ethernet genérico, para que o #twatch também possa mostrar estatísticas do PC de um programa como o LCD Smartie, mais sobre esse recurso na parte 2.

Etapa 1: usando

Usando isso
Usando isso

O #twatch é fácil de usar.

  • Conecte-o a uma rede Ethernet doméstica com acesso à Internet. O #twatch requer configuração automática de rede (DHCP), esta é a configuração padrão em quase todas as redes domésticas modernas.
  • Ligue-o. O #twatch requer uma fonte de alimentação de 6-7 volts DC. Ele usa um plugue de alimentação DC de 2,1 mm, o tipo mais comum. As fontes de alimentação DC universais devem incluir um plugue de 2,1 mm.
  • Ajuste o contraste. As telas de LCD mudam com a temperatura e o tempo, use o parafuso de ajuste para ajustar o contraste da tela.
  • O #twatch definirá as configurações de rede e começará a percorrer os tópicos de tendências mais recentes e alguns tweets de cada um. Pode ser necessário ajustar o contraste novamente para obter o efeito de rolagem mais limpo.

Obtenha atualizações do #twatch no blog Dangerous Prototype.

Etapa 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Usamos a versão freeware do Cadsoft Eagle para fazer o circuito e o PCB. Baixe os arquivos mais recentes da página do projeto Google Code. Esta seção perdeu muita formatação no Instructables, você pode ver a versão original aqui. Microcontrolador Ethernet PIC 18F67J60 O Microchip PIC 18F67J60 é perfeito para este projeto porque combina uma interface de rede ethernet e um microcontrolador de 41 MHz (10MIPs) em um pacote pequeno por apenas alguns dólares. Ele só vem em pacotes de 64 pinos + TQFP, mas não tivemos problemas ao soldá-lo manualmente em uma placa de circuito impresso profissional. O PIC requer uma fonte de alimentação de 3,3 volts. A parte ethernet realmente consome muita energia, então usamos um regulador gigante TO-220 LD117-3.3 volts (VR1). Escolhemos um regulador grande porque ele pode ter que dissipar muito calor dependendo da fonte de alimentação de entrada. O regulador requer um pequeno capacitor de desacoplamento de entrada (C15) e um grande capacitor de saída de 10uF (C3). Há um grande problema com esses chips: eles só podem ser programados cerca de 100 vezes. Isso torna o desenvolvimento difícil, então também projetamos uma versão de desenvolvimento do #twatch com base em um chip diferente. Mais sobre esse projeto em um artigo futuro. Cada pino de alimentação do PIC recebe um capacitor de desacoplamento de 0,1uF (C17-C23). O PIC tem um regulador interno de 2,5 volts para o microcontrolador e núcleos ethernet, o regulador requer um capacitor de tântalo de 10uF (C1). O PIC é programado através de um cabeçalho ICSP de 5 pinos. O pino de reinicialização MCLR é mantido alto com um resistor pull-up de 10K (R21), um resistor adicional (R4) e um capacitor (C16) recomendado pela folha de dados fornecem proteção contra várias condições de reinicialização acidental. A seção ethernet exige um cristal externo de 25 MHz (Q1). Dois capacitores 33pF (C4, C5) completam o circuito do oscilador. Usamos um conector Ethernet com magnetismo integrado (J2). O conector é um HanRun HR911105A, fornecido a nós pelo Seeed Studio - certifique-se de obter o mesmo conector, um conector compatível ou ajuste o PCB para um conector que você encontrar. A interface Ethernet requer um circuito de terminação (R30-33, C10-11, L1) e um resistor de polarização de 2,28Kohm 1% (R7, não mostrado). LCD HD44780 de caracteres O #twatch suporta um LCD 'padrão' de 4 linhas por 20 caracteres HD44780 com luz de fundo de + 5 volts. Normalmente você pode encontrá-los por cerca de US $ 10 no eBay. Certifique-se de verificar se o seu LCD corresponde à pinagem do #twatch antes de fixá-lo. A maioria dos LCDs são iguais, mas não todos. Quase todos os LCDs de caracteres operam a 5 volts, portanto, fornecemos uma fonte de alimentação de 5 volts de um regulador 7805 comum (VR2, C14, C2). O LCD com luz de fundo poderia potencialmente usar um monte de corrente, então usamos outro grande regulador To-220. C12 é um capacitor de desacoplamento para a fonte de alimentação do LCD, mas os LCDs já têm desacoplamento integrado. C12 não precisa ser preenchido, nós apenas o incluímos em caso de problemas de estabilidade. Para velocidade de atualização máxima, o LCD é controlado por meio da interface completa de 8 bits. A maioria dos LCDs são peças de 5 volts que requerem cerca de 4,25 volts + para registrar um alto nível nos pinos de dados, mas o PIC 18F65J60 é apenas uma peça de 3,3 volts. Felizmente, o PIC tem um monte de pinos tolerantes a 5 volts, então podemos manter o sinal em 5 volts com um resistor pull-up de 10K (R10-R19) e, em seguida, aterrá-lo alterando a configuração de direção do pino do PIC. Isso geralmente é chamado de saída de dreno aberto. Alguns LCDs mais recentes funcionam a 5 volts, mas ainda funcionam em níveis de interface de 3,3 volts. O #twatch suportará este modo se você deixar R10-19 de forma que nenhuma tensão de pull-up vá para os pinos e alterar o firmware para mudar o registro LAT em vez do registro TRIS em HD44780.c. O contraste da tela LCD é controlado por uma tensão de polarização, geralmente gerada com um potenciômetro de 10Kohm. O #twatch PCB tem pegadas para um potenciômetro SMD de 3 mm barato (R2) e um segundo espaço para usar um potenciômetro maior através do orifício (R2A). Apenas um deve ser preenchido! Caso haja ruído na fonte de alimentação de todas as coisas da ethernet, filtramos a tensão de polarização através de um pequeno cordão de ferrite (L2). Também incluímos um capacitor para filtragem adicional (C13), mas não o usamos porque nenhum dos elementos é realmente necessário. O #twatch pode controlar backlights simples de + 5 volts de até 400mA ou mais. O PIC comuta um transistor (NPN1) por meio de um resistor limitador de corrente de 240 ohm (R3, não mostrado). Usamos um transistor que pode lidar com 800mA + com um ganho de 250hfe +, então o PIC pode alternar uma grande carga com sua corrente de saída de pino máxima de 20mA. R1 é um resistor limitador de corrente para a luz de fundo do LCD, se necessário. Usamos um resistor de passagem para que ele possa dissipar muito calor com grandes backlights e porque é o tamanho mais fácil de encontrar localmente e soldar você mesmo. Se sua luz de fundo não requer um resistor, apenas substitua R1 por um pedaço de fio. Nosso LCD exigia um resistor de 3 ohms para uma fonte de alimentação de backlight de 240mA. Algumas backlights usam muita energia, então colocamos os pinos de alimentação bem próximos à fonte de alimentação e reforçamos o plano de aterramento com um monte de VIAs. Algumas sofisticadas luzes de fundo de LCD requerem circuitos de acionamento especiais, portanto, certifique-se de que a sua use uma fonte simples de + 5 volts para evitar danos. Fonte de alimentação O #twatch requer uma fonte de alimentação de 6 a 7 volts por meio de um conector de alimentação de 2,1 mm (J1). Os plugues de 2,1 mm são o tamanho mais comum e devem vir com todas as fontes de alimentação universais. Quanto mais alta a tensão de alimentação usada, mais calor deve ser dissipado de VR1 e VR2. Lembre-se que o #twatch é um protótipo de placa de aprendizagem, não é um produto comercial completo e testado. Tome as devidas precauções de segurança e não o opere sem supervisão.

Etapa 3: PCB e lista de peças

PCB e lista de peças
PCB e lista de peças
PCB e lista de peças
PCB e lista de peças

Usamos a versão freeware do Cadsoft Eagle para fazer o esquema e o PCB. Baixe os arquivos mais recentes da página do projeto Google Code. O PCB é um design de 2 camadas com pequenos traços e separação (10mil) em torno do chip TQFP PIC de 64 pinos. Preparamos gerbers e os enviamos para o serviço PCB do Seeed Studio para trabalhos de código aberto. PCBs extras de nosso pedido estão disponíveis na loja Seeed Studio. Se você comprar nossos PCBs extras, certifique-se de obter o conector Ethernet HanRun que se encaixa na placa. Como os orifícios de montagem em LCDs 20x4 variam, não tentamos encaixar o PCB nos orifícios do LCD. Nós o tornamos o mais pequeno possível, como a mochila serial LCD do SparkFun, para que fique fora do caminho dos orifícios originais. Como efeito colateral, não é tão estranho atrás de uma tela menor como este LCD 16x2 da Adafruit. Lista de peças Clique para obter uma imagem de posicionamento em tamanho real [PNG]. Parte | Valor | PackageIC1 PIC 18F67J60 TQFP-64C1-3 10uF capacitor de tântalo, 10volts + SMC_AC4, 5 33pF capacitor 0805C10, 11, C14-23 0,1uF capacitor 0805ICSP 5x 0,1 "conector de pino macho J1 2.1 mm SMD conector de força SMDJL1 conector de alimentação RJ-SMDJL 45 L-45 L-RJ-455A cordão, 200ma + 0805NPN1 transistor NPN, 250hfe +, 800ma + SOT-23Q1 25MHz SMD cristal HC49UPR2 (A) 10K resistor de ajuste de uma volta 3mm SMD ou através de holeR3 resistor 240 ohms 0805R4-6 390 ohms resistor 0805R7 2, 260 ohms resistor 510 21 resistor de 10.000 ohms 0805R30-33 resistor de 49,9 ohms, 1% 0805VR1 Regulador de 3,3 volts LDO (LD1117) TO-220VR2 7805T regulador de 5 volts TO-220HD44780-LCD 20x4 HD44780 LCD de caracteres

Etapa 4: Firmware

Firmware
Firmware
Firmware
Firmware
Firmware
Firmware

O download do firmware #twatch completo mais recente está na página do projeto Google Code. O código é escrito em C e é compilado com o compilador de demonstração Microchip C18. Pilha TCP / IP e funções de rede base A pilha TCP / IP 'gratuita' da Microchip fornece todas as funções de rede de que precisamos para existir em uma rede doméstica e obter dados do Twitter. A pilha é open source e gratuita, mas a licença Microchip proíbe a distribuição. Devido a problemas de licenciamento, estamos apenas colocando nosso código-fonte de domínio público no projeto Google Code SVN, aprenda como baixar e compilar a fonte aqui. A pilha tem um cliente Dynamic Host Configuration Protocol que configura automaticamente as configurações de rede usando o DHCP servidor em sua rede local. O #twatch requer um servidor DHCP, mas a grande maioria das redes e roteadores têm isso habilitado. O endereço IP, a máscara, o gateway e o primeiro servidor DNS são exibidos na tela LCD até que dados válidos do Twitter estejam disponíveis. A pilha também inclui o servidor de anúncio da Microchip. Quando o endereço IP é adquirido por DHCP, o #twatch anuncia seu endereço IP com um pacote de broadcast para todos os computadores da rede local. Use o utilitário MCHPDetect.exe no arquivo do projeto para visualizar esses pacotes. Por fim, incluímos um servidor ping (IMCP). Use qualquer cliente de ping para verificar se o #twatch está ativo na rede. Cliente TCP do Twitter O seguinte programa de tendência do Twitter é um cliente TCP simples, semelhante a um navegador da web, que extrai dados de servidores da web. A API do Twitter nos fornecerá dados em uma variedade de formatos. Usamos o formato JSON leve porque é mais fácil para o chip PIC de baixo consumo decodificar. Verifique JSONView se você usar o Firefox. Após o #twatch definir automaticamente as configurações de rede, o cliente TCP do Twitter assume o controle e pega os tópicos de tendência atuais. Ele pesquisa esse datafeed JSON e procura a tag "name". Até 10 tópicos de tendência são copiados em um buffer de 225 bytes. Uma matriz separada armazena a posição final de cada tópico no buffer para que possamos recuperar os tópicos na próxima etapa. Em seguida, o #twatch pesquisa no Twitter por 2 tweets para cada tópico. Ele anexa cada tópico ao final do URL de pesquisa JSON do Twitter, caracteres especiais como espaços e pontuação são codificados por URL. O cliente TCP analisa os resultados da pesquisa e procura tweets que seguem a tag "texto". Os tweets têm várias camadas de codificação. Decodificamos caracteres HTML reservados como "e" comercial (&) e aspas (") porque a tela LCD pode exibi-los. Removemos caracteres internacionais UTF8 porque o LCD HD44780 não os possui em seu conjunto de caracteres. Os tweets decodificados e analisados são armazenados em um buffer de 2100 bytes, uma matriz adicional marca o início e o fim de cada tweet no buffer. O espaço de RAM era um grande problema no chip 18F67J60, ele tem apenas cerca de 4000 bytes no total, mas o buffer de 2100 bytes parece grande o suficiente para lidar com 20 de tamanho médio tuítes. Tomamos cuidado especial para nos proteger contra problemas de falta de memória e testamos o cliente em condições de RAM reduzida para garantir que ele falhe normalmente durante erros. O Twitter é bem conhecido por seu tempo de inatividade ocasional. Se o #twatch não puder conectar-se ao Twitter, ele exibe uma mensagem de erro de conexão e as tentativas duas vezes. Se não conseguir se conectar após três tentativas, ele aguarda cinco minutos antes de tentar novamente. Isso dá ao Twitter a chance de corrigir seus problemas sem ser martelado por #twatch q ueries. The #twatch pega novas tendências e tweeta feeds a cada cinco minutos. O Twitter limita o número de consultas que um cliente pode fazer, portanto, tome cuidado ao atualizar com mais frequência. O Twitter permite 150 atualizações de tendências por hora e "significativamente mais" consultas de pesquisa. Servidor TCP de modo mochila de LCD de rede O #twatch também pode exibir informações de status do sistema a partir de programas como LCD Smartie. O #twatch possui um servidor TCP na porta 1337 que aceita comandos formatados em Matrix Orbital. Isso também fornece controle sobre a luz de fundo do LCD. Mostraremos como redirecionar o Smartie LCD de uma porta COM para o servidor TCP #twatch na parte dois de nosso artigo #twatch.

Etapa 5: Bootloader para atualizações de firmware de rede

Bootloader para atualizações de firmware de rede
Bootloader para atualizações de firmware de rede
Bootloader para atualizações de firmware de rede
Bootloader para atualizações de firmware de rede
Bootloader para atualizações de firmware de rede
Bootloader para atualizações de firmware de rede

O #twatch pode ser atualizado a partir de um PC na rede local graças ao bootloader da Internet da Microchip. Lembre-se de que os PICs Ethernet 18F só podem ser programados em média 100 vezes, portanto, as atualizações são um tanto limitadas. Ainda não queimamos um chip, mas atingimos apenas cerca de 55 ciclos durante o desenvolvimento. Se você estiver usando um chip totalmente novo, precisará programar o bootloader no PIC18F67J60 por meio do cabeçalho ICSP, então você pode fazer o upload do #twatch firmware na rede. Programe twatchv2-bl-vxx. HEX no chip com um programador PIC como um ICD2 ou PicKit. Quando o #twatch é ligado, o bootloader é executado antes do programa principal iniciar. O bootloader verifica se há uma conexão entre os pinos PGD e PGC do cabeçalho de programação, mostrado na imagem acima. Se encontrar uma conexão, o bootloader assume e espera que o novo firmware seja carregado. Há uma chance muito pequena de que o bootloader seja iniciado acidentalmente, mesmo sem um jumper entre os pinos PGC e PGD. Isso não danificará o #twatch, apenas desconecte a fonte de alimentação e tente novamente. A entrada acidental do bootloader pode ser evitada movendo o jumper sobre uma posição para conectar os pinos PGD e GND. O bootloader #twatch usa o endereço IP 192.168.1.123 e a máscara de sub-rede 255.255.255.0. Seu computador também deve ter um endereço IP que comece com 192.168.1.xxx para se comunicar com o #twatch. Escolhemos o intervalo 192.168.1.xxx porque é o padrão mais comum para roteadores domésticos. Se o seu computador usar outro intervalo de endereços IP, você precisará ajustá-lo temporariamente antes de fazer a atualização. Como atualizar:

  • Certifique-se de que seu PC esteja no mesmo intervalo de IP e sub-rede do #twatch. Seu PC deve ter um endereço IP no intervalo 192.168.1.xxx e uma máscara de sub-rede de 255.255.255.0. O endereço IP padrão do carregador de inicialização #twatch é 192.168.1.123, certifique-se de que nenhum outro computador conectado ao mesmo roteador já use este endereço.
  • Desconecte a fonte de alimentação do #twatch.
  • Coloque um jumper entre os pinos PGC e PGD.
  • Conecte o cabo de rede, se necessário, e conecte a fonte de alimentação. A tela pode estar em branco, ter blocos sólidos ou lixo.
  • Use um utilitário TFTP para enviar o novo firmware para o endereço IP #twatch, usamos TFTP.exe na linha de comando do Windows.
  • A atualização do TFTP relata sucesso ou erro.
  • Desconecte a fonte de alimentação e remova o jumper de atualização.
  • Conecte a fonte de alimentação novamente. O #twatch deve começar a rolar os tweets. Se o bootloader iniciar, coloque um jumper entre os pinos PGD e GND e tente novamente.

Etapa 6: Indo além, obtenha o seu

Indo além, obtenha o seu próprio
Indo além, obtenha o seu próprio
Indo além, obtenha o seu próprio
Indo além, obtenha o seu próprio
Indo além, obtenha o seu próprio
Indo além, obtenha o seu próprio
Indo além, obtenha o seu próprio
Indo além, obtenha o seu próprio

Projetamos o #twatch para fazer uso total dos recursos em um único chip, um design expandido adicionaria recursos, mas seria mais caro. O #twatch poderia seguir seu próprio feed do Twitter. Seria necessário um pequeno servidor web para inserir seu login do Twitter e uma EEPROM externa para armazenar as informações de configuração. O #twatch também pode armazenar mais tweets ou informações extras sobre cada tweeter, como nome e localização. A Microchip não faz um controlador Ethernet integrado com mais de 4K de RAM, mas poderíamos adicionar uma SRAM externa para armazenar tweets e meta-informações de tweetar. Hardware atualizado poderia adicionar um cabeçalho de E / S para conectar botões com Smartie LCD. da 4line LCD não tem muito espaço de exibição. Projetamos a interface #twatch em torno dessa quantidade limitada de espaço. Um firmware atualizado pode lidar com vários tamanhos de tela. O bootloader pode adotar o endereço IP adquirido pelo DHCP. Uma futura atualização de firmware do #twatch aproveitará esse recurso para facilitar as atualizações de rede. Na próxima semana, abordaremos o servidor TCP compatível com LCD Smartie integrado ao # twatch. Obtenha um! O que está mexendo no seu #twatch? Se você quiser um #twatch ou PCB montado, aqui estão algumas opções:

  • O Seeed Studio tem alguns packpacks #twatch ethernet LCD por US $ 45, incluindo frete para todo o mundo. Pegue-os enquanto duram porque não faremos mais em breve. Se você perdeu este projeto, inscreva-se aqui para ser notificado sobre futuras encomendas de #twatch.
  • Se você deseja construir o seu próprio, o Seeed Studio está vendendo os PCBs #twatch v1 e v2 extras de nosso pedido. Certifique-se de obter um conector Ethernet da Seeed ou certifique-se de encontrar um que corresponda ao PCB. Vamos escrever sobre a v1 em alguns dias, o esquema e o PCB estão no projeto SVN.
  • Enviaremos um PCB vazio #twatch v2 gratuito para as 2 primeiras pessoas que enviarem um tweet no #twatch.

Se você gostaria de se envolver, junte-se ao projeto de hardware aberto Dangerous Prototypes no Google Code ou venha bater um papo no fórum #twatch. Na próxima semana, mostraremos como redirecionar as estatísticas do sistema Smartie LCD para o servidor TCP #twatch.

Recomendado: