Pages: 1 2 [3] 4 5   Go Down
Author Topic: Linuxino meet Arduino, discussione  (Read 10671 times)
0 Members and 1 Guest are viewing this topic.
MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E' vero, hai perfettamente ragione.
E' poi comunque è sempre meglio tenerselo l'arduino, fa sempre comodo, soprattutto la uno, una volta tolto il 328 è un ottimo convertitore seriale -> usb   smiley-mr-green
Scherzi a parte , la definizione di Leo è assolutamente calzante, un principiante non avrebbe la stessa flessibilità di arduino su un sistema con Aria, cosa completamente diversa invece per chi è un pò navigato, o magari è anche soltanto abituato a smanettare con linux.
La varietà di linguaggi utilizzabili e le ricche funzionalità messe a disposizione dalla distribuzione dedicata a quel sistema lo rendono un ottimo 'oggetto' del desiderio,si riesce a fare veramente di tutto con poco impegno, anche semplicemente da uno script bash,  e anche se a vederlo da fuori non sembra (io ero il primo ad essere scettico) potenza di calcolo ne ha da vendere!  smiley-eek-blue
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Varese
Offline Offline
God Member
*****
Karma: 8
Posts: 585
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Diciamo che il creatore non sta facendo nulla di nuovo: https://www.olimex.com/

e io non butterei arduino nel cesso come dite voi, il bello di un micro e che è semplice e non ha fronzoli e non crescia cosi facilmente, in progetti molto complessi dove la potenza di calcolo e tutto, demanderei molto ad arduino e metterei come unità centrale un arm, avrebbe molto più logica, ma ha anche i contro che pochi dicono smiley arduino io lo vedo come un ottima piattaforma per determinati progetti ma non lo uso per altri dove uso altri tipi di piattaforma, si usa quello che ci serve in base al progetto, non esiste un standard esiste solo quello che ci serve per il progetto che vogliamo realizzare, si rischia di creare una guerra religiosa con queste discussioni
Logged

Offline Offline
God Member
*****
Karma: 2
Posts: 551
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io penso che uno shield di questo tipo, assieme ad arduini, sarà molto utile a creare molte appliance per la gestione di molti sistemi.
La parte Aria G25 come sistema per la parte software, arduino per gestire tutta la parte hardware e l' esterno.
Mi sembra una bellissima idea... io già mi prenoto.  smiley-wink
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4951
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Forse faccio una domanda a cui è già stato risposto, ma non ho trovato nulla o forse è mia ignoranza da programmatore.

Ho letto su RaspberryPi che il GPIO ha solo pin digitali e per acquisire dati analogici (come fa Arduino) bisogna o usare integrati ADC esterni o collegare in maniera particolare l'hw (trovato esempio di lettura potenziometro, resistenza/condensatore in base ai tempi di carica/scarica... etc. per me troppo difficile).
La domanda: linuxino il GPIO ha pin analogici?
Logged

my name is IGOR, not AIGOR

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4951
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi rispondo da solo:   scheda aria G25  -> 4 A/D converter @ 10 bit

