Ciao a tutti, non riesco a capire cosa sia la modalità bootloader per arduino. Qualcuno saprebbe schiarirmi le idee?
Grazie per la disponibilità.
Matteo.
Ciao a tutti, non riesco a capire cosa sia la modalità bootloader per arduino. Qualcuno saprebbe schiarirmi le idee?
Grazie per la disponibilità.
Matteo.
Il bootloader è un pezzo di software che viene sempre lanciato per primo quando sia avvia la MCU su cui esso è presente ... lo scopo è di verificare se qualcuno, tramite un collegamento seriale (... o USB nativo), vuole caricare del codice nella memoria flash ... se, ad esempio, l'IDE di Arduino vuole caricare un programma che hai scritto e compilato, deve fare un reset della scheda, avviare quindi il bootloader, parlare con esso e caricare il codice nella flash.
Se il bootloader NON trova invece nessuno che vuole caricare qualche cosa di nuovo, passa direttamente il controllo all'ultimo programma che era stato caricato con successo.
In pratica, il bootloader, è un pezzo di software che ti permette il caricamento del codice senza dove per forza possedere un programmatore specifico per la MCU di destinazione.
Guglielmo
Ok perciò nel momento in cui imposto tale modalità preparo la scheda a ricevere un nuovo sketch.
Questa operazione mi è consigliata a causa di un led rosso lampeggiante su arduino giga r1 wi-fi.
NO, GIGA R1 usa un sistema operativo, Mbed OS, e quella è la segnalazione di una anomalia a livello di sistema (hai probabilmente fatto qualche cosa che ha fatto andare in crash il OS) ...
... ti consiglio di studiarti attentamente come funziona la GIGA R1prima di fare danni ...
Guglielmo
Ok grazie
questo è il codice che ho caricato sulla scheda.
Riguarda un impianto di irrigazione intelligente con un sensore di umidità del suolo e un relè controllato dal cloud.
#define umidit A1
#include "thingProperties.h"
int pin = 13;
void setup() {
Serial.begin(9600);
delay(1500);
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
pinMode (pin, OUTPUT);
}
void loop() {
ArduinoCloud.update();
sensor = analogRead (umidit);
Serial.println (sensor);
delay (100);
if (sensor<300){
digitalWrite (pin, HIGH);
while (sensor<360){
digitalWrite (pin, HIGH);
status = true;
}
}
else {
digitalWrite (pin, LOW);
status = false;
}
percentuale = map(sensor, 0, 1023, 0 ,100);
}
void onStatusChange() {
}
void onPercentualeChange() {
}
Secondo lei il problema è qui?
Grazie per la disponibilità.
Intanto hai capito che ...
On most Arduino boards, when a sketch fails due to e.g. memory shortage, the board resets.
On the GIGA R1, whenever the MbedOS fails, the board does not reset automatically. Instead, if it fails, the onboard red LED will start to blink in a looping pattern of 4 fast blinks and 4 slow blinks.
... quindi, il LED rosso che lampeggia come descritto, è sinonimo di crash di MbedOS.
Ora, NON uso e NON conosco minimamente Arduino Cloud quindi ... non so dire se c'è qualche cosa che non va ...
Comunque, nella sezione Italiana, quelli che usano al GIGA R1 si contano sulle dita di una mano per cui ... consiglio ... scrivendo esclusivamente in lingua Inglese, porre la domanda nella sezione internazionale specifica per la Giga R1 ... li la conoscono molte più persone e, forse, ricevi un aiuto migliore
Guglielmo
Ok grazie mille
In realtà il crash avveniva nel momento in cui, dopo aver notato che il sensore non mi dava valori sul cloud, andavo a caricare uno sketch dall’IDE e dopo la prima lettura del sensore il led rosso lampeggiava.
Comunque grazie per il consiglio chiederò in inglese.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.