Modifications

Sauter à la navigation Sauter à la recherche
2 382 octets ajoutés ,  27 février 2022 à 21:41
Ligne 8 : Ligne 8 :  
As the kit contains only one micro controller (the Feather M0 Express), we will use the very common '''Arduino UNO''' (not included) as micro controller for the '''Data Receiver'''.
 
As the kit contains only one micro controller (the Feather M0 Express), we will use the very common '''Arduino UNO''' (not included) as micro controller for the '''Data Receiver'''.
   −
In this simple exemple:
+
In this simple example:
 
# The '''Data Emitter''' will send a message and wait 500ms for a response.
 
# The '''Data Emitter''' will send a message and wait 500ms for a response.
 
# The '''Data Receiver''' will receive the message.
 
# The '''Data Receiver''' will receive the message.
Ligne 47 : Ligne 47 :     
== About Antennas ==
 
== About Antennas ==
<div style="margin: 15px 0; background: rgba(255,204,102,.3); display: block; padding: 15px 15px 15px 15px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; border: 1px solid #ff9900;" >The antenna design is a key feature to ensure a reliable communication over a long distance.</div>
  −
   
{{ambox-stop|text=The RFM69HCW will not work without antenna, even at 1m distance of each other.}}
 
{{ambox-stop|text=The RFM69HCW will not work without antenna, even at 1m distance of each other.}}
   Ligne 59 : Ligne 57 :  
* a {{pl|1419|PCB SMA Connector}} where you could plus various kind of antenna.
 
* a {{pl|1419|PCB SMA Connector}} where you could plus various kind of antenna.
   −
A µFl connector (also named uFl) is locking to this:
+
<div style="margin: 15px 0; background: rgba(255,204,102,.3); display: block; padding: 15px 15px 15px 15px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; border: 1px solid #ff9900;" >The antenna design is a key feature to ensure a reliable communication over a long distance.</div>
 +
 
 +
A µFl connector (also named uFl) is looking to this:
    
[[Fichier:ENG-CANSAT-RFM69HCW-TEST-uFL-connector.jpg|150px]]   
 
[[Fichier:ENG-CANSAT-RFM69HCW-TEST-uFL-connector.jpg|150px]]   
   −
A PCB SMA Connector is locking to this:
+
A PCB SMA Connector is looking to this:
    
[[Fichier:ENG-CANSAT-RFM69HCW-TEST-SMA-connector.jpg|150px]]
 
[[Fichier:ENG-CANSAT-RFM69HCW-TEST-SMA-connector.jpg|150px]]
   −
== Frequency & Encryption ==
+
== Frequency, Encryption & Power ==
 
To make the module communicating together:
 
To make the module communicating together:
 
* The module must be identical. You cannot mix them.
 
* The module must be identical. You cannot mix them.
Ligne 73 : Ligne 73 :  
* The encryption key must be identical.  
 
* The encryption key must be identical.  
   −
{{underline|Tuned frequency:}}
+
=== Tuned frequency ===
 
The tuned frequency is declared with a line like this:
 
The tuned frequency is declared with a line like this:
 
<syntaxhighlight lang="c">#define RF69_FREQ 433.0
 
<syntaxhighlight lang="c">#define RF69_FREQ 433.0
Ligne 85 : Ligne 85 :  
where the tuned frequency is declared with the constant '''RF69_FREQ'''.
 
where the tuned frequency is declared with the constant '''RF69_FREQ'''.
   −
== Encyption Key ==
+
{{ambox-stop|text=Use the frequency assigned to your team by the instructor.}}
 +
 
 +
In packet radio, several teams can share the same frequency if they use distinct encryption key.
 +
 
 +
Like TCP (from TCP/IP network), the packet radio is able to detect packet colission try to recover from it.
 +
 
 +
However, more teams share the same frequency, more collision we have.
 +
 
 +
=== Encyption Key ===
 
The module encrypts the data with AES-128.
 
The module encrypts the data with AES-128.
    
The encryption key is defined into the following lines.
 
The encryption key is defined into the following lines.
   −
<syntaxhighlight lang="c"> // The encryption key has to be the same as the one in the server
+
<syntaxhighlight lang="c">// The encryption key has to be the same as the one in the server
  uint8_t key[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+
uint8_t key[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
                    0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
+
                  0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
 
rf69.setEncryptionKey(key);</syntaxhighlight>
 
rf69.setEncryptionKey(key);</syntaxhighlight>
 +
 +
{{ambox-stop|text=It is highly recommended for each team to define its own encryption key.}}
 +
 +
'''When all the teams do use the same frequency and the same key''' then they will all receives the messages from the other teams sending messages. Your messages will also been received by all the other teams.
 +
 +
=== Transmission Power ===
 +
The transmission power is set with the function call.
 +
 +
The range of power is 14 to 20 (in dBi). Lowest values requires less power. Means higher battery life but also smaller transmission distance.
 +
 +
<syntaxhighlight lang="c">rf69.setTxPower(20, true);</syntaxhighlight>
 +
 +
Notice: the second parameter concerns the HCW radio modules and indicates that extra amplifier is present.
    
== The Emitter ==
 
== The Emitter ==
Ligne 107 : Ligne 128 :  
=== Wiring ===
 
=== Wiring ===
   −
[[Fichier:ENG-CANSAT-RFM69HCW-Wiring-Feather.jpg|640px]]
+
[[Fichier:ENG-CANSAT-RFM69HCW-Wiring-Feather-v2.jpg|480px]]
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Ligne 253 : Ligne 274 :     
=== Wiring ===
 
=== Wiring ===
[[Fichier:ENG-CANSAT-RFM69HCW-Wiring-Arduino.jpg|640px]]
+
[[Fichier:ENG-CANSAT-RFM69HCW-Wiring-Arduino.jpg|480px]]
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Ligne 343 : Ligne 364 :     
The Serial Console also displays the RSSI which indicates the quality of the radio signal (-15 is the best signal we could have, -60 as displayed on the screen is a really bad signal).
 
The Serial Console also displays the RSSI which indicates the quality of the radio signal (-15 is the best signal we could have, -60 as displayed on the screen is a really bad signal).
 +
 +
== More info ==
 +
=== Understanding sketch content ===
 +
Reading the sketch would help to understand how the code works.
 +
 +
Those Adafruit examples codes are also documented on the on [https://learn.adafruit.com/adafruit-rfm69hcw-and-rfm96-rfm95-rfm98-lora-packet-padio-breakouts/using-the-rfm69-radio#setup-9-36 this page of the ''Adafruit Learning System''].
 +
 +
=== Addressed & Reliable Communication ===
 +
More complex setup could used addressed communication and '''Reliable Datagram'''.
 +
 +
* '''Addressed communication''' allows you to associate a unique identifier (an integer value) to each RFM69 module. This allows detect the sender when receiving a message on the frequency and to act properly.
 +
* '''Reliable Datagram''' do a lot of management with connection to make sure that the packets were received. You do not have have to send the acknowledgement in your code, the Reliable Datagram take care of it for you.
 +
 +
The '''RadioHead''' library contains the examples {{fname|RadioHead69_AddrDemo_RX}} and {{fname|RadioHead69_AddrDemo_TX}} that demonstrate the adressed and reliable communication. See the [https://learn.adafruit.com/adafruit-rfm69hcw-and-rfm96-rfm95-rfm98-lora-packet-padio-breakouts/using-the-rfm69-radio#addressed-rx-and-tx-demo-9-50 Addressed RX and TX Demo]  on the Adafruit's learning system.
    
{{ENG-CANSAT-TRAILER}}
 
{{ENG-CANSAT-TRAILER}}
29 836

modifications

Menu de navigation