Sisällysluettelo:

ATtiny85 IR USB -vastaanotin: 11 vaihetta (kuvilla)
ATtiny85 IR USB -vastaanotin: 11 vaihetta (kuvilla)

Video: ATtiny85 IR USB -vastaanotin: 11 vaihetta (kuvilla)

Video: ATtiny85 IR USB -vastaanotin: 11 vaihetta (kuvilla)
Video: LDmicro 14: I2C LCD & DS3231 Real-Time Clock (Microcontroller PLC Ladder Programming with LDmicro) 2024, Marraskuu
Anonim
ATtiny85 IR USB -vastaanotin
ATtiny85 IR USB -vastaanotin

VAROITUS, tästä ohjeesta on tullut epävakaa

V-usb-kirjasto on suunniteltu toimimaan nykyään tuskin olemassa olevan USB 1.1 -protokollan kanssa. USB3: n tullessa sinulla on enemmän kuin päänsärky yrittäessäsi saada v-usb-laitteet toimimaan. Multimediakeskuksen vaihdon jälkeen minulla on monia vakausongelmia, ja vaikka vastaanotin toimii, se lakkaa toimimasta jonkin ajan kuluttua. Olen epäonnistunut yrittäessään korjata sitä. Tein myös atmega328p-version, mutta tällä oli samat ongelmat. Vartija-ajastimen käyttäminen levyn nollaamiseen säännöllisesti ei auttanut, joten luopun v-usb: stä.

Tee itsellesi palvelus äläkä jatka tämän ohjeen antamista, ellei se ole opetustarkoituksiin. Suosittelen sen sijaan ostamaan sirumoduuli ATmega 32U4, joka on jo integroinut usb -liitännän, ja seuraa tätä opasta:

www.sparkfun.com/tutorials/337

Heitä sitten sisään IR -anturi TSOP31238 ja olet valmis lähtemään.

Hei tekijät! Tämä on opettavainen toimivan USB -infrapunavastaanottimen rakentamiseen Attiny85 -mikrokontrollerilla. Aloitin tämän projektin voittaakseni tuen (ainakin täydellisen tuen) puutteen joillekin GNU/Linux -käyttöjärjestelmässä oleville IR -kaukosäätimille. Näitä ohjeita noudattamalla voit rakentaa ohjelmoitavan USB -infrapunavastaanottimen, joka toimii minkä tahansa infrapunakaukosäätimen kanssa muutaman dollarin verran.

Ensinnäkin tämä ohje ei olisi olemassa ilman niiden ihmisten kovaa työtä, jotka loivat täällä käyttämäni kirjastot:

  • David A. Mellis attiny -ytimestään
  • Rowdy Dog -ohjelmisto kirjastoonsa TinyTuner
  • Rowdy Dog -ohjelmisto pienelle käynnistyslataimelle
  • Rancidbacon (https://rancidbacon.com/) v-usb-kirjaston arduino-porttiinsa (https://code.google.com/archive/p/vusb-for-arduino/downloads)
  • ks. -kirjaston…

Joskus kirjaston oikean omistajan löytäminen ei ole helppoa, joten jos tein virheen, jätä kommentti, niin ratkaisen ongelman ASAP.

Tämä opas on olemassa, koska en löytänyt täydellistä opetusohjelmaa/opasta pakkauksesta (se saattaa olla olemassa, mutta en löytänyt sitä), joten keräsin kaikki verkossa saatavilla olevat tiedot ja paljon kokeiluja ja virheet Sain täydellisen oppaan rakentaa toimiva USB -infrapunavastaanotin, joka toimii todella hyvin.

Tärkeimmät tietolähteet, joita olen seurannut:

  • 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…

Vaihe 1: Jotkut näkökohdat

  • En omista AVR -ISP -ohjelmoijaa enkä todellakaan halua ostaa sitä, joten olen käyttänyt Arduinoa ohjelmoimaan attiny85
  • En välitä muista käyttöjärjestelmistä kuin GNU/Linuxista, joten en tiedä toimiiko tämä muuten.
  • on muitakin IR -kirjastoja, mutta en voinut saada niitä toimimaan edes arduinon kanssa. Ajattele kuitenkin, että aloitin rajallisella tietämyksellä IR -kirjastoista. Ehkä voisin saada ne toimimaan nyt sen jälkeen, kun olen saanut kokemuksen kohtuullisen määrän asioista. Joka tapauksessa olin eksyksissä ja epätoivoinen ennen kuin löysin Seejaydeen tarjoaman kirjaston, ja olen käyttänyt sitä siitä lähtien (kiitos mies!).
  • On muitakin laitteistokokoonpanoja, mutta olen käyttänyt vain sitä, joka käyttää 5 V: tä virran syöttämiseen attiny85: een ja kahta 3,6 V: n 0,5 W: n Zener -diodia datalinjojen jännitteen puristamiseen, se toimii pakkauksesta, joten en sekoittanut muut kokoonpanot.
  • Voit käyttää 16 MHz: n kristallia tai tinytuner -kirjaston avulla kalibroida attiny85: n sisäisen kellon. Suosittelen vahvasti kristallin käyttöä, se on paljon vakaampi ja säästää todennäköisesti paljon päänsärkyä.
  • Käytän tässä kahta eri käynnistyslatainta attiny85: lle:

a) Rowdy Dog -ohjelmistoversiossa on integroitu sarjaliitäntä, joka on erittäin siisti ja hyvin pieni, joten sinulla on enemmän tilaa ohjelmalle ja muille kirjastoille. Ongelmana on, että jostain syystä, vaikka se toimii melko hyvin, jonkin ajan kuluttua USB -laite irrotettiin (löydät ongelmat komennolla dmesg). En tiedä, onko tämä ytimen ongelma vai ytimen ja valittujen kirjastojen yhdistelmä, joten jonkin ajan kuluttua päätin käyttää tätä ydintä vain etäavainten purkamiseen ja kellon kalibrointiin (kun en käytä 16 MHz: n taajuutta) kristalli). Sen jälkeen poltan vain Mellis -käynnistyslataimen ja lähetän lopullisen luonnoksen, joka ei käytä sarjaliitäntää.

b) Mellis -versio, vakaa käynnistyslatain, olen käyttänyt tätä monissa projekteissa. Olisin käyttänyt tätä käynnistyslatainta aina, jos se olisi sisältänyt sarjaliitännän. Käytän tätä ydintä viimeisessä luonnoksessa, kun olen purkanut kaikki kaukosäätimeni näppäimet.

Vaihe 2: Aloitetaan laitteistolla

Aloitetaan laitteistosta
Aloitetaan laitteistosta
Aloitetaan laitteistosta
Aloitetaan laitteistosta
Aloitetaan laitteistosta
Aloitetaan laitteistosta

Tarvittavat työkalut:

  • arduino -yhteensopiva levy
  • sarja -usb -sovitin etäavainten purkamiseen (käytä vain FT232RL)
  • tietokone, johon on asennettu GNU/Linux ja arduino IDE on määritetty oikein, käytän arduino IDE 1.8.0
  • IR -kaukosäädin laitteen testaamiseksi (jopa arpaino -aloituspakkausten kaltainen paska toimii)
  • yleismittari levyn virheenkorjaukseen (toivottavasti et tarvitse sitä, onnea!)

Luettelo materiaaleista:

  • 1 attiny85
  • 2 68R vastukset
  • 1 1,5K vastus
  • 1 4.7K vastus
  • 1 16Mhz kide
  • 1 22pF kondensaattori
  • 1 0,1uF kondensaattori
  • 1 10uF kondensaattori
  • 2 3,6 V: n 0,5 W: n Zener -diodia
  • 1 USB -tyypin A urosliitin
  • 1 nauhatappi, jossa on 6 nastaa levyn ohjelmointiin ja virheenkorjaukseen.
  • 1 IR -anturi TSOP31238
  • paljon kahvia pitää sinut hereillä

Ennen lopullisen levyn juottamista haluat luultavasti tehdä leipälevyn prototyypin testausta varten. Ohjeeseen liitetyn kaavan noudattaminen riittää sen rakentamiseen.

Attiny85: n liittämiseksi tietokoneeseen lopullinen malli käyttää A -tyypin USB -liitintä, joka on juotettu piirilevyyn, mutta prototyyppiä varten sinun on tehtävä USB -kaapeli, jonka voit liittää leipälautaan:

Juotos pieneksi osaksi 4 -nastaista perfboard -levyä, katkaise sitten vanha USB -kaapeli ja juota nastat neljään USB -kaapelin sisällä olevaan johtoon:

  • punainen on VCC (5V)
  • musta on GND
  • valkoinen on D-
  • vihreä on D+

Pidä kaikki yhdessä kuumaliimalla.

Nyt meidän on kytkettävä Internet -palveluntarjoaja (Arduino), USB -sarjasovitin (FT232RL) ja IR -anturi attiny85 -laitteeseen.

Voit jättää yhteyden yhteen, jotta voit polttaa erilaisia käynnistyslataimia, ladata luonnoksia ja tarkistaa sarjaportin vaihtamatta johtoja, Voit tehdä tämän yhdistämällä kaikki seuraavat ohjeet:

ISP -ohjelmoija (Arduino): tämän avulla voimme polttaa käynnistyslataimia ja ladata luonnoksia

  • attiny85 PB0 (pin5) - pin11 (MOSI) in arduino
  • attiny85 PB1 (pin6) - pin12 (MISO) in arduino
  • attiny85 PB2 (pin7) - pin13 (SCK) in arduino
  • attiny85 PALAUTA (nasta 1) vetämällä (4,6 k - VCC) pin10: een arduinossa
  • attiny85 VCC - 5V arduinossa
  • attiny85 GND - GND arduinossa

usb -sarja -sovitin (FT232RL): tämän avulla voimme tarkistaa sarjaportin

  • attiny85 PB0 (pin5 RX) - TX FT232RL: ssä
  • attiny85 PB2 (pin7 TX) - RX FT232RL: ssä
  • attiny85 GND (pin4) - GND FT232RL: ssä
  • koska attiny85 saa jo virran arduinosta, sinun ei tarvitse liittää FT232RL: n 5v: tä, muuten kytke: attiny85 VCC (pin8) - 5V FT232RL: ssä

usb -sarjasovitin (FT232RL) vain kellon kalibrointia varten (vain käynnistyslataimelle "ATtiny85 @ 8MHz (sisäinen oskillaattori; BOD pois käytöstä)")

  • PB4 (pin3 RX) - TX FT232RL attiny85: ssä
  • PB3 (pin2 TX) - RX FT232RL attiny85: ssä
  • GND (pin4) - GND FT232RL: ssä
  • koska attiny85 saa jo virran arduinosta, sinun ei tarvitse liittää FT232RL: n 5v: tä, muuten kytke: attiny85 VCC (pin8) - 5V FT232RL: ssä

Jos käytät 16 MHz: n kristallia, liitä se Attiny85 -nastoihin PB3 (nasta 2) ja PB4 (nasta 3) ja yhdistä jokainen nasta GND: hen sekä 22 pF: n korkin kautta.

Suodata Attiny85 VCC 0.1uF ja 10uF kondensaattoreilla, jotka yhdistävät ne rinnakkain GND: n kanssa

Liitä infrapunatunnistimen ulostulonappi attiny85 PB1: ään (nasta 6), kytke virta.

Rakenna ja liitä USB -liitäntä:

  • GND (musta johto): kytke se yhteiseen GND: hen (kaikki maadoitukset on kytketty yhteen)
  • D- (valkoinen johto), joka on kytketty attiny85 PB0: een (nasta 5) 68R-vastuksen kautta, liitä se myös maahan 3,6 V: n 0,5 W: n zenerin kautta ja vedä se VCC: hen 1,5 K: n vastuksella
  • D+ (vihreä johto), joka on kytketty PB2: een 68R -vastuksen kautta, liitä se maahan 3,6 V: n 0,5 W: n zenerin kautta
  • 5 V.

Zener-diodit on kytketty niin, että anodit on sidottu GND: hen ja katodit on kytketty datalinjoihin D+ ja D-.

Vaihe 3: Lopullinen suunnittelu

Lopullinen suunnittelu
Lopullinen suunnittelu
Lopullinen suunnittelu
Lopullinen suunnittelu
Lopullinen suunnittelu
Lopullinen suunnittelu

Lopullisessa suunnittelussa voit käyttää läpileikkauskomponentteja sisältävää perfboard -levyä tai syövyttää omaa levyäsi ja käyttää smd -komponentteja. Googlen avulla voit oppia levyn etsaamisen, sillä verkossa on mahtavia opetusohjelmia.

Olen syövyttänyt oman levyn ja olen erittäin tyytyväinen lopputuloksiin (pieni, vakaa ja kestävä levy). Kyllä, tiedän, että leikkaus on perseestä, mutta en voinut käyttää mitään sähkötyökalua niin myöhään yöllä ja leikkaa vain lauta tinaleikkureilla.

Muuten kuvien jäljet eivät ole paljaita kuparia, ne on käsitelty ilkeällä kemikaalilla, joka hieman tinaa kuparia (sen epäillään aiheuttavan syöpää, joten käytä sitä erittäin huolellisesti, lateksipalloja ja pölynaamaria):

Suunnittele ulkoasu yllä olevien kaavioiden avulla tai voit vain käyttää piirilevyni jalanjälkeä kartonkisi syövyttämiseen.

Vaihe 4: Ohjelmiston käsittely

Tämän projektin piiri on erittäin helppo, ohjelmisto vaatii sen sijaan enemmän vaivaa.

Tarvitsemme vähintään kaksi kirjastoa (yhden lisää, jos et käytä kristallia) sekä kaksi käynnistyslatainta tämän toimimiseksi. Kun aloitin tämän projektin, testasin joitain kirjastoja, joskus ne eivät toimineet ja monta kertaa niitä ei vain ollut määritetty toimimaan Attiny85: n kanssa pakkauksesta (en tiennyt sitä vielä). Sitten löysin ongelmia kirjastojen / käynnistyslataimien päällekkäisten keskeytysten kanssa. Lopulta minun piti käsitellä melko paljon virheitä, kun liitin viimeisen piirin tietokoneeseeni. Minulla ei kuitenkaan ollut tätä opasta, joten luulen, että sinulla olisi kaikki hyvin, seuraa vain tämän ohjeen ohjeita, jos teet sen tekemättä virheitä, sinun pitäisi olla kunnossa:)

Meidän on nyt asennettava ja konfiguroitava muutamia kirjastoja:

  • v-usb arduino-kirjastoa varten: tämän kirjaston avulla tietokone tunnistaa mikro-ohjaimen HID USB -näppäimistöksi, ja käytämme sitä näppäinpainallusten lähettämiseen tietokoneelle. Tämä kirjasto tarvitsee joitain muutoksia ollakseen yhteensopiva attiny85: n kanssa
  • tinytuner -kirjasto vain, jos et käytä 16 MHz: n kideä. Sinun on kalibroitava mikrokontrollerin sisäinen kello. Tämä kirjasto toimii suoraan laatikosta.
  • Attiny-IR-kirjasto vuorovaikutuksessa IR-anturin kanssa. Tämä kirjasto toimii suoraan laatikosta.

Tarvitsemme myös 2 käynnistyslatainta:

  • Koiran ohjelmistoversio, jossa on sarjaliitäntä. Tämä käynnistyslatain tarvitsee pienen hienosäädön työskennelläkseen attiny85: n kanssa, koska se käyttää ajastinta1 millis () -toiminnolle eikä toimi IR -kirjaston kanssa. Meidän on vaihdettava ajastin ajastimeen0.
  • Mellis -versio, vakaa käynnistyslatain, jota käytämme viimeisessä vaiheessa. Tämä toimii pakkauksesta.

Vaihe 5: V-usb-kirjaston asennus ja kokoonpano

Lataa kirjasto osoitteesta

Nyt sinun on muokattava pari tiedostoa yhteensopivaksi ATtiny85: n kanssa (se on määritetty toimimaan arduinon kanssa):

A) muokkaa usbconfig.h:

kohdassa "Laitteistokokoonpano" muutos:

#define USB_CFG_IOPORTNAME D##define USB_CFG_IOPORTNAME B

ja

#define USB_CFG_DMINUS_BIT 4to#define USB_CFG_DMINUS_BIT 0

valinnaisen laitteistokokoonpanon muutoksen alla:

#define USB_CFG_PULLUP_IOPORTNAME D##define USB_CFG_PULLUP_IOPORTNAME B

Jos haluat luoda täydellisen "käynnistysyhteensopivan HID" -määrityksen (muuten multimediaavaimet eivät toimi), muuta myös:

#define USB_CFG_INTERFACE_SUBCLASS 0 // Bootto#define USB_CFG_INTERFACE_SUBCLASS 0x01 // Käynnistys

ja

#define USB_CFG_INTERFACE_PROTOCOL 0 // Näppäimistö#define USB_CFG_INTERFACE_PROTOCOL 0x01 // Näppäimistö

Valinnaisesti voit myös muuttaa valmistajan ja laitteen nimen seuraavilla määritelmillä:

#define USB_CFG_VENDOR_NAME

#define USB_CFG_DEVICE_NAME

B) Muokkaa UsbKeyboard.h:

muuttaa:

PORTD = 0; // TODO: Vain USB -nastoille? DDRD | = ~ USBMASK;

kohteeseen

PORTB = 0; // TODO: Vain USB -nastoille? DDRB | = ~ USBMASK;

Voit sallia yli 101 avainkoodin muuttamisen myös seuraavasti:

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

ja

0x29, 0x65, // USAGE_MAXIMUM (näppäimistösovellus) - 0x29, 0xE7, // USAGE_MAXIMUM (näppäimistösovellus)

Saatat joutua muokkaamaan myös näitä kolmea tiedostoa:

usbdrv.husbdrv.cUsbKeyboard.h

ja aina kun näet, että PROGMEM lisää "const" muuttujatyypin nimen eteen (esim. PROGMEN char usbHidReportDescriptor [35] ==> PROGMEM const char usbHidReportDescriptor [35])

Jos tämä ei ole selvää, käy osoitteessa

Voit välttää kaikki nämä muutokset, jos lataat vain liitteenä olevan kirjaston (tein kaikki nämä muutokset itse) ja otan sen vain luonnoskirjakirjakirjakansioosi:

UsbKeyboard on määritetty attiny85: lle

Edit: äskettäin huomasin, että Alejandro Leiva (https://github.com/gloob) on hoidettu tästä kirjastosta ja näyttää toimivan myös hyvin. Voit myös kokeilla hänen versiotaan tarvittavilla muutoksilla, jotka tein, jotta se toimisi attiny: n kanssa, joten jos haluat tarkistaa tämän, poimi se vain luonnoskirjakirjakirjakansioosi.

UsbKeyboard määritetty attiny85: lle (Alejandro Leiva -versio)

Vaihe 6: Attiny-IR- ja Tinytuner-kirjastojen asennus

A) Attiny-IR-kirjasto:

lataa se osoitteesta https://drive.google.com/open?id=0B_w9z88wnDtFNHlq… ja pura se sitten luonnoskirjakirjakirjakansioosi.

B) Tinytuner -kirjasto:

Tätä tarvitaan vain, jos et käytä 16 MHz: n kideä, mutta usko minua, vaikka se toimii myös ilman kristallia, se on paljon vakaampi sen kanssa ja ne maksavat muutaman sentin, joten pidä se yksinkertaisena, käytä kristallia ja ohita tämä kirjasto.

Etkö ole vielä vakuuttunut? ok, lataa kirjasto osoitteestahttps://storage.googleapis.com/google-code-archive… ja pura se sitten luonnoskirjakirjakirjakansioosi.

Kirjastot on tehty, nyt siirrytään käynnistyslataimien asentamiseen.

Vaihe 7: Käynnistyslataimien asennus ja kokoonpano

Aiomme asentaa kaksi käynnistyslatainta, joista Mellis on kokemukseni mukaan vakaampi ja käytämme sitä viimeisessä luonnoksessa. Toinen, jonka on kehittänyt Rowdy Dog Software, on mahtava ydin, hyvin pieni ja sisäänrakennettu sarjaliitäntä, mutta kauko -ohjain kaatui jonkin ajan kuluttua sen kanssa, joten käytämme tätä käynnistyslatainta vain kalibroidaksemme attiny85 -sisäisen kellon ja purkaaksemme kaukosäätimen painikkeita.

Tiedän, että on olemassa käytettävissä olevia kirjastoja, jotka antavat attiny85 -sarjaominaisuudet, mutta sitten sinun on muokattava sarjaobjektia käyttäviä kirjastoja… Pidän tästä menettelystä paremmin.

Aloitetaan asennuksesta:

A) Mellis -käynnistyslatain:

avaa vain Arduino IDE -asetukset ja lisää Lisäkorttien hallinnan URL -osoitteet:

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

Avaa sitten Arduino IDE -korttien hallintaohjelma ja etsi attiny, asenna levyt Melliksestä. Nyt sinun pitäisi nähdä Arduino ID ATtiny25/45/85- ja ATtiny24/44/84 -levyt.

B) Rowdy Dog -ohjelmiston pieni käynnistyslatain:

Lataa käynnistyslatain osoitteesta

Pura tiedosto ja kopioi pieni kansio luonnoskirjaasi/laitteistoosi (luo tämä kansio, jos sitä ei vielä ole). siirry sitten kansioon sketchbook/hardware/tiny/avr/ja:

1) kopioi Prospective Boards.txt -tiedosto boards.txt -tiedostoon

2) muokkaa tiedostoa platform.txt ja tee joitakin muutoksia:

Poista muuttujan compiler.path kommentti ja jätä se osoittamaan kansioon hardware/tools/avr/bin/arduino -asennuskansion sisällä:

compiler.path = {PATH_TO_YOUR_ARDUINO_FOLDER}/laitteisto/työkalut/avr/bin/

muuta myöscompiler. S.flags = -c -g -assembler-with-cpptocompiler. S.flags = -c -g -x assembler-with-cpp

Muuta sitten seuraavat muuttujat varmistaaksesi, että kaikki on paikallaan (näiden tiedostojen on oltava olemassa, muutoin osoita muuttujat oikeille poluille):

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) muokkaa tiedoston ytimiä/tiny/core_build_options.h ja muuta:

#define TIMER_TO_USE_FOR_MILLIS 1 to#define TIMER_TO_USE_FOR_MILLIS 0

Tämä on erittäin tärkeää, muuten IR -vastaanotin antaa nollia jokaiselle painikkeelle. Tämä lausunto määrittää ajastimen0 millis () -toiminnolle, jolloin ajastin1 on IR -kirjaston käytettävissä. Lopullinen luonnos poistaa ajastimen0 käytöstä joka tapauksessa, joten sinulla ei ole käytettävissä millis () - ja delay () -toimintoja. Sinulla saattaa olla käytettävissä delayMicroseconds () -toiminto.

Tämä käynnistyslatain on vähäinen, mutta se on sisältänyt sarjaobjektien tuen:

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

Voit määrittää kokoonpanon Internet -palveluntarjoajan (arduino) ja sarja -USB -sovittimen ollessa kytkettynä samanaikaisesti, joten sinun ei tarvitse vaihtaa johtoja liian usein:

Nyt meillä on sekä kirjastot että käynnistyslataimet asennettu ja määritetty oikein, vaikein työ on suoritettu ja voimme alkaa testata asioita.

Vaihe 8: Käynnistyslataimien polttaminen ja luonnosten lataaminen

Kehotan voimakkaasti aktivoimaan monitahoisen lähdön Arduino IDE -asetuksissa, jotta voit selvittää mahdolliset ongelmat.

Jos haluat polttaa käynnistyslataimen Attiny85 -laitteeseen, sinun on ladattava ISP -esimerkki Arduinolle ja valittava sitten ohjelmoija Arduino Internet -palveluntarjoajaksi.

Aseta nyt 10uF: n kondensaattori arduinon nollaus- ja maadoituspistoolien väliin (sitä ei tarvita polttoprosessiin, mutta se lähettää luonnoksia attiny85: een).

Nyt arduino on valmis polttamaan käynnistyslataimia ja lataamaan luonnoksia. Sinun tarvitsee vain valita oikea levy, joka on yhteensopiva attiny -laitteesi kanssa ja polttaa se.

Jos haluat ladata luonnoksen Attiny85: een, lataa se arduino IDE: hen ja napsauta "Lataa ohjelmoijalla".

TÄRKEÄÄ: luonnoksen lataamisen yhteydessä on kolme vaihetta, kokoaminen, kirjoittaminen ja tarkistaminen. Jos kokoaminen ja kirjoittaminen onnistuivat, mutta tarkistusprosessi epäonnistuu, on mahdollista, että luonnos toimii joka tapauksessa.

Vaihe 9: Kalibroi Attiny85 -sisäinen kello (ohita tämä, jos käytät kristallia)

Jos päätät olla käyttämättä 16 MHz: n kristallia, sinun on kalibroitava attiny85 -kellosi, joten tarvitsemme käynnistyslataimen, jossa on sarjaliitäntä, ja käytämme tinytuner -kirjastoa oikean kalibroinnin saamiseksi.

Noudata seuraavia vaiheita

  • valitse työkalujen alta Arduino Internet -palveluntarjoajan ohjelmoijaksi
  • valitse kortti "ATtiny85 @ 8MHz (sisäinen oskillaattori; BOD pois käytöstä)"
  • Oletan, että sinulla on Internet -palveluntarjoajan yhteys valmiina kuvatulla tavalla ennen yhdistämistä, muuten tee yhteydet
  • polttaa käynnistyslataimen
  • tämä käynnistyslatain on määrittänyt eri nastat sarjaliitäntää varten, käytä tätä kokoonpanoa vain nykyiselle käynnistyslataimelle

- PB4 (pin3 RX) - TX FT232RL attiny85: ssä - PB3 (pin2 TX) - RX FT232RL attiny85: ssä - GND (pin4) - GND FT232RL: ssä, koska attiny85 saa jo virran arduinosta, sinun ei tarvitse muodostaa yhteyttä 5 V FT232RL: ssä, muussa tapauksessa kytke: attiny85 VCC (pin8) 5 V: iin FT232RL: ssä

  • lataa tinytuner -esimerkki attiny85: een
  • avaa näyttöohjelma sarjaliikenteen valvomiseksi: screen /dev /ttyUSB0 9600
  • nollaa attiny85, joka yhdistää RESET -nastan (nasta 1) GND: hen (hetki), Tervetuloa -sanoman pitäisi näkyä näyttöikkunassa
  • Jatka yksittäisten x-merkkien lähettämistä (ei rivinvaihtoa, ei rivinsyöttöä), kunnes kalibrointi on päättynyt
  • merkitse jonnekin kalibroinnin arvo (OSCCAL = 0x). Tämä on arvo, joka sinun on ilmoitettava lopullisissa luonnoksissa

Vaihe 10: Purkaa kaukosäätimen painikkeet

Nyt on aika purkaa kaukosäätimen painikkeet ja määrittää ne tietyille tietokoneen painikkeille, jotta voit tehdä sen seuraavasti:

  • valitse kortti "ATtiny85 @ 16MHz (sisäinen PLL; 4,3 V BOD)", jos et käytä kristallia, "ATtiny85 @ 16 MHz (ulkoinen kide; 4,3 V BOD"), muuten polta se
  • lataa luonnos:
  • Jos et käytä kristallia, poista OSCCAL -muuttujan sisältävän rivin kommentti ja määritä se kellon kalibroinnissa löytämääsi arvoon
  • Oletan, että anturi on kytketty edellä kuvatulla tavalla, muuten kytke se
  • Oletan myös, että FT232RL -sarja -USB -sovitin on kytketty, muuten kytke se
  • nollaa attiny85, joka yhdistää RESET -nastan (nasta 1) GND: hen (hetki)
  • paina toistuvasti kaukosäätimen painikkeita ja tarkista näyttöikkuna, sinun on annettava jokaisen tietueen viimeinen numero, jokainen painike voi tuottaa 2 eri numeroa

Esimerkki:

Vastaanotettu D44 3396 Vastaanotettu 544 1348

Merkitse 3396 ja 1348 äsken painettuun painikkeeseen, ja sinun on päätettävä, mitä haluat tehdä painikkeella. Haluaisin esimerkiksi, että tämä painike lähettää multimedia -avainkoodin "Äänenvoimakkuus ylös", sitten minun on löydettävä kyseisen avainkoodin tunnus. Voit tehdä tämän lataamalla PDF -tiedoston:

Katso osio "Näppäimistö/näppäimistösivu" sivu 53 ja käytä sarakkeen Käyttötunnus (joulu) numeroita sitoaksesi kaukosäätimen painikkeet näppäimistökoodeihin. Esimerkissämme voimme nähdä, että "Äänenvoimakkuuden lisäys" -näppäinkoodi on: 128.

Muokkaa tiedostoa UsbKeyboard.h UsbKeyboard-kirjaston sisällä aiemmin asennetusta v-usb-paketista ja lisää olemassa olevaan määritykseen, jos se ei ole jo olemassa:

#define KEY_VOL_UP 128

Kun kaikki kaukosäätimen painikkeet ja kaikki UsbKeyboard.h -tiedoston määritelmät ovat valmiit, voimme siirtyä viimeiseen vaiheeseen.

Vaihe 11: Lopullisen luonnoksen lataaminen ja toivoa parasta

Ladataan lopullista luonnosta ja toivotaan parasta!
Ladataan lopullista luonnosta ja toivotaan parasta!
Ladataan lopullista luonnosta ja toivotaan parasta!
Ladataan lopullista luonnosta ja toivotaan parasta!

Meillä on nyt kaikki etäpainikkeet dekoodattu, tiedosto UsbKeyboard.h on täynnä avainkoodejamme, joten nyt voimme ladata lopullisen luonnoksen arduino IDE: hen:

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

Tämä tiedosto on tarkka tiedosto, jota käytän vastaanottimessani, ja se toimii kahdella eri kaukosäätimellä, joten sinun on selvästi päivitettävä se, jotta voit käyttää kaukosäädintäsi.

Jos et käytä kristallia, poista OSCCAL -muuttujan sisältävän rivin kommentti ja määritä se kellon kalibroinnissa löytämääsi arvoon

Huomaa, että silmukkafunktiossa on paljon tämänkaltaisia lausuntoja:

if (results.value == 3405 || results.value == 1357) {// nuoli ylös

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

}

Sinun on luotava omat lausuntosi, yksi kauko -ohjaimen painiketta kohti. Jos "-ehto" on kirjoitettava tuloksiin. Arvot, jotka olet löytänyt kaukosäätimen dekoodauksesta, ja UsbKeyboard.sendKeyStroke -menetelmän argumenttina sinun on asetettava jokin jo määritetyistä avainkoodeista tiedostoon UsbKeyboard.h.

Ehto "if (lastStroke! = Results.value)" tarvitaan, koska jotkin kaukosäätimet lähettävät saman koodin kahdesti osumaa kohti, ja tämä estää toisen osuman. En ole täysin varma ja se voi riippua kaukosäätimeesi ohjelmoidusta IR -protokollasta (en todellakaan ole IR -protokollien asiantuntija), mutta omien kaukosäätimien kokemukseni mukaan jokainen painike voi tuottaa 2 eri koodia ja kun pidät painiketta painettuna, se lähettää saman koodin, mutta jos painat painiketta uudelleen, se lähettää toisen. Joten näyttää siltä, että koodit lähetetään vaihtoehtoisella tavalla, luulen, että se on vakio -tila tietää, kuinka monta kertaa todella painat painiketta.

Ok, olemme melkein valmiita, lataa vain viimeinen luonnos, liitä se tietokoneeseen ja katso kuinka se menee.

Tässä vaiheessa on parempi, jos irrotat sekä arduino- että USB -sarja -sovittimen ja vasta sitten kytket USB -liitännän PC -porttiin (jos jokin menee pieleen, piirisi on helpompi korjata).

Jos kaikki toimi hyvin, kun avaat päätelaitteen ja lähetät dmesg -komennon, sinun pitäisi nähdä jotain samanlaista kuin tämän kuvan ensimmäinen kuva. Jos oli ongelmia, sinulla pitäisi olla virheitä, kuten toisessa kuvassa, ja sinun on aloitettava piirin ja/tai ohjelmiston vianetsintä. Yksi alkuperäisten virheiden lähteistä oli USB -keskitin, joka ei toiminut IR -vastaanottimeni kanssa (toiset kuitenkin toimivat) … joten on parempi, että tämä viimeinen vaihe kytketään IR -vastaanotin suoraan PC -porttiin. Mahdollisia virheitä voi olla vaikea löytää, mutta lopulta, kuten minä, oppisit paljon ja maksettava hinta on sen arvoinen, vakuutan sinulle.

Siinä kaikki, kerro minulle, jos huomaat virheitä tässä ohjeessa ja nauti upouudesta IR -USB -vastaanottimesta!

Suositeltava: