Sisukord:

ATtiny85 IR USB vastuvõtja: 11 sammu (piltidega)
ATtiny85 IR USB vastuvõtja: 11 sammu (piltidega)

Video: ATtiny85 IR USB vastuvõtja: 11 sammu (piltidega)

Video: ATtiny85 IR USB vastuvõtja: 11 sammu (piltidega)
Video: LDmicro 14: ЖК-дисплей I2C и часы реального времени DS3231 (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, Juuli
Anonim
ATtiny85 IR USB vastuvõtja
ATtiny85 IR USB vastuvõtja

HOIATUS, SEE JUHEND on muutunud ebakindlaks

V-usb raamatukogu on loodud töötama USB 1.1 protokolliga, mida tänapäeval peaaegu ei eksisteeri. USB3 saabudes on teil rohkem kui peavalu, kui proovite v-usb-seadmeid tööle panna. Pärast multimeediakeskuse vahetamist tekkis mul palju stabiilsusprobleeme ja kuigi vastuvõtja töötab, lakkab see mõne aja pärast töötamast. Mul ei õnnestunud seda parandada. Tegin ka atmega328p versiooni, kuid sellel oli samad probleemid. Samuti ei aidanud tahvli kasutamine tahvli perioodiliseks lähtestamiseks, nii et loobun v-usb-st.

Tehke endale teene ja ärge jätkake selle juhendamisega, kui see pole hariduslikel eesmärkidel. Soovitan selle asemel osta kiipmoodul ATmega 32U4, mis on juba USB -liidese integreerinud, ja järgige seda juhendit:

www.sparkfun.com/tutorials/337

Seejärel visake sisse IR -andur TSOP31238 ja teil on hea minna.

Tere tegijad! see on õpetatav ehitada töötav USB IR vastuvõtja, kasutades Attiny85 mikrokontrollerit. Alustasin seda projekti, et ületada GNU/Linuxi OS -i mõne IR -kaugjuhtimispuldi toe puudumine (vähemalt täielik tugi). Neid juhiseid järgides saate mõne dollari eest ehitada programmeeritava USB -IR -vastuvõtja, mis töötab mis tahes IR -kaugjuhtimispuldiga.

Esiteks, see juhend ei eksisteeriks ilma nende inimeste raske tööta, kes lõid siin kasutatavad teegid:

  • David A. Mellis tema attiny tuuma eest
  • Rowdy Dogi tarkvara nende raamatukogule TinyTuner
  • Rowdy Dogi tarkvara nende väikese alglaaduri jaoks
  • Rancidbacon (https://rancidbacon.com/) oma arduino pordi jaoks v-usb raamatukogus (https://code.google.com/archive/p/vusb-for-arduino/downloads)
  • seejaydee oma IR-raamatukogu jaoks väikeste südamike jaoks, mis leiti juhendatava https://www.instructables.com/id/Attiny-IR-librar… koodi kommentaaridest aadressil https://www.instructables.com/id/Attiny-IR -raamatukogu…

Mõnikord ei ole raamatukogu õiget omanikku lihtne leida, nii et kui ma eksisin, jätke palun kommentaar ja ma lahendan probleemi ASAP.

See juhend on olemas, kuna ma ei leidnud karbist välja töötavat täielikku õpetust/juhendit (see võib olla olemas, aga ma ei leidnud seda), nii et kogusin kogu veebis saadaoleva teabe ja pärast hulgaliselt katseid ning vead Ma koostasin täieliku juhendi töötava USB IR vastuvõtja ehitamiseks, mis tegelikult töötab päris hästi.

Peamised teabeallikad, mida olen järginud:

  • https://nathan.chantrell.net/20121014/tinypcremot…
  • https://forum.arduino.cc/index.php?PHPSESSID=ap4jg…
  • https://blog.petrockblock.com/2012/05/19/usb-keybo…
  • https://learn.adafruit.com/using-an-infrared-libr…
  • https://codeandlife.com/2012/03/03/diy-usb-passwor…
  • https://codeandlife.com/2012/02/22/v-usb-with-atti…
  • https://www.instructables.com/id/Attiny-IR-librar…

Samm: mõned kaalutlused

  • Mul ei ole AVR -i Interneti -teenuse pakkuja programmeerijat ja ma ei soovi seda osta, seega olen attiny85 programmeerimiseks kasutanud Arduinot
  • Mind ei huvita ükski teine operatsioonisüsteem peale GNU/Linuxi, nii et ma ei tea, kas see töötab muidu.
  • on ka teisi IR -raamatukogusid, kuid ma ei suutnud neid isegi arduinoga tööle panna. Mõelge siiski, et alustasin piiratud teadmistega IR -raamatukogude kohta. Võib -olla suudaksin need nüüd tööle panna pärast kogemuste omandamist üsna paljude probleemidega tegelemisel. Igatahes olin enne Seejaydee pakutava raamatukogu leidmist eksinud ja meeleheitel ning olen seda siiani kasutanud (suur tänu mees!).
  • Riistvara konfiguratsioone on teisigi, kuid olen kasutanud ainult seda, mis kasutab attiny85 toiteks 5V ja kahte 3,6V 0,5W zeneri dioodi andmeliinide pinge kinnitamiseks, see töötab karbist välja, nii et ma ei jama muud konfiguratsioonid.
  • Oma attiny85 sisemise kella kalibreerimiseks võite kasutada 16Mhz kristalli või tinytuner raamatukogu. Soovitan tungivalt kristalli kasutada, see on palju stabiilsem ja säästab tõenäoliselt palju peavalu.
  • Ma kasutan siin attiny85 jaoks kahte erinevat alglaadurit:

a) Rowdy Dogi tarkvara versioon, see on integreerinud jaheliidese, mis on väga lahe ja väga väike, nii et teil on rohkem ruumi oma programmi ja muude raamatukogude jaoks. Probleem on selles, et mõnel põhjusel, kuigi see töötab päris hästi, katkes USB -seade mõne aja pärast (leiate probleemid käsuga dmesg). Ma ei tea, kas see on tuuma probleem või tuuma ja valitud teekide kombineeritud kombinatsioon, nii et mõne aja pärast otsustasin seda südamikku kasutada ainult kaugjuhtimispultide dekodeerimiseks ja kella kalibreerimiseks (kui ma ei kasuta 16 MHz kristall). Pärast seda põletan lihtsalt Mellise alglaaduri ja laadin üles lõpliku visandi, mis ei kasuta jadaliidest.

b) Mellise versioon, stabiilne alglaadur, olen seda paljudes projektides kasutanud. Ma oleksin seda alglaadurit alati kasutanud, kui see oleks sisaldanud jadaliidest. Ma kasutan seda tuuma viimases visandis pärast kõigi kaugjuhtimispuldi klahvide dekodeerimist.

Samm: alustame riistvaraga

Alustame riistvaraga
Alustame riistvaraga
Alustame riistvaraga
Alustame riistvaraga
Alustame riistvaraga
Alustame riistvaraga

Vajalikud tööriistad:

  • arduinoga ühilduv plaat
  • jada -USB -adapter kaugjuhtimispultide dekodeerimiseks (kasutage lihtsalt FT232RL -i)
  • arvuti, kuhu on installitud GNU/Linux ja arduino IDE on õigesti konfigureeritud, kasutan arduino IDE 1.8.0
  • IR -kaugjuhtimispult teie seadme testimiseks (isegi nõme, nagu need, mida leidub arduino stardikomplektides, töötab)
  • multimeeter teie plaadi silumiseks (loodan, et teil pole seda vaja, palju õnne!)

Materjalide loend:

  • 1 attiny85
  • 2 68R takistit
  • 1 1,5K takisti
  • 1 4,7K takisti
  • 1 16Mhz kristall
  • 1 22pF kondensaator
  • 1 0,1 uF kondensaator
  • 1 10uF kondensaator
  • 2 3,6 V 0,5 W zeneri dioodi
  • 1 A -tüüpi USB -pistik
  • 1 ribatihvt 6 tihvtiga plaadi programmeerimiseks ja silumiseks.
  • 1 IR -andur TSOP31238
  • palju kohvi, et ärkvel hoida

