ho provato a cercare un po' ovunque sulle cause, ho il motore brushless attaccato ad un esc da 40A che balbetta.
Ho pensato fosse la connessione fra il brushless e l'esc, ma oggi l'ho fatta saldare da un mio amico ma il comportamento non cambia (prima non potendo saldare avevo tagliato i cavi del motore e inseriti in un mammut per collegarli all'esc)
Ho provato anche a "Calibrarlo" con sketch arduino ma senza risultati, non riesce mai a raggiungere la massima rotazione stabile.
Oggi ho provato a ritagliare i cavi collegamento esc - motore per provare ad invertirne l'ordine ma non è cambiato nulla
sketch usati diversi, questo uno dei tanti
#include <Servo.h>
Servo esc;
int escPin = 8;
int minPulseRate = 1000;
int maxPulseRate = 2000;
int throttleChangeDelay = 100;
void setup() {
Serial.begin(9600);
Serial.setTimeout(500);
// Attach the the servo to the correct pin and set the pulse range
esc.attach(escPin, minPulseRate, maxPulseRate);
// Write a minimum value (most ESCs require this correct startup)
esc.write(0);
}
int k=0;
void loop() {
// Wait for some input
if ((Serial.available() > 0) ) {
k=1;
// Read the new throttle value
int throttle = normalizeThrottle( Serial.parseInt() );
// Print it out
Serial.print("Setting throttle to: ");
Serial.println(throttle);
// Change throttle to the new value
changeThrottle(throttle);
}
}
void changeThrottle(int throttle) {
// Read the current throttle value
int currentThrottle = readThrottle();
// Are we going up or down?
int step = 1;
if( throttle < currentThrottle )
step = -1;
// Slowly move to the new throttle value
while( currentThrottle != throttle ) {
esc.write(currentThrottle + step);
currentThrottle = readThrottle();
delay(throttleChangeDelay);
}
}
int readThrottle() {
int throttle = esc.read();
Serial.print("Current throttle is: ");
Serial.println(throttle);
return throttle;
}
// Ensure the throttle value is between 0 - 180
int normalizeThrottle(int value) {
if( value < 0 )
return 0;
if( value > 180 )
return 180;
return value;
}
Ehm ... un motore da piu di 180W massimi con un'ESC da 40A alimentato da una piombo da 2.3Ah ? ... piu che "sedersi", mi stupisco che non sia ancora stata risucchiata nell'ESC attraverso i cavi ...
Etemenanki:
Ehm ... un motore da piu di 180W massimi con un'ESC da 40A alimentato da una piombo da 2.3Ah ? ... piu che "sedersi", mi stupisco che non sia ancora stata risucchiata nell'ESC attraverso i cavi ...
Ho trovato questo nella descrizione del progetto (in realtà questa è la prima versione 2009):
Altra cosa importante è che gli ESC si programmano da loro ogni volta che vengono accesi; è quindi importante, durante la fase di warm-UP, comandarli con un segnale appropriato. Con l’ESC da noi utilizzato, la fase di avviamento dura circa 7 secondi ed il segnale da fornire corrisponde ad un impulso di 1 ms. Dopo questa fase è possibile aumentare l’ampiezza di questo impulso sino ai 2 ms che corrispondono alla massima
rotazione del motore. Il controller utilizzato gestisce correnti sino a 18 A, ma faremo assorbire al nostro
motore non più di 1 ampere; anche il motore utilizzato, capace di consumare sino a 150 W, in realtà sarà utilizzato a non più di 12 watt, allo scopo di evitare condizioni di funzionamento critiche.
Parlano che "sarà utilizzato a non più di 12 watt", forse questo è ottenuto utilizzando la mowershield_fe?
Interessante anche la prima parte, dicono di farlo andare x 7 secondi a 1ms e dopo si aumenta fino a 2... possibile risolva?
ho usato questo codice e ha smesso di borbottare, a chi dovesse servire:
In pratica andava prima portato al massimo e poi al minimo, dagli sketch che ho usato lo calibravano al contrario (al minimo prima), probabilmente firmware differente dell'ESC.
/*ESC calibration sketch; author: ELECTRONOOBS */
#include <Servo.h>
#define MAX_SIGNAL 2000
#define MIN_SIGNAL 1000
#define MOTOR_PIN 8
int DELAY = 1000;
Servo motor;
void setup() {
Serial.begin(9600);
Serial.println("Don't forget to subscribe!");
Serial.println("ELECTRONOOBS ESC calibration...");
Serial.println(" ");
delay(1500);
Serial.println("Program begin...");
delay(1000);
Serial.println("This program will start the ESC.");
motor.attach(MOTOR_PIN);
Serial.print("Now writing maximum output: (");Serial.print(MAX_SIGNAL);Serial.print(" us in this case)");Serial.print("\n");
Serial.println("Turn on power source, then wait 2 seconds and press any key.");
motor.writeMicroseconds(MAX_SIGNAL);
// Wait for input
while (!Serial.available());
Serial.read();
// Send min output
Serial.println("\n");
Serial.println("\n");
Serial.print("Sending minimum output: (");Serial.print(MIN_SIGNAL);Serial.print(" us in this case)");Serial.print("\n");
motor.writeMicroseconds(MIN_SIGNAL);
Serial.println("The ESC is calibrated");
Serial.println("----");
Serial.println("Now, type a values between 1000 and 2000 and press enter");
Serial.println("and the motor will start rotating.");
Serial.println("Send 1000 to stop the motor and 2000 for full throttle");
}
void loop() {
if (Serial.available() > 0)
{
int DELAY = Serial.parseInt();
if (DELAY > 999)
{
motor.writeMicroseconds(DELAY);
float SPEED = (DELAY-1000)/10;
Serial.print("\n");
Serial.println("Motor speed:"); Serial.print(" "); Serial.print(SPEED); Serial.print("%");
}
}
}
Il motore purtroppo continua ad aver problema (se provo ad attaccarci una lama non ce la fa più, stenta anche senza), a sto punto credo come suggerito sia proprio un problema di accoppiata batteria / esc /brushless
Con la batteria al piombo 12v 2200mah che brushless potrei supportare?
posso mantenere l'esc da 40A mettendo un motore meno potente (se si, quale caratteristiche del motore)?
Una batteria al piombo così piccola non fornisce corrente di scarica elevata, sostituisci con una ai ioni di litio a elevata corrente di scarica, 10A o meglio 20A oppure una ai polimeri di litio da 10C-20C
Non c'è il link, nota bene: le LiPo si caricano solo con i caricatori lipo, non con i caricatori per batteria al piombo che vengono forniti con i pannelli solari
Il pannello è collegato al mowershield_fe,stessa cosa la batteria che si dovrebbe ricaricare dal pannello (lato sw va verificato il voltaggio della batteria x nn eccedere). Serve quindi qualche accorgimento particolare? Altrimenti mi trovo in stallo (poaso ricaricare solo batterie al piombo ma con quelle nn riesco a far andare il brushless).
Ho praticamente concluso il robot anche lato sw, ora inzia a girare x il giardino ma senza tagliare nulla, in pratica esce a far due passi...
La cosa strana è che alle volte funziona, senza cambiare nulla della procedura di avviamento
Fammi capire.
Stai cercando di costruire un rasaerba secondo le istruzioni di futurashop?
Se sì, sulla pagina del MOWERSHIELD_FE c'è una lista della spesa con una serie di oggetti che sono stati scelti da futurashop per potersi integrare l'uno con l'altro al fine di conseguire il risultato voluto (=un rasaerba che funziona). Questo dice futurashop: Per poter realizzare il progetto rasaerba qui proposto, è possibile acquistare il seguente materiale presente a catalogo: - MOWERSHIELD_FE (1 pz.) - NP21-12 (1 pz.) - LCD16X2AI2C (1 pz.) - 2830-12 (1 pz.) - ESC40A oppure ESC40SIMONK (1 pz.) - SRF02 (2 pz.) - RH15812200 (2 pz.) - RUOTA150MM (2 pz.) - MSWITCH50MM (2 pz.) - JS511B (1 pz.) - MCRY10 (1 pz.) - ARDUINOUNOREV3 (1 pz.) - KA03 oppure VMA03 (1 pz.)
Non so se quel progetto, una volta realizzato, funzioni come dovrebbe, ma so che futurashop è un fornitore affidabile. Se tu hai cambiato anche UNO SOLO di quegli oggetti è probabile che il progetto sia sbilanciato e qualcosa (appunto) non funzioni come dovrebbe.
Scoprire cosa potrebbe essere è difficile in presenza, figuriamoci a distanza.
Sarebbe opportuno sapere QUALI oggetti consigliati nella lista della spesa di futurashop hai acquistato e quali hai cambiato, almeno per poter fare qualche ipotesi meno basata sul responso di una sfera di cristallo.
Ruote e motoriduttori delle ruote differenti. (Cmq nei test non li attivo)
Pannello da 30w al posto di 10w
Ho collegato un solo sonar anziche due
Non ho collegato lcd in quanto nn ho modificato la pista della motor shield per liberare ic2.
Batteria stesse caratteristiche ma presa da altra parte.
Gli altri componenti li ho presi da loro
Le sostituzioni che hai fatto non dovrebbero creare problemi.
Se quel motore fosse stato un normale DC forse avrei potuto aiutarti, ma ESC e brushless non li conosco bene. Dici che hai provato diversi sketch per testare il funzionamento. Sulla pagine del MOWERSHIELD_FE futurashop fornisce un software che contiene anche dei test. Li hai provati?
Inoltre sarebbe necessario uno schema dei collegamenti fra ARDUINO, MOWERSHIELD_FE, ESC40SIMONK, 2830-12 e batteria al piombo da 12V 2,2Ah per capre se ci possono essere errori.
BEC sta per Battery Elimination Circuit. BEC 5V3A significa che puoi usare quella uscita per alimentare utilizzatori a 5V e fino a 3A di corrente in modo da non dover avere due batterie separate, una per i motori e una per l'elettronica (in questo caso Arduino e shield).
Al momento metto da parte il brushless e sto configurando un motorino di un vecchio trapano bosch, valuto quale sarà la velocità minima che gli permetterà di tagliare l'erba, ma perlomeno questo lo attacco e gira senza tante rotture