Inhoudsopgave:

Signaalcode-communicators (RFM69): 7 stappen (met afbeeldingen)
Signaalcode-communicators (RFM69): 7 stappen (met afbeeldingen)

Video: Signaalcode-communicators (RFM69): 7 stappen (met afbeeldingen)

Video: Signaalcode-communicators (RFM69): 7 stappen (met afbeeldingen)
Video: #220 Wireless Communication for Arduino (Part 2) 2024, Juli-
Anonim
Signaal Code Communicators (RFM69)
Signaal Code Communicators (RFM69)
Signaal Code Communicators (RFM69)
Signaal Code Communicators (RFM69)

Deze "2-bit" (digitale) radiocommunicatoren bieden een middel om elkaar te signaleren (waar ze zijn; als ze klaar zijn …) wanneer ze aan de andere kant van een grote winkelketen winkelen; zelfs waar mobiele telefoons geen service of batterijlading hebben.

Er worden RFM69 915MHz radiomodules gebruikt. Het zijn zeer efficiënte, energiezuinige radio's die gebruikmaken van digitale pakketcommunicatie. Ze kunnen meer dan 100 meter communiceren met een laag stroomverbruik, op slechts 10 milliampère, en wel een halve kilometer of zelfs een halve mijl met ongeveer 120 ma.

De RFM69-radiomodules zijn veel efficiënter en effectiever over grotere afstanden dan een NRF24L01 of een RFM12.

Voor nog betrouwbaardere verbindingen op grotere afstand zou dit project net zo goed kunnen worden uitgevoerd met gebruikte LoRa-radiomodules. Er zijn een paar LoRa-apparaten (zoals een RFM95) die van vergelijkbare grootte en interface zijn. Maar ze kosten veel meer, wat voor mij onterecht was.

De eenheden ondersteunen een reeks digitale vraag- en antwoordcodes in 10-20 (locatie?)stijl (zie wiki/Ten-code https://en.wikipedia.org/wiki/Ten-code); evenals optionele morsecode. De units ondersteunen geen spraak (analoge) communicatie.

Ze kunnen ook worden gebruikt als piepers met 3 niveaus van aandachtsverzoeken, wanneer iemand herstelt of onder het huis werkt.

Buiten dat kunnen ze heel leuk zijn, vooral voor kinderen of studenten.

Stap 1: Verzamel componenten

Omdat de radiomodule geen 5v voedings- of signaalspanning aankan, moet u 3,3v MCU's gebruiken. Merk ook op dat ik de 'H' high power-versie van de radiomodules gebruik.

Deze lijst is om 2 eenheden te bouwen.

  • aantal 2 Pro Mini 3.3v Arduino MCU
  • aantal 2 RFM-69HCW 915MHz-modules
  • aantal 2 Case (was een batterijcompartiment)
  • aantal 2 Li-ion 3.7v 200+mah batterijen https://www.ebay.com/itm/311682151405 (7x20x30mm, ~Maximum bruikbare grootte 9x24x36mm)
  • aantal 4 rood-groene 5 mm gemeenschappelijke kathode tweekleurige LED's https://www.ebay.com/itm//112318970450 (bedrading en doorslagspanning is belangrijk)
  • aantal 4 6x6x7.5mm knopschakelaars
  • aantal 2 piëzo actieve zoemer
  • aantal 2 weerstanden van elk … 270 Olm, 1.5kOlm, ~5k
  • aantal 2 0,1 uf monolithische dop

Optioneel

  • aantal 2 3 mm witte (of blauwe) LED's
  • aantal 2 3,5 mm phono-aansluitingen
  • aantal 2 220uf vermogensfiltercondensator
  • ijsstokje

Andere benodigdheden die u mogelijk nodig heeft

30ga draad massief https://www.ebay.com/itm/142255037176, 26ga draad massief of 24ga gevlochten, voor gronden en +V

22ga draad massief, voor antenne

Diversen: soldeerbenodigdheden, tape, hete lijm, prototyping-tools.

USB naar TTL-converter

Optie hardware:

Een stereo-aansluiting om een oortje aan te sluiten, zodat u zeker geen inkomende communicatie mist. Er zou ook een draagbare luidsprekerversterker op kunnen worden aangesloten.

De kleine (3 mm) witte LED is optioneel. Ik heb het toegevoegd om als AAN-indicator te dienen. Het was eenvoudig toe te voegen omdat ik het over Btn1 heb aangesloten, dat wat aandrijfstroom krijgt van een interne weerstand (~ 37k). Met zo'n kleine aandrijving moet deze LED zeer efficiënt zijn. Een groene of misschien een blauwe LED kan worden gebruikt, maar niet geel of rood omdat hun spanningsval te laag is en het lijkt alsof de knop is ingedrukt. Ik zou geen groen gebruiken, omdat die kleur anders wordt gebruikt voor signaleringsinformatie.

De phono-aansluiting kan ook worden weggelaten. Dit toestel maakt niet veel lawaai, maar als je je zorgen maakt om de aandacht van anderen te trekken, dan biedt het de mogelijkheid om een oortelefoon te gebruiken. Als alternatief is een stuk plakband over het gat voor audio effectief.

Om alle metingen gemakkelijk en nauwkeurig te maken, hou ik echt van deze goedkope schuifmaat.

Stap 2: Bouw MCU-radio-subsysteem

MCU-radio-subsysteem bouwen
MCU-radio-subsysteem bouwen
MCU-radio-subsysteem bouwen
MCU-radio-subsysteem bouwen
MCU-radio-subsysteem bouwen
MCU-radio-subsysteem bouwen

Sluit korte draden aan op MCU-pinnen: 10, 11, 12, 13; een draad van gemiddelde lengte naar pin2.

Voeg lange (4-5 inch) toe aan de te gebruiken I/O-pinnen van de MCU (pinnen: 3-9). Ik gebruikte 30 AWG-meter en verschillende kleuren voor perifere typen. Deze draad met een kleine diameter is in staat om signalen van minder dan 100 milliampère te verwerken, maar is toch klein en buigzaam genoeg (en sterk aanbevolen) om een strakke montage te vergemakkelijken.

Sluit ook een massa en een Vcc-draden aan (ik gebruikte 26ga, dit zijn de blauwe op de foto's). Deze draad voert meer stroom, dus gebruik een grote meter om de spanningsval (en mogelijke ruissignaalstraling) te verminderen.

Verbind de MCU met het RFM-69-bord. Alles behalve de lange draden gaan ernaartoe.

Vouw de radiokaart naar beneden over de MCU-kaart. Er mogen geen korte broeken tussen de planken zitten. Als er een reëel potentieel van een korte periode lijkt te zijn, gebruik dan een tussenliggend stuk tape of plastic folie.

Voeg de antennedraad (22-24ga. 80 mm) toe aan de radiokaart, zoals te zien is op de foto.

Stap 3: Ontwikkelingstests

Ontwikkelingstests
Ontwikkelingstests
Ontwikkelingstests
Ontwikkelingstests

Voor uw implementatie van deze eenheden kunt u deze sectie overslaan. Voor de geïnteresseerden geeft dit wat meer informatie over hoe ik daar ben gekomen.

Een ¼ golflengte voor 915 MHz is 82 mm. De zelfstudie van Sparkfun.com stelt voor om 78 mm te gebruiken. Ik begrijp dat antennetechnologie zegt dat wanneer de antenne zich binnen een golflengte van de aarde bevindt, uw antenne zich zal gedragen alsof hij ~5% langer is dan hij is. Wat betreft 915Mhz, dat zou minder dan een voet zijn en normaal gesproken bedien je dit apparaat veel hoger vanaf de grond dan dat, ik verwerp deze lengte van 78 mm. Er zijn echter andere factoren die soortgelijke effecten kunnen veroorzaken en het verstandig achten om een golflengte van minder dan precies ¼ te gebruiken. Ik heb een compromis gesloten en heb mijn antennedraden tot 80 mm in totaal gesneden (inclusief het gedeelte dat door de PCB gaat). Met de juiste testapparatuur zou je je antennelengte beter kunnen optimaliseren voor je toestel, maar ik zou slechts kleine verbeteringen verwachten.

Na aanpassingen kreeg ik ongeveer 250m max bereik met enkele obstakels. Na pakweg 150 meter werd de oriëntatie en positie van de antenne steeds belangrijker.

Toen ik een antenneconfiguratie van het volledige dipooltype gebruikte (een verticaal 80 mm actief element tegenover een naar beneden wijzend 80 mm aarddraadelement) voor een eenheid kreeg ik, met vallen en opstaan, tot 400 meter met verschillende bomen en een huis ertussen, en solide 2-weg communicatie op ½ die afstand, ongeacht de positie of oriëntatie van de remote units.

Stap 4: Projectbox voorbereiden

Projectbox voorbereiden
Projectbox voorbereiden
Projectbox voorbereiden
Projectbox voorbereiden
Projectbox voorbereiden
Projectbox voorbereiden
Projectbox voorbereiden
Projectbox voorbereiden

De constructie van dit project met behulp van een kleine doos is behoorlijk uitdagend. Ik heb de ervaring om veel op maat gemaakte elektronische gadgets te bouwen voor thuis-, industrie- en ruimtevaartprojecten. Beginners gebruiken misschien liever een grotere containerdoos, waardoor de constructie veel eenvoudiger wordt. Het is tenslotte plezier waar we naar op zoek zijn, geen frustratie. Tussen haakjes, u kunt kleine verschillen opmerken in de foto's van de eenheden die ik heb gebouwd.

Maak een groot deel van de binnenkant van de doos schoon. Gebruik een beitel of X-acto mes om twee ribben aan de rechterkant en één aan de linkerkant af te snijden. (zie de foto van de binnenkant van een doos voor en na)

Verwarm het uiteinde van een X-acto of schilmesje (gedurende ongeveer 15 seconden met een aansteker) en snijd de ene grote paal in de behuizing af en laat de andere twee zakken tot ongeveer 1/8 inch. Toen ik de schakelaar eenmaal had gemonteerd, smolt ik die twee palen genoeg om de schakelaar op zijn plaats te houden.

Ik gebruikte plakband op de doos om de gaten te markeren. Zie foto's hierboven.

Om het boren van de gaten op peil te houden, heb ik eerst de plekken gemarkeerd met een pijlpunt, vervolgens alle locaties geboord met een 1/16e bit en vervolgens elk gat tot de gewenste maat geboord.

Boor de gaten voor de knoppen, audio en LED's in de behuizing. De twee gaten voor de hoofd-LED's, bovenaan, zijn 13/64” (5 mm) en bevinden zich 10 mm van de rand. De gaten voor de audio (piep-zoemer) en de optionele “Aan” led zijn 1/8” (3 mm). Ze zijn 10 mm van de bovenkant. De kleine led bevindt zich 7 mm van de zijkant. Het audiogat is van links naar rechts gecentreerd. De gaten voor de knopen, aan de zijkant, zijn 9/16” (3,5 mm). Een knop is 10 mm van de bovenkant, de andere 20 mm. Ik heb de binnenkant van de knoopsgaten met de hand afgeschuind met een 1/4 boor, om ervoor te zorgen dat de knoppen niet vast komen te zitten wanneer ze worden ingedrukt.

Als u een phono-aansluiting voor externe hoofdtelefoons of luidsprekers gebruikt, moet u het reeds bestaande gat aan de onderkant openen tot 15/64”. Het materiaal is hier nogal dik en als je het gewoon probeert uit te boren, krijg je een gat te dicht bij de rand. Boor dus eerst een gat van 1/16, met het midden ongeveer 16 inch van de rand van het bestaande gat. Vergroot dan dat gat met een 7/16 "bit. Snijd met een scherp mesje (~Xacto) materiaal weg zodat de twee aangrenzende gaten ongeveer één zijn. Gebruik een Dremel-spiraalrasp of een rattenstaartvijl zodat de gaten een goed rond gat vormen, waar een boor gemakkelijk in kan centreren. Het gat zou op dit punt bijna 15/64e moeten zijn. (Er is op dit moment een foto van het gat) Boor het nu uit met een 15/64 "bit. Het zou niet 'Verschrikkelijk' zijn als je een ¼ bit gebruikt.

Stap 5: Perifere I/O-componenten bevestigen

Perifere I/O-componenten aansluiten
Perifere I/O-componenten aansluiten
Perifere I/O-componenten aansluiten
Perifere I/O-componenten aansluiten
Perifere I/O-componenten aansluiten
Perifere I/O-componenten aansluiten

Zorg ervoor dat u bij het solderen binnen de grenzen van de behuizing niet per ongeluk een deel van het strijkijzer laat raken en zo een deel van de doos laat smelten, vooral langs de buitenrand.

de knoppen

Plak de knoppen vast met een kleine hoeveelheid lijm terwijl u ze positioneert. Hete lijm is OK, dunne lijm (zoals superlijm) kan in de knop terechtkomen, waardoor deze onbruikbaar wordt. Merk op dat ik één been van elk van de knoppen had verwijderd (redundante, ik maakte geen verbinding met); buig ze zodat ze niet te veel uitsteken; en verbond de twee onderste pinnen tussen de knoppen. De knoppen zijn zo geplaatst dat de inwendig verbonden poten horizontaal tegenover elkaar liggen.

Buig de draden van de 3 mm "aan/uit" LED zodat deze over Btn1 kan worden aangesloten, de kathode gaat naar de grondzijde. Dit is misschien wel het lastigste montageprobleem.

Markeer de zijkant van de LED's naast de rode anode. Snijd de twee anodes (buiten) af tot ongeveer ¼ inch. oriënteer ze met de gemarkeerde (rode) loodlijn. Laat de middelste kabel lang, ze worden later gebogen om verbinding te maken met de grondzijde van de knoppen. Zie foto's.

Bevestig de weerstanden.

Gebruik niet alleen de waardeweerstanden die ik deed voor de LED's. Ik kocht mijn LED's meer dan een jaar geleden, niet precies degene die hierboven worden vermeld. Aangezien de efficiëntie van LED's sterk varieert, moet u de weerstandswaarden testen voor gebruik met uw in de hand LED's. Kies weerstanden voor de gewenste helderheid met een stuurspanning van 3 tot 3,3 volt (bij voorkeur 3,2v). Voor een testvoedingsspanning kunt u twee batterijen van 1,5 V in serie gebruiken, of een hoge digitale uitgang van een Arduino-chip met 3,3 V-voeding. Controleer of u een goede echte Geel krijgt wanneer u zowel met de rode als met de groene elementen rijdt. Knip en soldeer de weerstanden aan de LED's, vergelijkbaar met zoals te zien op de foto's.

Op één apparaat gebruikte ik een ijslollystokje als afstandsstuk rond de twee hoofd-LED's, zodat ze niet zo veel uitstaken. Dit is strikt een persoonlijke voorkeur. Dit heeft wel een negatief neveneffect van het verminderen van de effectieve helderheid / kijkhoek van deze LED's.

Doe wat lijm langs de buitenrand van de zoemer en plak deze tussen de hoofd-LED's (+ naar rechts). Pas de positie aan zodat deze op één lijn ligt met het gat in de behuizing voordat deze op zijn plaats wordt bevestigd.

De aan/uit-schakelaar wordt op zijn plaats gehouden door de montagegaten om te smelten. Ik heb hiervoor de verwarmde punt op een kleine schroevendraaier gebruikt.

De moer van de phono-jack zit niet vast, dus gebruik hete lijm aan het andere uiteinde om hem vast te zetten.

Verbind aarde langs knoppen en LED's.

Maak een plus- en min-draad (~24ga. Massief) door de bijgesneden uiteinden te hameren zodat ze twee keer zo breed als dik zijn. Ze moeten dan gemakkelijk maar goed in de batterijconnector gaan. Als u een verbindingskabel heeft of kunt vinden die bedoeld is om met uw batterij te paren, gebruik die dan natuurlijk.

Sluit de aan/uit-schakelaar, phono-aansluiting, zoemer en stroomdraden aan. Raadpleeg het eerdere bedradingsschema.

Ik heb een kleine condensator over de phono-aansluitingen. Dit kan worden weggelaten omdat het vrij strak zit. Het doel is om een lage brom in de output te voorkomen.

Nadat de knoppen (evenals de aan/uit-schakelaar en phono-aansluiting) volledig zijn bedraad en gesoldeerd, lijmt u ze op hun plaats zodat ze zelfs na intensief gebruik niet zullen wijken.

Stap 6: Final complete montage

Definitieve volledige montage
Definitieve volledige montage
Definitieve volledige montage
Definitieve volledige montage
Definitieve volledige montage
Definitieve volledige montage

Het is tijd om het MCU-radio-subsysteem aan te sluiten op de behuizing met de I/O-apparaten.

Sluit het MCU-Radio-subsysteem aan.

Knip de draden indien nodig bij, laat er net genoeg speling in zodat het subsysteem voldoende uit de weg kan zitten om de andere uiteinden van de draden te kunnen solderen.

Zorg ervoor dat u de draden op de hoofd-LED aansluit op de juiste rood/groen en vooral de links/rechts-relatie correct. De LED's zijn omgekeerd van links naar rechts terwijl u in de behuizing kijkt hoe u de communicator vasthoudt en gebruikt. (tenzij u van plan bent de eenheden te gebruiken met de andere kant naar u toe gericht, zoals een linkshandig persoon zou kunnen doen).

Verplaats het MCU-Radio-subsysteem op zijn plaats en druk het naar beneden, waarbij u de draden indien nodig vouwt, in de behuizing; controleren of er geen korte broek wordt gemaakt. Leg er indien nodig een stuk isolatietape onder.

U kunt deze unit herprogrammeren terwijl deze is gemonteerd, zoals te zien is in de volgende sectie, met een tijdelijk aangesloten FDDI via een korte kabel. Zorg ervoor dat het Vcc-niveau van de USB-downloadkabel 3.3v is, niet 5v!

Bevestig de batterij, schuif de achterkant erop en test hem uit, aangezien je er al software in hebt gedownload. Zorg ervoor dat de batterij niet op de resetknop van het MCU-bord drukt.

Trouwens, een batterij van 300 mAh moet ongeveer 12 uur meegaan voordat hij moet worden opgeladen.

Stap 7: De software- en apparaatfuncties en bediening

De software- en apparaatfuncties en bediening
De software- en apparaatfuncties en bediening
De software- en apparaatfuncties en bediening
De software- en apparaatfuncties en bediening

Het andere grote deel van dit project, waarvan de werking afhankelijk is, is de softwareprogrammering. Maar ik heb dat allemaal uitgewerkt, dus dat hoeft niet.

Instructies voor het downloaden van een schets naar een Pro mini Arduino kunt u eenvoudig elders vinden. Stel je Arduino IDE in op het juiste apparaat en de juiste werkfrequentie, anders krijg je slecht geluid en misschien wangedrag. Zorg ervoor dat u een USB-TTL-converter met 3.3v (niet 5v) gebruikt. Het apparaat zelf moet worden uitgeschakeld. Je kunt zien dat ik een haakse header op het uiteinde van de downloadkabel heb geplaatst en deze vervolgens in de bijbehorende gaten op het MCU-bord heb gestoken en het apparaat eraan heb laten hangen, terwijl ik een goed genoeg, maar tijdelijke verbinding handhaaf.

U moet ook de bibliotheek voor de RMF69 installeren; zie "De RFM69-bibliotheek installeren" onderaan deze pagina.

Bewerk op de juiste manier (zie het codesegment hieronder), compileer en download de bijgevoegde Two_bit_Comm-schets.

// !!!! Adressen voor dit knooppunt. DRAAI DE ID'S OM VOOR DE TWEEDE KNOOP !!!!

#define MYNODEID 1 // My node ID (0 tot 255) #define TONODEID 2 // Destination node ID (0 tot 254, 255 = broadcast)

De software maakt gebruik van de 'H'-versie met hoog vermogen van de radiomodules, door in eerste instantie een gemiddeld vermogen te gebruiken, en dan kan het geen bevestiging terugkrijgen en probeert het met maximaal vermogen. Ik weet het niet, maar ik zou verwachten dat deze operatie geen probleem zou opleveren als men de niet-hoogvermogenversie van radio's zou gebruiken.

Operationele documentatie

Initialisatie, bij opstarten:

Wanneer een eenheid opnieuw wordt opgestart, initialiseert deze alle hardware en software en stuurt de instellingen voor modus en optie naar de andere eenheid, zodat ze synchroon blijven. Er is een enkele korte piep en als deze eerste communicatie slaagt, klinkt er nog een piep en gaat er een groen lampje branden. Als op dit punt de communicatie mislukt, is er geen tweede pieptoon en gaat er een rood lampje branden. Als de communicatie mislukt, is de andere eenheid waarschijnlijk buiten bereik, uitgeschakeld of leeg. Meerdere pogingen en een verhoging van het maximale zendvermogen worden geprobeerd voordat de storing wordt geaccepteerd.

Modus 1 – 10-20 Type Comm

  • Hallo
  • Hulp nodig
  • HELPEN!
  • Gedaan ? Klaar om te gaan ?
  • Waar ben je ?
  • Bel mij.
  • HERHAAL a.u.b.

Passende responsconventies worden ook gedefinieerd. Inclusief "Gebiedstype" en "Sectietype" reacties op "Waar ben je?" verzoeken.

Houd er rekening mee dat u geduld moet hebben wanneer het apparaat een reactie weergeeft, aangezien het indrukken van de knop gedurende die tijd wordt genegeerd.

Mode 2 – staat een vorm van morsecodecommunicatie toe

Zowel de stijl met één toets als met twee toetsen wordt ondersteund.

Het bijgevoegde document "Two_bit_Comm_user_Manual" behandelt de volledige details van de functionele werking die door de software wordt ondersteund.

Aanbevolen: