Slaptažodžių įvedimo įrenginys veikiantis per USB sąsają

Pagaminau paprastą prietaisą slaptažodžių įvedimui į kompiuterį sudaryta iš 8 kojelių mikrovaldiklio ATtiny85. Prietaisas turi 3 mygtukus ir gali įvesti 3 skirtingus slaptažodžius. Įrenginys veikia kaip USB HID įrenginys (klaviatūra), kuriam nereikia papildomų tvarkyklių visose modernesnėse operacinėse sistemose (tikriausiai nuo Windows ME).

Projektėlio pagrindas V-USB biblioteka http://www.obdev.at/products/vusb/index.html . Biblioteka programiškai realizuoja USB sąsajos palaikymą AVR šeimos mikrovladikliuose.

Įdomu tai, kad šis įtaisas veikia be kvarco. Naudoja vidinį PLL generatorių, kuris sukonfigūruojamas atsižvelgiant į USB sąsajos reikalavimus kiekviena kartą prijungus įtaisą.

Nors schemoje pavaizdavau MiniUSB lizdą, tačiau jos nenaudojau. Ištikro nedėjau net 3,6V stabilitronų, tačiau kai kurie kompiuteriai gali netoleruoti neapribotų lygių.

Ant maketinės plokštės surinkau schemą. Kad galėčiau patogiai programuoti, taip pat patalpinau ISP programavimo jungtį.

Pateikto projekto panaudojimo veiksmai:

1) Instaliuoti WinAVR, gal ir AVRlib (pas mane jie visad gyvena abu 😉 ).

2) Atsidaryti konsolę, kad būtų atidaryta projekto direktorija. Winsows 7 tą galima galima paspaudus „Shift“ klavišą ir paspaudus ant aplanko dešiniu pelės klavišu pasirinktį punktą „Open command window here“). Žinoma, galima ir standartiškai, parašius Run lauke „cmd“, tada paspaudus enter ir įvedus komandiniame lauke „cd c:\kelias_iki_projekto“.

3) Norint sukompiliuoti projektą, komandiniame lauke reikia parašyti „make“ ir paspausti klavišą „Enter“. Jei kodas be klaidų, jis bus sėkmingai sukompiliuotas. Alikus rimtesnius pakeitimus, reikėtų pirma panaudoti komandą parašyti „make clean“ ir tik tada „make“.

4) Sukompiliavus kodą, projekto aplanke atsiras main.hex failas, kuris turės būti įrašytas į mikrovaldiklį. Užprogramuoti mikrovaldiklį galima komandiniame lange parašius:

make flash“.

Pasiėmus naują mikrovladiklį reikės įrašyti reikiamus fuse bitus. Low: 0xe1 High: 0xdd. Tai galima atlikti ir komandiniame lange parašius:

avrdude -c usbasp -p attiny85 -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m“.

Informacijos šaltinai

Žinoma, viso kodo nekūriau pats, o kaip minėjau, naudojanu biblioteką V-USB. Taip apt rėmiausi informaciją iš puslapio http://codeandlife.com

Pasinaudojus pateikta informacija ir truputėli parašius savo kodo galima nesunkiai sukurti įvarius per USB sąsają veikiančius prietaisus.

Pabaigai pateikiu trumpa vaizdo įrašą, kuriame trumpai pristatau šį projektėlį.

Pateikiu visą projekto medžiagą archyve arba GitHub

Spread the love

6 thoughts on “Slaptažodžių įvedimo įrenginys veikiantis per USB sąsają

  1. Ka tik atkartojau sita projekta. Paspaudus pirma ir antra mygtukus viskas pavyksta gerai (paraso slapt1 ir slapt2), bet kuomet tik paspaudziu trecia pasigirsta, kad USB irenginys atsijunge, prisijunge ir tik tuomet paraso slapt3. Gal kas zino kas cia yra?

    p.s. stabilitronus naudojau 3,3v, gal del to grybauja?

    • Keistas paminėtas įtaiso veikimas.

      Kiek pas save naudojau – problemų nekilo.

      Šiek tiek atnaujinau projektą (programą) ir ištestavau. Gal tai padės išspręsti jūsų problemas.

      Ar tikrai nėra aparatinių problemų? Surinkta tvarkingai ant PCB? Naudojai USB laidą? Gal kur sujuda laidai …

      • Dekui uz atnaujinta programa, greituoju metu irasysiu ir isbandysiu, bei pranesiu kaip sekesi

        Aparatiniu problemu tikrai nera, tikrinau tiek pacia pcb (kaip ja nubraiziau), tiek visus kontaktus ar nera kur jokio “solder bridge” 🙂

  2. work in windows 7

    no work in windows 8 “Unable to read Descriptor” it is possible?

    thanks

    andro

    • Norite nenaudoti stabilitronų and USB linijų D+, D-?

      Stabilitronai naudojami tam, kad apribotų AVR mikrovaldiklio išėjimo įtampa. Be jų nebus taip gerai, bet, manau, problemų neturėtų kilti, nes srovė bus apribotą, o kompiuterio pusėje įtampą turėtų riboti apsauginė įėjimo grandinė. Žinoma, gali būti taip, kad be stabilitronų veiks ne ant visų kompiuterių.

Leave a Reply

Your email address will not be published. Required fields are marked *