USB Física Contador baseado em AVR ATtiny25
Esta é uma versão USB Física Hit Counter.This requer um MCU para a comunicação entre PC e display de 7 segmentos driver.I decidiu usar AVR e este é meu primeiro objetivo project.The AVR deste projeto ainda mesmo que version.Therefore anterior, usado para contar e mostrar os hits total página em qualquer website em vez de usar apenas scripts geral, tais como PHP, Java, CGI software host etc.The nenhuma programação driver USB necessária.
lado de hardware e software em exposição
A tela eu usei vir a partir da versão 2, que é MAX7219 e 7 segmentos x 8. MAX7219 requer apenas 3 / S de MCU.ATtiny25 é o coração deste firmware project.The para este projeto escrito no firmware AVR-GCC.This modificada EasyLogger exemplo, que se desenvolveu por Christian Starkjohann do objectivo Development.Also, Christian Starkjohann desenvolveu um firmware USB excelente chamado AVR-USB, que é uma implementação de firmware só de um dispositivo USB de baixa velocidade 1.1 para AVR Atmel microcontrollers.With este controlador AVR-USB, é fácil de implementar interface USB do microcontrolador AVR projeto sem hardware dedicado USB ou não exige qualquer porta USB para dispositivos RS232 como FT232.
Do circuito acima desse circuito exige, pelo menos, DC 300mA ,9-12V AC ou fonte de alimentação externa para MAX7219 para evitar sobrecarregar a USB regulador bus.The (IC1) precisa de um tratamento térmico adequado sink.The IC3 usar bus-powered.
Eu uso MAX7219 no modo de decodificação para reduzir o espaço de memória de programa (2k para ATtiny25), pois deste modo o espaço de memória noa programa para manter font 7 segmentos necessário. Aqui está o código dentro do usbFunctionSetup função no firmware, que é o código da importância de receber o comando de PC.
- USB_PUBLIC uchar usbFunctionSetup(uchar data[8])
- {
- static uchar replyBuf[2];
- uchar Dlen;
- usbMsgPtr = replyBuf;
- switch (data[1]) {
- case 0: // data format => data[3]:data[2]:data[5]:data[4]
- MAX7219_DisplayChar(1,data[3] >> 4 & 0x0F); // display digit 0
- MAX7219_DisplayChar(2,data[3] & 0x0F); // display digit 1
- MAX7219_DisplayChar(3,data[2] >> 4 & 0x0F); // display digit 2
- MAX7219_DisplayChar(4,data[2] & 0x0F); // display digit 3
- MAX7219_DisplayChar(5,data[5] >> 4 & 0x0F); // display digit 4
- MAX7219_DisplayChar(6,data[5] & 0x0F); // display digit 5
- MAX7219_DisplayChar(7,data[4] >> 4 & 0x0F); // display digit 6
- MAX7219_DisplayChar(8,data[4] & 0x0F); // display digit 7
- Dlen = 0;
- break;
- case 1:
- MAX7219_Clear();
- Dlen=0;
- break;
- case 2:
- MAX7219_Init();
- Dlen=0;
- break;
- default:
- Dlen=0;
- break;
- }
- return Dlen;
- }
Eu escrevi o programa de acolhimento em Delphi 6 e 10 Indy componente instalado no meu PC como version.But anteriores, esta versão requer uma biblioteca espacial chamado "libusb-win32", que é um porto do USB biblioteca libusb para os sistemas operacionais Windows (Win98SE , WinME, WinXP Win2k,). A biblioteca permite que as aplicações do espaço do usuário para acessar qualquer dispositivo USB no Windows de uma forma genérica, sem escrever qualquer linha de código do driver kernel. Além disso, este software host requer CoolTrayIcon e TextTrayIcon componente para componente delphi.This permitir que este software host minimizar à bandeja do sistema como mostrado na imagem below.My software host é apenas um exemplo e que não existem alguns recursos como conexão à internet noa verificação ou não, noa a verificação de um arquivo de texto (hits.txt) existe ou not.But, você pode ser modificado ou escrever seu novo software.
Como antes, o software anfitrião irá ler o arquivo texto (hits.txt) do servidor web a cada 10 segundos ou mais (timer1 intervalo) Â em seguida, enviar os dados para mostrar circuito via USB.
Este componente Delphi pode ser baixado no link abaixo ou procure no google por "Delphi CoolTrayIcon".
Web script de servidor
No meu servidor web, eu crio um arquivo de texto para manter o número de hits (eghits.txt) com permissão de arquivo definido para chmod 755 ou 777, em seguida, coloque o script PHP abaixo em qualquer página que você precisa para contar os acessos à página, a barra lateral . php no meu hits.txt case.The será obtido pelo software host.
- $hitfile = $_SERVER['DOCUMENT_ROOT']."/counter/hits.txt";
- $hits = @file_get_contents($hitfile);
- file_put_contents($hitfile,$hits+1,LOCK_EX);
- echo ($hits+1); // comment this line if do not want to display
- ?>
AVR FirmwareFirmware de código fonteDelphi 6 código fonteIncluir o código-fonte e executar o arquivo (exe)componente CoolTrayIconComponente do sistema bandeja
O software host testado em Windows XP only.Please não me pergunte sobre MAX7219 PCB, tenho projetado cerca de dois anos atrás e eu cann't encontrar o original PCB uso file.I programador AVR ISP e PonyProg experimentar este projeto.
Física contador V1
A primeira versão que eu construí
e mostrar com contador mecânico.
A primeira versão que eu construí
e mostrar com contador mecânico.
Física hit counter V2
Use a interface RS232
Myvu Crystal: Personal Media Viewer Cool
Use a interface RS232
Myvu Crystal: Personal Media Viewer Cool
Postar um comentário