Codice, codice e ancora codice

Salve community Arduino!

Oggi sono riuscito finalmente a collegare la mia Arduino al router DIR- 300 (dlink) fisicamente saldando tre cavi sulla porta seriale del router e collegandoli ad Arduino (gnd del router su gnd di Arduino, tx del router su rx di Arduino e rx del router su tx di Arduino)

Ora manca solo il codice.

Vi chiedo aiuto perchè non so da che parte iniziare e che protocolli usare per la comunicazione.

Grazie!

Ciao, Cosa vuoi fare col router?

Il router dovrebbe portare dei dati che invio io al al seriale su Arduino.

E’ un po’ come con Fonera e Arduino, ma non so come fare con il dir 300

Hai gia' installato sul tuo router un sistema operativo che tu possa utilizzare, come ad esempio il dd-wrt?

Si, è già provvisto di dd-wrt. E’ stato facile, con la versione b1 è bastato installare dd-wrt direttamente dalla pagina di amministrazione.

Ho anche già saldato i cavi sulla porta seriale del router.

arduino come al solito usa Serial e va liscio. Lato router devi farti il programma come se fosse un normale PC. Problema: NON usare processing che il router non supporta interfaccie grafiche, e quindi NON va. Se scrivi il programma in java, puoi usare direttamente la libreria TXRX, però devi installare la JRE (sun o openJDK) sul router. Vantaggio: compili sul PC senza problemi, e uppi i file.class sul router e funziona tutto (salvo interfaccie grafiche) Se scrivi in C o C++, non conosco alcuna libreria (ma ce ne sono tantissime) e non devi installare nulla sul router. Se non hai GCC sul router, o lo installi, e compili direttamente dal router, oppure fai una cross-compile da PC e uppi l'eseguibile creato.

Puoi imparare a compilare e uppare gli sketch da riga di comando, e quindi usare il router anche per programmare arduino...

Gentilissimo, mi sai consigliare che gcc installare su dd-wrt? Di spazio sul dir 300 ce ne è abbastanza (32mb)

la 4.6.1, è la più aggiornata e non da problemi. Se la usi anche per programmare arduino (e quindi installi i vari pacchetti avr), controlla di non essere affetto dal bug del delay

Ho cercato, ma non trovo nessuna guida su come installare gcc su dd-wrt! Mi sai aiutare?

Poi, mi potresti dare delle info su come uppare gli sketch da riga di comando (sempre con il router) ? Per fare questo dovrei stabilire una connessione tra arduino e router e tra router e Mac, ma come posso fare?

Altra cosa: che protocolli dovrebbe usare il mio programmino in C per far comunicare il tutto?

Grazie

allora, prima di tutto per comunicare si usa il protocollo seriale, se cerchi sicuramente c'è una guida in C con libreria annessa che spiega tutto. Per la compilazione e l'upload, cerca qualche guida sil file preferencies.txt di arduino IDE: è possibile settare 2 parametri per cui arduino, quando compila, ti mostra cosa sta facendo (ti scrive i comandi) per GCC ho dato un'occhiata veloce, devi fare una cross-compilazione. nulla di facile, soprattutto per grossi progetti, mi sa che ti conviene usare il PC per programmare arduino, e magari java (se ci sta) per il programma sul router. infine la comunicazione pc->router credo che si faccia in ssh, quello che probabilmente hai usato per settare il SO sul router!

Se il router è già provvisto di dd-wrt, potresti connetterti al router via telnet o ssh e poi utilizzare la porta seriale mappata sul sistema operativo linux che usa dd-wrt. Infatti nella directory /dev del tuo router dovresti trovare una porta tipo tts Ne segue che potresti fare una cosa del tipo:

echo 123 > /dev/tts/0

con questo comando invii il valore 123 sulla porta seriale alla quale è in ascolto arduino...

Ti aggiungo un link al mio blog, dove faccio la stessa cosa con una fonera+ (il procedimento è lo stesso... XD)

http://giuseppefatiguso.wordpress.com/2011/06/02/arduino-wifi-con-fonera/

Spero di esserti stato utile...

seppe

Ciao a tutti,

vorrei creare un app Android per comunicare via telnet con "Fonera + Arduino", potete aiutarmi?

Grazie

Non credo ci sia bisogno di una app...

Connettiti alla Fonera, poi sul tuo Android, cerca la console (o terminale non so come la chiama).

Avrai di fronte una shell a linea di comando linux, a questo punto devi dare i comandi:

telnet num.indirizzo.ip.fonera

ora sei connesso alla fonera, quindi puoi darle i comandi sulla porta seriale...

Se poi vuoi farti una cosa un po' semplificata con interfaccia grafica, allora devi scriverti una app... ma te lo consiglio solo se i comandi da dare sono pochi e sempre gli stessi, così da agganciarli a dei pulsanti, altrimenti se li devi scrivere ogni volta pure dalla app è tempo perso...

seppe

Ciao seppe,

vorrei proprio creare una app Android grafica (pulsanti) cosi da poter dare sempre gli stessi comandi. Ho già installato l' Ambiente di Sviluppo Android (Eclipse + Android)... ma non so da dove iniziare! :(

bit80

Allora non so come aiutarti... mi dispiace...

Dovresti usare google e cercare qualche tutorial... o sperare che qualcuno di questo forum ti aiuti...

seppe