Enne lõpliku plaadi jootmist soovite tõenäoliselt testimiseks teha leivalaua prototüübi, selle juhendi lisatud skeemi järgimisest peaks selle ülesehitamiseks piisama.

Attiny85 ühendamiseks arvutiga kasutab lõplik disain A -tüüpi USB -pistikut, mis on joodetud plaadile, kuid prototüübi jaoks peate valmistama USB -kaabli, mille saate ühendada leivalauaga:

Jootke väike tükk 4 -tihvti, seejärel lõigake vana USB -kaabel ja jootke tihvtid 4 -le USB -kaabli juhtmele:

  • punane on VCC (5V)
  • must on GND
  • valge on D-
  • roheline on D+

Hoidke kõike koos kuuma liimiga.

Nüüd peame ühendama Interneti -teenuse pakkuja (Arduino), USB jadaadapteriga (FT232RL) ja IR -anduri atiny85 -ga.

Saate jätta kõik ühendatuks, et saaksite põletada erinevaid alglaadureid, laadida visandeid ja vaadata jadaporti ilma juhtmeid vahetamata, Selleks ühendage kõik, järgides neid juhiseid:

Interneti -teenuse pakkuja (Arduino): see võimaldab meil alglaadureid põletada ja visandeid laadida

  • attiny85 PB0 (pin5) kuni pin11 (MOSI) arduinos
  • attiny85 PB1 (pin6) kuni pin12 (MISO) arduinos
  • attiny85 PB2 (pin7) kuni pin13 (SCK) arduinos
  • attiny85 RESET (tihvt 1) koos tõmbetugevusega (4,6 k kuni VCC) kuni arduino pin10
  • attiny85 VCC kuni 5V arduinos
  • attiny85 GND kuni GND arduinos

usb -jadaadapter (FT232RL): see võimaldab meil jadaporti kontrollida

  • attiny85 PB0 (pin5 RX) kuni TX FT232RL -is
  • attiny85 PB2 (pin7 TX) kuni RX FT232RL -is
  • attiny85 GND (pin4) kuni GND FT232RL -is
  • kuna attiny85 on juba arduino toitega, ei pea te FT232RL -i 5v ühendama, muidu ühendage: attiny85 VCC (pin8) kuni FV232RL 5V

usb -jadaadapter (FT232RL) ainult kella kalibreerimiseks (ainult alglaadurile "ATtiny85 @ 8MHz (sisemine ostsillaator; BOD keelatud)")

  • PB4 (pin3 RX) kuni TX FT232RL attiny85 -s
  • PB3 (pin2 TX) kuni RX FT232RL attiny85 -s
  • GND (pin4) kuni GND seadmel FT232RL
  • kuna attiny85 on juba arduino toitega, ei pea te FT232RL -i 5v ühendama, muidu ühendage: attiny85 VCC (pin8) kuni FV232RL 5V

Kui kasutate 16Mhz kristalli, ühendage see Attiny85 tihvtidega PB3 (pin2) ja PB4 (pin3) ning ühendage iga tihvt ka GND -ga läbi 22pF korgi.

Filtreerige Attiny85 VCC koos 0,1uF ja 10uF kondensaatoritega, mis ühendavad need paralleelselt GND -ga

Ühendage infrapunaanduri väljundnõel atiny85 PB1 -ga (pin6), lülitage see sisse.

Looge ja ühendage USB -liides:

  • GND (must juhe): ühendage see ühise GND -ga (kõik maandused on ühendatud)
  • D- (valge traat), mis on ühendatud attiny85 PB0-ga (pin5) läbi 68R takisti, ühendage see ka maandusega läbi 3,6 V 0,5 W zeneri ja tõmmake see 1,5 K takistiga VCC-ni
  • D+ (roheline juhe) ühendatud PB2 -ga läbi 68R takisti, ühendage see maandusega läbi 3,6 V 0,5 W zeneri
  • 5 V, võite selle ühendamata jätta, kuna Arduino toidab praegu kõiki toiteallikaid, vastasel juhul ühendage see attiny85 VCC -ga

Zeneri dioodid on ühendatud nii, et anoodid on seotud GND-ga ja katoodid on ühendatud andmeliinidega D+ ja D-.

