Problema con "Modifica il logo di Arduino"

Salve a tutti!
Sono Davide e sto provando ad eseguire uno dei progetti di Arduino contenuto nel libro dello starter kit.
Sono alle prime armi e avrei bisogno di qualche dritta.

Questo è il codice che ho scritto su Arduino.

int valori;
void setup() {
Serial.begin(9600);

}

void loop() {
valori = analogRead(A0);
int valmap=map(valori,0, 1023,0,255);
Serial.write(valmap);
delay(1);

}

Mentre questo è il codice che ho scritto su processing 3 seguendo le istruzioni del libro.

import processing.serial.*;
Serial myPort;
PImage logo;
int bgcolor = 0;

void setup(){
colorMode(HSB,255);
logo = loadImage("Arduino - Home");
size(logo.width,logo.height);
println("Available serial ports: ");
println(Serial.list());
myPort = new Serial(this, Serial.list()[5],9600);

}

void draw(){
if(myPort.available()>0){
bgcolor = myPort.read();
println(bgcolor);
}

background(bgcolor, 255, 255);
image(logo,0,0);
}

Sempre seguendo le istruzioni del libro, quando eseguo il codice mi compare il messaggio di errore :

  • Please fix the size() line to continue.

Se inserisco i valori numerici di size(400,400) il codice viene eseguito, ma compare nella console la seguente dicitura:

-ArrayIndexOutOfBoundsException: 5;

  • The file "Arduino - Home" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
    Available serial ports:
    COM5.

inoltre, mi segnala un errore nella parte :

println(Serial.list());

La mie domande sono:

  1. Come faccio a modificare l'immagine del logo di Arduino?
  2. E' possibile modificare un'immagine.png presente sul pc?

Vi ringrazio in anticipo per l'attenzione e aspetto una vostra risposta.

ciao...in primis dovresti presentarti nell'apposita sezione (passerà sicuramente un moderatore a darti tutte le indicazioni).
detto questo nel tuo post hai fatto un'introduzione descrivendo il programma di arduino, quello per processing e di quest'ultimo hai elencato 2 errori/problemi (spiegabili e risolvibili)...però alla fine fai due domande su come si modifica un'immagine...

>diamonde: come ti è già stato indicato, essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

ciao diamonde,

in processing il size() nel setup() accetta solo litterals (numeri) e non varibili; se vuoi che accetti varibili devi mettere il size() non nel setup() ma in un'altra funzione chiamata settings()...attenzione anche che size() accetta int e non vorrei che il PImage.width e PImage.height restituiscano float...quindi dovresti fare anche un cast in questo modo:

PImage logo;

void settings(){
  logo = loadImage("https://arduino.org/logo.png");
  size(int(logo.width), int(logo.height));
  }

io ho fatto una prova...con immagini locali sul mio PC funziona tutto...se provo a richiamare un'altra immagine dal web funziona...se provo con il logo di arduino mi dice che non è raggiungibile.

per quanto riguarda il secondo errore (-ArrayIndexOutOfBoundsException: 5;) attenzione che Serial.list() restituisce una Stringa contenente la seriale utilizzata (a cui è connesso qualche cosa) che se sono più di una, diciamo, diventa un array...quindi scrivendo Serial.list()[5] gli stai dicendo che arduino è sicuramente connessa alla COM X nella sesta posizione delle COM utilizzare...cioè in quel momento stai utilizzando contemporaneamente almeno 6 porte COM ed aruino è connesso alla posizione 6 dell'array ([5])...sei sicuro?...o vuoi dire COM 5?...in questo caso ti basta scrivere la Stringa diretta:

myPort = new Serial(this, "COM5",9600);

PS: "COMx" va bene su Windows...se sei su altro OS devi dargli la Stringa giusta

>diamonde, ORSO2001: ... vi rammnento che questo è il forum di Arduino.cc ... per dicussioni relative a "Processing" vi prego di andare sul forum di processing. Grazie.

>diamonde: ... ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).
In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

ORSO2001,

Con le tue indicazioni sono riuscito a risolvere il problema.

Ti ringrazio della disponibilità e della pazienza che hai avuto.

A presto :slight_smile:

>diamonde: ... io sto sempre aspettando che sistemi il tuo primo post come ti ho chiesto nel mio post #4 ... ::slight_smile:

Guglielmo