Pages: [1] 2   Go Down
Author Topic: Adattare RaspberryPI ad Arduino per prestazioni migliori  (Read 881 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve, vorrei una vostra opinione:
ho fatto alcuni progetti con Arduino ed ho sempre notato che dopo un po' vi sono problemi di memoria a causa della grande mole di codice (e soprattutto dell'utilizzo della libreria String.h).. reset improvvisi etc..
ho pensato allora che potrei usare una RaspberryPI al posto di Arduino come base ed una di quelle shield che permettono di adattare la piedinatura della Raspberry con quella delle altre shield per Arduino; in questo modo usufruirei del processore migliore della Raspberry e continuare ad utilizzare tutti i progetti che ho già fatto fin'ora, no?

Pensate sia giusto questo ragionamento o mi sfugge qualcosa? Non vorrei comprare la PI e la shield per adattare Arduino e poi non fanno a caso mio
Logged

Grosseto
Offline Offline
Newbie
*
Karma: 0
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I programmi scritti con l'ide arduino non sono compatibili con il raspberry, credo ci sia qualcosa in sviluppo ma si parla di due piattaforme molto diverse, arduino è un avr, un semplice microcontrollore con risorse limitate, adatto a svolgere operazioni relativamente semplici, mentre raspberry è un arm, che è un SOC, con risorse decisamente superiori, in grado di svolgere operazioni più complesse, in multithread, e con ottime capacità grafiche.
In sostanza il raspberry è paragonabile ad un computer, e monta linux, quindi devi programmare per quel sistema operativo, l'adattatore di cui parli permette di comunicare le due piattaforme ma la programmazione è diversa per ognuno, per arduino è semplificata, per raspberry è come programmare su pc, credo che tu debba decidere quale piattaforma usare in base alle esigenze che hai...
Logged

ivrea (to)
Online Online
Faraday Member
**
Karma: 57
Posts: 3508
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se poi parli di Arduino Uno, tieni conto che i pin sono in I/O a 5V mentre quelli di raspberry sono a 3V3 come Arduino Due.

Ed evitare gli oggetti String su Arduino ed imparare ad usare le stringhe (vettori di char) ? Alleggeriresti un pò gli sketch.
« Last Edit: July 07, 2013, 07:28:44 am by nid69ita » Logged

my name is IGOR, not AIGOR

Switzerland
Online Online
Faraday Member
**
Karma: 82
Posts: 4184
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

... e passare semplicemente ad Arduino Mega 2560 (... mantenendo così compatibilità ed ambiente di sviluppo) ? Flash Memory 256 KB (of which 8 KB used by bootloader), SRAM 8 KB, EEPROM 4 KB ... o stai stretto anche su questo ???  smiley-eek

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
credo che tu debba decidere quale piattaforma usare in base alle esigenze che hai
per ora sto sperimentando con Arduino, ma credo che qualche cosa con la Raspberry la proverò a fare, grazie smiley-wink

Quote
Ed evitare gli oggetti String su Arduino ed imparare ad usare le stringhe (vettori di char) ? Alleggeriresti un pò gli sketch.
si, mi sa che farò sempre così

Quote
e passare semplicemente ad Arduino Mega 2560 ..?
a dirla tutta già sono passato dall'Uno alla Mega ed ogni tanto anche questa non mi bastava.. Mi può convenire passare alla Due?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Passare alla Arduino Due risolve pienamente i problemi di memoria che capitano con la Uno o con la Mega? Oppure è meglio se comincio a mettere mano alla RaspberryPI?
I progetti che intendo fare implicano tante shield aggiuntive (GPRS, GPS, XBEE...) e quindi tanto bel codice pesante messo sopra.

Che mi suggerite?
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21625
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono 2 prodotti differenti. La DUE è una scheda di prototipazione basata su un microcontrollore con core ARM. A parte la diversa velocità, la maggior memoria, l'architettura a 32 bit, i livelli a 3,3V, la usi quasi come una Mega.
La Raspberry Pi è un microcomputer: è un sistema embedded con Linux montato sopra, c'è un sistema operativo quindi che sovrintende alla gestione di tutta la scheda. Non scrivi uno sketch come nel caso di Arduino ma devi scrivere un programma da far girare sulla scheda. I pin e tutto il resto lo controlli come se fossero periferiche di un computer.
Logged


Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 25
Posts: 5481
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La Raspberry Pi è un microcomputer: è un sistema embedded con Linux montato sopra, c'è un sistema operativo quindi che sovrintende alla gestione di tutta la scheda. Non scrivi uno sketch come nel caso di Arduino ma devi scrivere un programma da far girare sulla scheda. I pin e tutto il resto lo controlli come se fossero periferiche di un computer.
Cè da dire che usando la libreria WiringPi (https://projects.drogon.net/raspberry-pi/wiringpi/) usi la stessa sintassi di arduino per controllare le periferiche di raspberry, certo è che se anzichè usare questa lib lavori in python hai tra le mani un linguaggio ad alto livello con annessi e connessi in più il sistema è multitask con relativi vantaggi, il discorso del voltaggio è un discorso a parte, bisogna vedere che shield usi e cercare una soluzione...
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

... certo è che se anzichè usare questa lib lavori in python hai tra le mani un linguaggio ad alto livello con annessi e connessi
ovviamente posso usare anche altri linguaggi oltre python sulla Raspberry oppure lo sconsigliate?

in più il sistema è multitask con relativi vantaggi
questa cosa è molto importante infatti..

ma per quanto riguarda le prestazioni della Due rispetto alla Mega è risaputo che è migliore contro i reset improvvisi e malfunzionamenti vari dovuti a codice troppo pesante?
Logged

Milan, Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 329
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

C'è anche il porting di freertos per raspberry
https://github.com/jameswalmsley/RaspberryPi-FreeRTOS
solo che è un po acerbo e ci sono dei grossi problemi con il chip di rete della B, è proprietario e non si trovano informazioni per scrivere i driver.
Logged


Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 25
Posts: 5481
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
ovviamente posso usare anche altri linguaggi oltre python sulla Raspberry oppure lo sconsigliate?
Certo che si.. Ho fatto solo un esempio di linguaggio ad altro livello in cui ti trovi però molte librerie già fatte come ad esempio la wiringPi o la libreria per la gestione di I2C,SPI etc...Nulla vieta di programmarla in C,C++,Java, scratch e altri linguaggi smiley
Quote
ma per quanto riguarda le prestazioni della Due rispetto alla Mega è risaputo che è migliore contro i reset improvvisi e malfunzionamenti vari dovuti a codice troppo pesante?
Sono due schede con processori molto differenti, essendo la Due molto più performante della mega dovrebbe essere un poco più sicura sotto quet'aspetto ma ricorda che tutto stà nella bontà e nell'ottimizzazione del codice, perchè un codice ingarbugliato per quanto hai una macchina potente non funzionerà mai bene come un listato ottimizzato al 200%  smiley-wink
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Switzerland
Online Online
Faraday Member
**
Karma: 82
Posts: 4184
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...
ma per quanto riguarda le prestazioni della Due rispetto alla Mega è risaputo che è migliore contro i reset improvvisi e malfunzionamenti vari dovuti a codice troppo pesante?

Perdona ma ... questa domanda NON ha senso ...

Non esiste "codice troppo pesante", esiste "codice scritto male" !!!

Se il codice è mal scritto, non c'è Arduino Mega, DUE, RaspBerry, e chi più ne ha più ne metta, che tenga ... prima o poi andrà in crash !!!

Quindi, domandati se il tuo codice è scritto bene, calcolati la reale occupazione di RAM, le risorse che ti occorrono, la velocità, le tensioni in gioco, le compatibilità, ecc. ecc. e, SOLO DOPO, scegli la scheda che ... sicuramente, se le valutazioni sono corrette ed il codice pure, non ti darà "problemi paranormali" ...  smiley-twist

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non esiste "codice troppo pesante", esiste "codice scritto male" !!!

Si ok, intendo questo  smiley-sweat

dato che a questo punto ho deciso di comprarmi una Arduino Due ci possono essere cose importanti a riguardo che devo sapere (a parte che la tensione è 3,3V al posto di 5V)?
Logged

Switzerland
Online Online
Faraday Member
**
Karma: 82
Posts: 4184
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...
dato che a questo punto ho deciso di comprarmi una Arduino Due ci possono essere cose importanti a riguardo che devo sapere (a parte che la tensione è 3,3V al posto di 5V)?

Si, che una buona parte delle librerie che trovi ... NON funzionano sulla DUE (senza modifiche che TI devi fare) ... e che attualmente il supporto ufficiale è ... piuttosto scarno ... smiley-sad

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 25
Posts: 5481
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non esiste "codice troppo pesante", esiste "codice scritto male" !!!

Si ok, intendo questo  smiley-sweat

dato che a questo punto ho deciso di comprarmi una Arduino Due ci possono essere cose importanti a riguardo che devo sapere (a parte che la tensione è 3,3V al posto di 5V)?
consepevole di qualìèil problema allora inizia a risolverlo è inutile aggirarlo  smiley-mr-green
ciò che stai facendo è questo, prendi il mottore di una Ferrari e lo metti in una Panda (modello vecchio) pretendendo di correre come una vera auto da corsa, devi prima vedere l'assetto l'aerodinamica etc... è un esempio stupido ma il concetto è quello...
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Pages: [1] 2   Go Up
Jump to: