Arduino Vs Raspberry….

Dopo anni di sviluppo di applicazioni con Arduino di svariate applicazioni, dagli irrigatori, ai tracker pre aerei etc etc…mi sono interessato di RaspBerry.

Chiariamo subito le cose, Arduino è basato direttamente su un Processore e non ha bisogno di Sistemi Operativi che si infrappongono tra Software e Hardware. Il codice interagisce direttamente con il processore o l’Hardware in genere.

Raspberry invece è un Computer a tutti gli effetti, con un Sistema Operativo (Linux) e una memoria di Massa (SD), e con le capacità di calcolo paragonabili ad un Pentium 2.

Ecco svelato il problema, le due schede sono imparagonabili. Io le sto utilizzando in sistemi complessi , Arduino per l’interfacciamento ai sensori e attuatori, mentre Raspberry per la capacità di calcolo e per la trasmissione Ethernet dei dati.

Annunci

Giardino Automatico: Il software per il PC

Immagine

Inserisco una prima versione del Software che gestisce i dati in arrivo dai sensori e li analizza in due grafici . Il software permette in questa versione (v.0.0.1) di aprire e chiudere l’irrigatore del giardino su una elettrovalvola bistabile, di visualizzare i dati di luce, umidità e temperatura dell’aria.

Giardino Automatico, Domotica per serre e giardini

Ho da tempo un piccolo giardino , sperando di gestire meglio il verde tipico di casa mia (quasi nullo ahah) ho installato un sistema di irrigazione gestito da un programmatore secondo me stupido.
Molto stupido dire, prima di tutto perchè ogni anno si rompe irrimediabilmente, ho anche tentato di smontarlo per ricavarne qualche pezzo …ma non è in grado neanche di essere riutilizzato. Quindi mi sono deciso di costruire io un programmatore ma questa volta INTELLIGENTE!
Mettendo insieme qualche pezzo ed analizzando bene come lavora la mia elettrovalvola bistabile ho creato una prima versione del mio sistema intelligente per la gestione del giardino e di serre.
Ecco cosa fa la mia centralina:
1) ANALIZZA LO STATO DI UMIDITA’ DEL TERRENO
2) ANALIZZA LE VARIAZIONI DI TEMPERATURA DELL’ARIA
3) DECIDE IN AUTOMATICO E IN TOTALE AUTONOMIA QUANTO E QUANDO IRRIGARE
4) COLLEGANDOSI ALLA RETE E’ IN GRADO DI ELABORARE GRAFICI, MANDARE EMAIL ETC ETC
5) POSSO COMANDARE DAL TELEFONINO O DA UN QUALSIASI COMPUTER L’ACCENSIONE DELL’IRRIGATORE E LO SPEGNIMENTO

Il sistema è ottimo anche per l’ottimizzazione dell’uso dell’acqua in funzione dei dati reali dell’ambiente.
Praticamente il sistema è in grado di autoapprendere tramite alcuni protocolli complessi di intelligenza artificiale , gestendo consumi in funzione della natura del giardino.

a presto con video e altro

La voce di Arduino : RTTY

Bene, fin da bambino ho sempre sognato di sentir parlare un processore per mia mano; diciamo che RTTY è sicuramente il miglior modo per farlo “PARLARE”.

La maggior parte di progetti che si trovano on-line preveduno l’uso di radio Radiometrix UHF, le quali accettano su due pin di ingresso due tensioni diverse che prevedono la creazione interna dell’oscillatore per la modulazione del segnale sulle due frequenze di mark e space (shift).

Invece la mia libreria prevede di utilizzare 2 uscite digitali per ricreare le frequenze di mark e shift, collegando il tutto ad un piccolo altoparlante per PC riusciremo a sentire l’audio della comunicazione; Infatti le due frequenze di MARK e SPACE (1 e 0 seriale) sono per forza di cose nello spettro delle frequenze udibili: 2295 Hz e 2125 Hz. Questo tipo di protocollo veniva e viene utilizzato nelle comunicazioni digitali anche su frequenze radioamatoriali, e per la trasmissione a terra di dati telemetrici dei satelliti.

….sto per andare a lavorare….questa sera pubblichero’ il video e il codice del tnc RTTY per Arduino

ARDUINO e RTTY

Il cuore della radiosonda è costituito da un sistema di radiocomunicazione ridondante;
ogni livello di comunicazioneè in grado di inviare dati a diverse velocità e distanze.

Livello 1 : Comunicazione UHF FSK (bidirezionale)
Livello 2: Comunicazione VHF RTTY (monodirezionale)
Livello 3: GSM (monodirezionale)

In questi giorni ho sviluppato una parte importante del livevllo 2, che permette ad Arduino
di utilizzare la modulazione RTTY, tecnica molto datata ma estremamente efficace, per trasmettere
dati a distanza. La banda di frequenza che ho scelto sarà quella delle VHF, che, per carattersitica
fondamentale, permette di non subire riflessione o rifrazioni d’onda elettromagnetica a livello ionosferico.

Tale tecnica viene oggi ancora utilizzata da molte radiosonode per semplicità e efficacia di comunicazione.
Ovviamente l’efficacia di ricezione cede il passo alla velocità di trasmissione, infatti parliamo
per la mia radiosonda, di velocità testate di 50 Baud (sufficienti per la trasmissione dei valori GPS e dei
rilevamenti telemetrici).

Arduino con RTTY non fa altro che trasformare i livelli logici di più qualche preambolo in 2 frequenze prestabilite,
tale frequenza è udibile attraverso un cicalino a membrana, oppure trasmisso ,attraverso un semplice circuito
di adattamento, attraverso la linea MIC di un radiotrasmettirore portatile VHF.

Nei prossimi giorni raccontero’ dei test di link Stazione Base — Radiosonda.

Arduino e Aurel UHF

Come dicevo il progetto è iniziato nel settembre 2011, e tra alti e bassi sono arrivato ad avere la scheda ArduinoMega collegato al GPS, ensore di temperatura, e una fotoresistenza che inviano i dati in FSK UHF al PC che colleziona i dati e li fa vedere in tempo reale.

Dai prossimi posts comincero’ a descrivere tutto nei minimi passi , considerero’ questo blog comee un diario aggiornato dell’avventura.

Progetto tra le nuvole


Sono ormai alcuni mesi che sto lavorando ad un progetto che definisco un po’ KAMIKAZE.
Ho sempre cercato di capire dove i palloni gonfiati ad elio dei bambini potessero finire la loro corsa, e mi sono imbattuto in un sito di un ragazzo americano che ha attaccato un iphone ad un palloncino e l’ha lasciato andare…..dopo alcuni giorni ha recuperato il tutto con immagini, track del volo etc etc…

Beh, ho deciso anche io di farlo, ma con strumenti meno costosi e riutilizzabili senza dover comprare un Iphone (io ho ancora il la versione 3g…e non ho intenzione comprarne ancora ahahah).

Allora, della serie diamo un nome alle cose: Il progetto in fase di sviluppo si chiamerà ATMOLab, mentre in fase di lancio sarà HAL 01-40k.

Obiettivo dell’impresa sarà quello di lanciare un pallone caricato ad elio ed equipaggiato con il suo Payload (elettronica e sensori di rilevazione e posizionamento ed una mcchina fotografica), tracciare il percorso della sonda, e poi recuperare il contenuto a KM di distanza….

SETTEMPRE 2011: Il progetto ha inizio….incorciamo le dita.

Codice per SUNROVER su Arduino

inserisco il codice che ho utilizzaro per dare vita al Rover.
___________________________________________________

// Applicazione per Rover SunFollower
// Il robot segue le fonti di luce predominanti
// evita gli ostacoli se entra in collisione con un ostacolo
// rilevato dai sensori.
//Ver. 1.0 7/3/2010

#include
#define SX 0 //pin 0 per sensore di SX
#define DX 1 //pin 1 per sensore di DX
#define LSX 9 //pin 9 per sensore di luce di Sinistra
#define LDX 8 //pin 8 per sensore di luce di Destra

Servo myservoDX; // Creo oggetto per ruota di Destra
Servo myservoSX; //Creo oggetto per ruota di Sinistra

long val_SX=0;
long val_DX=0;

long OTT_DX=0; //variabile per registrare la luce di Destra
long OTT_SX=0; // Variabile per registrare la luce di Sinistra
long delta=0; //variabile usata per salvare la differenza di luce tra DX e SX
void setup() {
Serial.begin(9600);
myservoDX.attach(9); // servo ruote al pin 9 PWM ruota di Destra
myservoSX.attach(8); // servo ruote al pin 8 PWM ruota di Sinistra

}

void loop () {
val_SX=analogRead(SX); //leggo i valori degli interruttori di sinistra
val_DX=analogRead(DX); //leggo i valori degli interruttori di destra
OTT_DX=analogRead(LDX); //leggo i valori di luce di Destra
OTT_SX=analogRead(LSX)-5; //leggo i valori di luce di Sinistra
delta = OTT_SX-OTT_DX; // eseguo la sottrazione tra i vaolri rilevati
// ottenendo valori positivi o negativi o ugali a 0

if (val_SX <= 20)
{
myservoSX.write(91); //Rover si ferma per blocco a sinistra
myservoDX.write(92);
delay(1000);
myservoDX.write(95); // va in dietro ruotando sulla ruota Sinistra
myservoSX.write(91);
delay (2000);
}
else if (val_DX 0 ) //rover riceve luce da Sinistra quindi gira a Sinistra
{
myservoSX.write(92); //rover ruota a Sinistra
myservoDX.write(88);
delay (500);
}
else if (delta < 0 ) //rover riceve luce da Destra quindi gira a Destra
{
myservoSX.write(95); //rover ruota a Destra
myservoDX.write(91);
delay (500);
}

else
{
myservoDX.write(88); // va avanti
myservoSX.write(95);
delay(500);
}

Serial.println(delta); //Debug e print del valore differenza tra la luce
myservoDX.write(91); //
myservoSX.write(92); // Rover si ferma
delay(10);
}

SUNROVER ver. 1.0

La prima versione del SunRover è operativa !!!

L’obiettivo di Sun Rover è quello di seguire le fonti di luce nell’ambiente, e segue continuamente le variazioni e le quantità maggiori di luce. Tramite due fotoresistenze il SunRover in questo momento è in grado di percepire la luce a destra e sinistra, ma non è in grado di capire se la luce predominante è alle sue spalle.

La  prossima versione inseriro’ una  fotoresistenza nella parte inferiore del SunRover, e tramite un alogoritmo che simula delle decisioni di Intelligenza Artificiale faremo ruotare il Rover in caso di sole alle spalle.

Nel prossimo Post sul sito inserisco il codice ospitato dal Rover in versione 1.0

Ovviamente si tratta di un prototipo per poter testare le capacità di Arduino, sicuramente questo Robot porterà a nuove sue evoluzioni di progetto.

Ora inserisco le foto dell’Hardware, poi anche lo schema circuitale.

RoboRover con Arduino

Questo è il video (di qualità pessima prometto di caricarne uno più interessante a breve) dove si vede la prima versione di RoboRover . Due baffi alle estremità del Robot permettono di capire se c’e’ un contatto con qualche ostracolo e capendo se si tratta di una collisione a destra o sinistra evita l’ostacolo.

ARDUINO: il primo progetto

Questa è la versione di Arduino 2009. www.arduino.cc

Come primo progetto ho deciso di rianimare la carcassa di un vecchio rover (ecco il nome del mio Blog) con scheda madre bruciata, inserendo la mia nuova scheda arduino . Obiettivo del primo progetto è il SUNROVER. Un robot che possa percepire le fonti di luce e raggiungerle in completa autonomia decisionale.

Let’s Start

Da sempre ho subito un certo fascino per il mondo della robotica orientata all’intelligenza artificiale (IR). Ho provato molte applicazioni ho subito un0accelerazione consistente al momento in cui ho trovato un progetto di un connazionale su una mainboard chiamata ARDUINO.

Ho deciso subito di cimentarmi nell’apprendimento delle importanti specifiche di questa scheda.

Quindi iniziamo, questo Blog rappresenterà il diario dei miei apprendimenti e dei miei progetti.

iniziamo! Let’s Start!