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
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...
... 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 ???
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.
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.
leo72:
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 (Raspberry Pi | Wiring | Gordons Projects) 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...
ratto93:
... 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?
ratto93:
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?
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
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%
nichis:
...
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" ... ]
gpb01:
Non esiste "codice troppo pesante", esiste "codice scritto male" !!!
Si ok, intendo questo
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)?
nichis:
...
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 ...
gpb01:
Non esiste "codice troppo pesante", esiste "codice scritto male" !!!
Si ok, intendo questo
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
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...
ratto93:
consepevole di qualìèil problema allora inizia a risolverlo è inutile aggirarlo
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...
Questo si, ma dato che la Mega (2560) su cui ho lavorato fin'ora non è mia e la dovrò restituire pensavo di prendermi una Due..
gpb01:
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 ...
Guglielmo
Proprio belle notizie di questo tipo intendevo :~
e allora adesso ci penso un po' su, rivaluto l'opzione Mega2560