Aggiornamento Due

PaoloP:

dab77:
Ho dato un'occhiata al datasheet del chip, mi pare di aver capito che questo ha 3 timer con già implementato il decoder di quadratura, con 3 ingressi ognuno (phA,B e index), è corretto? quindi si possono leggere 3 encoder in contemporanea, giusto, o ho capito male?

Embedded Characteristics
Three 32-bit Timer Counter Channels
• A Wide Range of Functions Including:
– Frequency Measurement
– Event Counting
– Interval Measurement
– Pulse Generation
– Delay Timing
– Pulse Width Modulation
– Up/down Capabilities
– Quadrature Decoder Logic
– 2-bit Gray Up/Down Count for Stepper Motor
Each Channel is User-configurable and Contains:
– Three External Clock Inputs
– Five Internal Clock Inputs
– Two Multi-purpose Input/Output Signals
• Internal Interrupt Signal
• Two Global Registers that Act on All Three TC Channels
• Compare Event Fault Generation for PWM
• Configuration Registers can be write protected

Nel datasheet a pag. 2, dalla tabella risultano 9 timer a 32-bit, ma solo 3 di questi sono accessibili tramite pin (vedi nota 5). Bisogna vedere quanti di questi sono riportati sui pin dell'Arduino.
Ad esempio, ha detto Banzi, qualche decina di risposte fa, che i pin dell'interfaccia Ethernet se pur presenti nel chip non saranno, al momento, disponibili come pin sull'arduino.

PaoloP:
Ad esempio, ha detto Banzi qualche decina di risposte fa che i pin dell'interfaccia Ethernet se pur presenti nel chip non saranno, al momento, disponibili come pin sull'arduino.

Attenzione che il micro contiene solo la parte MAC della ethernet, serve un un ulteriore ic esterno per poterla utilizzare, e comunque c'è da implementare a software tutta la parte protocollo, ovvero è la stessa cosa di utilizzare un ENC28J60 esterno con la differenza che circa 1/2 è già integrato in hardware nella mcu.

Mi sa che ci vorrà un altra sezione "arduino Due" o evidenziare nel titolo una sigla tipo [DUE] altrimenti cercare delle info dirette nel search tra qualche settimana sarà un delirio

astrobeed:

PaoloP:
Ad esempio, ha detto Banzi qualche decina di risposte fa che i pin dell'interfaccia Ethernet se pur presenti nel chip non saranno, al momento, disponibili come pin sull'arduino.

Attenzione che il micro contiene solo la parte MAC della ethernet, serve un un ulteriore ic esterno per poterla utilizzare, e comunque c'è da implementare a software tutta la parte protocollo, ovvero è la stessa cosa di utilizzare un ENC28J60 esterno con la differenza che circa 1/2 è già integrato in hardware nella mcu.

Si, è la stessa risposta che mi aveva dato Banzi. Aveva però aggiunto che, forse, in una successiva, release, sarebbero stati disponibili.
Comunque, ho dato uno sgardo all'immenso datasheet ed il procio è veramente molto più complesso del "semplice" 328. Se penso che ancora non ho approfondito tanti aspetti con l'Arduino UNO, col DUE mi sembrerà di tornare alle elementari.

E pensare a come aiutare gli utenti che intraprenderanno le sperimentazione con questa scheda... mi fa venire i capelli dritti! (non c'è l'iconcina con i capelli dritti. Uff.)

PaoloP:
Comunque, ho dato uno sgardo all'immenso datasheet ed il procio è veramente molto più complesso del "semplice" 328. Se penso che ancora non ho approfondito tanti aspetti con l'Arduino UNO, col DUE mi sembrerà di tornare alle elementari.

La mcu usa un core Cortex M3, non è un oggetto "facile" da gestire come un AVR, anche il solo scrivere su un GPIO comporta il dover settare svariati registri per impostarlo nella modalità voluta,.
Comunque i concetti di base sono gli stessi degli AVR quindi se li hai già "metabolizzati" il viaggio sarò sicuramente più semplice, ma non per questo meno divertente :grin:

pablos:
Mi sa che ci vorrà un altra sezione "arduino Due" o evidenziare nel titolo una sigla tipo [DUE] altrimenti cercare delle info dirette nel search tra qualche settimana sarà un delirio

mi concentrerei su questo punto, anche io trovo sia una necessità primaria una sezione apposita. in oltre essendo "specifica" non dovrebbe creare confusione. Mi aspetto un'ondata di post con la 2, sopratutto appena esce che nemmeno noi ( ocimunque mooolti pochi) saremo in grado ci capirci qualcosa :slight_smile:

Concordo a pieno, anzi visto che già se ne parla a iosa va creata in anticipo, cioè subito, che visti i tempi di aggiornamento della struttura di questo forum, per il 22 ottobre stiamo già abbondantemente in ritardo...:slight_smile:

@MASSIMO, ci puoi dire qualcosa riguardo il discorso di lettura encoder, visto che una delle principali applicazioni della DUE sarà sicuramente il controllo di robot vari con PWM, stepper, motori DC, encoder e PID vari?

Raga scusate ma ci sarà una presentazione ufficiale della due? o già c'è stata e me la sono persa? :cold_sweat:

Ciao a tutti

In generale credo che il valore di Arduino è il plug and play, la valanga di documentazione e la comunità attiva e simpatica.
Tutti gli altri prodotti linux based non hanno manco un sistema operativo ufficiale e univoco, figurarsi un ambiente di sviluppo adeguato.

Per quanto riguarda gli encoder e altre cose: il SAM3X ha un milione di funzioni. al momento rilasciamo un port delle API Arduino classiche poi passiamo ad implementare le cose che funzionano solo sulla DUe. (abbiamo già il DAC e il DMA abbastanza ben fatti ed un player di wav che funziona. Il player ogg è in arrivo)

L'annuncio ufficiale è stato sabato alle 13 ora di NY ora inizieremo a rilasciare un pò di materiale in preparazione della vendita.

m

In generale credo che il valore di Arduino è il plug and play, la valanga di documentazione e la comunità attiva e simpatica.
Tutti gli altri prodotti linux based non hanno manco un sistema operativo ufficiale e univoco, figurarsi un ambiente di sviluppo adeguato.

Sei proprio sicuro di questa tua affermazione ? Io Ho seri dubbi .. a mio parere Arduino 2 ormai non ha piu' assolutamente nulla di innovativo da proporre all'attuale mercato ... un anno e mezzo fa' quando realizzammo la prima scheda aveva ancora senso ... oggi con i processori disponibili sono già vecchi i design con gli ARM Cortex M4 figuriamoci quelli con gli M3 .

Dire che linux non e' standard e non e' plug and play non e' del tutto esatto.
Il kernel e' identico per tutte le distribuzioni e se usi distribuzioni come debian o archlinuxarm hai a disposizione dei pacage manager incredibili. Oltre che avere distribuzioni che funzionano su micro diversi in modo assolutamente trasparente ... la trasportabilità e' eccezzionale.
La community di linux e' enorme e non dimentichiamoci che il kernel di android si basa pesantemente su Linux

Se voglo realizzare una scheda dotata di wifi e di una webcam per fare un webcam wifi devo semplicemente fare tre cose :

  1. Mettere il dongle wifi usb nella usb
  2. Mettere la cam usb compatibile con lo standard ucv nell'altra usb

Quando collego i due device in automatico il kernel riconosce i device e li installa . (Devo preparare prima il kernel per la mia scheda con le opzioni che intendo mettere a disposizione fin da subito , devo preparare i miei driver .ko che sono installabili dinamicamente e non richiedono la compilazione statica )

Dopo di che posso lanciare l'istruzione :
pacman -Ss "webcam"
e vedo la lista di tutte le applicazioni che supportano webcam già pronte all'uso

Se scrivo
pacman -S mjpeg_streamer

Installo un'applicazione che mi fa' da webcam wifi ... asap con tanto di supporto di tutto quello che mi serve :slight_smile:

Massimo un consiglio non ti mettere di traverso , cavalca l'era di linux c'e' una bella lib che si chiama piwiring

Che ti mette a disposizione le native di arduino su RaspberryPi ... uscite anche voi con un design di questo genere e lasciate perdere lo sviluppo su due ormai non ha piu' senso ... poi se vuoi usare atmel prendi spunto da Acmesystems e la schedina ARIA :slight_smile:

Oggi con 5 $ hai chip che semplicemente con una DDRAM da 64 mbyte ti fa' girare tranquillamente distibuzioni embedded di Linux.

Se ho bisogno di un server web e voglio usare python o voglio usare mysql
semplicemente installo apache2

pacman -S apache2

e voila ... se accedo all'ip dal browser vedo subito la mia paginetta web disponibile.

L'ambiente di sviluppo ... in realta' non ti serve reinventarlo e' gia' insito nel sistema ...

pacman -S base-devel

e insalli tutto

poi con nano direttamente dalla tua interfaccia telnet collegata in seriale o se vuoi in ssh ...
esegui nano , un editor semplice ed intuitivo

nano test.c

ti scrivi il tuo programmino

e scrivi

gcc test.c

ti trovi un file a.out , lo eseguie e voila .... funzia
se poi vuoi eseguirlo in multi tasking

./a.out &

e lanci task in multitasking ...

vuoi sapere le risorse impiegate da ogni task ? scrivi in una sessione telnet separata

top
e voila sei aggiornato in tempo reale ...

Non c'e' paragone .... e' una figata ... l'unico problema vero che ho verificato e' che i kernel linux disponibili non sono RTOS , non sono realtime , quindi se usi una periferica hardware PWM per esempio ... i tempi vengono rispettati e il pwm e' ottimo ... se usi invece il pwm software con funzioni di sincronizzazioni tipo usleep ... il pwm fa' schifo ed e' impreciso ...
Non c'e' dubbio il futuro e' sulle piattaforme come raspberry ... ma si puo' fare meglio ... basta non perdere questo treno ...

That's all

Un saluto e buon lavoro
Roberto

redfox74:
Sei proprio sicuro di questa tua affermazione ? Io Ho seri dubbi .. a mio parere Arduino 2 ormai non ha piu' assolutamente nulla di innovativo da proporre all'attuale mercato ... un anno e mezzo fa' quando realizzammo la prima scheda aveva ancora senso ... oggi con i processori disponibili sono già vecchi i design con gli ARM Cortex M4 figuriamoci quelli con gli M3 .

Roberto, in linea di massima concordo con tutto quello che hai scritto, però con Linux te lo puoi scordare di gestire il low level in un sistema elettronico complesso, ovvero avrai sempre delle mcu, sia a 8, che a 16, che 32 bit, senza un sistema operativo a gravarci sopra per gestire cose come un controllo motori ad anello chiuso di alto livello tanto per fare un esempio.
Arduino DUE si pone proprio come anello di congiunzione tra il low level e le funzionalità superiori come la gestione di una camera, il wifi, etc, per le quali utilizzi un sistema embedded con S.O., l'unione dei due ti consente di gestire qualunque cosa senza problemi.
Giusto come esempio pratico mi permetto di allegare la foto dell'elettronica di un robot per esterno abbastanza complesso dove utilizzo una Aria G25 abbinata a tre dsPIC33, due per il controllo motori e la navigazione, uno per la IMU/GPS e un Arduino MEGA2560 (così non del tutto OT :slight_smile: ) per i sensori, la lettura della corrente dalle batterie, la telemetria e altre cosette.
Da notare che se avessi avuto a disposizione la DUE diversi mesi fa per questo progetto mi sarei risparmiato il dsPIC33 che utilizzo per la IMU/GPS e avrei delegato il compito alla DUE.

urca bel mostriciattolo, ci posterai qualcosa al riguardo?

lesto:
urca bel mostriciattolo, ci posterai qualcosa al riguardo?

E' un progetto ancora in fase di sviluppo, attualmente è già funzionante anche se con limitate capacità, qui sotto un breve video del primissimo test della motion controller.
Attualmente sto combattendo con la Aria G25 per mettere a punto lo streaming video, già operativo ma con dei problemi di latenza da risolvere, e l'interfaccia web per la telemetria e il pannello di controllo in modo da poter ricevere video e dati tramite un normale browser, l'idea è poter utilizzare indifferentemente un qualunque pc con un qualunque S.O. o un Tablet/Smartphone con un qualunque S.O.

Signori siete ot aprire una discussione a parte complimenti per il progetto cmq

astrobeed:
Attualmente sto combattendo con la Aria G25 per mettere a punto lo streaming video,

se apri un post apposta discutiamo un attimo di che software stai usando e come. Se stai usando motion ho una brutta notizia da darti :slight_smile:

lesto:
se apri un post apposta discutiamo un attimo di che software stai usando e come. Se stai usando motion ho una brutta notizia da darti :slight_smile:

Spostiamoci sul nostro spamm bar per continuare questa discussione, più tardi metto altri dettagli e foto.

arduino due sarà rilasciato sotto licenza open source?

con Linux te lo puoi scordare di gestire il low level in un sistema elettronico complesso

A riprova di quanto scritto da astrobeed, segnalo questo articolo:

https://www.linux.com/news/enterprise/biz-enterprise/644562-yocto-compliant-enea-linux-reaches-version-20

Un passaggio significativo IMHO è questo:

Enea's Light-Weight Runtime Threads (LWRT) technology, for instance, offers improved real-time characteristics in Linux user-space, delivering scheduling, message passing, and resource management functionality. The result is that applications can run with improved determinism and minimal overhead, thus addressing some commonly held concerns about traditional Linux solutions.

Cioè a dire, esistono iniziative di un certo peso (Yocto, Enea, appunto) il cui scopo è creare incarnazioni di linux che abbiano proprio quel determinismo richiesto nel mondo embedded e che le "normali" versioni (desktop-oriented) invece non hanno.

Scusate l'OT.

Madwriter:
arduino due sarà rilasciato sotto licenza open source?

certo, come sempre.
ci sono indicazioni diverse in giro per il web???

No, ma non ho trovato alcuna dichiarazione(o almeno non ci ho fatto caso),comunque era solo una curiosità grazie mille della risposta :grin: