Show Posts
Pages: [1] 2 3 ... 16
1  International / Generale / Re: Arduino servo + processing on: July 20, 2014, 04:46:27 pm
prova fare una cosa del genere


 
Code:

 int dato = 0;
 if (dato< spos){
    dato++;
    }
       if (dato> spos){
    dato--;
    }

e spedisci "dato" anzichè spos
così  non salta ma fa tutti i cicli
2  International / Generale / Re: arduino yun with processing.js (it works) on: July 20, 2014, 04:50:12 am
ricordo che con questo sistema i dati inviati e ricevuti dal web sono in
real time, (no librerie aggiuntive o siti)
 non si deve aspettare che la pagina si ricarichi.
 smiley
3  International / Generale / Re: arduino yun with processing.js (it works) on: July 15, 2014, 02:52:14 pm
lo yun ripulito, manda solo il valore di A0, il led 13 si accende quando lo yun è pronto

arduino yun

Code:
#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
YunServer cavoli;

void setup() {
  pinMode(13, OUTPUT);
  Bridge.begin();
  cavoli.listenOnLocalhost();
  digitalWrite (13, LOW);
  cavoli.begin();
  digitalWrite (13, HIGH);
}

void loop() {
  YunClient client = cavoli.accept();
  if (client) {
    trimmer(client);
    client.stop();
  }
  delay(64);
}
void trimmer(YunClient client) {
  int val_Analog = analogRead(A0);
  client.print(val_Analog);
}

processing.js-html,

fino a "datiYun è fisso...
sotto è quello che dobbiamo modificare,

var pjs = Processing.getInstanceById('sketch');
sketch è il nome dello sketch processing che lo abbiamo dato sotto alla fine --canvas id='sketch'--
-----
js
var ciao = valorePin0;
if (ciao >1){ 
pjs.variaInProcessing(ciao);
}

da questo creiamo una funzione in processing:
         void variaInProcessing(int newValore){
valPinA0 = newValore;
 }

Code:
   <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Arduino Yun With Processing js</title>
<script src=" processing.js" type="text/javascript"></script>
 </head>
 <script>
window.onload=Pin0Yun;
     function Pin0Yun(){
 pinYun();
 }
     function pinYun(){
setTimeout(pinYun, 3000);
 server = "/arduino/miao/99";
richiesta = new XMLHttpRequest();
richiesta.onreadystatechange = aggiornaValori;
richiesta.open("GET", server, true);
richiesta.send(null);
}
     function aggiornaValori(){
if ((richiesta.readyState == 4) && (richiesta.status == 200))
{
datiYun = richiesta.responseText;
valorePin0 = datiYun;
var pjs = Processing.getInstanceById('sketch');

var ciao = valorePin0;
if (ciao >1){ 
pjs.variaInProcessing(ciao);
}
}

 </script>
<body>
<!-----------------------inizio sketch Processing ------------------------->
<!-----------------------inizio sketch Processing ------------------------->            
<script type="text/processing"> 

int stato = 0;
int valPinA0;
int cambia = 0;
void setup() {
size(400,400);
}
           void draw() {
background(200,200,255);
fill( 0);
ellipse (200,200,valPinA0,valPinA0);
//ellipse (40,350,50,50);
textSize (20);
text (valPinA0,300,370);
}
         void variaInProcessing(int newValore){
valPinA0 = newValore;
 }
  </script>
<!----------------------  fine sketch Processing ----------------------->
<!----------------------  fine sketch Processing ----------------------->
<canvas id='sketch' style="border: 1px solid black;"></canvas>
</body>
</html>
4  International / Generale / Re: arduino yun with processing.js (it works) on: July 15, 2014, 02:21:14 pm
non si capisce un tubo, ogni volta che devo metterci mano mi dico eeeehh???
i ponti in andata:
arduino (C)--->html--->javascript--->processing (java) 

vedo di mettere la parte solo andata, cioè solo leggere il  valore di yun  forse si capisce qualcosa  smiley-yell
5  International / Generale / Re: arduino yun e processing.js (funziona) on: July 15, 2014, 04:25:46 am
enjoy!
 smiley

edit
ho modificato pin 11 con pin 13, così per vedere non serve il led aggiuntivo
6  International / Generale / Re: arduino yun e processing.js (funziona) on: July 15, 2014, 04:22:32 am
da salvare in html
e copiare nella cartella www di yun come foto

ma nel web
aprire da web,
nel mio caso:
192.168.0.12/sd/pippo.html


Code:
  <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Arduino Yun With Processing js</title>
<script src=" processing.js" type="text/javascript"></script>
 </head>
 <script>
window.onload=Pin0Yun;
                function Pin0Yun(){
 pinYun();
 }
                function pinYun(){
setTimeout(pinYun, 3000);
server = "/arduino/stato/99";
richiesta = new XMLHttpRequest();
richiesta.onreadystatechange = aggiornaValori;
richiesta.open("GET", server, true);
richiesta.send(null);
}
                function aggiornaValori(){
if ((richiesta.readyState == 4) && (richiesta.status == 200))
{
datiYun = richiesta.responseText;
 //document.getElementById("descrizione").innerHTML = datiYun;
valorePin0 = datiYun;
vediTrimmer = "analog";
document.getElementById(vediTrimmer).value = valorePin0;
var pjs = Processing.getInstanceById('sketch');

var ciao = valorePin0;
if (ciao >1){  
pjs.variaInProcessing(ciao);
}
}
}  
                function yunOnOffLed(Pin,Azione){
document.getElementById("descrizione").innerHTML = "--- Attendi ... ---";
server = "/arduino/digital/" + Pin + "/" + Azione;
richiesta = new XMLHttpRequest();
richiesta.onreadystatechange = aggiornaSpia;
richiesta.open("GET", server, true);
richiesta.send(null);
}
                function aggiornaSpia(){
if ((richiesta.readyState == 4) && (richiesta.status == 200))
{
datiYun = richiesta.responseText;
document.getElementById("descrizione").innerHTML = datiYun;
splitta = datiYun.split(",");
tipo = splitta[0];
numeroPin = splitta[1];
PinStato = splitta[2];
attiva = "action" + numeroPin;
 ImgNum = "image" + numeroPin;
  if (PinStato == 0)
 {
 pinAttivo = "1";
 }
 else
  {
  pinAttivo = "0";
  }
 document.getElementById(attiva).value = pinAttivo;
document.getElementById("descrizione").innerHTML = datiYun;
 
  var pjs = Processing.getInstanceById('sketch');
  var spia = PinStato;
      if (spia >=0){  
pjs.cambiaColoreSpia(spia);
}
}
}
 
var bound = false;

function bindJavascript() {
var pjs = Processing.getInstanceById('sketch');
if(pjs!=null) {
pjs.bindJavascript(this);
bound = true; }
if(!bound) setTimeout(bindJavascript, 250); }
bindJavascript();
                             function invia (stato) {
yunOnOffLed(document.getElementById('pin13').value,
document.getElementById('action13').value);
 }
</script>
<body>
<!-----------------------inizio sketch Processing ------------------------->
<!-----------------------inizio sketch Processing ------------------------->
<!-----------------------inizio sketch Processing ------------------------->          
  <script type="text/processing">  
interface JavaScript {
void invia (stato);
  }
                   void bindJavascript(JavaScript js) {
  javascript = js;
}
JavaScript javascript;
int stato = 0;
int valPinA0;
int cambia = 0;
void setup() {
size(400,400);
}
                   void draw() {
background(200,200,255);
fill( 0);
ellipse (200,200,valPinA0,valPinA0);
ellipse (40,350,50,50);
textSize (20);
text (valPinA0,300,370);

if (cambia==1){
fill (255,0,0);
ellipse (40,350,50,50);
}
else {
fill (100);
ellipse (40,350,50,50);
}

}
                    void variaInProcessing(int newValore){
valPinA0 = newValore;
 }
                    void cambiaColoreSpia(int newStato){
 cambia = newStato;
 }
                                        void mouseClicked(){
if (mouseX > 10 && mouseX < 80 && mouseY > 300 && mouseY < 400 && stato == 0){
stato =1;
if (javascript!=null) {
javascript.invia (stato);
}
}
else if (mouseX > 10 && mouseX < 80 && mouseY > 300 && mouseY < 400 && stato == 1){
stato = 0;
if (javascript!=null) {
javascript.invia (stato);
}}}
  </script>
<!----------------------  fine sketch Processing ----------------------->
<!----------------------  fine sketch Processing ----------------------->
<!----------------------  fine sketch Processing ----------------------->
<canvas id='sketch' style="border: 1px solid black;"></canvas>
<br>
<br>
<input type="hidden" name="pin" value="13" id="pin13" hidden="true"/>
<input type="hidden" name="action" value="0" hidden="true"/>
<input type="hidden"  name="action" value="0" id="action13" hidden="true"/>
</td>
<input type="text"  name="analog" id="analog" value="0" hidden="true"/>
<p id="descrizione" hidden="true"></p>
</body>
</html>
7  International / Generale / Re: webservice IoT on: July 14, 2014, 03:31:21 pm
google spreadsheet potrebbe andare bene?
8  International / Generale / Re: arduino yun e processing.js (funziona) on: July 14, 2014, 03:07:08 pm
questa è la cartella della SD dello yun
nella stessa cartella degli sketch processingjs-html  si deve inserire il sorgente processing,js
questo lo si copia da qualsiasi sketch fatto con processing in modalità javascript, lo si trova nella cartella "web-export"generata dallo sketch quando si salva
il programma che uso per spostare file da pc a sd di yun è WINSCP

9  International / Generale / Re: arduino yun e processing.js (funziona) on: July 14, 2014, 02:39:52 pm
allora interessa  smiley-twist
posto lo sketch dalla parte YUN
in pratica manda il valore analogico,
se dall'altra parte (web) mando un impulso cambia lo stato del pin 13 e riinvia lo stato del pin al web

Code:
#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
YunServer cavoli;
int val_Analog;
int pin;
int valore;
String arriva;
void setup() {
pinMode(13,OUTPUT);
Bridge.begin();
cavoli.listenOnLocalhost();
cavoli.begin();
}
void loop() {
YunClient client = cavoli.accept();
if (client) {
smista(client);
client.stop();
}
delay(64);
}
void smista(YunClient client) {
arriva = client.readStringUntil('/');
if (arriva == "stato") {
trimmer(client);
}
if (arriva == "digital") {
 Led(client);
}
}
void Led(YunClient client) {
 pin = client.parseInt();
 if (client.read() == '/') {
 valore = client.parseInt();
 digitalWrite(pin, valore);
 }
 client.print(F("analog,"));
 client.print(pin);
 client.print(F(","));
 client.println(valore);
}
void trimmer(YunClient client) {
val_Analog = analogRead(A0);
client.print(val_Analog);  
}

 sto studiando da poco lo yun, in pratica è un esempio preso dalla rete e modificato  smiley-roll
10  International / Generale / arduino yun with processing.js (it works) on: July 14, 2014, 04:36:18 am
sono riuscito a far comunicare i valori carpiti dallo YUN con processing.js,

quindi via web anche da remoto leggo i valori nello sketch javascript.
non solo,
anche bidirezionale, da remoto, via web accendo un led.

senza nessuna libreria aggiuntiva.

scusate il piccolo l'annuncio, ma pare che in rete con processing javascript e arduino non ci sia nulla
 smiley
a presto, se interessa posto i due sketch
( tutto incasinato e lo devo sistemare)
11  International / Generale / Re: Aiuto con Processing variante on: July 01, 2014, 01:15:41 pm
Hai provato   guardare negli esempi?
Topic-->Drawing-->ContinuosLines
va bene questo?
12  International / Generale / Re: Arduino servo + processing on: June 24, 2014, 04:21:29 pm
bene  smiley
se vuoi si potrebbe provare a  migliorare facendo girare le lancette di processing da arduino e non da processing stesso,
così è sicuro che arduino ha ricevuto i dati, quindi la posizione sicura.
13  International / Generale / Re: Arduino servo + processing on: June 22, 2014, 07:14:33 pm
non ho trovandolo in rete, la parte processing te la ho preparata...molto scarna e se vuoi migliorabile.
per la parte arduino provaci, non so neanche io se così può funzionare

Code:
import processing.serial.*; 
Serial port;         
int spos =0;
int spos2 =180;
int spos3;
int muovoSX;
int muovoDX = 360;
void setup()
{
  size(720, 720);
  println(Serial.list());
  port = new Serial(this, Serial.list()[5], 9600);
  delay (2000);
}
void draw()
{
  background(255); //sfondo bianco
  textSize (20); //dimensione testo
  strokeWeight (5); //spessore linea
  fill (0); //colore nero per testo

  text (spos, 180, 400);  //text (testo valori (oppure "testo"),coordinate x,coordinate y)
  text (spos2-180, 540, 400);  //text (testo valori (oppure "testo"),coordinate x,coordinate y)

  rect (0, 450, 720, 50);//  rettangolo nero
  fill( 255, 0, 0); //colore rosso

  rect (360, 450, 10, 50); //piccolo rettangolo divisione
  rect (muovoDX, 450, 10, 50);//  piccolo rettangolo a dx che si muove con il mouse
  rect (muovoSX, 450, 10, 50); //  piccolo rettangolo a sx che si muove con il mouse

  spos3 =spos2-180; //la parte a sx il mouse va da 360 fino a 720...devo togliere 180 per calibrare

  if (mouseX > 0 && mouseX < 360 && mouseY > 450 && mouseY < 500 && mousePressed) { //se clicco e muovo all'interno del rettangolo nero a dx
    muovoSX= mouseX; //muovosx fa quello che fa il mousex
    spos = mouseX/2;//divido mousex/2 720/2 = 360 l'escursione totale
    port.write("A"+spos);//invio ad arduino quando clicco e muovo
  }

  if (mouseX > 360 && mouseX < 720 && mouseY > 450 && mouseY < 500&& mousePressed) {//se clicco e muovo all'interno del rettangolo nero a sx
    muovoDX= mouseX;//muovodx fa quello che fa il mousex
    spos2 = mouseX/2 ; //divido mousex/2 720/2 = 360, l'escursione totale
    port.write("B"+spos3); // invio ad arduino quando clicco e muovo
  }
  translate (180, 360); //sposto al centro quello che ci sta sotto

  ///////////////////
  pushMatrix(); // pushMatrix inizia, popMatrix finisce, serve per racchiudere in una nuova tela, se no tutto il restante codice ruota
  rotate (radians(spos)); //ruoto quello che ci sta sotto (converto in gradi con radians e
  //muovo con spos che è mousex/4 fatto precedentemente
  line (0, 0, - 100, 0); //linea parte dal centro lunga 100, meno perchè 200 pixel a
  // sx rispetto lo 0 (centro),  line( start coordinate x, start coordinate y, stop coordinate x, stop coordinate y)
  popMatrix();
  //////////////////////

  translate (360, 0);
 
  /////////////////////
  pushMatrix(); // pushMatrix inizia, popMatrix finisce, serve per racchiudere in una nuova tela, se no tutto il restante codice ruota
  rotate (radians(spos2)); //ruoto quello che ci sta sotto (converto in gradi con radians e
  //muovo con spos che è mousex/4 fatto precedentemente
  line (0, 0, 100, 0); //linea parte dal centro lunga 100, 100 pixel a
  // dx rispetto lo 0 (centro),  line( start coordinate x, start coordinate y, stop coordinate x, stop coordinate y)
  //differente a quella precente per il mousex che si trova dalla metà alla fine
   popMatrix();
  //////////////////////

  print (spos); //debug
  print ("  "); //debug
  println (spos3); //debug
}
14  International / Generale / Re: Arduino servo + processing on: June 21, 2014, 12:00:17 pm
arduino senza processing,
con questo codice cosa succede?
Code:
#include <Servo.h>
Servo myservo;
void setup()
{
  myservo.attach(9);
  Serial.begin(9600);
}
void loop()
{
  myservo.attach(9);

  myservo.write(1);
  delay (2000);
  myservo.write(90);
  delay (2000);
  myservo.write(179);
  delay (2000);
  myservo.write(90);
  delay (2000);
}
15  International / Generale / Re: Arduino servo + processing on: June 21, 2014, 08:15:32 am
non riesco a testarlo, così dovrebbe funzionare, dimentica gli sketch precedenti

arduino:

Code:
#include <Servo.h>
Servo myservo;
void setup()
 {
  myservo.attach(9);
  Serial.begin(9600);
}
void loop()
{
  static int val = 0;
  if ( Serial.available() > 0) {
    char ch = Serial.read();
    switch (ch) {
      case 'A':
        myservo.attach(9);
        myservo.write(val);
        val = 0;
        break;
      case '0' ... '9':
        val = val * 10 + ch - '0';
        break;
    }
  }
}

processing:

Code:
import processing.serial.*; 
Serial port;         
int spos =0;
void setup()
{
  size(720, 720);
  println(Serial.list());
  port = new Serial(this, Serial.list()[5], 9600);
  delay (2000);
}
void draw()
{
  background(255); //sfondo bianco
  textSize (20); //dimensione testo
  strokeWeight (5); //spessore linea
  fill (0); //colore nero per testo
  spos = mouseX/4; //divido mousex/4 720/4 = 180
  text (spos, 350, 400);  //text (testo valori (oppure "testo"),coordinate x,coordinate y)
  translate (360, 360); //sposto al centro quello che ci sta sotto
 
  rotate (radians(spos)); //ruoto quello che ci sta sotto (converto in gradi con radians e
  //muovo con spos che è mousex/4 fatto precedentemente
  line (0, 0, - 200, 0); //linea parte dal centro lunga 200, meno perchè 200 pixel a
 // sx rispetto lo 0 (centro),  line( start coordinate x, start coordinate y, stop coordinate x, stop coordinate y)
 
  port.write("A" + spos);
   println (spos);
}
Pages: [1] 2 3 ... 16