ciao,
sono indeciso circa l'acquisto di A. DUE; cosa cambia a livello di programmazione rispetto alla UNO?
se copio e incollo codice scritto per la UNO sulla DUE, funziona così com'è? (tralasciando eventuali cambi di numerazone dei PIN o LED interni)
A parte la forma che riprende l'Arduino MEGA, la UNO e la DUE sono due schede totalmente diverse.
Devi cambiare IDE: La DUE è supportato solo dall'IDE 1.5.x di cui l'ultimo è la versione 1.5.7.
Devi cambiare la componentistica: la tensione di lavoro della DUE e di 3.3V e non funziona con i componenti a 5V (non è 5V tolerant) quindi devi procurarti dei traslatori di livello o componentistica aggiuntiva. Non puoi collegare i led direttamente. L'uscita fornisce al massimo 3 o 9 mA mentre la UNO ne fornisce 40.
Se usi librerie terze non è detto che funzionino con la DUE. La UNO monta un microcontrollore ATmel AVR, mentre la due ha un ATmel SAM. Tutti i riferimenti ai registri interni non vanno.
La DUE non ha la EEPROM quindi devi trovare un'altro modo per salvare le configurazioni.
Se vuoi realizzarti un Arduino in Stand-alone o un clone con la UNO, anzi con l'ATmega328, puoi. Con la DUE è molto più complicato.
Al momento non mi viene altro, ma comunque sono sicuro di dimenticare qualcosa.
ok, ma a parte la differenza di tensione, corrente, ecc, per intenderci, se io copio codice del genere, funziona così com'è?
const int switchPin = 2; // switch input
const int switchPin2 = 7; // switch input
int potentiometerPin = 0;
int value = 0;
const int motor1Pin = 3; // H-bridge leg 1 (pin 2, 1A)
const int motor2Pin = 4; // H-bridge leg 2 (pin 7, 2A)
const int enablePin = 9; // H-bridge enable pin
int led = 13;
void setup() {
Serial.begin(9600); // inizializzazione porta seriale
pinMode(switchPin, INPUT);
pinMode(switchPin2, INPUT);
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(enablePin, OUTPUT);
pinMode(led, OUTPUT); }
void loop() {
value = analogRead(potentiometerPin); // leggo valore potenziometro
Serial.println(value); // scrivo il valore sulla seriale come debugging
if (digitalRead(switchPin) == HIGH && digitalRead(switchPin2) == LOW) {
if(value>200) {
analogWrite(enablePin,255); //da 70 a 255
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
digitalWrite(led, HIGH); } // turn the LED on (HIGH is the voltage level)
else {
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
digitalWrite(led, LOW); }
}
ovvero, la definizione dei PIN, delle variabili, le funzioni interne (digitalWrite, analogWrite, Serial.println) rimangono le stesse? rimangono così immediate e comprensibili come piace a me?
Si. Se usi l'IDE per programmare la DUE (la versione 1.5.7) le funzioni di Arduino rimangono esattamente le stesse.
Internamente il codice cambia, ma il nome della funzione, i parametri i pin sono gli stessi.
Se vuoi provare, scarica la versione zip della 1.5.7
--> http://arduino.cc/en/Main/Software#toc3
Estraila ed esegui arduino.exe
Copia il tuo codice e prima di fare la verifica seleziona come board Arduino 2, una delle due. E' indifferente al momento.
Se invece hai la scheda devi selezionarla in base a quale micro usb colleghi. (programming port o native port)
sto a fare la tesi e per il controllo di 2 motori DC di cui 1 con encoder (saranno poi 4 motori, di cui 3 con encoder) mi chiedono l'uso della STM32F4 Discovery; per ora ho fatto il controllo dei due motori con la A. UNO, ma il prof. vuole qualcosa di più "professionale".
ho provato ad approcciarmi con la STM ma è da mettersi le mani nei capelli dalla complessità (rispecchiata alla UNO).
Se A. DUE mantiene la stessa immediatezza della UNO, con una maggiore potenza di calcolo, maggior clock, 32bit sarebbe perfetta.
Pano:
Se A. DUE mantiene la stessa immediatezza della UNO, con una maggiore potenza di calcolo, maggior clock, 32bit sarebbe perfetta.
Ha ragione il tuo professore, la DUE non va bene per gestire dei motori in modo serio, usa un dsPIC33 di tipo MC oppure l'STM32, la discovery è perfetta come scheda e puoi gestire fino a quattro motori dotati di encoder.
Mi intrometto solo per ripetere l'ennesima volta che ...
Arduino DUE è molto poco supportato e pochissime librerie di terze parti sono state convertite per funzionarci.
Molti pochi shield sono fatti per funzionare su Arduino DUE.
La scheda funziona esclusivamente a 3.3V e molti dei suoi pin sono in grado di dare un decimo della corrente (max 3 mA) dei pin degli altri Arduino (max 40 mA). I rimanenti comunque non danno più di 15 mA.
E' sicuramente un processore molto più complesso da utilizzare. Basta guardare le oltre 1400 pagine di cui è composto il datasheet
Difficilmente vedrà ulteriori sviluppi dato che ... ora c'è da dedicarsi alle nuove schede.
Insomma ... salvo tu non abbia esigenze veramente particolari e l'esperienza per utilizzare tale scheda, se è solo per una questione di numero di pin o di memoria ... usa Arduino Mega 2560 ... avrai tutto il supporto di cui puoi avere bisogno e la totale compatibilità con la maggior parte degli shield.
Se invece il problema è la potenza di calcolo ... dai retta ad Astro ... passa ad altra piattaforma
gpb01:
Mi intrometto solo per ripetere l'ennesima volta che ...
Arduino DUE è molto poco supportato e pochissime librerie di terze parti sono state convertite per funzionarci.
Molti pochi shield sono fatti per funzionare su Arduino DUE.
La scheda funziona esclusivamente a 3.3V e molti dei suoi pin sono in grado di dare un decimo della corrente (max 3 mA) dei pin degli altri Arduino (max 40 mA). I rimanenti comunque non danno più di 15 mA.
E' sicuramente un processore molto più complesso da utilizzare. Basta guardare le oltre 1400 pagine di cui è composto il datasheet
Difficilmente vedrà ulteriori sviluppi dato che ... ora c'è da dedicarsi alle nuove schede.
Insomma ... salvo tu non abbia esigenze veramente particolari e l'esperienza per utilizzare tale scheda, se è solo per una questione di numero di pin o di memoria ... usa Arduino Mega 2560 ... avrai tutto il supporto di cui puoi avere bisogno e la totale compatibilità con la maggior parte degli shield.
Se invece il problema è la potenza di calcolo ... dai retta ad Astro ... passa ad altra piattaforma
Guglielmo
questo fatto del poco supporto non lo sapevo, pensavo che, essendo della famiglia, avesse lo stesso supporto e community delle altre.
la Mega2560 che consigli è ancora una board con processore a 8bit e 16MHz; il fatto di volere passare a A DUE era per una questione di scheda Arduino più vicina di tutte (in termini di processore) alla STM.
grazie a tutti dei consigli, tenterò di lavorare con la STM allora.