Go Down

Topic: Arduino comandato da Processing via web tramite pc o smartphone Android (Read 30917 times) previous topic - next topic

ZioWally

ottimo Camperos!
hai fatto bene a postare i listati, adesso mi metto a fare tutte le verifiche del caso, per vedere che non ci siano bachi.
Quando sarà testato faccio conto di rifare lo zip e riallegarlo al post, e se sei d'accordo inserirò anche la tua guida all'uso con android che è la più chiara che abbia finora trovato, naturalmente sarai citato come autore della pagina, mi sembra ovvio!
Credo che nel soggetto del tread aggiungerò anche ".... tramite android" per valorizzare al massimo il tuo aiuto.

Sono proprio curioso di leggere bene il listato e capire tutte le tue migliorie.
Ultima cosa, dalla tua ultima foto allegata, vedo che lo sfondo rimane sempre molto grande rispetto ai pulsanti.
Non è possibile fare un resize come per i pulsanti?
Oppure, non so se sia possibile, il massimo sarebbe poter zoommare l'immagine per avvicinarla per vedere meglio, ma credo che sia quasi fantascienza, almeno per me. Tu l'hai mai visto o sentito da qualche parte?

camperos

ok per la guida su come  attivare android,
con tutto quello che mi danno, insegnano i tutti partecipanti del forum,
sono ben lietyo di condividere quello che so (poco).
per quanto riguarda lo "zoom"  quello che riesco a trovare è questo:

http://processing.org/examples/zoom.html
come al solito devo minimizzare lo sketch per carpire le parti fulcro dello zoom e poi
si deve provare su android....e se funziona, si deve vedere se non è devastante o troppo impegnativo inserirlo

camperos

#62
Dec 06, 2013, 11:30 pm Last Edit: Dec 07, 2013, 01:02 pm by camperos Reason: 1
fantascienza :
in prima mondiale o quasi  :)

all'inizio vedi solo il background e basta,
fai scorrere il dito solo nella parte estremamente a destra dall'alto verso il basso o viceversa

si deve dichiarare
Code: [Select]
float zoom;
questo nel draw()
Code: [Select]
void draw() // versione 3 draw che funziona con 4 invii di 8 bit e carattere di controllo W,204,205,206,207
{
 background(Sfondo);  //oppure background(0);
 if (mouseY < height && mouseY >0 && mouseX < width && mouseX > width/1.2){
 zoom = map(mouseY/2, 0, width, 0.5, 4.5);
 scale(zoom);
}
else{
scale(zoom);
}


questo modifica la linea del pulsante
Code: [Select]
if (mouseX/ zoom >= x && mouseX/zoom <= x+w &&  mouseY/zoom >= y && mouseY/zoom <= y+h)


edit
prima provalo su pc


se vuoi aggiungere una scala graduata, metti subito sotto il draw()
 
Code: [Select]
slider () ;

e in una nuova tab

Code: [Select]
void slider () {
 if (mouseY < height && mouseY >0 && mouseX < width && mouseX > width/1.1) {
   strokeWeight (width/192);
   stroke (255, 0, 0);
   line (width/1.06, width/38.4, width/1.06, width/1.92);
   for (int i =0; i<10; i++) {
     text (10+i*10, width/1.097, width/27.42+width/19.2*i);
   }
   line ( width/1.097, mouseY, width/1.06, mouseY);
 }
}

ZioWally

tu sei bravo, dotto'

ancora non  mi è chiaro tutto, e purtroppo nei prossimi 2 giorni non sono neanche a casa per poter provare.
Di certo che se riesce tutto, l'interfaccia android sarà veramente professionale!

camperos

sono riuscito a fare il "pan" o "move" (con dito sulla interfaccia) inserendolo con lo zoom.

comunque finito di muovere o zoommare (?) ci vogliono circa 5 secondi prima di poter cliccare un pulsante.
a mio parere, per android è meglio rifare il disegno ingrandendo i pulsanti o spostarli in modo che lo schermo si riempia

ZioWally

Ho solo da imparare da te...
Se in effetti il pan ed il zoom rallentano così tanto l'applicazione, si può fare benissimo senza.
Magari con un'ottimizzazione degli oggetti sul display otteniamo un risultato anche migliore.
Io ho fatto delle prove sul mio android 2.3.6, mi carica lo sketch ma i pulsanti non compaiono, come se non ci fosse il collegamento in corso. Lo stesso però lanciato in versione java funziona bene.
Prima non mi ero preoccupato perchè il mio sito no-ip.com non era disponibile, ora invece lo è!
Ho verificato le permissioni ed ho spuntato "internet" secondo tue indicazioni.
Può essere un problema la mia versione android? Con che versione lo hai testato tu?

camperos

android 4.1.2
non so collegandosi ad un sito,
io lo testo con arduino collegato con cavo ethernet al router
lo stesso router wifi - android wifi

ZioWally

ok, non lo sapevo.
Per me la versione android ha senso se riesco a farla andare anche senza un collegamento wi-fi.
Il bello è poter comandare la centralina tramite una connessione internet pura e semplice, visto che nelle zone dove poi vado ad usarlo è già molto che il telefono prenda e che ci sia internet.

Ho provato e come wifi funziona! :smiley-mr-green:
Il comando non è molto reattivo, forse l'interfaccia è troppo piccola per essere agevole.
Faccio altri tentativi e ti aggiorno.

camperos

:)
2 giorni a capire come aprire le porte al router, poi sito no-ip..poi..poi..
ce l'ho fatta  :)
wifi spento,
cellulare sim con sketch processing  e funziona ,  i pulsanti si vedono e comunicano :)
è questo che non ti funziona?

ZioWally

scusa se rispondo solo adesso...
adesso funziona anche a me, sia in wifi che via internet :D
Dopo aver verificato tutto per 3 volte, alla fine mi sono accorto che era la connessione internet che faceva i capricci.
Mi sono portato in zona meglio coperta.. e magia!...funziona! anche per il mio vecchio android 2.3.6 gigerbread.

Sul mio cell non è molto reattivo, devo insistere molto per accendere o spegnere un pulsante. Penso sia un problema del telefono che non è il massimo e del display che ancora non è ottimizzato per il display e i pulsanti sono piuttosto piccolini.
Col tuo cell è abbastanza veloce?

camperos

praticamente è istantaneo, o quasi
credo non sia un problema di telefono ma di rete.
Intanto il mio lavoro è quasi terminato, ho iniziato pensando che ciò che volevo doveva funzionare su cell,
quindi è a pagine, va migliorata la grafica, ci vorrebbe un "designer"  :)
ho intenzione di acquistare un router con scheda sim, da installare fisso sul camper sempre acceso, il consumo elettrico rientra nelle possibilità delle batterie e pannelli FV, quello telefonico ci devo ragionare un po su ]:D

quello che ciuccia di piu sono le temperature, 36 byte, al secondo? bho

ZioWally

Ho paura anch'io che sia un problema di connessione. Una volta che l'interfaccia sarà ottimizzata, lo testerò col wifi bypassando eventuali problemi di ricezione.

Per quanto riguarda il consumo in byte, il router spara byte solo su sollecito del programma processing-android, quindi se nessun terminale è collegato non c'è richiesta d'informazioni e quindi nessuna trasmissione.
Arduino trasmette byte solo in risposta ad un'accensione/spegnimento di un pulsante, oppure ogni tot secondi che puoi impostare modificando la riga n°4 (l'ultima) del file link.txt della cartella Data. Di default avevo impostato 2000, quindi 2 sec.
Se lo porti a 20sec ecco che il traffico byte si riduce ad un decimo.

Ti ricordo che il messaggio spedito contiene lo status di tutti i pulsanti e spie, oltre ai valori dei termometri e voltmetri.
Si può ottimizzare splittando le informazioni in 2 pacchetti differenti:
All'accensione dell'interfaccia mi faccio spedire tutte le info in modo di avere la situazione attuale, poi al variare di un pulsante mi faccio spedire la sola situazione pulsanti, e solo con scadenza temporale da me decisa la situazione temperature e voltaggi.
Per risparmiare al massimo, possiamo pensare ad un pulsantino che solo se premuto aggiorna l'interfaccia.
Non credo però che avrai l'interfaccia sempre accesa, o no?

Per quanto riguarda l'interfaccia a pagine se vuoi ti posso aiutare, basta definire lo stile e il lay-out delle varie pagine, ma non vedo grossi problemi a disegnarla.
Magari per questi dettagli mandami un mp, non credo che siano cose che interessano molto al resto del forum, almeno fino a quando non avremo una versione definitiva o quasi.

In più visto che anche tu vuoi fare una postazione fissa permanente, sto pensando di implementare un watchdog hardware per un autoreset in caso di problemi, sto testando in questi giorni un paio di circuitini per capire quale sia meglio

PS
visto che il thread sta diventando sempre più android, cosa ne dici se modifico il titolo come:
Arduino comandato da Processing via web tramite pc o smartphone Android
cosi valorizziamo anche il tuo lavoro!


camperos

ok, vada per android nel titolo  8)
allora, grazie alle tue indicazioni ora anche il mio progetto è terminato., arduino risponde solo quando chiedo..e se  smetto di chiedere lui si ferma.
è a pagine perchè gia malamente lo avevo fatto così con bluetooth, ora credo sia perfetto con sistema web.
dell'autoreset non ci avevo pensato.
il mio sistema di invio byte non è con unica stringa come il tuo, avrei dovuto rivoluzionare proprio tutto il lavoro di mesi....di tempo libero (poco anche il mio).

se non è un problema, invio una foto dell quantità litri, i tachimetri li ho fatti io  :)


testato

bello bello, sarebbero che litri sono ? benzina ?
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

camperos

#74
Dec 18, 2013, 08:34 pm Last Edit: Dec 18, 2013, 08:47 pm by camperos Reason: 1
no no Testato  :)
il mio progetto  si riferisce al mio camper.
claire.. nome sballato per indicare il serbatoio delle acque chiare, quella con cui ci si può lavare8, farsi la doccia, nel mio caso 140 litri
kitchen.. serbatoio acqua di scarico del lavello della cucina contiene max 70 litri
bath.. serbatoio delle acque di scarico del bagno, lavandino, doccia, contiene max 70 litri.
comunque normalmente i camper hanno solo 2 serbatoi, uno per le acque chiare (nuove..potabili, ma è meglio non bere  ]:D),
e uno per le "grige" quelle di scarico,

Go Up