3. etapp: lõplik kujundus

Lõplik disain
Lõplik disain
Lõplik disain
Lõplik disain
Lõplik disain
Lõplik disain

Lõpliku kujunduse jaoks võite kasutada läbivate aukude komponentidega perfboardi või söövitada oma plaati ja kasutada smd -komponente. Tahvli söövitamise õppimiseks googeldage lihtsalt, võrgus on saadaval vinged õpetused.

Olen oma plaadi söövitatud ja olen lõpptulemustega väga rahul (väike, stabiilne ja vastupidav plaat). Jah, ma tean, et lõikamine on nõme, kuid ma ei saanud nii hilja õhtul ühtegi elektrilist tööriista kasutada ja lihtsalt lõigake tahvlit minu plekk -kääridega.

Muide, piltidel olevad jäljed ei ole paljas vask, neid on töödeldud vastiku kemikaaliga, mis vase kergelt tinatab (kahtlustatakse, et see põhjustab vähki, seega kasutage seda väga hoolikalt, lateksgloobusi ja tolmumaski):

Kasutage oma paigutuse kujundamiseks ülaltoodud skeeme või saate plaadi söövitamiseks kasutada lihtsalt minu trükkplaadi jalajälge.

Samm 4: Tarkvaraga tegelemine

Selle projekti skeem on väga lihtne, tarkvara nõuab hoopis suuremat pingutust.

Selle töö tegemiseks vajame vähemalt kahte raamatukogu (veel ühte, kui te ei kasuta kristalli) ja kahte alglaadurit. Selle projektiga alustades katsetasin mõnda raamatukogu, mõnikord need ei töötanud ja sageli ei olnud nad lihtsalt konfigureeritud töötama koos Attiny85 -ga (ma ei teadnud seda veel). Siis leidsin probleeme raamatukogude / alglaadijate kattuvate katkestustega. Lõpuks pidin tegelema õige hulga vigadega, kui ühendasin lõpliku vooluahela arvutiga. Mul ei olnud seda juhendit, seega arvan, et teil oleks kõik korras, järgige lihtsalt selles juhendis toodud juhiseid, kui teete seda ilma vigu tegemata, siis peaks kõik korras olema:)

Peame nüüd installima ja konfigureerima mõned teegid:

  • v-usb arduino raamatukogu jaoks: see raamatukogu võimaldab arvutil mikrokontrolleri HID USB-klaviatuurina ära tunda ja me kasutame seda klahvivajutuste saatmiseks arvutisse. See raamatukogu vajab attiny85 -ga ühildumiseks mõningaid muudatusi
  • tinytuneri raamatukogu ainult siis, kui te ei kasuta 16Mhz kristalli. Seejärel peate kalibreerima mikrokontrolleri sisemise kella. See raamatukogu töötab karbist välja.
  • Attiny-IR-raamatukogu IR-anduriga suhtlemiseks. See raamatukogu töötab karbist välja.

Vajame ka 2 alglaadijat:

  • Koera tarkvara versioon, saadaval on jadaliides. See alglaadur vajab attiny85 -ga töötamiseks väikest kohandamist, kuna see kasutab funktsiooni millis () funktsiooni timer1 ja ei tööta IR -koguga. Peame taimeri muutma taimeriks 0.
  • Mellise versioon, stabiilne alglaadur, mida kasutame viimases etapis. See töötab karbist välja.

Samm: V-usb raamatukogu installimine ja konfigureerimine

Laadige kogu alla aadressilt

Nüüd peate paar faili redigeerima, et need ühilduksid ATtiny85 -ga (see on konfigureeritud töötama arduinoga):

A) muutke usbconfig.h:

jaotises "Riistvara seadistamine":

#define USB_CFG_IOPORTNAME D##define USB_CFG_IOPORTNAME B

ja

#define USB_CFG_DMINUS_BIT 4to#define USB_CFG_DMINUS_BIT 0

muutke jaotises „Valikulise riistvara seadistamine” järgmist.

#define USB_CFG_PULLUP_IOPORTNAME D##define USB_CFG_PULLUP_IOPORTNAME B

Täieliku "alglaadimisega ühilduva HID" spetsifikatsiooni loomiseks (muidu multimeediumivõtmed ei tööta) muutke ka järgmist:

#define USB_CFG_INTERFACE_SUBCLASS 0 // Bootto#define USB_CFG_INTERFACE_SUBCLASS 0x01 // Boot

ja

#define USB_CFG_INTERFACE_PROTOCOL 0 // Klaviatuur#define USB_CFG_INTERFACE_PROTOCOL 0x01 // Klaviatuur

Valikuliselt saate muuta ka tootja ja seadme nime järgmistes määratlustes:

#define USB_CFG_VENDOR_NAME

#define USB_CFG_DEVICE_NAME

B) muutke UsbKeyboard.h:

muutus:

PORTD = 0; // TODO: Ainult USB -nööpnõelte jaoks? DDRD | = ~ USBMASK;

et

PORTB = 0; // TODO: Ainult USB -nööpnõelte jaoks? DDRB | = ~ USBMASK;

Kui soovite lubada rohkem kui 101 võtmekoodi muutmist, tehke järgmist.

0x25, 0x65, // LOGICAL_MAXIMUM (101) kuni: 0x25, 0xE7, // LOGICAL_MAXIMUM (231)

ja

0x29, 0x65, // USAGE_MAXIMUM (klaviatuurirakendus) kuni: 0x29, 0xE7, // USAGE_MAXIMUM (klaviatuurirakendus)

Võimalik, et peate muutma ka neid kolme faili:

usbdrv.husbdrv.cUsbKeyboard.h

ja iga kord, kui näete, et PROGMEM lisab muutuja tüübi nime ette "const" (nt: PROGMEN char usbHidReportDescriptor [35] ==> PROGMEM const char usbHidReportDescriptor [35])

Kui see pole selge, külastage

Saate kõiki neid muudatusi vältida, kui laadite alla lisatud kogu (tegin kõik need muudatused ise) ja ekstraktin selle lihtsalt oma visandiraamatute raamatukogude kausta:

UsbKlaviatuur konfigureeritud attiny85 jaoks

Edit: hiljuti avastasin, et Alejandro Leiva (https://github.com/gloob) on selle raamatukogu eest hoolitsetud ja tundub, et see töötab ka hästi. Võite proovida ka tema versiooni koos vajalike muudatustega, mille tegin, et see töötaks koos attiny'ga, nii et kui soovite seda kontrollida, ekstraheerige see lihtsalt oma visandiraamatute teekide kaustast.

UsbKlaviatuur konfigureeritud attiny85 jaoks (Alejandro Leiva versioon)

6. samm: Attiny-IR ja Tinytuner raamatukogude paigaldamine

A) Attiny-IR raamatukogu:

laadige see alla aadressilt https://drive.google.com/open?id=0B_w9z88wnDtFNHlq… ja seejärel pakkige see oma visandiraamatute teekide kausta.

B) Tinytuneri raamatukogu:

Seda on vaja ainult siis, kui te ei kasuta 16Mhz kristalli, kuid uskuge mind, kuigi see töötab ka ilma kristallita, on sellega palju stabiilsem ja need maksavad paar senti, nii et olge lihtne, kasutage kristalli ja jätke vahele seda raamatukogu.

Pole veel veendunud? okei, laadige kogu alla aadressilt https://storage.googleapis.com/google-code-archive… ja seejärel pakkige see oma visandiraamatute kausta kausta.

Oleme raamatukogudega lõpetanud, nüüd liigume alglaadijate installimise juurde.

Samm: alglaadurite installimine ja konfigureerimine

Paigaldame kaks alglaadurit, millest üks on minu kogemuste kohaselt stabiilsem ja kasutame seda viimases visandis. Teine, mille on välja töötanud Rowdy Dog Software, on suurepärane tuum, väga väike ja integreeritud jadaliidesega, kuid minu pult jooksis mõne aja pärast sellega kokku, nii et me kasutame seda alglaadurit lihtsalt attiny85 sisemise kella kalibreerimiseks ja kaugjuhtimispuldi dekodeerimiseks nuppe.

