Hitec Optic6 Modifica a 8 canali (Compatibile con Eclipse)

Prendendo in considerazione l’originale vediamo che la trasmissione ha inizio con un impulso che definiamo “impulso di start”, dopo un certo tempo, che varia da 1mS a 2mS si ha un secondo impulso, dopo un altro tempo il terzo, e così via. Il tempo che intercorre tra gli impulsi determina la posizione del servo, quindi con pausa di 1mS il servo è tutto da un lato, con pausa da 2mS il servo si trova sul lato opposto. Essendo la radio una 6 canali avremo 6+1 impulso poi una pausa che serve a riempire il frame in modo da renderlo a lunghezza fissa, la durata di questa pausa sarà variabile in base alle posizioni dei servi comandate. La pausa viene utilizzata dalla ricevente per sincronizzare la decodifica, infatti la ricevente una volta che sente una pausa maggiore di 3-4mS capisce che deve aspettarsi gli impulsi delle posizioni, quindi si mette in attesa e quando arrivano i comandi delle posizioni li conta dirottandoli sui vari canali.

Gli impulsi hanno una durata di circa 0,30-0,40mS.

Per attuare la nostra modifica abbiamo bisogno di un circuito che interpreti il segnale come lo interpreta una ricevente, poi una volta che ha contato i 7 impulsi ne aggiunge altri 2 separati da una pausa proporzionale alla posizione di due potenziometri.

La cosa importante è lasciare una certa pausa di sincronismo per fare in modo che la rx possa decodificare senza problemi il segnale.

Aggiungendo 2 canali siamo al limite del frame, infatti se tutti i canali fossero comandati alla massima posizione contemporaneamente avremmo 8x2=16mS e rimarrebbero 5mS di pausa, sicuramente sufficienti, ma non esagerati, visto che se consideriamo che qualche servo potrebbe avere l’extracorsa impostato il suo tempo potrebbe arrivare a 2,125mS (EPA al 120%).

Il caso limite, a cui non arriveremo mai è tutti i servi con extracorsa pilotati al massimo 8x2,125=17 rimanendo solo 4mS di margine sincronismo (in realtà 5mS visto che il frame misurato è 22).

Dalle prove fatte sembra che la rx reputi una pausa di sincronismo un segnale basso che duri circa 3 mS quindi non dovrebbero esserci problemi, si potrebbe addirittura tentare di aggiungere il canale 9, ma forse è meglio non rischiare… .

Questa funzione viene eseguita da un pic12f683, però per evitare che il segnale originale venga modificato, ho fatto in modo che il pic non faccia da ripetitore, ma che il segnale passi indisturbato dall’ingresso all’uscita, mentre il pic ha la possibilità di leggerlo e di aggiungere i soli due impulsi finali.

Come si nota dallo schema il transistor T1 e T3 sono collegati come interruttori con configurazione ad emettitore comune, quindi il primo inverte lo stato logico del segnale ed il secondo a sua volta lo inverte nuovamente, in questo modo in uscita avremo un segnale che rispecchia esattamente l’ingresso.

La scelta dei valori delle resistenze in ingresso e in uscita (4,7k) è stata fatta per mantenere la stessa impedenza in uso dalla radio infatti lo stadio di uscita della optic è composto da un transistor con resistenza da 4,7K che viene però commutato da una porta di un CD4066 che serve per le varie commutazioni del PPM per quando si lavora con il cavo allievo-maestro, la parte dello schema sotto è della eclipse7, ma è sicuramente lo stesso sistema usato nella optic, l’ho verificato controllando alcuni punti del circuito.

La codifica della trasmissione ppm è rappresentata da un frame periodico della durata di circa 20mS, da radio a radio varia tra i 20 e i 24, nella optic6 ho misurato 22mS abbondanti, però in tutte le mie considerazioni mi sono tenuto a 21mS per essere certo che eventuali tolleranze dei calcoli etc, non potessero mai portarmi ad un eccesso.

Il frame è costituito da una serie di impulsi che determinano la posizione dei servi ed una pausa di sincronismo che serve alla rx per capire quando il frame è terminato e quindi quando deve prepararsi a riceverne uno nuovo.

Nella figura sottostante si può vedere il frame originale e il frame risultato della nostra modifica.

Nel momento in cui abbiamo un livello basso il transistor T1 non è in conduzione visto che IN=0 quindi sul collettore di T2 abbiamo una tensione positiva di circa 5V infatti tramite R2 e R4 oltre ad aver creato la rete di polarizzazione di T3 abbiamo anche creato un partitore resistivo utile ad abbassare i 9-10V di alimentazione ed adattarli all’ingresso del pic.

Lo stabilizzatore di tensione 7805 serve per alimentare il solo pic, a tal proposito vorrei precisare che sul mio circuito ho aggiunto un condensatore da 10mF 10V in uscita del 7805, in parallelo a C3, non è necessario anche se consigliabile

Quello sotto è il listato del programma scritto in picbasic, viste le basse performance richieste al pic!

Come si nota, dopo aver definito le variabili, settato i vari registri, inizia l’esecuzione del programma.

All’inizio c’è un loop che termina nel momento in cui la durata del livello basso supera i 3,5mS, durante questo loop leggiamo il valore dei potenziometri, la conversione AD ci torna utile per creare ritardo sull’esecuzione. Una volta letta la pausa di sincronismo si passa a contare i fronti degli impulsi dei primi 6 canali, poi al settimo si passa a generare i nostri 2 canali aggiunti in base alla posizione dei potenziometri letta precedentemente.

'**************************************************************

'* Name : OPTIC8Ch.BAS

'* Author : Sinatti Marco

'* Notice : Copyright (c) 2007 Sinatti Marco

'* : All Rights Reserved

'* Date : 22/09/2008

'* Version : 1.0

'* Notes : 12f683

'*

'**************************************************************

asm

__config _INTOSCIO & _WDT_OFF & _MCLRE_OFF & _CP_OFF

endasm

define OSC 8

In var gpio.4

Out var gpio.5

Ad1 var word

Ad2 var word

Ad1H var Ad1.byte1

Ad2H var Ad2.byte1

Ad1L var Ad1.byte0

Ad2L var Ad2.byte0

Impulsi var byte

Conta var byte

InOld var bit

Ingresso var bit

trisio=%00011111 'setta pin come ingressi o uscite

ansel=%00000110 'setts pin ingressi analogici

wpu=%00000000 'disabilita pullup ingressi

osccon=%11110001 'utilizza oscillatore interno a 8 Mhz

cmcon0=%00000111 'disabilita comparatori di tensione hardware

low Out 'azzeramento iniziale variabili

Conta=0

Impulsi=0

InOld=0

Start:

adcon0=%10000101 'conversione canale 7

pauseus 5

adcon0.1=1

pauseus 5

Ad1h=adresh

Ad1l=adresl

Ad1=Ad1+1000

adcon0=%10001001 ' conversione canale 8

pauseus 5

adcon0.1=1

pauseus 5

Ad2h=adresh

Ad2l=adresl

Ad2=Ad2+650

If in=1 then 'se il livello è alto (ppm basso) conta i loop

conta=conta+1

else

conta=0 'altrimenti azzera il conteggio

endif

if Conta>50 then Conta=0:Impulsi=0:GOTO SyncroOk 'Se i loop sono 50 (circa 3,5mS) il sincronismo è avvenuto

goto start

SyncroOk:

Ingresso=In

If Ingresso<InOld then Impulsi=Impulsi+1 'fronte negativo che corrisponde ad uno positivo sul ppm

InOld=Ingresso

If Impulsi>=7 then goto Aggiungi 'conta i fronti degli impulsi ppm in ingresso a se sono 7 aggiuge i 2 canali

goto SyncroOk

‘Il numero 7 nasce da canali radio + 1 (cambiare per radio con numero canali diverso)

Aggiungi:

low Out 'Abbassa l'uscita anche se in realtà è già bassa

Pauseus Ad1 'pausa CH7

pulsout Out,70 'Impulso di separazione canale da 0,35 mS

Pauseus Ad2 'pausa CH8

pulsout Out,70 'Impulso di separazione canale da 0,35 mS

low Out 'Abbassa l'uscita anche se in realtà è già bassa

goto Start

End

Come si capisce dal programma i due canali sono proporzionali, quindi è possibile collegare 2 potenziometri, io ho scelto di collegare il potenziometro sul canale 7 e uno switch sul canale 8. In caso si utilizzi lo switch a 3 posizioni si devono aggiungere 2 resistenze da in parallelo ai contatti del commutatore

Il fissaggio dello switch è semplice dal momento che sulla radio è già previsto, c’è già il foro sulla plastica ed è necessario forare solo la mascherina esterna di rifinitura in alluminio, mentre per il potenziometro è un po’ più complicato.

Per il potenziometro ho usato la predisposizione di uno switch a slitta, poi ho fatto una basettina di adattamento con la millefori per sorreggere il potenziometro e poterlo fissare nelle stesse colonnette di plastica. L’ho saldato leggermente inclinato per seguire la stessa inclinazione della parete esterna della radio, poi ho praticato un foro di mezzo millimetro più grande dell’albero sulla mascherina di rifinitura in alluminio.


ATTENZIONE: l’ampiezza del segnale di uscita è differente in base al modulo TX montato sulla radio. Dalle prove che ho fatto l’ampiezza del segnale con il modulo pll spectra è di circa 6V mentre con il modulo a quarzo l’ampiezza è di circa 2V. Questo è dovuto alla diversa impedenza di ingresso dei moduli, nello spectra questa si aggira sui 5-6K mentre sul modulo a quarzo è circa 700 Ohm.

UTILIZZO DELLA RADIO CON CAVO ALLIEVO MAESTRO E SIMULATORE

In caso si utilizzi la radio in modo slave, non cambia niente rispetto all’originale, quindi i canali aggiuntivi non saranno disponibili per l’utilizzo, stessa cosa dicasi se si è collegati ad un pc con un simulatore. TESTATO

Nel caso invece la radio con la modifica sia master allora nel momento in cui il comando è demandato alla slave, i due canali aggiuntivi continueranno a funzionare. NON TESTATO

Link video di test http://www.youtube.com/watch?v=UlnywHeD0TM&feature=channel

IN FONDO ALLA PAGINA E' POSSIBILE SCARICARE UN PDF CON FOTO MIGLIORI, LO SCHEMA E IL PCB REALIZZATO CON EAGLE FREEWARE, IL CODICE SORGENTE E QUELLO COMPILATO PER IL PIC12F683.

NELLA CARTELLA TROVERETE SIA IL CODICE PER AGGIUNGERE 2 CANALI ALLA OPTIC CHE PER AGGIUNGERNE UNO ALLA ECLIPSE.

L’autore non è responsabile di eventuali danni a cose o persone causati dalla modifica descritta

Prima di mettere in volo il modello, testare con severità il funzionamento a terra della modifica

FORME D’ONDA PRIMA E DOPO LA CURA!!!