[Controllo del propulsore subacqueo] Come utilizzare STM32 per controllare l'ESC tramite PWM?

Pubblicato da Fengyukun il

Molti ricercatori che desiderano utilizzare i microcontrollori per controllare il funzionamento dei propulsori hanno trovato molte informazioni su Internet, ma hanno scoperto che molte di esse non sono scritte in modo chiaro. APISQUEEN registra approssimativamente come risolvere il problema.
Spero che tutti possano condividere le proprie esperienze nell'area commenti e aiutare più persone.
L'ESC che abbiamo acquistato potrebbe essere diverso, ma l'idea generale del controllo è la stessa, quindi credo che sarai in grado di raggiungere i tuoi obiettivi dopo aver letto questo articolo.

Segnale PWM:
(1) Controllo dell'onda PWM (generalmente esc utilizza il controllo dell'onda PWM a 50 Hz o 20 ms);
(2) Pausa intermedia (qui generalmente si riferisce al ciclo di lavoro di alto livello) 1,5 ms, infatti, è una pausa intermedia tra 1,475 ms e 1,525 ms;
(3) L'intervallo di controllo è 1 ms ~ 2 ms;
(4) Vai avanti da 1,5 ms a 2 ms e torna indietro da 1,5 ms a 1 ms.


Ecco un semplice riferimento basato su Arduino:


NOTA: l'ESC deve essere sbloccato per essere utilizzato! Quando si collega l'ESC all'alimentazione, emetterà un segnale acustico 3 volte, quindi quando verrà sbloccato con successo, emetterà un segnale acustico 2 volte, per un totale di 5 volte. Se non sblocchi correttamente l'ESC, non puoi usarlo per controllare. Pertanto, facendo riferimento al codice sopra riportato, possiamo concludere che il modo per sbloccare l'ESC è impostarlo su un segnale neutro dopo l'inizializzazione e attendere la ricezione del segnale (due bip) prima di avviare il controllo della velocità.


Metodi di controllo e debug


Utilizziamo la scheda di sviluppo STM32F7 e la libreria HAL per la programmazione e il debug, infatti il timer emette onde PWM. Ma ci sono molte cose a cui prestare attenzione e i dettagli poco chiari fanno davvero perdere tempo ed energia. Ecco alcune parole sull'esperienza di debug.

Prima di tutto, quando si configura l'onda PWM nel timer, fare attenzione a non inizializzarla come segnale di sblocco, assegnargli un valore casuale o non configurarla. Poiché l'ESC viene sbloccato solo dopo l'inizializzazione del timer e del PWM, prendendo il mio esempio, il segnale di arresto medio di 1,5 ms è il segnale di sblocco, quindi non è possibile configurare il PWM su 1,5 ms dall'inizio, altrimenti ESC emetterà un segnale acustico solo una volta dopo tre segnali acustici di potenza e poi la pagaia continua a non girare.


In secondo luogo, prestare attenzione all'uso del ritardo. All'inizio non ho usato il ritardo e il risultato è stato che l'ESC emetteva solo un segnale acustico e poi non rispondeva. Poi, quando ho osservato l'onda PWM con un oscilloscopio, ho scoperto che il PWM che avevo inizializzato lampeggiava direttamente e avevo bisogno di dare all'ESC il tempo di ricevere il segnale di sblocco. Ma dovresti prestare attenzione anche in questo momento. Inizialmente ho utilizzato delay_us() per configurarlo, ma il problema non è stato risolto. Successivamente l'ho modificato in delay_ms(1000), il che significa che il tempo configurato è 1 s. è ancora un problema. Poi ho regolato l'ora. Dopo due segnali acustici finali, il motore inizia a girare. Pertanto è molto importante comprendere l'orario di ricezione di questo segnale di sblocco.


Presta attenzione anche ad imparare ad usare un oscilloscopio per verificare se ci sono problemi con i segnali che configuri durante l'uso. Di seguito è riportata l'onda PWM con duty cycle di 1,5 ms, periodo di 20 ms e ampiezza di 3,3 V che ho inizializzato all'inizio.


Per riassumere, l’intero processo dovrebbe prestare attenzione a:

(1) L'ESC è generalmente controllato a una frequenza di 50 Hz e l'intervallo di controllo è compreso tra 1 ms e 2 ms, ovviamente, dipende dalla situazione.
(2) Dopo l'accensione, l'ESC emetterà 3 segnali acustici. Dopo che lo sblocco è avvenuto con successo, l'ESC emetterà 2 segnali acustici. Tuttavia, se l'ESC emette un solo segnale acustico, potrebbe significare che l'ESC ha ricevuto il segnale configurato ma non ha sbloccato correttamente il dispositivo, quindi è necessario ricontrollare il codice di sblocco per vedere se sono presenti errori. Se l'ESC non emette alcun suono, non riceve nemmeno un segnale, ricontrolla il cablaggio e il codice.
(3) Prestare attenzione all'utilizzo della funzione di ritardo per concedere all'ESC un certo periodo di tempo per ricevere il segnale di sblocco. Ogni ESC è diverso, quindi puoi regolarlo tu stesso.
(4) Prestare attenzione alla messa a terra, collegare la linea del segnale dell'ESC alla porta di uscita del segnale della scheda di controllo, quindi collegare a terra la linea del segnale alla terra GND della scheda di controllo.
(5) Imparare a utilizzare un oscilloscopio per controllare i segnali configurati.
Non collegare la linea sbagliata!


Condividi questo post



← Articolo più vecchio Articolo più recente →


Lascia un commento