
![]() | #51 (permalink) Top | |
User Data registr.: 18-04-2008 Residenza: milano
Messaggi: 405
| Citazione:
mi autoquoto per spiegare con un disegnino quello che confusamente ho tentato di dire... in aggiunta per leggere fronti alterni basta porre inPPM.h #define EDGE_DETECTOR_TOGGLE 1 // 0=reading PPM stream 1=reading alternate channel sequence from rx ovviamente questo per quelle rx che non hanno il canale ppm | |
![]() | ![]() |
![]() | #52 (permalink) Top | |
User Data registr.: 23-04-2008 Residenza: Firenze
Messaggi: 1.108
| Citazione:
![]() Lo dico scherzando, ma è vero che chi non ha dimestichezza con il SW/FW a volte se si perde nelle discussioni tecniche non riesce a capire lo scopo ultimo di quello di cui si parla. Invece capire a cosa serve o può servire uno strumento è la pre-condizione per farne un uso creativo!
__________________ 1) Honey Bee FP 2) Mini Titan (V1 e V2) 3) Paracopter 4) Ultra-Micro J-3 Cub 5) Blade msr 6) Ultra-Micro T-28 Trojan 7) Team Losi Mini T 8) Blade mcpx 9) Turnigy 1/16 Nitro Buggy 10) Basher Nictro Circus 1/10 SCT | |
![]() | ![]() |
![]() | #53 (permalink) Top | |
User Data registr.: 23-04-2008 Residenza: Firenze
Messaggi: 1.108
| Citazione: ![]()
__________________ 1) Honey Bee FP 2) Mini Titan (V1 e V2) 3) Paracopter 4) Ultra-Micro J-3 Cub 5) Blade msr 6) Ultra-Micro T-28 Trojan 7) Team Losi Mini T 8) Blade mcpx 9) Turnigy 1/16 Nitro Buggy 10) Basher Nictro Circus 1/10 SCT | |
![]() | ![]() |
![]() | #54 (permalink) Top | |
User Data registr.: 18-04-2008 Residenza: milano
Messaggi: 405
| Citazione:
ovvero misurare la differenza tra pressione d'arresto e pressione statica che alle velocita di un f3k richiede la risoluzione di 0.1 Pa se vuoi usarlo come controllo di assetto rispetto all'aria (angolo di attacco AoA) per l'altimetro bisogna prendere un assoluto | |
![]() | ![]() |
![]() | #55 (permalink) Top |
User Data registr.: 23-04-2008 Residenza: Firenze
Messaggi: 1.108
|
Capito. Infatti ho visto che sullo stesso sito ce n'è un altro come altimetro... Il limite è solo la fantasia (oddio, anche il tempo e il... portafoglio!) Sent from my Xoom using Tapatalk 2
__________________ 1) Honey Bee FP 2) Mini Titan (V1 e V2) 3) Paracopter 4) Ultra-Micro J-3 Cub 5) Blade msr 6) Ultra-Micro T-28 Trojan 7) Team Losi Mini T 8) Blade mcpx 9) Turnigy 1/16 Nitro Buggy 10) Basher Nictro Circus 1/10 SCT |
![]() | ![]() |
![]() | #56 (permalink) Top | |
User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| ok
Ok ho capito! quindi in pratica è come eseguire : BTFSC REGISTRO,BIT SE NON è ZERO SE E' ZERO qui invece sinttatticamente significa spostati di ICF1 posizioni a partire da quella a zero, (estrema destra) e piazza un 1 (uno) , quindi se facendo l'AND ovvero per esempio ICF1 = 2 allora sposta un 1 (uno) in posizione 2 a sinistra, poi esegui una AND e valuta il risultato 0110.0101 0000.0100 Vero oppure 0110.0001 0000.0100 Falso Altra osservazione, partendo dalla tua osservazione in merito agli interrupt, mi sembra strano che però con il convertitore ADC non ci siano questi brutti effetti! In sistanza facendo la prova non mi dà nessuna imperfezione. leggi qui: Arduino - Knob Servo myservo; int potpin = 0; // analog pin used to connect the potentiometer int val; // variable to read the value from the analog pin void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023) val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180) myservo.write(val); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there } Citazione:
Ultima modifica di faustog_2 : 17 aprile 12 alle ore 23:21 | |
![]() | ![]() |
![]() | #57 (permalink) Top |
User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| alternativa
un alternativa potrebbe essere quello che facevo con i Pic in questo caso dovrei usare la funzione digitalRead ____ _____ _____| |__________________| |_______ while (digitalReadA==Down) [ ] while(digitalRead==HIGH) [ conta milli secondi ] adesso vado a nanna sto iniziando a delirare! |
![]() | ![]() |
![]() | #58 (permalink) Top | |
User Data registr.: 18-04-2008 Residenza: milano
Messaggi: 405
| Citazione:
la libreria servo forza periodicamente l'azzeramento del contatore che ti impedisce ti utilizzarlo senza glitch nella lettura del ppm... i metodi usati in ppm.h non non modificano mai il valore del contatore, solo cosi riesci a ottenere piu funzioni indipendenti come lettura ppm e driver servi. inoltre il driver dei servi basato su una una lookup table e sul xor tra due byte garantisce una omogeneita di timing tra canali assoluta e le uniche operazioni diverse avvengono durante il segnale di sincro quindi senza effetto. | |
![]() | ![]() |
![]() | #59 (permalink) Top | |
User Data registr.: 18-04-2008 Residenza: milano
Messaggi: 405
| Citazione:
una sccansione di questo tipo ti da un errore che è dipendente dal tempo di scansione... la lettura di ICR1 ti permette di leggere con un scansione che puo essere il 99% dellintervallo piu corto ovvero molto lenta senza inficiare la precisione.. la lettura di quel registro necessita un tempo costante che quindi nelle letture differenziali non genera errore | |
![]() | ![]() |
![]() | #60 (permalink) Top | |
User Data registr.: 19-07-2008 Residenza: catania
Messaggi: 978
| ok
credo di aver capito.... ....dammi un feedback quindi il controllo if (TIFR1 & (1<<ICF1)) serve per capire se il timer è arrivato a fondo scala ? PPM.h lascia scorrere il timer 1 .. e si regola facendo differenze matetmatiche.. lo zero diventa il punto di partenza.. X, poi da esso si sviluppa il treno di PPM.. quindi non lo azzera.. anche perchè appena arriva in fondo a 65.000 scala e ricomincia da zero.. ..ho realizzato tempo fa un sistema su Pic che fa lo stesso lavoro, un gruppo di registri li utilizzo , uno per ogni canale, gestito con FSR, il tmr0 quando scadeva in modo naturale, 16 mS , ricominciava.. finchè non scadevano i 16 mS leggevo la seriale & il sensore infrarosso.. appena scaduti i 16 mS allora eseguiva il treno di impulsi secondo quello che trovava nel buffer.. precedentemente riempito durante l'attesa.. quindi non c'erano tempi morti.. In pratica la libreria Servo è una cosa relativamente affidabile! però è strano perchè nei sorgenti di ARDUPILOT si fa uso della libreria Servo.. magari loro raggirano il problema ..chi sa in che modo.. devo studiare tanto.. ancora sono un principiante! Citazione:
Ultima modifica di faustog_2 : 18 aprile 12 alle ore 07:52 | |
![]() | ![]() |
![]() |
Bookmarks |
| |
![]() | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
Coassiale mixed controller con arduino | catman | Circuiti Elettronici | 12 | 01 aprile 11 23:17 |
quadricottero con arduino 2009 | sailormann26 | Aeromodellismo Progettazione e Costruzione | 0 | 27 dicembre 10 23:12 |