Det med at snakke over USB er en KÆMPE opgave i sig selv, og jeg tvivler på at der er nogle herinde der kan få det til at fungere 100% efter USB standarden.
Ikke specielt umuligt, hvis man har de rigtige komponenter.
Hvis der skal bruges en hvilken som helst microcontroller, kan man bruge en FTDI USB-til-seriel chip, og så bare lave seriel kommunikation fra microcontrolleren, så oversætter FTDI chippen til USB.
Ellers vil jeg anbefale en Atmel AVR med USB.
AVR er nemt. *meget nemt* at programmere, i modsætning til konkurrenterne (de mest kendte: PIC, Z8xxx, M68xx, mm)
Hvis du vælger en Atmel og kun har USB, vil jeg anbefale at købe en AVRISBmkII programmerings-enhed (dette er den originale, og passer både til Mac og PC). Hvis du derimod har en PC, kan du nøjes med parallel-port programmering, hvilket du kan få information om mange steder på nettet.
Ellers kan du købe en billig Olimex USB programmerings-enhed fra
Contronic; han er landets billigste; han har også parallel-port/seriel-port programmerings-enheder!
Computer-software til at programmere chippen med er gratis, du kan enten bruge Atmel's egen (til Windows), eller downloade GNU's værktøjer + AVRDUDE til Linux/Mac/UNIX/andet.
Skal du bruge en AVR med indbygget USB, kan du fx. vælge en
ATmega8U2-AU; denne er *ikke* til breadboard/modulprint, men SMD, så du skal kunne lodde uden at ryste på hænderne. Pris: ca. 24 kr. ex. moms.
Alternativt kan du med en almindelig ATmega (fx.
ATmega164P til ca. 31 kr. ex. moms) bruge V-USB fra obdev.at; jeg har ikke selv prøvet dette, men det er lidt mere indviklet, da USB implementeres i firmwaren sammen med dit program. Derved bruger det også nogle af chippens kræfter på USB, og du får mindre CPU-tid til dit eget program.
Hvis du skal have loddet en ATmega8U2-AU (eller ATmega16U2-AU), kan jeg muligvis hjælpe. Man kan købe adapter til at lodde den på, så du kan bruge den i breadboard/modulprint.
Når du skal sætte en lysdiode til en microcontroller der kører på 5V, bør du have en 100 ohm modstand i serie med lysdioden. Modstanden kan sagtens være op til 1K, men så lyser lysdioden svagere.
Hvis du skal sætte en IR modtager til Atmel'en, vil jeg anbefale en TSOP1236 (RS:
708-5569, Farnell:
4913048); de koster ca. 7-10 kr/stk ex. moms.
Der skal bruges 2 modstande og en kondensator til ovenstående IR modtager.
Skal du bruge IR sender, er det fornuftigt at købe en IR LED og drive den med en lille General-Purpose transistor (BC546/547/548); og også have en kondensator tæt på denne transistor, hvis du kører på batteri-spænding, da du således vil få kraftigst muligt infrarødt lys, og dermed stærkeste signal.
Bemærk: Det er muligt at køre på USB-porten's 5V.
Når du skal måle temperatur, kan du bruge et af Atmel'ens ADC ben, med mindre du har valgt en Atmel med indbygget USB (for den har nemlig ikke ADC). Har chippen ikke ADC, kan du købe en
ekstern ADC for 8-10 kr ex. moms, fx.
MCP4801-E/P.
(For at regne din færdige pris ud hos RS, skal du gange ex. moms beløbet med 1,25 og hvis du køber for under 500 kr. ex. moms, dertil lægge 85 kr).
Jeg har nogle af de ovennævnte komponenter på lager; Spændingsregulatorer, ATmega 16U2-AU, ATmega164P-20PU, TSOP1236, kondensatorer, modstande og programmerings-headers (dvs. stik). Jeg kan også programmere chippen, men vil anbefale at du selv gør det - du skal jo have det til at fungere sammen med et computer-program, så du vil nok gerne kunne lave ændringer med det samme.
Af ren nysgerrighed: Hvad er det som du ønsker at lave ?
-Er det kun til privat/hobby brug ?