01 febbraio 16, 20:53 | #1 (permalink) Top |
User Data registr.: 30-09-2013 Residenza: Milano
Messaggi: 40
| Arduino e programmazione ESC
Ho preso da poco un Arduino Nano e la mia intenzione sarebbe quella di vedere i settaggi attuali degli ESC e cambiare i loro parametri (con ausilio di un'interfaccia in VB.net). Ho già provato a programmarli con il programmino per Arduino che vi allego, così come si programmano con la normale ricevente, ovvero seguendo i vai beep emessi dal motore e impartendo il comando di ok, ma vorrei riuscire a capire come è settato attualmente l'esc anche per verificare se i parametri sono corretti, ovvero intercettare le stringhe di comando emesse dall' Esc per arrivare ad una interfaccia grafica con cui programmarli. A quanto ho capito leggendo in giro ogni serie di ESC ha i suoi comandi, per cui andrebbe fatto un programma ad hoc per ognuno, oppure un programma che legga un file esterno con i parametri per ogni tipo di esc, e questo non è un problema, il problema è capire i parametri da spedire o ricevere. Dal manuale di BLHeli ad esempio si legge questo: Input signal: The ESC accepts both positive and negative PWM, as well as PPM as input signal. The type of input signal is auto detected during the arming sequence. The only input signal that requires changing the default parameters, is negative PWM. PWM is accepted as 12kHz, 8kHz (mCPX v1), 4kHz, 2kHz (several Walkeras) and 1kHz (mCPX v2). PPM has a default throttle range of 1150us-1830us, and accepts rates from the normal 50Hz up to several hundred Hz. Available throttle calibration range for PPM is from 1000us to 2000us, and the difference between minimum and maximum throttle must be more than 520us. If a calibration is done where the difference is less than 520us, the maximum will be shifted so that the difference is 520us. Se qualcuno ha già studiato (o risolto) il problema si faccia avanti con un esempio in Arduino P.S. se usate il file Motore3.ino occhio che dopo aver introdotto uno 0 (zero) nella finestra del monitor seriale, se la batteria è attaccata all'Esc il motore è in modalità test, per cui parte con i comandi successivi (tra 0 e 180). Se invece impartite un 180 e poi attaccate la batteria sarete in modalità programmazione (sino al successivo 0 (zero) che rimanda l'Esc in modalità normale ovvero test motore). Se provate senza montare l'elica non sparatelo alla velocità massima (180) senza il carico dell'elica. Se lo provate con l'elica invertite i fili di collegamento tra Esc e motore in modo che giri al contrario e non vi si sollevi dalla scrivania...e fate attenzione... |
01 febbraio 16, 21:14 | #2 (permalink) Top | |
Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
| Citazione:
Per leggere i parametri è necessario conoscere il protocollo. Per conoscere il protocollo è necessario fare reverse enginering della comunicazione single wire fra ESC e scheda di programmazione. Per fare reverse enginering quindi è necessario avere la scheda di programmazione. Se hai la scheda di programmazione il gioco con arduino rimane solo un gioco, anche perchè al campo quasi nessuno si porta un tablet per configurare un ESC. Quindi rimane un bel gioco ma di dubbia utilità pratica, anche considerando il costo medio delle program card. questo ad esempio è il reverse enginering di un esc Turnigy Turnigy ESC Programming Card Reverse Engineered | Eleccelerator
__________________ Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo Grazie "TRANQUILLO" FAI 15766 | |
01 febbraio 16, 21:25 | #3 (permalink) Top | |
Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
| Citazione:
__________________ Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo Grazie "TRANQUILLO" FAI 15766 | |
02 febbraio 16, 03:38 | #4 (permalink) Top |
User Data registr.: 30-09-2013 Residenza: Milano
Messaggi: 40
|
E' ovvio che se uno ha già la program card, Arduino non serve a niente, l'intenzione è di evitare l'acquisto di una card per ogni serie di ESC e cmq divertirsi con Arduino, ho già avuto modo di "catturare" il protocollo di un calibro digitale, ma in quel caso si trattava di leggere un solo parametro (la misura) dalla porta USB/Seriale dopo che veniva premuto un tasto sul calibro, nel caso dell'ESC ci sarà sicuramente un segnale di partenza e poi le stringhe di dati. Si la pagina di eleccelerator.com l'avevo vista, se non c'è niente altro in giro partirò da quella per capirci qualcosa sul protocollo di trasmissione. Se qualcun altro ha dei consigli è sempre ben accetto. |
02 febbraio 16, 16:56 | #5 (permalink) Top | |
Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
| Citazione:
Non è neanche detto che in tutti ci sia un segnale di partenza in forma digitale. In alcune program card che ho, il fatto di portare l'esc in programmazione via program card è dato dal tenere l'ingresso ad un livello alto per un periodo di tempo maggiore al 1/2 secondo. Quando la program card porta il pin in alta impedenza l'ESC inizia la comunicazione seriale spedendo alla program card il suo stato. Ogni produttore di ESC ha il suo, per quello dico che per fare il programmatore universale alla fine li devi avere tutti. Comunque seguo i progressi...
__________________ Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo Grazie "TRANQUILLO" FAI 15766 | |
02 febbraio 16, 17:23 | #6 (permalink) Top |
User Data registr.: 30-09-2013 Residenza: Milano
Messaggi: 40
|
Si, leggendo in giro ho visto che ogni esc ha il suo protocollo, voglio cominciare dal segnale di partenza e leggere i dati in arrivo in forma digitale (la lettura in PWM dà risultati troppo diversi per essere interpretati) su 3 esc differenti e vedere se c'è qualche corrispondenza...e da lì partire....oppure chiudere il discorso se non c'è corrispondenza.
|
02 febbraio 16, 21:19 | #7 (permalink) Top | |
Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
| Citazione:
Essendo la comunicazione single wire è molto difficile capire chi dice che cosa...
__________________ Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo Grazie "TRANQUILLO" FAI 15766 | |
03 febbraio 16, 05:41 | #8 (permalink) Top |
User Data registr.: 30-09-2013 Residenza: Milano
Messaggi: 40
|
Cmq il programmino presente su Eleccelerator mi dà errore sin fase di compilazione, probabilmente la ide 1,63 che sto usando è + rigorosa nell'assegnazione delle variabili, cmq un altro che ho trovato in giro per esc Turnigy almeno mi dà qualche risposta, anche se sbagliata, anche perchè l'esc che sto testando ha al primo posto il tipo di batteria anzichè il brake on/off, domani vedo di rimescolare le carte e vedo che succede, tenendo conto che almeno il tipo di batteria e il numero di celle devono risultare giuste...e poi vedo il resto
|
01 marzo 16, 15:01 | #9 (permalink) Top |
User Data registr.: 30-09-2013 Residenza: Milano
Messaggi: 40
|
Nella giungla degli ESC...sarebbe stato il titolo più appropriato... Lasciando perdere una programmazione diretta degli ESC (visto che ognuno manda uno stream di comandi univoco e differente dagli altri e non facilmente decifrabile), ho cominciato a sviluppare un aiuto alla programmazione basandomi sui BEEP emessi dal motore in modalità programmazione, quello che si fa con la radio normalmente, ma con un'interfaccia che visualizza l'opzione corrente prima di selezionarla/modificarla: Foto1. E un'interfaccia nella quale si possono inserire nuovi ESC con le loro funzioni: Foto 2. Purtroppo su 2 ESC testati erano diversi sia i collegamenti da cui prelevare i dati (sullo Yep 30 ad esempio vanno presi dal filo negativo che va dall'esc al motore, mentre sul Red Brick va reso dal filo giallo che si trova tra il positivo e il negativo) sia è diversa la modalità e il timing dei segnali, ad esempio dallo Yep30 arriva in partenza una sequenza di 20 Beep (se durante questa sequenza si muove lo stick virtuale al di sotto di 1/4 del movimento totale si impartisce il punto di Brake, se nelle opzioni è impostato Brake On), passati questi 20 Beep, dando un comando di Mezzo Stick si entra nei sottoparametri...mentre il Red Brick 70A si comporta diversamente, arriva una musichetta seguta dal Tot beep a seconda del parametro da modificare. Ricapitolando: per i miei esc mi son fatto il diverso Sketch da piazzare su Arduino Nano e ora posso programmare i miei ESC, e l'interfaccia è molto comoda soprattutto in quei parametri che hanno tanti Beep (ad esempio il Timing o il PWM), olrtretutto non richiede più la consultazione del manuale perchè le funzioni (quelle della foto 2 per intenderci) sono salvate su disco, ma non ritengo di dstribuire il programma perchè è inutilizzabile da un normale utente che non sappia programmare Arduino. Vi allego cmq un Monitor se volete smanettarci dentro e visualizzare i Beep in arrivo dal vostro ESC, è un derivato dall'altro file che avevo mandato in apertura post, ovvero Motore3.ino. Anche qua potete dare i comandi di Full stick(180) , Half Stick (90) e Zero Stick(0) per uscire dalla modalità programmazione e se settate i comandi di timing correttamente (e quelo dipende dall'Esc che utilizzate) potete anche programmarlo col solo Arduino, ovvero senza interfaccia grafica. I collegamenti tra esc e Arduino sono: 1) filo nero/marrone e filo giallo/bianco che normalmente vanno collegati alla ricevente devono essere collegati al pin GROUND(il filo nero/marrone) e al PD3(filo bianco/giallo). 2) al PD5 (che legge PWM) va collegato un filo che proviene dalle uscite che vanno dall'esc al motore, e possono essere o filo nero dell'esc (negativo) oppure al filo giallo dell'esc(quello centrale tra positivo e negativo), e quello dipende dall'esc che utilizzate. Ovviamente i 3 fili che portano la corrente dall'esc al motore vanno collegati, ma RICORDATEVI DI STACCARE IL FILO CHE VA DALL'ESC AL PD5 DOPO CHE AVETE IMPARTITO UN COMANDO ZERO(0) se volete fare girare il motore, e questo perchè, mentre siete in modalità programmazione (180) la tensione tra l'esc e Arduino sul pin PD5 non supera i 17 Millivolt (le porte di arduino reggono sino a 40 Millivolt), quando siete in modalità test del motore (dopo aver impartito il comando Zero insomma) ovviamente la corrente che passa rovinerebbe Arduino, per cui vanno lasciati collegati solo gli altri 2 pin, quelli che normalmente vanno alla ricevente. Cmq....buon volo a tutti |
02 marzo 16, 06:44 | #10 (permalink) Top | |
Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
| Citazione:
Rileggiti bene le specifiche dell'ATMEGA...
__________________ Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo Grazie "TRANQUILLO" FAI 15766 | |
Bookmarks |
| |
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
Esc & Arduino | Ithos92 | Circuiti Elettronici | 5 | 25 gennaio 12 20:56 |
programmazione esc | paololemerle | Elimodellismo Motore Elettrico | 7 | 19 giugno 10 21:54 |