Ma tean, et on olemas saadaval olevad teegid, et anda attiny85 jadavõimalusi, kuid siis peate kohandama jadaobjekti kasutavaid teeke … Mulle meeldib see protseduur paremini.

Alustame installimisega:

A) Mellise alglaadur:

lihtsalt avage Arduino IDE eelistused ja lisage Lisalaudade halduri URL -id:

raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Seejärel avage Arduino IDE tahvlite haldur ja otsige attiny, installige lauad Melliselt. Nüüd peaksite nägema Arduino ID plaate ATtiny25/45/85 ja ATtiny24/44/84.

B) Rowdy Dogi tarkvara väike alglaadur:

laadige alglaadur alla aadressilt

Pakkige fail lahti ja kopeerige pisike kaust oma visandiraamatusse/riistvarasse (looge see kaust, kui seda veel pole). seejärel liikuge kausta sketchbook/hardware/tiny/avr/ja:

1) kopeerige fail Prospective Boards.txt faili boards.txt

2) muutke faili platform.txt ja tehke mõned muudatused:

Tühjendage muutuja kompilaator.path ja jätke see osutades kausta riistvara/tools/avr/bin/arduino installikausta:

kompilaator.path = {PATH_TO_YOUR_ARDUINO_FOLDER}/riistvara/tööriistad/avr/bin/

muutke ka kompilaatorit. S.flags = -c -g -assembler-with-cpptocompiler. S.flags = -c -g -x assembler-with-cpp

Seejärel muutke järgmisi muutujaid, veendudes, et kõik on paigas (need failid peavad olemas olema, muidu suunake muutujad õigetele radadele):

tools.avrdude.cmd.path = {runtime.ide.path}/hardware/tools/avr/bin/avrdude

tools.avrdude.config.path = {runtime.ide.path} /hardware/tools/avr/etc/avrdude.conf

tools.avrdude.cmd.path.linux = {runtime.ide.path}/hardware/tools/avr/bin/avrdude

tools.avrdude.config.path.linux = {runtime.ide.path} /hardware/tools/avr/etc/avrdude.conf

3) muutke failituuma/tiny/core_build_options.h ja muutke:

#define TIMER_TO_USE_FOR_MILLIS 1 to#define TIMER_TO_USE_FOR_MILLIS 0

See on väga oluline, vastasel juhul väljastab IR -vastuvõtja iga nupu jaoks nullid. See avaldus konfigureerib funktsiooni taimer0 millis () funktsiooni jaoks, jättes taimer1 IR -raamatukogule kättesaadavaks. Lõplik visand keelab timer0 niikuinii, nii et teil pole saadaval ei millis () ega delay () funktsioone. Selle asemel võib teil olla funktsioon delayMicroseconds ().

See alglaadur on minimaalne, kuid sisaldab ka jadaobjektide tuge:

Attiny85 PB2 (pin7) on TX ja PB0 (pin5) on RX

Saate konfigureerida Interneti -teenuse pakkuja (arduino) ja jada -USB -adapteriga samal ajal, nii et te ei pea juhtmeid liiga sageli vahetama:

Nüüd on meil nii teegid kui ka alglaadurid installitud ja korralikult konfigureeritud, kõige raskem töö on lõpetatud ja saame hakata asju testima.

8. samm: alglaadijate põletamine ja visandite üleslaadimine

Soovitan tungivalt aktiveerida paljusõnaline väljund Arduino IDE eelistuste all, et saaksite välja mõelda kõik võimalikud probleemid.

Alglaaduri põletamiseks Attiny85 -sse peate laadima ISP näite Arduinosse ja seejärel valima ISP -ks programmeerija Arduino.

Asetage nüüd 10uF kondensaator arduino lähtestamis- ja maandusnõelte vahele (seda pole põlemisprotsessi jaoks vaja, kuid visandid tuleb üles laadida attiny85).

Nüüd on arduino valmis alglaadureid põletama ja visandeid laadima. Peate lihtsalt valima sobiva tahvli, mis teie ühilduvusega ühildub, ja põletama.

Visandi Attiny85 -sse laadimiseks laadige see arduino IDE -sse ja klõpsake "Laadi üles programmeerija abil".

TÄHTIS: visandi üleslaadimisel on 3 etappi, koostamine, kirjutamine ja kontrollimine. Kui koostamine ja kirjutamine toimis edukalt, kuid kontrollimisprotsess ebaõnnestub, on võimalik, et visand töötab niikuinii.

Samm: kalibreerige Attiny85 sisemine kell (jätke see vahele, kui kasutate kristalli)

Juhul, kui otsustate 16Mhz kristalli mitte kasutada, peate oma attiny85 kella kalibreerima, seega vajame saadavalolevat jadaliidesega alglaadurit ja õige kalibreerimise jaoks kasutame tinytuneri teeki.

Järgige järgmisi samme

  • valige tööriistade alt Arduino ISP programmeerijaks
  • valige plaat "ATtiny85 @ 8MHz (sisemine ostsillaator; BOD keelatud)"
  • Eeldan, et teil on Interneti -teenuse pakkuja ühendus valmis, nagu kirjeldatud enne ühendamist, muidu tehke ühendused
  • põletada alglaadurit
  • see alglaadur on seadistanud jadaliidese jaoks erinevad tihvtid, kasutage seda konfiguratsiooni ainult praeguse alglaaduri jaoks

- PB4 (pin3 RX) kuni TX FT232RL attiny85 -s - PB3 (pin2 TX) kuni RX FT232RL attiny85 -s - GND (pin4) kuni GND FT232RL -is, kuna attiny85 on juba arduino toitega, mida pole vaja ühendada 5V FT232RL -l, muidu ühendage: attiny85 VCC (pin8) kuni 5V FT232RL -l

  • laadige tinytuneri näide üles attiny85 -sse
  • jadaühenduse jälgimiseks avage ekraaniprogramm: screen /dev /ttyUSB0 9600
  • lähtestage attiny85, ühendades RESET -tihvti (tihvt 1) GND -ga (vaid hetk), ekraaniekraanile peaks ilmuma tervitusteade
  • Jätkake üksikute „x” märkide saatmist (tagasivõtmist ei toimu; reavahetust pole), kuni kalibreerimine on lõppenud
  • märkige kusagil kalibreerimise väärtus (OSCCAL = 0x). See on väärtus, mille peate lõplikel visanditel deklareerima

Samm: dekodeerige kaugjuhtimispuldid

Nüüd on aeg meie kaugjuhtimisnupud dekodeerida ja määrata need arvutis teatud klahvivajutustele. Selleks tehke järgmist.

  • valige tahvel "ATtiny85 @ 16MHz (sisemine PLL; 4,3 V BOD)", kui te kristalle ei kasuta, "ATtiny85 @ 16 MHz (väline kristall; 4,3 V BOD"), muidu põletage see
  • laadige visand:
  • Kui te ei kasuta kristalli, tühistage rida, mis sisaldab OSCCAL muutujat, ja määrake see kella kalibreerimisel leitud väärtusele
  • Eeldan, et andur on ühendatud nii, nagu eelnevalt kirjeldatud, muidu ühendage see
  • Eeldan samuti, et FT232RL jada -USB -adapter on ühendatud, muidu ühendage see
  • lähtestage attiny85, ühendades RESET -tihvti (pin1) GND -ga (vaid hetk)
  • vajutage korduvalt kaugjuhtimispuldi nuppe ja kontrollige ekraani akent, peate iga kirje jaoks märkima viimase numbri, iga nupp võib toota 2 erinevat numbrit

Näide:

VASTU VÕTTUD D44 3396VASTUD 544 1348

Märkige nupud 3396 ja 1348 äsja vajutatud nupule, siis peate otsustama, mida selle nupuga teha soovite. Näiteks võiksin soovida, et see nupp saadaks multimeedia võtmekoodi "Helitugevus", siis pean leidma selle võtmekoodi ID. Selleks laadige alla PDF -fail:

Vaadake jaotist "Klaviatuur/klaviatuuri leht" lk 53 ja kasutage veerus Kasutus ID (dets) numbreid, et siduda kaugjuhtimispuldi nupud klaviatuuri koodidega. Meie näites näeme, et "Helitugevuse suurendamise" võtmekood on: 128.

Muutke faili UsbKeyboard.h UsbKeyboard raamatukogus varem installitud v-usb paketist ja lisage olemasolevatele määratlustele, kui see pole juba olemas:

#define KEY_VOL_UP 128

Kui oleme lõpetanud kõik kaugjuhtimispuldi nupud ja kõik failis UsbKeyboard.h olevad määratlused valmis, saame liikuda viimase sammu juurde.

11. samm: laadige lõplik eskiis ja lootke parimat

Lõpliku visandi laadimine ja loodame parimat!
Lõpliku visandi laadimine ja loodame parimat!
Lõpliku eskiisi laadimine ja loodame parimat!
Lõpliku eskiisi laadimine ja loodame parimat!

Nüüd on meil kõik kaugjuhtimispuldid dekodeeritud, fail UsbKeyboard.h on täidetud meie võtmekoodidega, nii et nüüd saame arduino IDE -sse laadida lõpliku visandi:

github.com/venumz/ATtiny85-USB-IR-receiver…

See fail on täpselt see fail, mida ma oma vastuvõtja jaoks kasutan ja see töötab kahe erineva kaugjuhtimispuldi jaoks, nii et peate oma kaugjuhtimispuldiga töötamiseks seda kindlasti värskendama.

Kui te ei kasuta kristalli, tühistage rida, mis sisaldab OSCCAL muutujat, ja määrake see kella kalibreerimisel leitud väärtusele

Pange tähele, et silmusefunktsioonis on palju selliseid avaldusi:

if (results.value == 3405 || results.value == 1357) {// nool üles

if (lastStroke! = results.value) UsbKeyboard.sendKeyStroke (KEY_ARROW_UP);

}

Peate looma oma avaldused, üks kaugjuhtimispuldi nupu kohta. Tingimusesse "kui" peate sisestama tulemused. Väärtustama kaugjuhtimispuldi dekodeerimisel leitud väärtusi ja UsbKeyboard.sendKeyStroke meetodi argumendina peate faili UsbKeyboard.h sisestama ühe juba määratletud võtmekoodidest.

Tingimus "if (lastStroke! = Results.value)" on vajalik, sest mõned kaugjuhtimispuldid saadavad sama koodi kaks korda tabamuse kohta ja see takistab teist tabamust. Ma pole selles täiesti kindel ja see võib sõltuda teie kaugjuhtimispuldi programmeeritud IR -protokollist (ma pole tegelikult IR -protokollide ekspert), kuid vastavalt minu kogemustele oma kaugjuhtimispultidega saab iga nupp toota 2 erinevat koodi ja kui hoiate nuppu all, saadab see sama koodi, kuid kui vajutate nuppu uuesti, saadab see teise. Seega tundub, et koodid saadetakse alternatiivsel viisil, ma arvan, et see on standardrežiim, et teada saada, mitu korda te tegelikult nuppu vajutasite.

Ok, me oleme peaaegu valmis, laadige üles ainult viimane visand, ühendage see arvutiga ja vaadake, kuidas see läheb.

Selle sammu jaoks on parem, kui eemaldate nii arduino kui ka USB jadaadapteri pistikupesast ja alles siis ühendage USB arvuti porti (kui midagi läheb valesti, on teie vooluahelat lihtsam siluda).

Kui kõik töötas hästi, peaksite terminali avamisel ja käsu dmesg saatmisel nägema midagi sarnast selle sammu esimese pildiga. Probleemide ilmnemisel peaks teil olema selliseid vigu nagu teisel pildil ja peate alustama oma vooluahela ja/või tarkvara silumist. Üks minu esialgsete vigade allikas oli USB -jaotur, mis ei tööta minu IR -vastuvõtjaga (teised töötasid) … nii et see viimane samm on parem ühendada IR -vastuvõtja otse arvuti pordiga. Võimalikke vigu võib olla raske leida, kuid lõpuks, nagu mina, õpiksite palju ja makstav hind on seda väärt, ma kinnitan teile.

See on kõik inimesed, andke mulle teada, kui märkate selles juhendis vigu ja naudite oma uhiuut IR -USB -vastuvõtjat!

Soovitan: