Gambas-it

Vari => OpenBar => Topic aperto da: leo72 - 25 Ottobre 2010, 16:48:00

Titolo: Arduino
Inserito da: leo72 - 25 Ottobre 2010, 16:48:00
Stamani ho ordinato una scheda Arduino più un paio di shield (schede aggiuntive), una con uno slot SD ed una con display LCD e mini-joystick.
Voglio iniziare a programmare su quel piccolo dispositivo.

Qualcuno di voi lo usa?
Titolo: Re: Arduino
Inserito da: milio - 25 Ottobre 2010, 17:08:56
Io  ;D

Però non ho preso le shield....

Comunque e' abbastanza semplice da usare...
Titolo: Re: Arduino
Inserito da: leo72 - 25 Ottobre 2010, 22:59:32
Ottimo, allora ti romperò le balle se avrò dei problemi  ;D

La mia intenzione è quella di spippolare qualche microgioco interattivo con l'utente: ecco perché ho preso uno shield con display LCD e minijoystick piuttosto che un LCD touchscreen che, tra parentesi, mi sarebbe costato meno dello shield con LCD e dello shield aggiuntivo con slot SD dato che ce l'aveva incorporato. Ma io volevo il minijoystick che, presumo, sia davvero mini e forse adatto ai diti dei miei figlioli più che ai miei  ;D
Titolo: Re: Arduino
Inserito da: milio - 25 Ottobre 2010, 23:45:41
urka... parti in fretta tu :)

Io mi sono (per adesso) solo limitato ad accendere qualche led :)
Titolo: Re: Arduino
Inserito da: leo72 - 26 Ottobre 2010, 00:00:49
Se l'ho preso è per farci qualcosa, altrimenti non lo compravo neanche  :coder:
Pensa che prima di comprare quel "coso" volevo autocostruirmi un computer ad 8 bit con Z80, stile Sinclair ZX81 o Spectrum  ;)
Titolo: Re: Arduino
Inserito da: milio - 26 Ottobre 2010, 00:10:45
penso che allora non ti potro dare tante mani :)

i piu' che altro l'ho presa per curiosità e per avvicinarmi alla domotica... sto per realizzare casa...
Titolo: Re: Arduino
Inserito da: Ceskho - 02 Novembre 2010, 16:29:41
:o...quanto l'hai pagato?da dove l'hai acquistato?

Oh dai non mettetemi questi pensieri in testa.... :(
Titolo: Re: Arduino
Inserito da: milio - 02 Novembre 2010, 18:58:33
Io l'ho comprata qui: http://www.robot-italy.com/index.php?cPath=1_119_153&osCsid=bdc73677ccaf05f63a7377d160b33e4c
Titolo: Re: Arduino
Inserito da: Ceskho - 02 Novembre 2010, 20:20:13
Io l'ho comprata qui: http://www.robot-italy.com/index.php?cPath=1_119_153&osCsid=bdc73677ccaf05f63a7377d160b33e4c

Tutto sommato è economico....
Titolo: Re: Arduino
Inserito da: leo72 - 03 Novembre 2010, 12:22:50
Anch'io da Robot Italy.
Ieri mi è arrivato lo shield con il display LCD. Ho comprato questo (http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=12). Che mi è costato una 20na di euro con la spedizione.

Ieri sera ho passato tutto il pomeriggio a "giocarci"  :coder:
Per ora ho fatto un livello di "pillole", ho disegnato il personaggio e messo un "mostro", ho implementato il movimento del personaggio tramite joystick e sto studiando come evolvere il gioco.

Penso di far muovere semicasualmente il mostro, col personaggio che deve mangiare tutte le pillole per finire lo schema evitando il mostro.

Titolo: Re: Arduino
Inserito da: leo72 - 03 Novembre 2010, 16:27:22
hi hi... l'ho fatto  ;D :coder:
Titolo: Re: Arduino
Inserito da: Ceskho - 04 Novembre 2010, 01:49:36
hi hi... l'ho fatto  ;D :coder:

vorremmo un video... :P
Titolo: Re: Arduino
Inserito da: leo72 - 04 Novembre 2010, 10:56:05
Ci stavo pensando...  ;)
Titolo: Re: Arduino
Inserito da: leo72 - 04 Novembre 2010, 11:54:47
Eccolo qui:
http://www.youtube.com/watch?v=8T_TAUWCAso (http://www.youtube.com/watch?v=8T_TAUWCAso)
Titolo: Re: Arduino
Inserito da: Ceskho - 04 Novembre 2010, 19:39:41
Eccolo qui:
http://www.youtube.com/watch?v=8T_TAUWCAso (http://www.youtube.com/watch?v=8T_TAUWCAso)

Ricorda pac man..... ;D
Titolo: Re: Arduino
Inserito da: leo72 - 04 Novembre 2010, 22:56:57
Beh, è una bozza. Funzionante ma è cmq una bozza.
Volevo aggiungere degli ostacoli oppure aumentare il numero di nemici.

Per ora la difficoltà del gioco risiede nel fatto che ad ogni livello completato il nemico aumenta la sua velocità per cui se all'inizio può sembrare un gioco banale, con l'andare del tempo diventa poi difficilissimo perché il nemico inizia a viaggiare ad una velocità stratosferica.
Volevo modificare questo aspetto introducendo una difficoltà diversa: volevo far sì che ogni volta che viene calcolata la nuova posizione del nemico esista una % entro cui lo spostamento avviene "verso" il giocatore, % che aumenti con l'avanzare della partita così che il nemico divenga sempre più "intelligente" nei suoi spostamenti.
Titolo: Re: Arduino
Inserito da: Ceskho - 05 Novembre 2010, 01:19:39
Beh, è una bozza. Funzionante ma è cmq una bozza.
Volevo aggiungere degli ostacoli oppure aumentare il numero di nemici.

Per ora la difficoltà del gioco risiede nel fatto che ad ogni livello completato il nemico aumenta la sua velocità per cui se all'inizio può sembrare un gioco banale, con l'andare del tempo diventa poi difficilissimo perché il nemico inizia a viaggiare ad una velocità stratosferica.
Volevo modificare questo aspetto introducendo una difficoltà diversa: volevo far sì che ogni volta che viene calcolata la nuova posizione del nemico esista una % entro cui lo spostamento avviene "verso" il giocatore, % che aumenti con l'avanzare della partita così che il nemico divenga sempre più "intelligente" nei suoi spostamenti.


Sento puzza di www.arduino-it.org

CI ritroveremo tutti lì a breve..con le solite facce e il solito webmaster..... :rotfl:
Titolo: Re: Arduino
Inserito da: leo72 - 05 Novembre 2010, 12:13:52
No, non credo. Almeno per ora  :)

Cmq è divertente perché mi par di essere tornato ai tempi dei computer ad 8 bit  :coder:
Programmi in simil-C e devi tener conto del fatto che hai solo 32K di memoria per i tuoi programmi. E veder quel simil Pacman funzionare mi ha dato enorme gioia  ;D ;D
Titolo: Re: Arduino
Inserito da: doublemm - 09 Novembre 2010, 00:08:16
stavo proprio cercando se qualcuno aveva già esperienze con arduino visto che sto aspettando anch'io la scheda. Cavolo arrivate sempre prima voi  ;D.
qui c'è un forum in italiano http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=italiano
Titolo: Re: Arduino
Inserito da: leo72 - 09 Novembre 2010, 15:08:04
Con la scheda sola puoi fare pochissimo. Puoi fare piccole cose come accendere solo il led integrato e mandare messaggi al monitor seriale dell'IDE.
Ti serve uno shield oppure una breadboard per fare qualche esperimento di elettronica. Ci sono in giro degli starter kit con un po' di ponticelli, resistenze, diodi led ed altro, tanto per cominciare a "spippolare".

Io mi trovo bene con lo shield col display LCD+joystick. Dopo il giochino Mangiascappa adesso sto scrivendo una versione di Snake.
Cmq un altro shield che vorrei prendere è il TellyMate (http://www.batsocks.co.uk/products/Other/TellyMate.htm), un adattatore TV che permette di gestire un'uscita video B/N a 38*25 caratteri. Con quello montato con l'Arduino si ha quasi un mini computer stile anni '80 per le mani  :coder:
Titolo: Re: Arduino
Inserito da: doublemm - 10 Novembre 2010, 09:14:41
io dovrei fare uno strumento semplice mi serve per calcolare quanto tempo passa da un evento ad un altro. Naturalmente lo start e lo stop vengono dati da circuiti esterni che mandano un segnale a due piedini distinti. L'output lo mando ad un display che dovrei già avere ma della parte elettronica se ne occupa mio cognato, io mi dedico alla programmazione. Mi sembra un progetto abbastanza semplice per iniziare.
Titolo: Re: Arduino
Inserito da: leo72 - 10 Novembre 2010, 09:20:05
Sì, non è complesso.
Adesso mi dedico un po' a Snake perché... non funziona  :-[
Titolo: Re: Arduino
Inserito da: leo72 - 11 Novembre 2010, 11:51:12
Un altro giochino con l'Arduino (scusate la rima):
Snake (http://www.youtube.com/watch?v=QsZUUDnQfFA)
Titolo: Re: Arduino
Inserito da: Ceskho - 11 Novembre 2010, 11:55:29
Dì la verità, stai cercando di creare la LeoStation...la console del futuro.... 8)
Titolo: Re: Arduino
Inserito da: leo72 - 11 Novembre 2010, 14:16:09
Non sono il primo... magari!  ;D
Cerca su internet/youtube e guarda con homemade console atmega quanta roba vien fuori. Anche console a colori che poco hanno da invidiare agli arcade del bar, come questa (http://www.youtube.com/watch?v=2lGgNQzukCo&feature=related).
Titolo: Re: Arduino
Inserito da: doublemm - 11 Novembre 2010, 19:28:48
è arrivato arduino. La prima prova accendi LED funziona :bad:
Titolo: Re: Arduino
Inserito da: leo72 - 11 Novembre 2010, 21:42:55
Compra qualche shield oppure un kit o dei componenti per fare un po' di esperimenti di elettronica altrimenti non ti diverti.
Arduino "nudo e crudo" serve a poco.

P.S.:
inizio lo sviluppo del mio 3° giochino. Un mini-mini shoot'em up  :coder:
Titolo: Re: Arduino
Inserito da: doublemm - 12 Novembre 2010, 15:34:36
sto provando ad usare il display. Un shield ce l'ho già, quello per gestire il MIDI, però ora mi sto dedicando ad un altro proggetto (quello che accennavo sopra) e cioè: Attivo un piedino in OUTPUT, i 5 volt mi generano un suono sull'impianto. Un microfono ad una certa distanza, all'arrivo del suono, manderà un segnale ad un piedino di INPUT a questo punto a display scriverò la durata in millisecondi tra la partenza del suono e l'attivazione del piedino settato in INPUT.
Titolo: Re: Arduino
Inserito da: leo72 - 12 Novembre 2010, 22:57:37
Terzo giochino fatto, Space Ace  :coder:
Domani posterò un filmatino...

E via con la 4a idea... pensavo ad un mini Space Invaders... boh.... sarà capace??  :rolleyes:
No.  :nono:
 ;D ;D ;D
Titolo: Re: Arduino
Inserito da: Ceskho - 12 Novembre 2010, 23:06:58
Terzo giochino fatto, Space Ace  :coder:
Domani posterò un filmatino...

E via con la 4a idea... pensavo ad un mini Space Invaders... boh.... sarà capace??  :rolleyes:
No.  :nono:
 ;D ;D ;D


Potesti progettare un gioco che calcola la stabilità del governo.... :rotfl:
Titolo: Re: Arduino
Inserito da: leo72 - 13 Novembre 2010, 11:09:27
Troppo facile  ;)

Cmq, ecco per la gioia di tutti SPACE ACE (http://www.youtube.com/watch?v=070OGLM4MSw), sicuramente un best seller sotto le feste di Natale  :coder:
Titolo: Re: Arduino
Inserito da: Ceskho - 13 Novembre 2010, 12:21:26
Ricordiamo che la LeoStation è disponibile in pre-vendita nel nostro shop a 199€ più tre giochi inclusi.....ame, è natale, tenete contenti i vostri figli.... ;D
Titolo: Re: Arduino
Inserito da: doublemm - 18 Novembre 2010, 21:28:31
 @Leo. vorrei usare gli interupt caricando avr/io.h ma non ho ben capito dove trovarli. Sai nulla a proposito.
Titolo: Re: Arduino
Inserito da: leo72 - 18 Novembre 2010, 22:47:32
Premetto che non li ho mai usati finora, quello che posso dirti è di controllare la documentazione del linguaggio presente qui (http://arduino.cc/en/Reference/HomePage).

Da quel che so io, gli interrupt sull'Arduino servono per "agganciare" una funzione del tuo codice ad un evento scatenato dall'hardware.
L'Atmega328 dell'Arduino Uno gestisce solo 2 interrupt esterni.

In pratica, chiedi al microcontrollore di eseguire una porzione di codice quando "legge" una modifica su un pin. Ad esempio, la pressione di un tastino attaccato oppure una tensione proveniente da un altro componente.
Titolo: Re: Arduino
Inserito da: tangoku - 23 Novembre 2010, 13:18:11
Ricordiamo che la LeoStation è disponibile in pre-vendita nel nostro shop a 199€ più tre giochi inclusi.....ame, è natale, tenete contenti i vostri figli.... ;D
Io vorrei comprarla ma aspetto che Leo faccia uscire Arkanoid, mi piaceva tanto rompere i mattoncini con le palline.
Titolo: Re: Arduino
Inserito da: leo72 - 24 Novembre 2010, 11:10:24
Ho quasi finito un mini Space Invaders, solo che ci sono alcuni problemi nel codice che non riesco a risolvere. Il (malefico) C è ancora troppo sconosciuto per me e scriverlo avendolo praticamente imparato guardando gli esempi allegati all'IDE di Arduino non credo che sia il massimo  :-[

Nel frattempo mi sono dilettato anche alla "saldatura". Ho realizzato uno shield mio con un chip RTC (real time clock) ed un sensore di temperatura. L'idea è quella di usare lo shield con il display LCD e fare un piccolo orologio/termometro con giochini incorporati. Magari che, quando non si usa, si metta a giocare in demo i giochi installati. Solo che anche qui son venuti fuori problemi non previsti: usando lo shield LCD il sensore di temperatura "muore", non dando nessun valore. Ho scritto sul forum di Arduino perché non riesco a capire da dove possa venire il problema.
Titolo: Re: Arduino
Inserito da: doublemm - 28 Novembre 2010, 19:22:07
@leo ciao, secondo te è possibile far dialogare gambas e arduino tramite seriale?
Titolo: Re: Arduino
Inserito da: leo72 - 29 Novembre 2010, 22:27:08
Non lo so. So per certo però che la gestione di una porta USB da Gambas non è cosa facile (se ne era già parlato tempo fa).
Titolo: Re: Arduino
Inserito da: milio - 29 Novembre 2010, 23:12:27
@doublemm

Se ho capito bene tu vuoi programmare la tua scheda arduino in modo che, es., quando viene chiuso un interruttore questo lo comunichi a gambas, oppure da gambas gli indichi quale interruttore chiudersi o aprirsi? ebbene la risposta e' si...

Arduino comunica si tramite Usb ma viene vista dal sistema come una porta seriale (es ttyUSB0), quindi ti basta programmare la scheda in modo che accetti ed invii segnali tramite questa porta. Su gambas ti basta abilitare il componente gb.net e utilizzare poi l'oggetto SerialPort
Titolo: Re: Arduino
Inserito da: doublemm - 30 Novembre 2010, 16:49:06
appena possibile farò delle prove e se avrò problemi ti romperò le scatole per l'utilizzo della seriale. intanto grazie milio
Titolo: Re: Arduino
Inserito da: doublemm - 30 Novembre 2010, 17:26:04
ho già fatto delle prove ma nonn essendo esperto di porte seriali volevo chiederti per iniziare ad usarla come devo impostarla. Ho messo il componente serialport1 nel form che proprietà devo impostare per aprirla? e poi per spedire qualcosa?
Titolo: Re: Arduino
Inserito da: leo72 - 30 Novembre 2010, 18:11:13
Bello quel componente, non pensavo gestisse anche le USB  :-[

Se usi l'Arduino Uno e l'IDE 0.21 la porta in genere è /dev/ttyACM0.
Grazie a milio che mi ha suggerito la strada, ho scritto un miniprogrammino che legge i dati inviati da Arduino. Te lo allego.
Lo sketch usato sull'Arduino è il seguente:
Codice: c [Seleziona]
void setup() {
}

void loop() {
    Serial.begin(9600);
    Serial.print("1");
    Serial.end();
    delay(8000);
}
Titolo: Re: Arduino
Inserito da: doublemm - 01 Dicembre 2010, 11:57:19
ora sono al lavoro e senza arduino. Penso sia normale che lanciando il prog senza arduino collegato mi dia errore 5 impossibile aprire la porta.

Citazione
   1. void setup() { 
   2. } 
   3.   
   4. void loop() { 
   5.    Serial.begin(9600); 
   6.    Serial.print("1"); 
   7.    Serial.end(); 
   8.    delay(8000); 
   9. } 

come mai apri e chiudi la seriale ad ogni ciclo? Io ho sempre visto aprire la seriale nel void setup
Titolo: Re: Arduino
Inserito da: leo72 - 01 Dicembre 2010, 11:59:23
Era un codice di prova scritto direttamente qui nel forum  ;D
Titolo: Re: Arduino
Inserito da: doublemm - 01 Dicembre 2010, 20:44:37
ok sono riuscito ad usare mario però mi piacerebbe poter anche mandare un segnale ad arduino. Come si usa la porta in WRITE?
Titolo: Re: Arduino
Inserito da: doublemm - 01 Dicembre 2010, 23:26:08
ok sono riuscito a mandare dati da gambas verso arduino.

Volevo provare a far variare l'intensità di unb led tramite un terminale pwm e mandando il valore da uno slide di gambas settato come valori min e max 0 255. In fase di invio però arduino riceve invece di un numero a 2 o 3 cifre le 2 o 3 cifre separate. Se mando 255 arduini riceve 2 5 5 e mi imposta il pwm a 5.

Codice: gambas [Seleziona]

Public Sub Slider1_Change()

  Write #SerialPort1, Slider1.Value

End


c'è un modo per mandare numeri più grandi di una cifra?

Titolo: Re: Arduino
Inserito da: md9327 - 02 Dicembre 2010, 10:11:28
Ho come l'impressione che invece di un valore binario, sulla porta venga inviato il codice ascii corrispondente.

Dato che si tratta di valori da 0 a 255, dovresti prendere il tuo valore e inviare sulla porta il tuo numero, abilitando opportunamente i relativi bit di una variabile Byte.
Titolo: Re: Arduino
Inserito da: leo72 - 02 Dicembre 2010, 10:44:50
Fortunatamente la documentazione di Gambas in questo caso è chiara. SerialPort è un'istanza di Stream per cui devi far riferimento a questo oggetto.

Stream ha il metodo Write() che scrive il valore binario sul flusso stream corrispondente, nel tuo caso sarebbe la porta seriale.
Prova indicando a Gambas esplicitamente l'uso di un binario. Cioè prova dichiarando una variabile di tipo Byte e poi inserisci il valore da inviare lì dentro.
Titolo: Re: Arduino
Inserito da: doublemm - 02 Dicembre 2010, 17:05:05
dovrei convertire slide.value in byte e metterlo in una variabile byte, spedirlo sulla seriale e poi su arduino

VarByte  = Serial.read();
VarTesto = Char(VarByte);
analogWrite(LED, VarTesto);

questa sera provo a casa con arduino davanti
Titolo: Re: Arduino
Inserito da: leo72 - 02 Dicembre 2010, 21:55:50
Mi pare tu stia mescolando un po' i codici...  :rolleyes:

Gambas:

Codice: gambas [Seleziona]
  Write #PortaSeriale, CByte(Valore)


Arduino:

Codice: gambas [Seleziona]
  Valore = AnalogRead(Pin)


Però ora che ci penso, perché leggi i dati trasmessi dal PC con AnalogRead()? Dovresti usare lo stesso protocollo seriale, ed aprire la connessione:

Codice: c [Seleziona]
  Serial.Begin(vel_baud);
  if (Serial.available() > 0) {  Valore=Serial.read();  }
Titolo: Re: Arduino
Inserito da: doublemm - 02 Dicembre 2010, 23:31:33
Citazione
VarByte  = Serial.read();
VarTesto = Char(VarByte);
analogWrite(LED, VarTesto);

il codice è una oarte di arduino VarByte prende la lettura della seriale VarTesto è VarByte convertita mentre analogWrite accende un led con valore pwm passato da gambas.

cmq mi sorgono dei dubbi:

codice gambas:
Codice: gambas [Seleziona]

write #portaseriale, "255"


codice arduino:
Codice: c# [Seleziona]

byte SerialIn

void setup (){
   Serial.begin(9600)
}

void loop () {
   if (Serial.available() > 0) {
      SerialIn = Serial.read();
      Serial.println(SerialIn);
   }


risultato ricezione di tre righe con rispettivamente 2 5 5

se trasformo "255" in Cbyte(255) il risultato non cambia

se sullo sketch di arduino scrivo Serial.println(SerialIn, DEC) mi scrive delle volte 50 e delle volte 53

ho provato anche a cambirare a dichiarare la variabile SerialIn ma nulla.

Avete qualche suggerimento?
Titolo: Re: Arduino
Inserito da: leo72 - 03 Dicembre 2010, 10:04:28
"Tu sbagli candeggio"  ;D

Intanto una cosa. Ricordati che non puoi usare il canale seriale da 2 applicazione differenti. L'output ti perde dei numeri perché se stai usando "Mario" allora alcune cifre vengono intercettate dal mio programma ed altre dal terminale di Arduino.

Detto questo, un altro motivo del tuo problema della perdita delle cifre può essere dato dalla bassa velocità di trasmissione. Alza a 57600 baud.

Riprova con Mario 0.0.2 e questo sketch di Arduino. A me funziona benissimo, ogni volta che premo button 1 sul terminale di Arduino leggo correttamente 254.

Codice: c [Seleziona]
byte SerialIn;
 
void setup (){ 
  Serial.begin(57600);

 
void loop () { 
  if (Serial.available() > 0) { 
     SerialIn = Serial.read(); 
     Serial.println(SerialIn, DEC); 
  } 
}

Titolo: Re: Arduino
Inserito da: doublemm - 03 Dicembre 2010, 12:57:35
il mio problema però è il contrario. Ho provato a impostare il valore di uno slide da 0 a 255 poi a spedirlo tramite la seriale. arduino riceve i dati e li stampo sulla seriale (questa volta sul display del programma arduino). I numeri li leggo tutti ma separati.

Penso tu sappia come funziona il PWM. se scrivo analogRead(3, 125) il led sembra si accenda a metà per via della frequenza degli impulsi che gli arrivano. Il mio concetto era di far accendere un led dell'intensità passata dallo slide. Se posiziono lo slide al massimo il suo valore è 255 ma ad arduino arrivano tre valori 2 5 5. così il led si accende con frequenza pwm 2 poi pwm 5 e poi ancora 5.

stasera ti posto sketch e il prog gambas che chiamerò al posto di mario Agostino :rotfl:
Titolo: Re: Arduino
Inserito da: doublemm - 03 Dicembre 2010, 22:16:25
@Leo ciao ti mando lo sketch e il listato gambas. A me non funziona il display mi scrive I received: e poi dei caratteri strani. Ho provato anche a cambiare il tipo delle variabili sia su gambas che su arduino ma nulla, vambiano i caratteri ma sempre strani
Titolo: Re: Arduino
Inserito da: leo72 - 03 Dicembre 2010, 23:34:16
Non ho provato lo sketch perché al momento ho Arduino al piano di sopra e sono già a letto ( ;D) però ad una prima occhiata credo che il tuo problema sia che tu chiedi di stampare sul display LCD con char(variabile). In questo modo Char() ti trasforma l'input in una sequenza di caratteri. Io credo sia per questo che vedi 2, poi 5 poi 5.
Prova a mettere solo println(valore).
Titolo: Re: Arduino
Inserito da: doublemm - 04 Dicembre 2010, 08:13:47
le ho provate tutte anche senza char. Ho provato a dichiarare le variabili byte int char cambiano i risultati ma mai quello giusto.
leggendo il wiki di stream http://gambasdoc.org/help/lang/write suggeriscono di usare una variabile float per essere sicuri di passare a write il tipo di dati giusti. che possa dipendere da questo?

PS write #serialport, cbyte(variabile) non dovrebbe servire il cbyte perchè converte già il write
Titolo: Re: Arduino
Inserito da: leo72 - 04 Dicembre 2010, 10:28:20
Ma toglimi una curiosità. Il mio sketch abbinato al mio programma Gambas (senza modifiche a nessuno dei 2) funzionano oppure no?
Per capire se è un problema del tuo sistema oppure no.
Ripeto, a me i codici che ti ho mandato funzionano benissimo: ciò che trasmetto è ciò che ricevo.

L'importante è capire se il problema riguarda la visualizzazione o la ricezione. Se ricevi correttamente i valori, può essere che sia un problema di visualizzazione sul tuo LCD. Hai provato a stamparli sul terminale dell'IDE di Arduino?
Un altro paio di domande:
1) che SO usi?
2) che versione dell'IDE di Arduino usi?
Titolo: Re: Arduino
Inserito da: doublemm - 04 Dicembre 2010, 11:40:22
ho provato anche con il terminale dell'ide e non funziona. con mario gambas riceveva quello che inviavo da arduino è da gambas a arduino che non funziona.

ubuntu 10.10
l'ultima versione dell'ide di arduino 0021
Titolo: Re: Arduino
Inserito da: leo72 - 04 Dicembre 2010, 23:10:35
Non so come aiutarti, allora. Il codice che ti ho inviato a me funziona.
Non so da cosa possa dipendere. Forse dallo shield LCD che usi?
Hai provato senza, cioè la scheda di Arduino nuda e cruda?
Titolo: Re: Arduino
Inserito da: doublemm - 05 Dicembre 2010, 08:46:43
il display non è uno shield ma un I2C collegato ai piedini  analogici 4 e 5 (com'è giusto che sia con i display i2c usando LiquidDisplayI2C.h) e comunque il display l'ho collegato per fare le ultime prove prima usavo il display dell'ide. Farò ancora un po di prove poi ti saprò dire
Titolo: Re: Arduino
Inserito da: md9327 - 06 Dicembre 2010, 13:51:32
Scusate la seconda intromissione...

Forse ho capito male i discorsi, o forse non ho spiegato meglio il concetto...

Quando si parla di stringhe, queste, oltre ad essere particolari oggetti, hanno comunque una rappresentazione binaria interna di ogni singolo carattere ivi contenuto. Questo per dire che se noi inseriamo "012" (zero,uno,due) all'interno di una stringa, non facciamo altro che inserire una sequenza di byte che rappresentano i corrispondenti valiori ascii di ogni singolo carattere, ad esempio: 48,49 e 50 (corrispondenti al codice ascii di 0, 1 e 2).
Se è necessario, e credo sia il caso di arduino, passare il valore binario di "255", non bisogna prendere i singoli cbyte contenuti nella stringa, bensì il corrispondente valore binario, opportunamente convertito nel valore in bit, ovvero "255" è uguale 0xFF esadecimale, ovvero &h255 con Gambas. Dato che, presumo, il valore viene passato, senza accorgimenti, da gambas come singolo carattere, la stringa "255" viene effettivamente inviata con singoli tre byte, che corrispondono ai valori "2" (50 decimale), "5" (53 decimale) e "5" (53 decimale), che risultano prorpio tre singoli valori binari. Non sò adesso cosa faccia arduino, anche perchè non sò neppure cosa sia, ma presumo che al primo 50 (decimale) che gli arriva, attivi un clock con tale frequenza (in Hz).

Io spero che quello che ho scritto sia chiaro, e che possa chiarire il perchè delle anomalie riscontrate.
Titolo: Re: Arduino
Inserito da: leo72 - 06 Dicembre 2010, 16:32:56
Il problema è un altro.
Premesso che ho imparato (a mie spese  :o) che il C tratta le stringhe come sequenze di byte contenenti i codici ASCII dei caratteri (tipo char), la questione è che se io uso i miei software le cose funzionano correttamente, mentre a lui no.

Il mio sistema con il mio software Gambas invia un byte, che può avere un valore 255, 254, 100 o quello che è, e il mio Arduino riceve il byte correttamente, tant'è che ne stampa il valore esatto sul terminale.
A doublemm invece il suo Arduino pare riceva una stringa di char: 255 diventa infatti "2", "5", "5". Non capisco questa cosa.
Titolo: Re: Arduino
Inserito da: md9327 - 07 Dicembre 2010, 10:41:57
Ma ha provato a inviare direttamente, tramite l'output seriale, un valore fisso numerico, senza passare per variabili varie?

Mi pare strano che il comportamento sia diverso tra voi due, a meno che la versione di gambas sia diversa...

Io sono convinto che: o si fà confusione nell'invio dei dati, oppure su arduino (che non conosco) è impostato qualcosa di diverso.
Titolo: Re: Arduino
Inserito da: leo72 - 07 Dicembre 2010, 14:32:41
Non credo c'entri la vers. di Gambas, secondo me è qualcosa il codice dello sketch.
Doublemm potresti inviarmi il tuo?
Titolo: Re: Arduino
Inserito da: doublemm - 07 Dicembre 2010, 14:51:16
@Leo ciao ti mando lo sketch e il listato gambas. A me non funziona il display mi scrive I received: e poi dei caratteri strani. Ho provato anche a cambiare il tipo delle variabili sia su gambas che su arduino ma nulla, vambiano i caratteri ma sempre strani

te lo avevo già inviato
Titolo: Re: Arduino
Inserito da: leo72 - 10 Dicembre 2010, 23:52:52
Sì è vero. Non l'avevo neanche aperto perché l'altra sera non avevo Arduino a portata di mano.
Stasera ho però scoperto una cosa. Ho provato ad aprirlo e Gambas mi ha detto che non era un progetto Gambas 2 valido. Quindi tu l'hai scritto con G3. Ma io il mio l'ho scritto con G2. Ho il sospetto che tra le 2 versioni qualcosa sia cambiato.
Prova con G2 e fammi sapere.
Titolo: Re: Arduino
Inserito da: doublemm - 23 Dicembre 2010, 23:59:41
è passato un po di tempo e devo ancora provare ma appena riesco ti faccio sapere. Come ho scritto in un altro post ho un bar in un centro commerciale e questo periodo vengo a casa solo per dormire. Arduino e gambas hanno accumulato due dita di polvere ma appena passate le feste li riprendo in mano.
Titolo: Re: Arduino
Inserito da: leo72 - 24 Dicembre 2010, 11:56:26
Beh anch'io non è che in questi giorni abbia prodotto molto  ;)

Mi sono dato agli esperimenti con le EEPROM.
Titolo: Re: Arduino
Inserito da: Ceskho - 24 Dicembre 2010, 13:51:57
Beh anch'io non è che in questi giorni abbia prodotto molto  ;)

Mi sono dato agli esperimenti con le EEPROM.

mentre il mondo informatico programma ad altissimo livello, Leo72 e ritornato a forare le schede.... :rotfl:
Titolo: Re: Arduino
Inserito da: leo72 - 24 Dicembre 2010, 15:22:23
..ed agli acquisti online... Sono per strada 2 Z80!!!!
Ho un piccolo progettino in mente  Muahahahhah  :devil:
Titolo: Re: Arduino
Inserito da: vuott - 31 Maggio 2011, 00:25:48
Un tizio che adopera Arduino:

http://tomscarff.110mb.com
Titolo: Re: Arduino
Inserito da: leo72 - 17 Giugno 2011, 09:51:41
Cioè? Non capisco...
Mica c'è solo lui che adopera Arduino... ma è qualcuno che dovrei conoscere?  :-[
Titolo: Re: Arduino
Inserito da: vuott - 17 Giugno 2011, 13:00:59
Cioè? Non capisco...
Mica c'è solo lui che adopera Arduino... ma è qualcuno che dovrei conoscere?  :-[

Certo che non è l'unico ad usare arduino. L'ho citato solo per curiosità, perché utilizza il chip per hardware di uso musicale.
Titolo: Re: Arduino
Inserito da: leo72 - 19 Giugno 2011, 10:52:53
Ah, ok...  :-[
Titolo: Re: Arduino
Inserito da: fsurfing - 02 Dicembre 2011, 20:25:22
anche io ho iniziato ad giocherellare con arduino :) .......

quindi ho provato a far interagire arduino con gambas  :coder:

http://www.youtube.com/watch?v=3PCImi6KhBA&feature=youtu.be (http://www.youtube.com/watch?v=3PCImi6KhBA&feature=youtu.be)
Titolo: Re: Arduino
Inserito da: doublemm - 03 Dicembre 2011, 23:03:47
anche io ho iniziato ad giocherellare con arduino :) .......

quindi ho provato a far interagire arduino con gambas  :coder:

http://www.youtube.com/watch?v=3PCImi6KhBA&feature=youtu.be (http://www.youtube.com/watch?v=3PCImi6KhBA&feature=youtu.be)

bello, è possibile dare un occhiata al codice?
Titolo: Re: Arduino
Inserito da: fsurfing - 04 Dicembre 2011, 09:52:27
tieni present eche di c io non so aasolutamente nulla!

quindi il codice dello sketch è lungi dall' essere decente, infatti non sono riuscito a "trasformare " un byte direttamente in un int e ho dovuto usare una serie di if else if, non molto pulito ma cmq funzionante:)
Codice: [Seleziona]
#include <LiquidCrystal.h>
#define l1 2
#define l2 3
#define l3 4
#define l4 5
#define l5 6
#define l6 7
#define l7 8
#define l8 9
#define l9 10
#define l10 11
#define led 13
byte in=0;
int tipo=0;
int pin=0;
int connesso=0;
//char nomi["led 1","led 2","led 3","led 4","led 5","led 6","led 7","led 8","led 9"];

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(22, 23, 24, 25, 26, 27);

int i=0;

void setup() {
  Serial.begin(9600);
  pinMode(l1,OUTPUT);
  pinMode(l2,OUTPUT);
  pinMode(l3,OUTPUT);
  pinMode(l4,OUTPUT);
  pinMode(l5,OUTPUT);
  pinMode(l6,OUTPUT);
  pinMode(l7,OUTPUT);
  pinMode(l8,OUTPUT);
  pinMode(l9,OUTPUT);
  pinMode(l10,OUTPUT);
  pinMode(led,OUTPUT);
  // set up the LCD's number of rows and columns:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.setCursor(0,0);
  lcd.print("TEST seriale 1");
  lcd.setCursor(0,1);
  lcd.print("by fsurfing");
 
  delay(1000);
}
void loop(){
 
  if (connesso==0){
    attendi();
  }else{
    if(Serial.available()>0){
     
      in=Serial.read();
      char a=char(in);
     
      if(a=='i'){
        tipo=1;
      }else if (a=='o'){
        tipo=0;
      }else if(a!='#' && a!='i' && a!='o'){
        if (a=='0'){
          pin=2;
        }else if(a=='1'){
          pin=3;
        }else if(a=='2'){
          pin=4;
        }else if(a=='3'){
          pin=5;
        }else if(a=='4'){
          pin=6;
        }else if(a=='5'){
          pin=7;
        }else if(a=='6'){
          pin=8;
        }else if(a=='7'){
          pin=9;
        }else if(a=='8'){
          pin=10;
        }else if(a=='9'){
          pin=11;
        }
     
        cambia(pin,tipo);
      }
    }   
   
   
  }   
 
}
void cambia(int pin,int tipo){
  digitalWrite(pin,tipo);
  lcd.clear();
  if (tipo==1){
    lcd.print("Acceso led ");
  }
  if (tipo==0){
    lcd.print("Spento led ");
  }
  lcd.setCursor(0,1);
  int p=pin-1;
  lcd.print(p);
  p=tipo*1000+pin;
  Serial.print(p);
  Serial.print("\n");
}
void attendi(){
  if(Serial.available()>0){
    in=Serial.read();
      char a=char(in);
        if (a=='#'){
          Serial.print("ok");
          connesso=1;
          lcd.clear();
          lcd.print("Connesso");
        }
  }
  delay(100);
}
il codice gambas invece non è nullaltro che il codice dell' esempio serial port, modificato in modo che ogni pulsente alla pressione invii sulla seriale il comando di accensione e spegnimento dei vari pin


Codice: [Seleziona]
Public Sub Button8_Click()
   
    If l4 Then
       Print #Sport, "o3"; Chr$(13); Chr$(10); 'comando accensione
        l4 = False
    Else
         Print #Sport, "i3"; Chr$(13); Chr$(10);'comando spegnimento
        l4 = True
    Endif
End
Titolo: Re: Arduino
Inserito da: md9327 - 06 Dicembre 2011, 17:21:56
int i = (int)var_byte
Titolo: Re: Arduino
Inserito da: biggsman - 23 Ottobre 2013, 17:24:07
che bello! ed interessante  hummmm... se ne può avere il codice?

Titolo: Re: Arduino
Inserito da: biggsman - 23 Ottobre 2013, 19:41:43
ho provato ma non mi funziona..
 :o
Titolo: Re: Arduino
Inserito da: fsurfing - 23 Ottobre 2013, 20:55:03
troppo generico ...esplicati meglio  :D
Titolo: Re: Arduino
Inserito da: biggsman - 23 Ottobre 2013, 21:08:38
ok!
ho copiato il codice dello sketch e passato ad arduino
ho copiato il codice per gambas e l ho incollato nell' evento click di un button nel codice serial port degli esempi
volendo accendere il led 8 ho aggiunto : Dim l8 As Boolean e modificato tra gli apici
Codice: [Seleziona]
Dim l8 As Boolean
     
    If l8 Then
       Print #Sport, "o8"; Chr$(13); Chr$(10); 'comando accensione
        l8 = False
    Else
         Print #Sport, "i8"; Chr$(13); Chr$(10); 'comando spegnimento
        l8 = True
    Endif
ma se clicco non accendo alcun led..
Titolo: Re: Arduino
Inserito da: fsurfing - 23 Ottobre 2013, 22:19:43
purtroppo non ho più arduino sottomano  (è occupato per un progetto fotografico) per cui non posso aiutarti molto.

ti consiglio (non sapendo a che livello sei di programmazione ) di iniziare passo passo, ovvero inizia a dialogare con arduino tramite l' esempio serial port di gambas (la porta è /dev/ttyACM0) poi provi a far azionare le uscite tramite i comandi di seriale
Titolo: Re: Arduino
Inserito da: biggsman - 24 Ottobre 2013, 12:04:43
il mio livello di programmazione è abbastanza scarso e limitato al Vb..
Sto migrando a gambas perchè non voglio più avere a che fare co Micro$oft  :hatecomputer: e da tre anni uso Mint..   :)
Se potessi avere quel file che esegui nel filmato e il relativo .ino penso riuscirei studiandoli a comprendere come funziona ed imparare..  :rolleyes:
Titolo: Re: Arduino
Inserito da: Top Fuel - 02 Ottobre 2014, 17:26:30
Visto che qui qualcuno si interessa a questa apparecchiatura, se può interessare: :)

http://www.bergamoscienza.it/ITA/Default.aspx?SEZ=5&PAG=18&MOD=CAL2012&FILTER=tpo,CSM&ANN=&CURDATE=20141004&TODATE=20141019&EVE=1004#availability (http://www.bergamoscienza.it/ITA/Default.aspx?SEZ=5&PAG=18&MOD=CAL2012&FILTER=tpo,CSM&ANN=&CURDATE=20141004&TODATE=20141019&EVE=1004#availability)