Domanda da ignurantone: su Arduino mi sembra molto semplice usare la analogRead() (o la digitalRead)
Supponendo di voler continuare ad utilizzare il C++, su un linuxino, avendo un Linux sotto il sedere, come si "dialoga" con il GPIO e con gli A/D ?
(per non imparare un nuovo linguaggio, e secondo me proponendo un linuxino come passo successivo all'uso di Arduino)
Ho letto qualcosa su RaspberryPi (molti anzi troppi esempi con python) ma non mi sembra immediato come Arduino.
Logged

my name is IGOR, not AIGOR

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9468
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La domanda: linuxino il GPIO ha pin analogici?

Si, ha quattro ingressi analogici con eventuale reference esterno, ci sono anche due I2C, quattro seriali (oltre a quella dedicata alla console di debug) e tante altre cose utili, tutte le periferiche sono già mappate nel kermel e direttamente disponibili con python/gcc.
Un aggiornamento sullo stato produzione, tra pochi giorni arrivano i primi prototipi per testare se è tutto ok, non dovrebbero esserci problemi, dopo di che si parte con la produzione di massa.
Sto aspettando di avere in mano i primi Linuxino, purtroppo siamo in ritardo sulla tabella di marcia a causa di vari intoppi, per poter iniziare a pubblicare il materiale relativo all'uso di questa scheda con Arduino e viceversa.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9468
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Supponendo di voler continuare ad utilizzare il C++, su un linuxino, avendo un Linux sotto il sedere, come si "dialoga" con il GPIO e con gli A/D ?

Il C in realtà non prevede nessuna periferica di I/O, questo compito è delegato ad alcune funzioni standard di libreria che devono essere realizzate su misura per ogni hardware, nel caso di Aria con python c'è una apposita libreria che rende facilissimo l'accesso a tutte le periferiche, siamo allo stesso livello di Arduino, con il C il modo più semplice è dichiarare la periferica come un file usando la mappatura predefinita nel kernel, ovviamente le operazioni di lettura e scrittura del file abbinato alla periferica non toccano in nessun modo la flash (SD) salvo la creazione di un file con il nome abbinato alla periferica che ne contiene l'init.
Poi c'è il modo migliore in assoluto per gestire le periferiche che è lo stesso che si usa con tutti i micro quando si vuole ottenere il massimo delle prestazioni, ovvero accedere direttamente ai registri hardware delle stesse, però non è una cosa immediata dallo user space di linux dove gira il tuo programma.

Esempio pratico con il blink, led collegato al GPIO 9, su Aria:

codice python
Code:
import ablib
import time
 
print "Blinking led"
print "Type ctrl-C to exit"
 
led = ablib.Pin('W','9','low')
 
while True:
time.sleep(0.2)
led.on()
time.sleep(0.2)
led.off()


Stessa cosa in C, sembra più complicato in realtà è ugualmente semplice, in più c'è solo la parte di init che con python è gestita dalla libreria e non è direttamente visibile.
Code:
#include "stdio.h"
#include "stdlib.h"
#include "unistd.h"

int gpioexport(int gpioid)
{
FILE *filestream;

if ((filestream=fopen("/sys/class/gpio/export","w"))==NULL) {
printf("Error on export GPIO\n");
return -1;
}
fprintf(filestream,"%d",gpioid);
fclose(filestream);
return 0;
}

int gpiosetdir(int gpioid,char *mode)
{
FILE *filestream;
char filename[50];

sprintf(filename,"/sys/class/gpio/gpio%d/direction",gpioid);
if ((filestream=fopen(filename,"w"))==NULL) {
printf("Error on direction setup\n");
return -1;
}
fprintf(filestream,mode);
fclose(filestream);
return 0;
}

int gpiogetbits(int gpioid)
{
FILE *filestream;
char filename[50];
char retchar;

sprintf(filename,"/sys/class/gpio/gpio%d/value",gpioid);
if ((filestream=fopen(filename,"r"))==NULL) {
printf("Error on gpiogetbits %d\n",gpioid);
return -1;
}
retchar=fgetc(filestream);
fclose(filestream);
if (retchar=='0') return 0;
else return 1;
}

int gpiosetbits(int gpioid)
{
FILE *filestream;
char filename[50];

sprintf(filename,"/sys/class/gpio/gpio%d/value",gpioid);
if ((filestream=fopen(filename,"w"))==NULL) {
printf("Error on setbits %d\n",gpioid);
return -1;
}
fprintf(filestream,"1");
fclose(filestream);
return 0;
}

int gpioclearbits(int gpioid)
{
FILE *filestream;
char filename[50];

sprintf(filename,"/sys/class/gpio/gpio%d/value",gpioid);
if ((filestream=fopen(filename,"w"))==NULL) {
printf("Error on clearbits %d\n",gpioid);
return -1;
}
fprintf(filestream,"0");
fclose(filestream);
return 0;
}

int main(void)
{
int led = 82;

gpioexport(led);
gpiosetdir(led,"out");
for (;;) {
gpiosetbits(led);
sleep(1);
gpioclearbits(led);
sleep(1);
}
}
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4951
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non sarebbe male fare (avendo tempo) un framework, ovvero una o più librerie (come per Arduino) per semplificare da linguaggio C/C++.

Ancora una domanda:
Mi piace Arduino. Mi piacerebbe poi prendere un sistema un pò più completo e pensavo a RaspberryPi, ma non mi ha convito.
Ha di buono che comprando un HW hai quasi tutto (ma non input analogico!!!)
Di Linuxino, non ho capito una cosa. Quello che viene dato come hw, cosa manca per un sistema completo, la aria G25 da comprare a parte?
Forse sbaglio io, ma a me sul sito ufficiale non sembra chiarissimo cosa viene dato e cosa no come HW.

Io vedrei linuxino come un passaggio da un semplice Arduino ad un hw un pò più sofisticato "staccato" da Arduino.
Come l'avete pensata (come la proponete)? Come un fratello maggiore di Arduino con cui dialogare per acquisizioni real-time?


Logged

my name is IGOR, not AIGOR

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9468
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non sarebbe male fare (avendo tempo) un framework, ovvero una o più librerie (come per Arduino) per semplificare da linguaggio C/C++.

Di librerie ne esistono molte già pronte, basta fare una ricerca con google, il vantaggio di avere sotto un sistema operativo come Linux è che le librerie sono hardware indipendent, ovviamente devono essere presenti le risorse che vuoi usare altrimenti anche se il programma viene compilato poi oltre a non funzionare c'è pure il rischio di mandare in crash il sistema.

Quote
Di Linuxino, non ho capito una cosa. Quello che viene dato come hw, cosa manca per un sistema completo, la aria G25 da comprare a parte?
Forse sbaglio io, ma a me sul sito ufficiale non sembra chiarissimo cosa viene dato e cosa no come HW.

Linuxino è una carrier per Aria G25, sei a tu scegliere quale versione, 128 o 256 mega ram, montarci sopra.

Quote
Io vedrei linuxino come un passaggio da un semplice Arduino ad un hw un pò più sofisticato "staccato" da Arduino.
Come l'avete pensata (come la proponete)? Come un fratello maggiore di Arduino con cui dialogare per acquisizioni real-time?

Aria G25 è un sistema Linux embedded, non ha nulla in comune con Arduino, però le due cose possono essere utilizzate assieme con molti vantaggi, lo scopo di questo topic è proprio gettare un ponte tra le due cose.
Puoi usare Arduino come "shield" di Aria G25 per fornirgli un low level hardware che non possiede, o che comunque non è efficiente se usato da Linux, oppure esattamente l'opposto, Aria G25 come shield di alto livello per Arduino in modo da fornire funzionalità altrimenti impossibili o molto deficitarie con le normali shield, p.e. la connettività ethernet/WiFi che le rispettive shield offrono con grossi limiti e costi abbastanza alti nel caso del WiFi.
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4951
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Problemino su link pagina Home del sito www.linuxino.com: il link Daisy-24 a me (su chrome) da errore
(sembra che oltre a http://www.acmesystems.it/DAISY-24 metta davanti http://www.linuxino.com/articles/main_page/www.acmesystems.it/DAISY-24)

Un'altra domanda, nella Home c'e' un esempio di contenitore ABS/Alluminio della TEKO. Sul loro sito ci sono molti modelli. Quello della foto ha un codice?

ciao, igor
Logged

my name is IGOR, not AIGOR

Offline Offline
Edison Member
*
Karma: 136
Posts: 1252
O ti distingui o ti estingui
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi intrometto, spero che Astro mi perdoni  smiley-grin



ho realizzato il pinout dell'Aria G25. Buon lavoro!

edit
il download qui: http://www.pighixxx.com/downloads/aria-g25/
« Last Edit: April 12, 2013, 07:38:22 am by pighixxx » Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Secondo me, Tanzilli ti fa una statua!!  smiley-mr-green smiley-mr-green smiley-mr-green
Anche una G25 in regalo non sarebbe male.  smiley-money
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

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

"Aria OFFICIAL pinout"?  smiley-wink
Logged


Offline Offline
Edison Member
*
Karma: 136
Posts: 1252
O ti distingui o ti estingui
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

"Aria OFFICIAL pinout"?  smiley-wink


Si, pinout preso dal sito ufficiale e messo in "bella copia".
L'iniziativa è stata mia.  smiley-grin
PighiXXX
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9468
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

"Aria OFFICIAL pinout"?  smiley-wink

Forse lo volevi caporale o sergente ?  smiley-mr-green
Logged

Pages: 1 2 [3] 4 5   Go Up
Jump to: