BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Radiocomandi (https://www.baronerosso.it/forum/radiocomandi/)
-   -   TURNIGY 9X : Hello World ! (https://www.baronerosso.it/forum/radiocomandi/272889-turnigy-9x-hello-world.html)

HappyFly 13 gennaio 13 17:04

TURNIGY 9X : Hello World !
 
4 Allegato/i
TURNIGY T9X : Hello World !

Circa tre anni orsono, tanto per non avere niente da fare la sera, mi ero impegnato a progettare "da zero" un radiocomando, solo motherboard ovviamente senza sezione RF (per la sezione RF basta prendersi un qualunque modulo TX con relativa RX); la motherboard era biprocessore (come le radio di alta fascia) uno per l'interfaccia uno per calcolo/volo mentre l'ambiente di sviluppo era Microchip, essendo il tutto basato su PIC 16F877.

http://www.baronerosso.it/forum/atta...1&d=1358093006

http://www.baronerosso.it/forum/atta...1&d=1358093043

Dopo alcuni sforzi ed alcuni prototipi (peraltro funzionanti, almeno di base) mi sono fermato sullo chassis; avevo recuperato varie vecchie radio mi ero accorto che l'hardware e l'integrazione con la motherboard erano lo scoglio principale.

Ovviamente l'uscita della TG9X e dei relativi software open-source hanno reso meno interessante tutto questo mio lavoro; dato che però la parte che mi interessa di più è il codice mi sono rimesso al lavoro per sulla TG9X dal lato software.

Vi propongo in questo thread di aiutarmi (gli utenti più esperti) per arrivare al tipico "hello world!" di ogni ambiente di sviluppo, ovvero nel caso di una trasmittente calcolo e volo di un solo modello, senza fasi mixer e niente altro.

PER INTENDERCI BENE TUTTO QUESTO HA LO SCOPO ESCLUSIVAMENTE DIDATTICO !!!

Il tutto usando come base una delle distribuzioni attuali tipo er9x/open9x e come eeprom editor companion9x; non mi interessa la sezione interfaccia della radio, così come le varie opzioni per telemetrie, voce o altro.

Vorrei passo passo, illustrando quanto riesco a fare da solo e chiedendo aiuto agli esperti, implementare (facendo copia ed incolla) di :

1) settaggi base : centro, limiti ed inversioni servi
2) dual rate ed esponenziale
3) sezione calcolo e volo

I requisiti minimi sono ovviamente conoscenza del C e dello sviluppo su microcontrollori; lo scorso inverno avevo scaricato ed installato l'ambiente di sviluppo necessario (WinAVR ed accessori ...) ed avevo inziato l'opera di "sfrondatura".

Dato che ho cambiato PC in queste sere mi rimetto all'opera e se gradito posso postare passo passo le operazioni, dalla preparazione dell'ambiente fino alla riduzione del main() del codice alla sola schermata principale ed aggiungendo funzione per funzione per arrivare a quanto sopra indicato.

Ciao ed attendo commenti ;-)

romoloman 13 gennaio 13 18:12

Citazione:

Originalmente inviato da HappyFly (Messaggio 3578519)
TURNIGY T9X : Hello World !

Circa tre anni orsono, tanto per non avere niente da fare la sera, mi ero impegnato a progettare "da zero" un radiocomando, solo motherboard ovviamente senza sezione RF (per la sezione RF basta prendersi un qualunque modulo TX con relativa RX); la motherboard era biprocessore (come le radio di alta fascia) uno per l'interfaccia uno per calcolo/volo mentre l'ambiente di sviluppo era Microchip, essendo il tutto basato su PIC 16F877.

http://www.baronerosso.it/forum/atta...1&d=1358093006

http://www.baronerosso.it/forum/atta...1&d=1358093043

Dopo alcuni sforzi ed alcuni prototipi (peraltro funzionanti, almeno di base) mi sono fermato sullo chassis; avevo recuperato varie vecchie radio mi ero accorto che l'hardware e l'integrazione con la motherboard erano lo scoglio principale.

Ovviamente l'uscita della TG9X e dei relativi software open-source hanno reso meno interessante tutto questo mio lavoro; dato che però la parte che mi interessa di più è il codice mi sono rimesso al lavoro per sulla TG9X dal lato software.

Vi propongo in questo thread di aiutarmi (gli utenti più esperti) per arrivare al tipico "hello world!" di ogni ambiente di sviluppo, ovvero nel caso di una trasmittente calcolo e volo di un solo modello, senza fasi mixer e niente altro.

Che vuol dire senza mixer e niente altro ?
senza mixer come conti di mandare gli stick ad un modello ?

Comunque pensa questo, ti servono un interrupt per la generazione del PPM (lo fai bit banged) e un interrupt per la lettura degli stick.

Quindi la mera conoscenza del C non basta, dotati di datasheet del ATMEGA64.

Per l'hello world ti consiglio di partire dalle prime versioni di TH9X
r2 - th9x - Alternative Firmware for 9-ch FlySky RC-Control - Google Project Hosting
Più semplice da capire e sfoltire rispetto a un er9x o un open9x.

HappyFly 13 gennaio 13 20:24

Citazione:

Originalmente inviato da romoloman (Messaggio 3578656)
Che vuol dire senza mixer e niente altro ?
senza mixer come conti di mandare gli stick ad un modello ?

Forse è una questione di nomi, io chiamo calcolo il trasferimento da comando a canale, senza mixer intendevo senza la possibilità di fare miscelazioni tra i canali ... per semplificare sul vecchio prototipo trasferivo direttamente dall'uscita dr/expo al generatore PPM sui singoli canali ...

Citazione:

Originalmente inviato da romoloman (Messaggio 3578656)
Comunque pensa questo, ti servono un interrupt per la generazione del PPM (lo fai bit banged)

Ovvio, per generare il frame PPM mica ci si può fidare dei tempi con i ritardi ...

Citazione:

Originalmente inviato da romoloman (Messaggio 3578656)
e un interrupt per la lettura degli stick.

Qui se mi dai una dritta mi aiuti, cosa intendi un interrupt con timer per rilevare a tempo l'ADC degli stick oppure un interrupt agganciato sul valore dell'ADC ? Nel prototipo che mi avevo realizzato prendevo una serie di misure degli stick ad ogni ciclo di PPM

Citazione:

Originalmente inviato da romoloman (Messaggio 3578656)
Quindi la mera conoscenza del C non basta, dotati di datasheet del ATMEGA64

Si conosco di massima l'ATMEGA64, sono più ferrato sul PIC16F877 ma mi sono letto un paio di volte lo scorso inverno il datasheet dell'ATMEGA64, comunque grazie del consiglio più che giusto, a questo livello di programmazione devi conoscere bene l'hardware, non hai risorse e spazio come con codice di più altro livello ...

Citazione:

Originalmente inviato da romoloman (Messaggio 3578656)
Per l'hello world ti consiglio di partire dalle prime versioni di TH9X r2 - th9x - Alternative Firmware for 9-ch FlySky RC-Control - Google Project Hosting
Più semplice da capire e sfoltire rispetto a un er9x o un open9x.

Ora guardo, aveva molti bug TH9X quando è stato fermato lo sviluppo ?

Comunque grazie intanto per le dritte, sei un mito con il lavoro che hai fatto per ora sul firmware della 9X :lol:

romoloman 13 gennaio 13 21:57

Citazione:

Originalmente inviato da HappyFly (Messaggio 3578908)
Forse è una questione di nomi, io chiamo calcolo il trasferimento da comando a canale, senza mixer intendevo senza la possibilità di fare miscelazioni tra i canali ... per semplificare sul vecchio prototipo trasferivo direttamente dall'uscita dr/expo al generatore PPM sui singoli canali ...


Ovvio, per generare il frame PPM mica ci si può fidare dei tempi con i ritardi ...


Qui se mi dai una dritta mi aiuti, cosa intendi un interrupt con timer per rilevare a tempo l'ADC degli stick oppure un interrupt agganciato sul valore dell'ADC ? Nel prototipo che mi avevo realizzato prendevo una serie di misure degli stick ad ogni ciclo di PPM


Si conosco di massima l'ATMEGA64, sono più ferrato sul PIC16F877 ma mi sono letto un paio di volte lo scorso inverno il datasheet dell'ATMEGA64, comunque grazie del consiglio più che giusto, a questo livello di programmazione devi conoscere bene l'hardware, non hai risorse e spazio come con codice di più altro livello ...


Ora guardo, aveva molti bug TH9X quando è stato fermato lo sviluppo ?

Comunque grazie intanto per le dritte, sei un mito con il lavoro che hai fatto per ora sul firmware della 9X :lol:

TH9X non ha lo sviluppo fermato, ti ho consigliato la rev 2 perchè c'era poca roba dentro e diventa più facile da capirsi.
Siamo quasi alla rev 300, ma la rev2 è praticamente poco più dell'hello world che stavi cercando..


Tutti gli orari sono GMT +2. Adesso sono le 05:21.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002