Scoprire Arduino DUE!

Ciao a tutti.
Sono molto vicino all'acquisto di una scheda Arduino DUE ma prima di procedere vorrei togliermi alcuni dubbi.
Chiedo scusa per il basso livello d'esperienza e per i termini non propriamente tecnici..
Diciamo che sto tentando di capire il mondo,i limiti e le caratteristiche di Arduino DUE :slight_smile: e spero tanto di riuscire prima o poi di creare qualcosa di divertente; Eccoci alle domande:

  1. Quanti servo motori possono essere collegati direttamente sulla Arduino DUE?

  2. Il collegamento di un servo motore su Arduino UNO e' ormai abbastanza documentato, grazie agli innumerevoli utenti che ne hanno condiviso le procedure.
    Utilizzando l'Arduino DUE (senza considerare il discorso 3.3v) i collegamenti sono gli stessi che farei con Arduino UNO?

  3. E per quanto riguarda l'utilizzo di una servo controller linkata con Arduino DUE, (sempre non considerando il discorso 3.3v) i collegamenti sono gli stessi che farei utilizzando Arduino UNO?

  4. Ho letto qui nel forum che l'Arduino DUE eroga meno corrente rispetto all'Arduino UNO.
    Massimo 130mA per l'Arduino DUE (con limiti dei singoli pin da 3mA a 15mA).
    Ok, in caso io voglia pilotare parecchi servi, diciamo una quindicina, e decidessi di utilizzare una scheda servo controller collegata all'Arduino DUE, avrei ancora tale problematica?
    Oppure sarebbe la scheda servo controller che erogherebbe la corrente per i miei servi?
    In altre parole, ci sono seri limiti di erogazione elettrica usando e/o non usando una scheda servo controller linkata con Arduino due?

5)E' giusto se dico che una scheda di controllo, in questo caso Arduino DUE, una volta programmata "spedisce" gli ordini di posizione e velocita' alla scheda servo controller che eseguira' gli ordini e che "spedira'" a sua volta la conferma all'Arduino DUE che memorizzera' le nuove variabili di posizione e velocita'... corretto?

  1. Ritornando alla domanda 4, La scheda servo controller gestisce totalmente l'alimentazione dei servi giusto? sara' in questa che dovro' allacciare i cavi che dalla batteria dovranno alimentare i servi?

  2. Utilizzero' RX e TX per collegare una scheda servo controller con la mia Arduino DUE? Ci sono eventuali problematiche particolari conosciute? (oltre il fatto che la scheda servo controller deve essere a 3.3v)

  3. Penso che ci siano diverse librerie che potranno essere utilizzate dal software di programmazione Arduino per far comunicare Arduino con tale scheda di controllo servi.. corretto?

Mah ... pensaci bene ...

  1. Arduino DUE è molto poco supportato e pochissime librerie di terze parti sono state convertite per funzionarci.

  2. Molti pochi shield sono fatti per funzionare su Arduino DUE.

  3. 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.

  4. E' sicuramente un processore molto più complesso da utilizzare. Basta guardare le oltre 1400 pagine di cui è composto il datasheet

  5. Difficilmente vedrà ulteriori sviluppi dato che ... ora c'è da dedicarsi alle nuove schede.

... sei sicuro ?

Guglielmo

gpb01:
Mah ... pensaci bene ...

  1. Arduino DUE è molto poco supportato e pochissime librerie di terze parti sono state convertite per funzionarci.

  2. Molti pochi shield sono fatti per funzionare su Arduino DUE.

  3. 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.

  4. E' sicuramente un processore molto più complesso da utilizzare. Basta guardare le oltre 1400 pagine di cui è composto il datasheet

  5. Difficilmente vedrà ulteriori sviluppi dato che ... ora c'è da dedicarsi alle nuove schede.

... sei sicuro ?

Guglielmo

Ciao Guglielmo!
Ehh mi hai praticamente devastato! :smiley:

Ti chiedo a questo punto..:

  1. A questo punto, considerando le mie domande, e considerando l'assoluta necessita' di utilizzare l'Arduino piu' performante, qual'e' la scheda Arduino che mi consiglieresti?

  2. Esistono schede di performance al livello della Arduino DUE e nello stesso tempo cosi' facili da programmare?

  3. Il mio scopo e' quello principalmente di utilizzare tanti servi. Sara' sempre meglio utilizzare una scheda di controllo linkata con una scheda servo controller? E mi confermi che il cablaggio di alimentazione dei servi andrebbe collegato sulla scheda servo controller?

  4. Ma la Arduino 2 e' proprio cosi' incasinata rispetto alla uno?? :roll_eyes:

aldoz:

  1. A questo punto, considerando le mie domande, e considerando l'assoluta necessita' di utilizzare l'Arduino piu' performante, qual'e' la scheda Arduino che mi consiglieresti?

Sicuro che ti serve "... così performante" ??? Non è che piuttosto, per controllare tutte quel cose, ti serve tanta memoria e tanti pin di I/O ?
Perché in tal caso la risposta è, senza ombra di dubbio ... Arduino MEGA 2560 !

aldoz:
2) Esistono schede di performance al livello della Arduino DUE e nello stesso tempo cosi' facili da programmare?

NI ... esistono di altri produttori ... più o meno facili da programmare ...

aldoz:
3) Il mio scopo e' quello principalmente di utilizzare tanti servi. Sara' sempre meglio utilizzare una scheda di controllo linkata con una scheda servo controller? E mi confermi che il cablaggio di alimentazione dei servi andrebbe collegato sulla scheda servo controller?

Ma, senza incasinarti, conosci QUESTO oggetto ??? Utilizza il bus I2C, è in grado da solo di pilotare 16 servo e ne puoi collegare ben 62 (ciascuno con il suo indirizzo) per un totale di servo pilotabili di 992 ! ... e il tutto con l'uso di SOLI 2 pin che hai anche su Arduino UNO :stuck_out_tongue:
Ti bastano ? XD :grin: XD

SI, i servo, specie se tanti, è bene che abbiano il LORO alimentatore ... il cui GND metterai in comune con il GND di Arduino.

aldoz:
4) Ma la Arduino 2 e' proprio cosi' incasinata rispetto alla uno?? :roll_eyes:

... guarda il datasheet che ti ho linkato e risponditi da solo !

Guglielmo

Guglielmo, innanzi tutto ti ringrazio davvero per le risposte! Non sai quanto utili siano per me!

Sicuro che ti serve "... così performante" ??? Non è che piuttosto, per controllare tutte quel cose, ti serve tanta memoria e tanti pin di I/O ?
Perché in tal caso la risposta è, senza ombra di dubbio ... Arduino MEGA 2560 !

Allora.. ho parecchie basi da programmatore, quindi penso proprio che il codice che utilizzero'sara' tanto e anche magari un po complesso. Ho letto qua e la che l'Arduino UNO non sia cosi' performante e rapido quando si devono gestire tante cose.. considera che il mio progetto utilizzera' (nei miei sogni eh! pero' e' quello a cui punto) almeno 12 o 13 servo e almeno 6 o 7 sensori..
Ecco tu mi hai indicato Arduino MEGA 2560; Gia' che mi parli di piu' memoria mi rendi felice :slight_smile: ma per quanto riguarda la gestione di tanto codice? Potrei, utilizzando questa MEGA 2560, mantenere una certa vicinanza al real time, considerati i servi e i sensori di cui ti scrivevo su?

Ma, senza incasinarti, conosci QUESTO oggetto ??? Utilizza il bus I2C, è in grado da solo di pilotare 16 servo e ne puoi collegare ben 62 (ciascuno con il suo indirizzo) per un totale di servo pilotabili di 992 ! ... e il tutto con l'uso di SOLI 2 pin che hai anche su Arduino UNO smiley-razz
Ti bastano ? smiley-lol smiley-mr-green smiley-lol

Qua mi hai illuminato!! Fantastico! 3 domande :slight_smile: :

A) E se lo utilizzassi con il MEGA 2560? Mi avvicinerei a quel che mi serve secondo te?
B) E poi, (schifosa la mia ignoranza..) questo PWM/Servo Driver ha nel proprio nome la parola PWM... ma che significa che posso pilotare i servi sia per quanto riguarda posizione che per quanto riguarda velocita'??? (Sapevo che ai servi non si poteva variare la velocita' di funzionamento..)
C) Se decidessi di utilizzare questo servo-driver, linkato alla Arduino MEGA, avrei limiti elettrici particolari? (dimmi di no ti prego! :slight_smile: )

NI ... esistono di altri produttori ... più o meno facili da programmare ...

Ma la serie Arduino e' la piu' facile da programmare vero?

... guarda il datasheet che ti ho linkato e risponditi da solo !

:slight_smile: mi e' bastato notare quanto tempo il mio PC ha impiegato ad aprire il pdf..

ANCORA GRAZIE 1000 PER L'AIUTO!

aldoz:
Allora.. ho parecchie basi da programmatore, quindi penso proprio che il codice che utilizzero'sara' tanto e anche magari un po complesso. Ho letto qua e la che l'Arduino UNO non sia cosi' performante e rapido quando si devono gestire tante cose.. considera che il mio progetto utilizzera' (nei miei sogni eh! pero' e' quello a cui punto) almeno 12 o 13 servo e almeno 6 o 7 sensori..
Ecco tu mi hai indicato Arduino MEGA 2560; Gia' che mi parli di piu' memoria mi rendi felice :slight_smile: ma per quanto riguarda la gestione di tanto codice? Potrei, utilizzando questa MEGA 2560, mantenere una certa vicinanza al real time, considerati i servi e i sensori di cui ti scrivevo su?

... ripeto, ricorda che stai controllando oggetti ... meccanci ... che hanno comunque la loro "lentezza" ...

Per quanto "lento" sia l'ATmega328P di Arduino UNO che il ATmega2560 di Arduino MEGA, sono delle MCU che possono arrivare a 20 Mhz di clock (su Arduino sono utilizzate a 16MHz) e che eseguono quasi tutte le micro-istruzioni in uno/due cicli di clock, quindi ... non è che facciano proprio schifo come MCU :wink:

Ovvio che poi ... molto dipende anche dalla bravura di chi programma :stuck_out_tongue: XD :stuck_out_tongue: XD

La memoria programma su Arduino UNO è comunque 32KB e su Arduino MEGA 2560 è di ... 256KB !!!

aldoz:
Qua mi hai illuminato!! Fantastico! 3 domande :slight_smile: :
A) E se lo utilizzassi con il MEGA 2560? Mi avvicinerei a quel che mi serve secondo te?
B) E poi, (schifosa la mia ignoranza..) questo PWM/Servo Driver ha nel proprio nome la parola PWM... ma che significa che posso pilotare i servi sia per quanto riguarda posizione che per quanto riguarda velocita'??? (Sapevo che ai servi non si poteva variare la velocita' di funzionamento..)
C) Se decidessi di utilizzare questo servo-driver, linkato alla Arduino MEGA, avrei limiti elettrici particolari? (dimmi di no ti prego! :slight_smile: )

A) non mi hai detto quello che ti serve ... come faccio a saperlo ? :grin:
B) può pilotare SIA cose in PWM CHE i servo. NO, i normali servo (quelli non digitali, che invece vengono comandati serialmente) NON hanno controllo di velocità. Puoi farlo tu via software, avanzando a scatti piano piano verso l'angolo finale :wink:
C) I limiti sono imposti dalla lunghezza del collegamento tra quella schedina è il master che la controlla. E' un bus I2C ... quindi 10/20 cm.

aldoz:
Ma la serie Arduino e' la piu' facile da programmare vero?

E' quello in cui l'IDE e le sue librerie di base, ti nasconde la maggior parte delle complessità.

Guglielmo

EDIT : Hai guardato QUESTO tutorial ?

Guglielmo, apro e chiudo al volo una parentesi :
Sto bazzicando qui e la in internet, rompendo le balle a tanti :stuck_out_tongue: . Devo dire che la tua gentilezza e disponibilita' è totale!
Siccome non voglio assolutamente approfittarmene, ti ringrazio tantissimo per le tue risposte, non sai la nebbia che mi hai cancellato dalla mente!

A) non mi hai detto quello che ti serve ... come faccio a saperlo ? smiley-mr-green

haha scusa, intendevo chiederti se utilizzando la MEGA + il servo-driver da te linkato, posso gestire 12 o 13 servo + 6 sensori.
Tutto qui :slight_smile: e spero di aver capito dalle tue risposte che si, è una buona scelta :slight_smile:

Per quanto "lento" sia l'ATmega328P di Arduino UNO che il ATmega2560 di Arduino MEGA, sono delle MCU che possono arrivare a 20 Mhz di clock (su Arduino sono utilizzate a 16MHz) e che eseguono quasi tutte le micro-istruzioni in uno/due cicli di clock, quindi ... non è che facciano proprio schifo come MCU smiley-wink

Era proprio quello che volevo leggere :slight_smile:

E' quello in cui l'IDE e le sue librerie di base, ti nasconde la maggior parte delle complessità.

Si, è quello che immaginavo. E' una specie di C++ limitato alle sole cose "facili" gia' pronto con un blocco codice per il settaggio dei parametri e un blocco loop pronto all'uso :slight_smile:

aldoz:
haha scusa, intendevo chiederti se utilizzando la MEGA + il servo-driver da te linkato, posso gestire 12 o 13 servo + 6 sensori.
Tutto qui :slight_smile: e spero di aver capito dalle tue risposte che si, è una buona scelta :slight_smile:

Con quella schedina fai tutto anche con una UNO, ma ... per pochi euro in più, io suggerisco sempre la MEGA ... perché si sa, "l'appetito vien mangiando" :grin:

aldoz:
Si, è quello che immaginavo. E' una specie di C++ limitato alle sole cose "facili" gia' pronto con un blocco codice per il settaggio dei parametri e un blocco loop pronto all'uso :slight_smile:

E' C++ con a corredo una serie di funzioni che ti nascondono quello che normalmente dovresti fare TU. Se poi questa strada sia "educativa" o meno ... :roll_eyes:

Personalmente penso sia diseducativa, ma ...
... indubbiamente ha il grande vantaggio di far avvicinare al mondo dei microcontrollori anche gente non specializzata nel settore ! :slight_smile:

Guglielmo

Io la DUE la prendo e ci provo, gli shield compatibili o meno ... nessuno mi obbliga a trovarne uno che si infili perfettamente sopra, posso fare anche i ponti sui pin che mi interessano su schede separate.
Per le librerie, si tratterà di cambiare indirizzi sugli interrupt e sulla gestione della ram, qualcosa c'è in giro sulla rete, non è che non c'è proprio nulla.
Se aspettiamo un 700MHz a 5v sui pin e 20mA su cadauno possiamo campare 1000 anni :slight_smile:

pablos:
...
Per le librerie, si tratterà di cambiare indirizzi sugli interrupt e sulla gestione della ram, qualcosa c'è in giro sulla rete, non è che non c'è proprio nulla.

Pablos ... ma prima di scrivere ... hai letto la presentazione dell'utente nell'apposito thread ? :astonished:

aldoz:
...
L'unica mia esperienza è stata costruire una piattaforma mobile 3DOF per simulatori di volo e racing ma ora vorrei entrare nel mondo dei robot e penso che come primo passo per entrare in questo mondo sia quasi d'obbligo scegliere Arduino.
...

... e, nei post precedenti il fatto che stia cercando una piattaforma "... la piu' facile da programmare ..." ?

Siamo seri ...
... te, io, possiamo metterci a fare quello che dici, ma non è certo il consiglio da dare ad un utente che sta cercando qualche cosa "... come primo passo per entrare in questo mondo ..." !

Guglielmo

Allora, grazie a Guglielmo ho deciso, partiro' con Arduino MEGA.
Vorrei davvero tanto saper di poter arrivare a sfruttare la DUE ma come appunto ha accennato Guglielmo, probabilmente mi farei un torto iniziando da la. Troppe problematiche e zero esperienza.
Ho letto che il problema 3.3v della DUE e' superabile con trucchetti e sistemi vari e appunto, come dice Pablos gia' c'e' qualcuno che sa anche come modificare gli indirizzi Interrupt.. ma per ora forse e' davvero troppo per me.

Naturalmente se arrivassi ad un punto tale del mio progetto, in cui mi rendessi conto che la MEGA ha un microcontrollore troppo lento per la mia qualita' e quantita' di codice.. beh.. un pensierino per la DUE (e per il suo controllore a 32bit!!) lo farei. Avrei comunque accumulato tanta esperienza in piu' utilizzando la MEGA.

Gia' il fatto che Guglielmo mi ha dato l' "OK" per poter gestire quello che per ora desidero (MEGA+servo-driver+12servi+6sensori) è pura luce nel buio totale in cui ancora mi trovavo stamane :slight_smile:

GRAZIE & GRAZIE ANCORA!

Ps: Naturalmente mi rifaro' vivo appena avro tra le zampe queta bella MEGA e sperando sempre in risposte cosi' cordiali e ILLUMINANTI come quelle che ho ricevuto oggi! :slight_smile:

Per sfruttare appieno un ARM a 32bit devi fare signal processing, tipo imlementarti un tuo decoder mp3.
Potresti fare quello suggerito da Guglielmo pure con un Arduino UNO :wink:

thexeno:
Per sfruttare appieno un ARM a 32bit devi fare signal processing, tipo imlementarti un tuo decoder mp3.
Potresti fare quello suggerito da Guglielmo pure con un Arduino UNO :wink:

Grazie anche a te thexeno e no, non ho nessun piano di sviluppo per un decoder mp3! :astonished:
Diciamo che Guglielmo mi ha messo la bava alla bocca per la MEGA.. e chi si schioda piu'! :smiley:

aldoz:
Diciamo che Guglielmo mi ha messo la bava alla bocca per la MEGA.. e chi si schioda piu'! :smiley:

... ti faccio vedere un'altro gioiellino ... una ATmega2560 in formato Arduino UNO ... per i casi in cui uno ha problemi di spazio : QUI

Ha inoltre il vantaggio che, con uno switch, decidi se vuoi che lavori a 3.3V o a 5V ... :wink:

Ovviamente richiede un po' più di manualità per i collegamenti sui pin che NON sono della UNO, quelli sul lato corto (a destra) e che servono a portare fuori tutti i pin che ha in più il ATmega2560 XD

Guglielmo

mm praticamente una MEGA rimpicciolita!

Guglielmo ne approfitto (del fatto che ci godi a farmi venire l'acquolina :stuck_out_tongue: ) per chiederti se sia possibile collegare fare dialogare 2 Arduino.

Nel senso, sulla Arduino nr°1 ho un codice che manipola alcune variabili (per esempio variabili correlate ai sensori) e le "spedisce" alla Arduino nr°2, la quale puo' quindi accedere alla variabile settata dalla Arduino nr°1 e in base a quella per esempio muovere un servo!.

E se si, tramite TX??

Hai molti modi per farli dialogare ....
.... se sono vicini (10/20 cm) puoi usare sempre il bus I2C con il secondo Arduino che si comporta come un normale device slave I2C. Se invece sono lontani, li puoi far parlare tramite seriale e, in funzione delle distanze, dei transceiver 232 o 485 :wink:

Guglielmo

..non dimenticherei anche l'SPI :slight_smile:

... Si, giusto, sempre nei limiti della distanza ... ma visto che già probabilmente dovrà usare I2C ... forse è inutile sprecare altri pin :wink:

Guglielmo

Pablos ... ma prima di scrivere ... hai letto la presentazione dell'utente nell'apposito thread ?

E' raro trovarmi a scrivere a vanvera o descrivere una cosa non toccata con mano e spesso dico quello che penso in maniera spontanea che piaccia o no :slight_smile: .

Il mio pensiero, non era rivolto al creatore del Thread al quale hai già risposto tu in modo egregio, era rivolto all'argomento arduino DUE che è poco scelto per motivi bhoo non so (forse lo so ma vabbè)... l'ho atteso per molto tempo, ho atteso che raggiungesse un livello di conoscenza adeguato da poter essere usato con una semplicità quasi equivalente alla UNO, MEGA e altre, ma ciò ha dato molta delusione che non lascerò comunque intentato :roll_eyes:.

ciao

pablos:
E' raro trovarmi a scrivere a vanvera o descrivere una cosa non toccata con mano e spesso dico quello che penso in maniera spontanea che piaccia o no :slight_smile: .
....

... ma difatti non criticavo assolutamente quello che dicevi per il contenuto ... ma per il contesto e la domanda dell'utente :wink:

Poi, se vogliamo aprire un thread sulla DUE e ne vogliamo parlare apertamente, per me va bene ... ma ... ho idea che rischiamo il ban XD :grin: XD :grin: XD :grin:

Guglielmo