Jeg har laget en del sensorer for FrSky telemetri og tenkte dele litt informasjon i denne tråden.
FrSky sine sensorer er ikke de mest presise, og det finnes to versjoner av de fleste; en for "D"-mottagere og en for "X"-mottagere (SPort).
Sensorer for "D" varianten er egentlig en utdøende rase, selv om mottagerene ikke er det.
Løsningen var å lage mine egne, som støtter både "D" og "X" mottagere.
Alle er basert på Arduino Pro Mini 16 MHz/5V. Jeg valgte en variant som har Gnd, A6 og A7 i den ene enden. Her loddet jeg pinnene for diverse tilkoblinger. I den endelige versjonen ble det en 3-pins og to 4-pins rekker. A6 tjener som 5V, så jeg loddet en ledning mellom 5V punktet og A6. A7 brukes som signal. Siden mottagerene helst skal ha 3.3V på telemetriinngangen, loddet jeg en 5,6k motstand mellom A7 og D12, som er pinnen hvor signalet egentlig genereres.
De tre første pinnene i rad to er bare koblet parallelt med de tre første for å kunne koble sammen flere SPort sensorer. Den fjerde pinnen kan brukes for å motta data fra andre "D"-sensorer, f.eks. telemetri fra en MultiWii kontroller. Denne er fysisk loddet til D10, mens signalet egentlig skal inn på D7. Derfor lodder jeg en ledning mellom D7 og D10.
Den siste raden er for tilkobling til I2C bussen, og har ledningsforbindelse til A4 og A5, i tillegg til 5V og Gnd.
Jeg startet ut med en sensor som støtter batterispenning, strøm, forbruk (mAh), turtall og to temperaturer. Denne ble basert på Hyperion sine sensorer for E-Meter. Disse er presise og rimelige (utgående produkt). Det finnes tre varianter, MDU, LDU og RDU. MDU er liten og har innebygget turtallsensing (børsteløs), LDU tåler mer spenning og strøm. RDU har i tillegg innebygget datalagring, temperatur- (x1) og høydemåling. LDU og RDU benytter eksterne sensorer for temperaturer og turtall. Koden støtter alle tre variantene, og man kan kalibrere disse ved å jorde noen av de ledige pinnene på Pro Mini:
Pinne 2: V-
Pinne 3: V+
Pinne 4: A-
Pinne 5: A+
Pinne 9: Lagre
MDU/LDU/RDU kobles til serieporten. De opererer også på 3.3V, så jeg koblet Tx signalet via en spenningdeler med 1.8k/3.3k motstander.
Koden sjekker i oppstarten hvilken type sensor og mottager som er tilkoblet. Resultatet vises via LED med morse; M, L eller R for sensor og X eller D for mottager.
Det finnes tre varianter av koden:
1. Kun MDU/LDU/RDU
2. IMU koblet til I2C for variometer og G-krefter
3. "D" data vidersending
MDU/LDU/RDU:
http://www.allerc.com/hyperion-parts-and-accessories-hyperion-electrical-equipment-c-79_217.html?page=0
Pro Mini:
http://www.ebay.com/itm/Pro-Mini-Atmega328-5V-16M-Micro-controller-Board-for-Arduino-Compatible-Nano-new-/221481619677?hash=item33915550dd
Kode:
LDUAdapter_032016.zip
LDUAdapterIMUDInput_032016.zip
Acc- og fuelsensor tillegg til FrSkySportTelemetry biblioteket:
FrSkySportSensorAcc.zip
FrSkySportSensorFuel.zip
Spenningsdeler for Tx.
Tx ledningen kobles til midtpunktet.
I2C kabling til A4/A5.
Ledning fra Vcc til A6 (+5V), SMD motstand mellom D12 og A7 (signal) og ledning fra A7 til A10 (hvis "D"-data input skal brukes).
MDU.
IMU (vario + Acc) med 4-leder for tilkobling til I2C pinnene.
FrSky sine sensorer er ikke de mest presise, og det finnes to versjoner av de fleste; en for "D"-mottagere og en for "X"-mottagere (SPort).
Sensorer for "D" varianten er egentlig en utdøende rase, selv om mottagerene ikke er det.
Løsningen var å lage mine egne, som støtter både "D" og "X" mottagere.
Alle er basert på Arduino Pro Mini 16 MHz/5V. Jeg valgte en variant som har Gnd, A6 og A7 i den ene enden. Her loddet jeg pinnene for diverse tilkoblinger. I den endelige versjonen ble det en 3-pins og to 4-pins rekker. A6 tjener som 5V, så jeg loddet en ledning mellom 5V punktet og A6. A7 brukes som signal. Siden mottagerene helst skal ha 3.3V på telemetriinngangen, loddet jeg en 5,6k motstand mellom A7 og D12, som er pinnen hvor signalet egentlig genereres.
De tre første pinnene i rad to er bare koblet parallelt med de tre første for å kunne koble sammen flere SPort sensorer. Den fjerde pinnen kan brukes for å motta data fra andre "D"-sensorer, f.eks. telemetri fra en MultiWii kontroller. Denne er fysisk loddet til D10, mens signalet egentlig skal inn på D7. Derfor lodder jeg en ledning mellom D7 og D10.
Den siste raden er for tilkobling til I2C bussen, og har ledningsforbindelse til A4 og A5, i tillegg til 5V og Gnd.
Jeg startet ut med en sensor som støtter batterispenning, strøm, forbruk (mAh), turtall og to temperaturer. Denne ble basert på Hyperion sine sensorer for E-Meter. Disse er presise og rimelige (utgående produkt). Det finnes tre varianter, MDU, LDU og RDU. MDU er liten og har innebygget turtallsensing (børsteløs), LDU tåler mer spenning og strøm. RDU har i tillegg innebygget datalagring, temperatur- (x1) og høydemåling. LDU og RDU benytter eksterne sensorer for temperaturer og turtall. Koden støtter alle tre variantene, og man kan kalibrere disse ved å jorde noen av de ledige pinnene på Pro Mini:
Pinne 2: V-
Pinne 3: V+
Pinne 4: A-
Pinne 5: A+
Pinne 9: Lagre
MDU/LDU/RDU kobles til serieporten. De opererer også på 3.3V, så jeg koblet Tx signalet via en spenningdeler med 1.8k/3.3k motstander.
Koden sjekker i oppstarten hvilken type sensor og mottager som er tilkoblet. Resultatet vises via LED med morse; M, L eller R for sensor og X eller D for mottager.
Det finnes tre varianter av koden:
1. Kun MDU/LDU/RDU
2. IMU koblet til I2C for variometer og G-krefter
3. "D" data vidersending
MDU/LDU/RDU:
http://www.allerc.com/hyperion-parts-and-accessories-hyperion-electrical-equipment-c-79_217.html?page=0
Pro Mini:
http://www.ebay.com/itm/Pro-Mini-Atmega328-5V-16M-Micro-controller-Board-for-Arduino-Compatible-Nano-new-/221481619677?hash=item33915550dd
Kode:
LDUAdapter_032016.zip
LDUAdapterIMUDInput_032016.zip
Acc- og fuelsensor tillegg til FrSkySportTelemetry biblioteket:
FrSkySportSensorAcc.zip
FrSkySportSensorFuel.zip
Spenningsdeler for Tx.
Tx ledningen kobles til midtpunktet.
I2C kabling til A4/A5.
Ledning fra Vcc til A6 (+5V), SMD motstand mellom D12 og A7 (signal) og ledning fra A7 til A10 (hvis "D"-data input skal brukes).
MDU.
IMU (vario + Acc) med 4-leder for tilkobling til I2C pinnene.
Comment