Quero criar meu próprio dispositivo USB modular usando um ATtiny45 que simplesmente envia dados para o PC via USB. Como não estou lendo dados, uma conexão de maneira única (ATtiny -> PC) ficaria completamente bem.
Estou usando um Arduino Uno como ISP com o esboço padrão do ArduinoISP carregado de dentro do Arduino Software. Estou pensando em usar o AVRDUDE para programar o ATtiny45 com o Arduino como ISP, porque quero poder usar o código C compilado no HEX, pois é mais avançado que o Langue de programação do Arduino.
Meus pensamentos básicos do circuito:
Como você pode ver, eu quero uma conexão USB "direta". Até agora eu sei que tenho que usar uma solução baseada em software para isso.
Eu gerenciei o SoftwareSerial para trabalhar com o meu ATtiny45. Para isso, usei o software Arduino para programar o ATtiny45 com o seguinte código:
#include <SoftwareSerial.h> #define rxPin 3 #define txPin 4 SoftwareSerial serial(rxPin, txPin); void setup() { pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(led, OUTPUT); serial.begin(4800); } void loop() { serial.println("1"); delay(1000); }
Observe que eu não uso o Pin 3 (ainda), mas preciso defini-lo para SoftwareSerial.
Dessa forma, usando o SoftwareSerial, eu era capaz de enviar dados do ATtiny diretamente para o pino TX do meu Arduino UNO que tinha um esboço em branco carregado para este teste. Eu estava usando o Serial Monitor do Arduino Software para ler os dados no COM4 (no meu caso) porque meu PC não reconheceu nenhum dispositivo (porta COM), pois tentei conectar o ATtiny programado diretamente a um cabo USB.
Infelizmente, só tenho caracteres unicode estranhos no Serial Monitor. Eu acho que é porque os dados estão em formato hexadecimal ou algo assim. Então eu notei que preciso conectar um USB / Serial Converter entre o USB e o ATtiny45 ... Eu procurei por esses conversores, mas não quero usar nenhuma placa pré-fabricada, pois quero tudo meus componentes em uma única placa. Eu acho que um chip FTDI seria "demais" para o meu projeto, não é? (Tem pinos muito pequenos para soldar ...)
O V-USB foi a minha segunda abordagem, pois não precisa de um conversor USB / Serial (como eu sei). Então, para usar o V-USB, eu precisaria usar o AVRDUDE, como mencionei anteriormente.
Encontrei este belo exemplo do V-USB EasyLogger . Ele contém um design de circuito e um exemplo de firmware. (C / C ++ / HEX)
A única coisa que quero saber é: Preciso realmente fazer meu circuito parecer com o mostrado no exemplo? ->
O que mais eu preciso saber sobre esse tipo de conexão USB? (Por que eu preciso de um conversor USB / Serial? Posso conectar o +5 e o VCC? Quais componentes eu preciso absolutamente? Que tipo de sinal eu preciso enviar via TX? Bits? Hex? Que voltagem ele precisa ser estar ? )
Obrigado por todas as suas respostas.
ATUALIZAR
Aqui estão alguns links adicionais que realmente me ajudaram em alguns pontos. Mas ainda não o entendi completamente ...
o primeiro -> http://www.ernstc.dk/arduino/tinycom.html
e o segundo -> http://www.re-innovation.co.uk/web12/index.php/en/blog-75/227-attiny-arduino (role para baixo até a seção "Saída serial")