Drie manieren om uw computer te bedienen met elke IR-afstandsbediening. Schema van de afstandsbediening van het apparaat


via het IR-kanaal is een robotbesturingsmodule gemaakt. Dit is waar ik graag meer over zou willen schrijven. Omdat je hier veel toepassingen voor kunt vinden.

Eigenlijk denk ik niet dat het nodig is om uit te leggen wat IR-controle is. Nu is bediening via Wi-Fi, Bluetooth en ZigBee gebruikelijker. Maar als je een eenvoudig apparaat nodig hebt dat je “op je knieën” kunt monteren minimale kosten, dan is dit artikel iets voor jou. =)


Ik zal dit artikel niet aan een specifieke microcontroller koppelen, maar zal de algemene werkingsprincipes van een IR-voorzender met een AVR MK beschrijven.

1. Wat je nodig hebt
Bij het creëren van eenvoudige IR-bediening is de onuitgesproken standaard het gebruik van een Vishay TSOPxxxx-ontvanger en een TSALxxxx-diode als zender.

Bij de aanduiding van TSOP-ontvangers geven de laatste twee cijfers de frequentie (in kHz) aan waarop deze wordt waargenomen verzonden signaal. Er zijn geen bijzondere problemen bij het werken met deze componenten. U kunt uw eigen transmissieprotocol schrijven, dat u al kunt gebruiken kant-en-klare oplossingen. In mijn geval besloot ik twee microcontrollers met een IR-kanaal aan te sluiten met behulp van USART. Het principe is hetzelfde als wanneer we twee MK's met gewone draden zouden verbinden. De enige nuance zit in het moduleren van de draaggolffrequentie en het instellen van de timer.

2. Regelingen
Om geen ophef te maken, gebruiken we het TSOP-schakeldiagram uit de datasheet:

De TSOP-uitgang moet rechtstreeks worden aangesloten op de USART-ingang (RX) van de MK.

Bij het aansluiten van een zender is de situatie iets anders. Omdat de ontvanger alleen op een bepaalde frequentie werkt, moet je dezelfde frequentie op de zender instellen. Dit is niet moeilijk om te doen door een timer te programmeren. Voor ATmega16 ziet het er als volgt uit:
TCCR1A=0x40;
TCCR1B=0x09;
OCR1AH=0x00;
OCR1AL=0x84;

De vereiste frequentie kan worden uitgedrukt met de formule:

OCRn - er zal de gewenste waarde zijn, die moet worden geconverteerd naar hexadecimaal formaat en naar het OCR1A-register moet worden geschreven (in het geval van de ATmega16 MK).

Nu zal TSOP ons signaal ontvangen. Maar om USART te kunnen gebruiken, moeten we ons signaal moduleren. Om dit te kunnen doen, sluiten we de IR-diode aan volgens het schema:

3. Een kleine code
Ik heb de firmware geschreven in CodeVision AVR.

Zo ziet de code voor de zender eruit:
#erbij betrekken
#erbij betrekken

Leegte belangrijkste (leegte)
{
POORTB=0x00;
DDRB=0x02;

DDRC=0x00;
POORTC=0xFF;

TCCR1A=0x40;
TCCR1B=0x09;
OCR1AH=0x00;
OCR1AL=0x84; // Voer hier de waarde voor uw frequentie in

// Communicatieparameters: 8 data, 1 stop, geen pariteit
// USART-modus: asynchroon
// USART-baudsnelheid: 2400
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0xCF;

Terwijl (1)
{

Als (PINC.4 == 0x00) ( putchar("S");)/* In in dit geval wanneer je op de knop drukt die op PINC.4 blijft hangen, stuurt de MK het symbool “S”. Die via IR naar een andere controller wordt verzonden.*/
};
}

Ik geef de ontvangercode niet door, omdat... neemt veel ruimte in beslag, en voor perceptie algemene principes Ik denk dat de zendercode voldoende zal zijn.

Daarnaast afstandsbediening(hoewel dit een breed scala aan toepassingen is), kunt u deze methode gebruiken voor sensoren voor het passeren van obstakels/objecten, en als u veel van dergelijke sensoren heeft en ze op dezelfde frequentie werken, zodat ze elkaar niet verlichten , kunt u verschillende pakketten verzenden.

Ik wens je veel succes! Ik ben blij met eventuele vragen/kritiek/suggesties;)

UPD. Ik besloot een foto van de afstandsbediening zelf te plaatsen, zodat je kunt zien dat het apparaat niet alleen zo werkt Chinese ontvangers die verbinding maken met een pc. De mogelijkheden zijn veel breder en veelzijdiger.

De beschouwde circuits zijn bedoeld voor het op afstand bedienen van belastingen via de telefoon draad lijn, via mobiele en radiocommunicatiekanalen, evenals controle verschillende apparaten met behulp van een infraroodkanaal.

Apparaat infrarood controle bestaat uit twee blokken: een zender en een ontvanger met een mogelijk bereik van maximaal zeven meter. Het afstandsbedieningscircuit is gebouwd met behulp van een PIC12F629-microcontroller, waarvan u de firmware kunt downloaden via de groene pijl erboven.


De basis van het IR-zendercircuit is de PIC12F629-microcontroller juiste werking het RC5-protocol vereist een stabiele draaggolffrequentie van 36 kHz, daarom maakt het ontwerp gebruik van een externe generator op radiocomponenten Q1, C1, C2.

Het gemoduleerde IR-signaal van de zender wordt naar de ontvangstmodule TSOP4836 gestuurd en door de PIC12F629 verwerkt in overeenstemming met de firmware. Afhankelijk van de knop die in het zendercircuit wordt ingedrukt, wordt de gewenste kanaal in de ontvanger. Relais schakelen de belasting op elk kanaal. Om de firmware van de microcontroller te flashen, gebruikt u .

Het is vrij eenvoudig om een ​​bijlage te maken voor vrijwel elke radio-oproep, zodat u deze kunt besturen huishoudelijke apparaten. Met deze aanpassing kunt u op afstand een huishoudelijk apparaat in- en uitschakelen waarop relaiscontacten in het stroomcircuit zijn geplaatst

Op deze pagina heb ik eenvoudige en gemakkelijk te herhalen schema's verzameld voor het op afstand bedienen van belastingen op microcontrollers, bijvoorbeeld verlichting of huishoudelijke apparaten. Firmware en andere extra bestanden de projecten vindt u hier.

De beschouwde circuits bieden bediening op afstand van de belasting. Beide ontwerpen beschikken over een programmeerfunctie, waardoor het mogelijk is om met een druk op een geprogrammeerde knop op afstand diverse belastingen aan of uit te zetten

Het schematische diagram van de zender wordt getoond in figuur 1. SW1 is een module van acht DIP-schakelaars. Het is op het bord geïnstalleerd en stelt u in staat een individuele code in te stellen: acht cijfers binair getal. De ontvanger moet op exact dezelfde code worden ingesteld, anders reageert hij niet op commando's van deze zender. In plaats van een blok DIP-schakelaars kunt u gewone draadjumpers aansluiten, maar ook hier moet de bedrading overeenkomen met de bedrading van de jumpers op de ontvangende eenheid

Het circuit wordt gevoed door een 5V-voeding. Digitale microassemblage CD4017 is een typische tellerdeler door 10. Het ontvangen signaal van de sensor volgt de microschakeling, in overeenstemming met het signaal dat op de uitgangen Q0-Q9 is ingesteld hoge staat In ons schakelvoorbeeld is een relais verbonden met uitgang Q1 via bipolaire transistor T2. Bijna elke belasting kan op een hoogspanningscircuit worden aangesloten - van een gewoon strijkijzer of magnetron tot een koelkast of airconditioning


De oplichtende status-LED geeft aan dat het signaal is ontvangen en dat het relais is geactiveerd. Zelfs elke afstandsbediening van een tv kan als afstandsbediening worden gebruikt. Verschijning gemonteerd apparaat op het broodbord:


In dit artikel zullen we het hebben over hoe u IR-belastingscontrole met uw eigen handen kunt monteren. Het stuurcircuit kan verschillende aangesloten belastingen besturen: verlichting, ventilatoren, huishoudelijke apparaten. IR-bediening wordt uitgevoerd met elke afstandsbediening, inclusief televisie.

In het eerste beschouwde schema wordt de ventilator of koeler bestuurd door een thermistorsignaal gedurende een gespecificeerd tijdsinterval. Ontwerp voor amateurradio heel eenvoudig, omdat het met slechts drie wordt gemonteerd bipolaire transistoren. Dergelijke besturingssystemen kunnen het meest worden gebruikt verschillende gebieden, waarbij koeling met een ventilator nodig is, bijvoorbeeld koeling moederbord computers, krachtig audioversterkers en voedingen en soortgelijke apparaten die tijdens bedrijf oververhit kunnen raken.

De meeste moderne elektronische consumentenapparatuur heeft een afstandsbediening die infraroodstraling (IR) gebruikt als methode voor het verzenden van informatie. Het IR-gegevensoverdrachtkanaal wordt gebruikt in sommige apparaten van het " "-systeem dat wij produceren.

Principe van IR-informatieoverdracht

Infrarood- of thermische straling wel elektromagnetische straling, die wordt uitgezonden door elk lichaam dat tot een bepaalde temperatuur wordt verwarmd. Het IR-bereik ligt in het gebied van het spectrum dat het dichtst bij zichtbaar licht ligt, in het langegolflengtegedeelte, en beslaat het gebied van ongeveer 750 nm tot 1000 micron. Infraroodstraling vormt het grootste deel van de straling van gloeilampen, ongeveer de helft van de straling van de zon. De optische eigenschappen van stoffen in infraroodstraling verschillen van hun eigenschappen in zichtbaar licht. Sommige brillen zijn bijvoorbeeld ondoorzichtig voor infraroodstralen, en paraffine is, in tegenstelling tot zichtbaar licht, transparant voor IR-straling en wordt gebruikt om IR-lenzen te maken. Om dit te registreren worden thermische en foto-elektrische ontvangers en speciale fotografische materialen gebruikt. De meest gebruikte bron van IR-stralen, naast verwarmde lichamen, zijn solid-state emitters - voor registratie worden IR-fotodiodes, forothesistoren of bolometers gebruikt. Enkele kenmerken infrarood straling maken het handig voor gebruik in apparaten voor gegevensoverdracht:

  • IR-solid-state-stralers (IR-LED's) zijn compact, vrijwel traagheidsvrij, zuinig en goedkoop.
  • IR-ontvangers zijn klein van formaat en bovendien goedkoop
  • IR-stralen leiden de menselijke aandacht niet af vanwege hun onzichtbaarheid
  • Ondanks de prevalentie van infraroodstralen en hoog niveau"achtergrond", er zijn weinig bronnen van gepulseerde ruis in het IR-gebied
  • IR-straling met laag vermogen heeft geen invloed op de menselijke gezondheid
  • IR-stralen worden goed gereflecteerd door de meeste materialen (muren, meubels)
  • IR-straling dringt niet door muren heen en interfereert niet met de werking van andere soortgelijke apparaten

Dit alles maakt het mogelijk om de IR-methode voor het verzenden van informatie op veel apparaten met succes te gebruiken. IR-zenders en -ontvangers worden gebruikt in consumenten- en industriële elektronica, computertechnologie, beveiligingssystemen, datatransmissiesystemen over lange afstanden via optische vezels. Laten we de werking van besturingssystemen voor consumentenelektronica (afstandsbedieningen) eens nader bekijken.

Wanneer de knop wordt ingedrukt, zendt het IR-bedieningspaneel een gecodeerd bericht uit en wordt de ontvanger geïnstalleerd beheerd apparaat, accepteert het en voert de vereiste acties uit. Om een ​​logische reeks te verzenden, genereert de afstandsbediening een pulspakket van IR-stralen, waarvan de informatie wordt gemoduleerd of gecodeerd door de duur of fase van de pulsen waaruit het pakket bestaat. De eerste besturingsapparaten maakten gebruik van reeksen korte pulsen, die elk een deel vertegenwoordigden nuttige informatie. Later begonnen ze echter de methode te gebruiken om een ​​constante frequentie met een logische volgorde te moduleren, waardoor geen enkele pulsen, maar pakketten pulsen met een bepaalde frequentie in de ruimte worden uitgezonden. De gegevens worden al gecodeerd verzonden op basis van de duur en positie van deze frequentiepakketten. De IR-ontvanger ontvangt deze reeks en demoduleert deze om een ​​envelop te produceren. Deze manier van zenden en ontvangen kenmerkt zich door een hoge ruisimmuniteit, omdat de ontvanger, afgestemd op de zendfrequentie, niet meer reageert op interferentie met een andere frequentie. Tegenwoordig wordt voor het ontvangen van een IR-signaal meestal een speciale chip gebruikt die een fotodetector combineert, een versterker met een banddoorlaatfilter afgestemd op een specifieke draaggolffrequentie, een versterker met AGC en een detector om de signaalomhullende te verkrijgen. Naast het elektrische filter bevat een dergelijke microschakeling een optisch filter dat is afgestemd op de frequentie van de ontvangen IR-straling, waardoor het mogelijk is maximaal voordeel te halen uit de LED-emitter, waarvan het stralingsspectrum een ​​kleine breedte heeft. Als gevolg hiervan technische oplossingen, werd het mogelijk om laag vermogen te gebruiken nuttig signaal tegen de achtergrond van IR-straling van andere bronnen, huishoudelijke apparaten, verwarmingsradiatoren, enz. Functie moderne apparaten IR-besturing is redelijk betrouwbaar en het bereik varieert van enkele meters tot 40 meter of meer, afhankelijk van de implementatieoptie en het interferentieniveau.

IR-signaalzender

De IR-signaalzender, IR-afstandsbediening, wordt meestal gevoed door een batterij of accu. Daarom moet het verbruik zo laag mogelijk zijn. Aan de andere kant moet het uitgezonden signaal een aanzienlijk vermogen garanderen lange afstand overdrachten. Dergelijke taken, die tegengesteld zijn in termen van energiekosten, worden met succes opgelost door korte pulsgecodeerde pakketten te verzenden. Tussen de transmissies door verbruikt de afstandsbediening vrijwel geen energie. De taak van de afstandsbediening is om de toetsenbordknoppen te pollen, informatie te coderen, te moduleren referentiefrequentie en het uitvoeren van een signaal naar de zender. Voor de vervaardiging van afstandsbedieningen worden verschillende gespecialiseerde microschakelingen geproduceerd, maar ook moderne microcontrollers kunnen voor deze doeleinden worden gebruikt. algemeen gebruik type AVR of PIC. De belangrijkste vereiste voor dergelijke microcontrollers is de aanwezigheid van een slaapmodus met een extreem laag verbruik en de mogelijkheid om in deze staat het indrukken van knoppen te detecteren.

De IR-signaalzender zendt onder invloed van excitatiestroom infraroodstralen uit. De stroom naar de emitter overschrijdt meestal de mogelijkheden van de microcontroller, dus om de vereiste stroom te genereren, wordt een eenvoudige op een enkele transistor geïnstalleerd. Om verliezen te verminderen, moet u bij het kiezen van een transistor letten op de huidige versterkingsfactor - β of h21. Hoe hoger deze coëfficiënt, hoe hoger de efficiëntie van het apparaat. Moderne zenders maken gebruik van veldeffect- of CMOS-transistoren, waarvan de efficiëntie bij de gebruikte frequenties als marginaal kan worden beschouwd.

Het bovenstaande schema is niet zonder nadelen, met name naarmate het laadniveau van de batterij afneemt, zal het stralingsvermogen afnemen, wat zal leiden tot een afname van het bereik. Om de afhankelijkheid van de voedingsspanning te verminderen, kunt u een eenvoudige stroomstabilisator gebruiken.

De meeste zenders werken op een frequentie van 30 - 50 kHz. Dit frequentiebereik is historisch gekozen bij het maken van de eerste soortgelijke apparaten. Het gebied met het laagste interferentieniveau werd geselecteerd. Bovendien zijn er beperkingen op element basis. Later, toen apparatuur met deze besturingsmethode werd gestandaardiseerd en gedistribueerd, werd het overschakelen naar andere frequenties onpraktisch.

Om het pulsvermogen van de zender, en daarmee het bereik, te vergroten, wijkt het fundamentele frequentiesignaal af van de meander en heeft het een dutycycle van 3 - 6. Het pulsvermogen wordt dus vergroot terwijl het gemiddelde vermogen behouden of zelfs verlaagd wordt. De LED-pulsstroom wordt geselecteerd op basis van de waarden op het typeplaatje en kan een of meer Ampère bereiken. De pulsstroom in de meeste IR-afstandsbedieningen bedraagt ​​niet meer dan 100 mA. Bovendien, aangezien de referentiefrequentie een lage duty-cycle heeft en de duur van het gecodeerde bericht niet groter is dan 20-30 ms, bedraagt ​​de gemiddelde stroom wanneer de knop wordt ingedrukt niet meer dan één milliampère. Bevordering puls stroom LED's worden geassocieerd met een verminderde efficiëntie en een kortere levensduur. Moderne infrarood-LED's hebben een rendement van 100-200 mW aan uitgestraalde energie bij een stroomsterkte van 50 mA. De toegestane gemiddelde stroom mag niet hoger zijn dan 10-20 mA. De LED-voeding moet beschikken over een RC-filter dat de impact vermindert impuls geluid om de microcontroller van stroom te voorzien. Het bereik van LED's dat wordt gebruikt voor de meeste IR-afstandsbedieningen huishoudelijke apparatuur heeft een maximum in de regio van 940 nm.

De duur van een enkel pakket met de referentiefrequentie voor betrouwbare ontvangst is niet minder dan 12-15 en niet meer dan 200 perioden. Bij het verzenden van een gecodeerd bericht vormt de zender aan het begin een preambule, die bestaat uit een of meer pakketten met de referentiefrequentie en waarmee de ontvanger de vereiste niveau winst en achtergrond. Gegevens in een gecodeerd bericht worden verzonden in de vorm van nullen en enen, die worden bepaald door de duur of fase (de afstand tussen aangrenzende pakketten). De totale duur van een gecodeerd bericht varieert meestal van enkele bits tot enkele tientallen bytes. De volgorde van voorkomen, het beginteken en de hoeveelheid gegevens worden bepaald door het formaat van het pakket.

IR-signaalontvanger

Een IR-signaalontvanger bevat meestal een IR-stralingsontvanger zelf en een microcontroller. De microcontroller decodeert het ontvangen signaal en voert de vereiste acties uit. Omdat de ontvanger in de meeste gevallen wordt geïnstalleerd in apparatuur met netvoeding, het verbruik is niet significant. De microcontroller voert meestal andere servicefuncties in het apparaat uit en is het centrale logische apparaat.

De IR-stralingsontvanger wordt meestal gemaakt in de vorm van een afzonderlijke geïntegreerde module, die zich achter het voorpaneel van de bestuurde apparatuur bevindt. Het voorpaneel heeft een venster dat transparant is voor IR-stralen. In de regel heeft zo'n microschakeling drie uitgangen: stroom, gemeenschappelijk en signaaluitgang. Fabrikanten elektronische componenten bieden IR-signaalontvangers aan verschillende soorten en uitvoering. Het principe van hun werking is echter vergelijkbaar. Binnenin zo'n microschakeling zit:

  • fotodetector - fotodiode
  • geïntegreerde versterker die het bruikbare signaal scheidt van het achtergrondniveau
  • limiter die het signaal naar een logisch niveau stuurt
  • banddoorlaatfilter afgestemd op de zenderfrequentie
  • demodulator - een detector die de omhullende van het nuttige signaal extraheert.

Het lichaam van zo'n ontvanger is gemaakt van een materiaal dat de rol speelt extra filter, die IR-stralen van een bepaalde golflengte uitzendt. Moderne geïntegreerde ontvangers maken het mogelijk om een ​​nuttig signaal te ontvangen op een achtergrondniveau dat tientallen keren hoger is dan dit niveau, en tegelijkertijd frequentieberichten te detecteren die slechts 4 tot 5 perioden hebben.

De stralingsontvanger moet worden gevoed met een RC-filter om de gevoeligheid te vergroten. De microcontroller produceert breedspectrumruis op de stroomleidingen, wat de werking van de ontvanger kan beïnvloeden.

IR-gegevensoverdrachtformaten

Diverse fabrikanten van huishoudelijke apparatuur gebruiken verschillende IR-bedieningspanelen in hun producten. Omdat de afstandsbediening alleen mag communiceren met specifiek apparaat, genereert het een gegevensreeks die uniek is voor het type apparatuur. De verzonden gegevens bevatten, naast het besturingscommando zelf, het apparaatadres, verificatiegegevens en andere service-informatie. Bovendien, diverse fabrikanten gebruik verschillende manieren vorming van datareeksen en verschillende methoden voor het verzenden van logische toestanden. De meest gebruikelijke methoden voor het coderen van informatiebits zijn het veranderen van de duur van de pauze tussen pakketten (intervalmethode) en het coderen door een combinatie van toestanden (biphase-methode). Er zijn echter manieren om stukjes informatie te coderen met duur, een combinatie van duur en pauze, enz. De meest voorkomende transmissieformaten.

In het juninummer van Railway Modeller. Er was een artikel over een schaalmodel 0 van Bodmin, gemaakt door Ray Green met behulp van een infrarood treinbedieningspaneel. Zijn mijn gebeden verhoord? Ik deed wat onderzoek en een paar dagen later bezocht ik Steve Leyland van MicroMotive in Clay Cross Derbyshire om hun infraroodsysteem te zien. Rode Pijl. Uiteraard ging ik naar huis met het infraroodsysteem: een bedieningspaneel en een zak met onderdelen die nodig zijn om twee locomotieven uit te rusten.

Afstandsbedieningbeheer

Details- (van links naar rechts)

  • Besturingseenheid
  • Reed-schakelaar
  • IR-ontvanger
  • Eindschakelaarweerstanden

(aandacht : De batterij en de connector zijn niet inbegrepen.)


Proefopstelling

Nadat ik de instructies meerdere keren had gelezen, heb ik een testopstelling in elkaar gezet om de onderdelen te testen voordat ze in de locomotief werden gemonteerd.



Voor het testen heb ik slechts één 3-volt motor gebruikt, maar alles werkte perfect.

Nu is het tijd om de locomotief en de tender in stukken te snijden - het meest godslasterlijke proces, waarbij je daadwerkelijk iets moet vernietigen dat jarenlang als schat is bewaard. Ik noemde het een chirurgische ingreep en probeerde het model zo min mogelijk schade toe te brengen.

Op de foto is de besturingseenheid bovenop de Jubilee Bachmann-tender te zien , om de maatverhouding duidelijk te zien.


Besturingseenheid op de tender

Het eerste wat ik deed was de stroomafnemers van de locomotief verwijderen omdat ik deze aan het uitrusten was met een nieuwe krachtbron (later besefte ik dat dit op het einde had moeten gebeuren, want als ik de besturingseenheid niet had kunnen installeren en batterij in de tender - deze actie zou tevergeefs zijn geweest. Dit is een les voor de toekomst).

Nou, voor mij bleek het geen gemakkelijke taak. Toen ik de Jubilee demonteerde, realiseerde ik me al snel dat deze niet over stroomafnemers als zodanig beschikte, maar in plaats daarvan twee afzonderlijke metalen chassis gebruikte met twee veren die op de motorcontacten drukten. Uhm.

Verdeeldchassis



Zoals op de foto te zien was, bevonden zich twee kleine veren in de gaten. Ze drukten tegen de contacten op het motorhuis. Ik besloot de veren te verwijderen (bewaar ze voor later), de contacten te isoleren en de twee draden van de locomotief naar de tender te leiden.

Geïsoleerd contacten


De rubberen isolatoren op de foto pasten niet, omdat ze te omvangrijk bleken te zijn en het moeilijk maakten om het chassis op zijn plaats te plaatsen. Ik heb ze vervangen door twee stukken isolatie verwijderd van de netwerkkabel.

Voeding voor motormontage


Ik heb de locomotief in elkaar gezet en eenvoudigweg op een 9 volt batterij aangesloten. Het eerste wat mij opviel (ik gebruikte een nieuwe standaard PP3-batterij) was dat er een duidelijk vermogensverlies was en dat de locomotief langzamer reed dan normaal. Ik heb de locomotief gedemonteerd en weer in elkaar gezet - het resultaat was hetzelfde, daarna heb ik hem op de rails gezet en hij reed op normale snelheid, misschien was het probleem dat ik een batterij van 9 volt had aangesloten in plaats van een batterij van 12 volt. Voor een lange trein kon dit een probleem zijn, maar omdat ik nog veel werk te doen had, stelde ik het controleren van de stroom uit tot later.

Nu het snijden, neem me niet kwalijk, de bediening van de tender.

Binnenin de tender bevinden zich drie metalen platen die als ballast dienen. De eerste stap was het vervangen van de middenplaat door een plastic exemplaar dat in het midden was gespleten, waardoor een gat ontstond waar een kabelbinder doorheen kon worden gevoerd om de gelaagde opstelling van alle componenten vast te zetten.


Gat voor kabelbinder


Ik plaatste de batterij en de besturingseenheid op de platen en plaatste ze op elkaar. Ziet er zo uit:

Gelaagde opstelling (let op het kleine stukje dat aan het uiteinde van de bundel is geplakt - dit is de montageplaat - zie hieronder)


Naast deze onderdelen moest ik ook een IR-ontvanger, een reedschakelaar, eindschakelaarweerstanden, een gelijkrichtbrug, connectoren enz. installeren. Heb ik voldoende ruimte?

Er waren geen problemen met de reedschakelaar. Mijn set bevatte een contactloze, magnetogestuurde reedschakelaar. IN normale positie de contacten zijn gesloten, waardoor het hele circuit compleet is. We plaatsen er een magneet op - de contacten gaan open, wat op zijn beurt het hele circuit opent. Uit de test bleek dat de magneet krachtig genoeg was om door de wanden van het tenderlichaam heen te werken.

Reed-schakelaar
Met behulp van dubbelzijdig plakband werd de schakelaar aan de achterwand van het onderste deel van de tenderromp bevestigd.


Om de stroom uit te schakelen, hoef ik alleen maar een magneet op de tender te plaatsen, zoals hieronder weergegeven.



Daarna moest ik een gelijkrichtbrug en weerstanden monteren (ik denk 120 Ohm) Grote behoefte deze niet, maar het bespaart de moeite van het demonteren van de tender elke keer als de batterij leeg is. Ik wilde de batterij kunnen opladen zonder de locomotief van de rails te halen.

Dus even later monteerde ik dit stuk (op de veroboard-montageplaat hierboven), installeerde alle onderdelen op het chassis van de tender en probeerde de bovenkant erop te zetten... Het werkte niet - de onderdelen pasten niet.

Ik ging door verschillende opties.

En toen herinnerde ik me het favoriete advies van mijn vader dat hij me altijd gaf als ik iets aan het repareren was: “Als een onderdeel niet op zijn plaats valt, draai het dan de andere kant op en probeer het opnieuw.”

Precies, papa, dank je. Ik heb geprobeerd alle onderdelen op het chassis te installeren in de hoop dat bovenste deel zal op zijn plaats vallen. Nu heb ik alle onderdelen in omgekeerde volgorde in de tenderbody geplaatst, wat veel gemakkelijker bleek te zijn.

Maar er was nog steeds niet genoeg ruimte, dus verwijderde ik de ballastplaten en hun houders, en plaatste ook de IR-ontvanger op het dak, maar op de rand van het midden.


Onderdelen ingesloten in het tenderlichaam


Op deze foto is te zien dat de IR-ontvanger (met epoxy) op het dak van de tender is gelijmd, maar naar de zijkant is verplaatst om voldoende ruimte over te laten voor de batterij.

Intern zicht


en nog een foto hierboven - ik moet de bovenkant nog schoonmaken omdat de lijm door de gaten naar buiten is gekomen.

Bovenaanzicht


Hoera Alles past - maar zal het ook werken?


Operationele tests

De foto toont een test van een stoomlocomotief, waaraan de tender nog niet is bevestigd. HET WERKTE DE EERSTE KEER. De camera kon geen opname maken snelle rotatie wielen
(Let op: de groene draden zijn voor het acculaadsysteem).

Tijdens het werken kwam ik een aantal problemen tegen. Maar ik ben best tevreden, want afgezien van de ervaring met het assembleren van verschillende schakelingen met diodes, heb ik geen kennis van elektronica.

Problemen die tijdens de werkzaamheden zijn ontstaan ​​en oplossingen vereisen:


1) Er is een duidelijk gebrek aan spanning (9V in plaats van 12V) - is dit voldoende om de trein te trekken?
2) Met het systeem kunt u 99 locomotieven programmeren. De fabrieksinstelling is geprogrammeerd op 27 en ik heb het niet kunnen herprogrammeren. We konden er niet meer dan 27 krijgen.

3) Na het lezen van de instructies kwam ik erachter dat ik ook een koellichaam voor de transistor nodig had. Ik heb een heel vaag idee van wat het is en waarvoor het dient, welke maat het heeft, waar ik het moet installeren en waar ik het kan krijgen.
4) U moet ook stroom verzamelende contacten installeren om de batterij op te laden. Maak ze op de wielen van de tender (wat makkelijker is), of bevestig ze aan het gedeelde chassis van de locomotief (wat efficiënter is)?
5) Bij de Jubilee-stoomlocomotief wordt het gesloten tenderlichaam gevormd door een gegoten deksel, waardoor het effect ontstaat dat het met kolen gevuld is. Hoe zit het met locomotieven waarvan de tenders leeg zijn of weinig kolen bevatten?
6) Zal constant opladen een slecht effect hebben op de batterij?
7) Eenmaal verbonden, zullen de locomotief en de tender voor altijd met elkaar verbonden zijn via draden. Vind ik hiervoor een geschikte microconnector?

Ik kwam ook tot de conclusie dat:
1) Dit ontwerp is niet geschikt voor stoomlocomotieven zonder tender.
2) Deze uitvoering is niet geschikt voor stoomlocomotieven waarvan de motor in de tender is ingebouwd.

Het begin of “Hoe het apparaat begon”

...Toen ik aankwam, zat Victoria op de bank naar de tv te staren. Het was een zware dag geweest, dus ze wilde niets doen. We keken een paar minuten naar een popserie, maar toen was het afgelopen en zette Vika de tv uit. De kamer werd donker. Buiten was de regen luidruchtig, waardoor het leek alsof het thuis ook koud was.
Vika stond op van de bank en begon op de tast naar de lichtschakelaar te zoeken. Om de een of andere reden hing de wandlamp niet bij de bank, maar aan een andere muur, en moest ik door de kamer stampen om het licht aan te doen. Toen ze hem eindelijk aanzette, werd de kamer gevuld met de warme gloed van een gloeilamp.
Naast mij, op een verkreukeld laken, lag de afstandsbediening van de tv. De onderste knoppen zijn ongemarkeerd en hoogstwaarschijnlijk ongebruikt. En toen viel het mij op interessante gedachte
- Vic, wil je dat ik het zo maak dat je je lamp kunt aanzetten met de afstandsbediening uit de doos? Er zijn zelfs extra knoppen...

Concept
Ons apparaat moet een signaal van een IR-afstandsbediening kunnen ontvangen, “zijn” knop van andere kunnen onderscheiden en de belasting kunnen besturen. Eerste en laatste punten simpel als een bijl. Maar de tweede is iets interessanter. Ik besloot mezelf niet te beperken tot een specifieke afstandsbediening (Waarom? - “Dat is niet interessant!”), maar een systeem te maken dat kan werken met verschillende modellen afstandsbedieningen van verschillende apparatuur. Als de IR-ontvanger het maar niet opgaf en het signaal vol vertrouwen opving.

We vangen het signaal op met behulp van een fotodetector. Bovendien is niet elke ontvanger geschikt: de draaggolffrequentie moet overeenkomen met de frequentie van de afstandsbediening. De draaggolffrequentie van de ontvanger wordt aangegeven in de markering: TSOP17xx - 17 is het ontvangermodel en xx is de frequentie in kilohertz. En de draaggolffrequentie van de afstandsbediening vindt u in de documentatie of op internet. In principe wordt het signaal ontvangen, zelfs als de frequenties niet overeenkomen, maar de gevoeligheid zal waardeloos zijn - je zult de afstandsbediening rechtstreeks tegen de ontvanger moeten porren.

Elk bedrijf dat produceert huishoudelijke apparaten, wordt gedwongen te voldoen aan normen bij de vervaardiging van hardware. En ook de modulatiefrequenties van de afstandsbedieningen zijn standaard. Maar de ontwikkelaars hebben het fantastisch gedaan op het gebied van de software: de verscheidenheid aan uitwisselingsprotocollen tussen de afstandsbediening en het apparaat is gewoonweg verbazingwekkend. Daarom moesten we een universeel algoritme bedenken dat zich niets aantrekt van het uitwisselingsprotocol. Het werkt als volgt:

Het apparaatgeheugen slaat op controlepunten. Voor elk dergelijk punt moet u de tijd en de uitgangsstatus van de IR-ontvanger registreren - 0 of 1.
Wanneer de MK een signaal van de afstandsbediening ontvangt, controleert hij achtereenvolgens elk punt. Als alle punten overeenkwamen, was dit precies de knop waarvoor het apparaat was geprogrammeerd. En als de uitvoer van de ontvanger op een gegeven moment niet overeenkomt met de sjabloon, reageert het apparaat op geen enkele manier.

Niemand heeft de bugs echter geannuleerd! Het is mogelijk dat het signaal afwijkt van het sjabloon, maar
op controlepunten zullen de waarden hetzelfde zijn. Het zal lukken vals positief. Het lijkt een zeldzame klootzak, en het is echt moeilijk om met hem te vechten! Maar eigenlijk is niet alles zo slecht (en op sommige plaatsen is het zelfs goed).

Ten eerste hebben we dat gedaan digitaal signaal, wat betekent dat impulsen met constante vertragingen (timings) komen en simpelweg niet ontstaan. Als de punten dus dicht genoeg zijn, hoef je niet bang te zijn dat er een impuls wordt gemist.

Ten tweede gaat in de meeste gevallen een klein geluid (lijkt meestal op zeldzame korte pulsen) door het bos - want als het het controlepunt niet rechtstreeks raakt, heeft het helemaal geen invloed op het systeem. Dit betekent dat we natuurlijke bescherming tegen lawaai hebben.

Het tweede type fouten (ook bekend als "Een commando missen") treedt op vanwege het feit dat het punt zich te dicht bij de rand van de puls bevindt (op de plaats waar het signaal aan de uitgang van de ontvanger van niveau verandert).
Stel je voor dat een paar microseconden na het controlepunt het signaal zou moeten veranderen van HOOG naar LAAG. Stel je nu voor dat de afstandsbediening iets sneller dan normaal een commando geeft (gebeurt vrij vaak). Het pulsfront is in de tijd verschoven en vindt nu VOOR het controlepunt plaats! De uitvoer van de ontvanger komt niet overeen met het patroon en het systeem wordt gereset.
Om dit te voorkomen, moet je controlepunten ver van de fronten plaatsen.

“Alles is cool”, zeg je, “maar waar kan ik controlepunten krijgen?” Ik zit hier dus al een hele tijd mee vast. Als gevolg hiervan heb ik besloten om de plaatsing van punten aan u toe te vertrouwen.
Het apparaat heeft jumper J1. Als het gesloten is wanneer het wordt ingeschakeld, verzendt het apparaat domweg via UART alles wat de IR-ontvanger uitvoert. Aan de andere kant van de draad worden deze gegevens ontvangen door mijn programma, dat pulsen van de TSOP op het computerscherm weergeeft. Het enige wat u hoeft te doen is uw muis gebruiken om controlepunten langs deze grafiek te verspreiden en deze in de EEPROM te flashen. Als het niet mogelijk is om UART te gebruiken, komt jumper J2 te hulp. Wanneer het gesloten is, voert het apparaat geen gegevens uit via UART, maar slaat deze op in EEPROM.


Schema
Simpel als de hel. Ik nam ATTiny2313 als controller. Frequentie 4 megahertz, uit kwarts of interne RC-keten.
De RX- en TX-lijnen voor communicatie en voeding zijn voorzien op een aparte connector. Daar wordt RESET weergegeven, zodat u de MK opnieuw kunt flashen zonder deze van het apparaat te verwijderen.
De uitgang van de fotodetector is verbonden met INT0 en is via een weerstand van 33k verbonden met de voeding. Als ze dat doen sterke interferentie, dan kun je daar een kleinere weerstand plaatsen, bijvoorbeeld 10k.
Op pinnen D4 en D5 bevinden zich jumpers. Jumper1 op D5 en Jumper2 op D4.

De voedingsmodule wordt aangesloten op pin D6. Bovendien nam ik de kleinste triac die ik had: BT131. De stroom is 1A - niet cool, maar het lichaam is niet te groot - TO92. Voor kleine ladingen is dat alles. De optocoupler heb ik op de MOC3023 gemaakt - deze heeft geen nuldoorgangssensor en is dus geschikt voor een soepele lastregeling (dit heb ik hier nooit geïmplementeerd).

Poort B is bijna volledig verbonden met de connector - je kunt daar een indicator of iets anders aansluiten. Ik gebruik dezelfde connector bij het flashen van de firmware van het apparaat. Pin B0 wordt bezet door de LED.

Het geheel wordt gevoed via LM70L05 en een diodebrug. Dat wil zeggen, bij de ingang kunt u zich aanmelden wisselspanning bijvoorbeeld van een transformator. Het belangrijkste is dat deze de 25 volt niet overschrijdt, anders gaat de stabilisator of de condensor dood.

De betaling verliep als volgt:


Ja, het wijkt iets af van het bord dat in het archief staat. Maar dit betekent niet dat ik voor mezelf een zeer geavanceerd bord heb gemaakt en je een demoversie heb gegeven :). Integendeel, mijn bord heeft een paar tekortkomingen die niet aanwezig zijn in de definitieve versie: ik heb de RESET-pin niet op de pin aangesloten en de LED hangt aan PB7. En dit is niet erg bevorderlijk voor in-circuit programmering.

Firmware
Het apparaat kan in twee modi werken. In het eerste geval - wanneer J2 gesloten is - zendt hij eenvoudigweg pulsen van de fotodetector naar de UART. Laten we ermee beginnen:

De UART werkt met een snelheid van 9600, d.w.z. bij een frequentie van 4 MHz schrijven we 25 naar het UBRR-register.

...we wachten tot het been van de fotodetector trilt. Zodra het valt (aanvankelijk hangt het aan de pull-up-weerstand), starten we de timer (TIMER/COUNTER1, die met 16 bits) en zetten we de INT0-interrupt aan voor elke ingangswijziging - elke logische verandering (ICS00 = 1 ). De timer tikt...we wachten.

De puls van de afstandsbediening eindigde - de output van de fotodetector schoot omhoog, de onderbreking werkte. Nu schrijven we de timerwaarde in het geheugen en resetten we de timer. U moet ook de schrijfwijzer verhogen om bij de volgende interrupt naar een andere geheugencel te kunnen schrijven.

Nog een puls... de uitvoer trilt... onderbreken... de timerwaarde naar het geheugen schrijven... de timer resetten... pointer + 2 (we schrijven twee bytes tegelijk)...

En dit zal doorgaan totdat duidelijk wordt dat het einde (van het RAM) nabij is. Of totdat het signaal eindigt. In ieder geval bevriezen we de timer en schakelen we interrupts uit. Vervolgens gooien we langzaam alles wat we hebben verzameld in de UART. Of, als J2 gesloten is, naar EEPROM.

Op het einde kun je het afstompen eindeloze lus en wacht op de reset - missie voltooid.
En de uitvoer zal een reeks getallen zijn. Elk daarvan is de tijd tussen veranderingen in de status van de TSOP-uitvoer. Als we weten waar deze reeks begon (en we weten het! Dit is de overgang van HOOG naar LAAG), kunnen we het hele plaatje herstellen:

Na de initialisatie zitten we en wachten tot TSOP beweegt. Zodra dit gebeurt, lezen we het eerste punt uit de EEPROM, en in een eenvoudige lus drukken we zoveel in als daar staat geschreven. In dit geval tellen we de tijd in pakketten van 32us. Als we uit de verdoving komen, controleren we wat er aan de uitgang van de ontvanger is.

Als de output niet samenvalt met wat we hadden verwacht, is het niet ons team. Je kunt rustig wachten op het einde van het signaal en helemaal opnieuw beginnen.

Als de uitvoer overeenkomt met onze verwachtingen, laden we het volgende punt en controleren dit. Dus totdat we een punt tegenkomen waarvan de tijd = 0. Dit betekent dat er geen punten meer zijn. Dit betekent dat het hele team samenviel en dat jij de last kunt dragen.

Het blijkt dus een eenvoudig algoritme te zijn. Maar hoe eenvoudiger, hoe betrouwbaarder!

Softina
In eerste instantie dacht ik erover om de sjabloon automatisch te laten onthouden. Dat wil zeggen, je sluit de jumper, steekt de afstandsbediening in TSOP en de MK zelf plaatst controlepunten en plaatst ze in de EEPROM. Toen werd duidelijk dat het idee krankzinnig was: een min of meer adequaat algoritme zou te complex blijken. Anders zal het niet universeel zijn.

Het tweede idee was een programma voor de computer waarin je zelf controlepunten kunt instellen. Technologisch niet erg geavanceerd, maar alles is beter dan deze zaak aan MK toe te vertrouwen.


We trainen het apparaat om te reageren op de gewenste knop op de afstandsbediening:

1) Sluit jumper J1.

2) Sluit UART aan. Als er geen manier is om deze aan te sluiten, sluit dan jumper J2. Vervolgens dumpt het apparaat gegevens in EEPROM.

3) Schakel de stroom in.

4) Als we besluiten UART te gebruiken, start dan de software en kijk naar de statusbalk (onder aan het venster). Er zou moeten staan ​​“ COM-poort open." Als het niet is geschreven, zoeken we naar een stijl in de verbinding en drukken we op de knop "Verbinden".

5) Neem de afstandsbediening en por de gewenste knop in TSOP. Zodra het apparaat merkt dat het signaal is aangekomen, gaat de LED branden. Onmiddellijk hierna begint het apparaat gegevens te verzenden via UART (of te schrijven naar EEPROM). Wanneer de overdracht voltooid is, gaat de LED uit.

6.1) Als we via UART werken, klik dan op de knop “Laden via UART”. En we zijn blij met de inscriptie "Loaded the chart..." in de statusbalk.

6.2) Werken we via EEPROM, dan lezen we met de programmeur het EEPROM-geheugen uit en slaan het op in *. bin-bestand. (Precies bak!). Klik vervolgens op de knop “Load.bin” in het programma en selecteer het bestand met de EEPROM.

7) We kijken naar de geladen grafiek - dit is een signaal van TSOP. Er is een schuifregelaar in de zijbalk waarmee u de schaal kunt wijzigen. Nu klikken we met de muis op het schema en stellen controlepunten in. Klik met de rechtermuisknop de punten worden verwijderd. Plaats ze alleen niet te dicht bij de voorkant. Het blijkt zoiets als dit:


8) Klik op “Save.bin” en sla de punten op. Vervolgens flashen we dit bestand in de EEPROM. Omdat we de tijd tussen twee punten in 7 bits proppen, is deze beperkt tot 4 ms. Als de tijd tussen twee punten deze waarde overschrijdt, zal het programma weigeren de punten in het bestand te plaatsen.

9) Verwijder de jumpers. Start het apparaat opnieuw op. Klaar!

Testvideo