HCC Forth-gg
14 mei 2003

Draadloze RF-datacommunicatie

Willem Ouwerkerk



Stel je hebt een satelliet gebouwd die iets gaat meten in de buitenste lagen van onze atmosfeer. Hoe krijg je die metingen dan op je bureaucomputer?
Antwoord: Je gebruikt een RF-zender in de satelliet en een RF-ontvanger naast je computer om de data op te vangen.
Nu is RF-datacommunicatie ook handig als je geen satelliet gebouwd hebt. Je kan het gebruiken om andere draadloze data-loggers te bouwen, voor afstandbesturing, robots of een draadloos netwerk, etc.
Het hier beschreven voorbeeld, een draadloze ADC, is opgebouwd met zeer weinig componenten. De zender en de ontvanger zijn als set te koop voor € 14,- à € 18,- (o.a. bij Velleman Componenten, ja die van de bouwkits).

De zender

De zender bestaat uit drie componenten: een ADC, een microcontroller en 433 MHz RF-zender.
De ADC is opgebouwd met de in de microcontroller opgenomen comparator (zie Vijgeblaadje 15). De AT89C2051 fungeert als verwerkingseenheid en de zender is een 433 MHz kant-en-klaar module. Antenne toevoegen en het werkt.
De UART (RS232) codeert de data van de ADC voor de zender. De standaard baudrate van de RS232 bibliotheek file is 2400 baud, maar deze RF-modules kunnen tot 9600 baud aan.

De ontvanger

De onderdelen van deze unit zijn: een 433 MHz ontvangstmodule, een microcontroller en 8-leds die als display fungeren.
De RF-ontvanger is ook een kant-en-klaar module. De microcontroller kan het signaal van deze module rechtstreeks lezen. De UART decodeert het signaal weer en de ontvangen data verschijnt op het display (de 8 leds).

Hardware

De proef is opgebouwd op twee AT51 printjes. Zowel zender als ontvanger moeten van een sprietantenne van ongeveer 18cm (1/4 golflengte) voorzien worden. Door goed gebruik te maken van de in de AT89C2051 aanwezige hardware kan het aantal componenten heel klein blijven. Een lichtgevoelige weerstand (LDR) in de zender fungeert als sensor.

Software

De communicatie tussen de beide controllers is voorzien van een eenvoudige softwarematige beveiliging: een SLEUTEL ($A5) gaat vooraf aan elk te versturen databyte.
De ontvanger accepteert data pas nadat een SLEUTEL ontvangen is. Storing levert dan bijna geen problemen meer op. Verdere voorzieningen als een checksum worden aan de fantasie van de lezer overgelaten.
De beschreven software is bruikbaar met ByteForth 1.70pc. Gebruikers van de ATS-bord versie moeten de te laden files in een scriptfile plaatsen.



b4draadloos.frt (ByteForth source)
 \ ----- 433 MHz  RF-zender -----

 89C2051  TARGET        \ Selecteer chip
 12 TO CRYSTAL          \ Demo op 12 MHz

 NEEDS RS232.FRT        \ Laad bibliotheken
 NEEDS MS.FRT
 NEEDS CP-ADC.FRT

 $A5 CONSTANT SLEUTEL

 : VERZEND  ( u -- )
    SLEUTEL EMIT  EMIT
    ;

 : ZENDER  ( -- )
    SETUP RS232-SETUP  \ Setup ByteForth
    BEGIN
        ADC  VERZEND
    AGAIN
    ;

 ' ZENDER              \ Installeer
 RESET-VEC SET-VECTOR  \ hoofdprogramma


\ ----- 433 MHz  RF-ontvanger -----

 89C2051  TARGET      \ Selecteer chip
 12 TO CRYSTAL        \ Demo op 12 MHz

 NEEDS RS232.FRT      \ Laad bibliotheken
 NEEDS MS.FRT

 $90 SFR LEDS         \ Leds op poort-1

 $A5 CONSTANT SLEUTEL

 : TOON  ( u -- )
    INVERT            \ De leds zijn
    TO LEDS           \ laag actief
    ;

 : ONTVANG  ( -- )
    KEY SLEUTEL = IF  \ Goede sleutel ?
        KEY TOON      \ Ja, ontvang data
    ELSE
        RS232-SETUP   \ Nee, herstel verb.
    THEN
    ;

 : ONTVANGER  ( -- )
    SETUP RS232-SETUP \ Setup ByteForth
    255 TOON  250 MS  \ Toon opstarten
      0 TOON  250 MS
    BEGIN  ONTVANG AGAIN
    ;

 ' ONTVANGER           \ Installeer
 RESET-VEC SET-VECTOR  \ hoofdprogramma

egeltje top