-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsketch.js
More file actions
125 lines (90 loc) · 2.85 KB
/
sketch.js
File metadata and controls
125 lines (90 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// clase-08-ejemplo-p5js-texto
// codigo adaptado desde ejemplo base de p5-serialcontrol
// por montoyamoraga
// v0.0.1 mayo 2022
// hecho con p5.js y p5.serialport.js
// basado en ejemplo https://github.com/p5-serial/p5.serialport/tree/master/examples/basics
// declarar variable para puerto serial
let serial;
// declarar variable con nombre de puerto de Arduino
// actualizar con nombre del puerto en tu computador
let nombrePuerto = "COM3";
// declarar variable para datos recibidos
let datosRecibidos = "esperando...";
// setup() ocurre una vez al principio
function setup() {
// lienzo del tamaño del navegador
createCanvas(windowWidth, windowHeight);
// crear instancia de puerto serial
serial = new p5.SerialPort();
// obtener una lista de los puertos disponibles
serial.list();
// asumimos que microcontrolador Arduino está conectado
// y abrimos la conexión al puerto especificado
serial.open(nombrePuerto);
// callback cuando recibimos "connected"
// correr función servidorConectado
serial.on('connected', servidorConectado);
// callback cuando recibimos "list"
// corremos función listaRecibida
serial.on('list', listaRecibida);
//callback cuando recibimos "data"
// corremos función recibirDatos
serial.on('data', recibirDatos);
// callback cuando recibimos "error"
// corremos función recibirError
serial.on('error', recibirError);
// callback cuando recibimos "open"
// corremos función recibirApertura
serial.on('open', recibirApertura);
// callback cuando recibimos "close"
// corremos función recibirCierre
serial.on('close', recibirCierre);
}
// función para indicar que servidor está conectado
function servidorConectado() {
print("servidor conectado");
}
// Got the list of ports
function listaRecibida(lista) {
print("lista de puertos seriales:");
// iterar sobre cada elemento
for (let i = 0; i < lista.length; i++) {
// imprimir en consola
print(i + " " + lista[i]);
}
}
// Connected to our serial device
function recibirApertura() {
print("puerto serial está abierto");
}
function recibirCierre(){
print("puerto serial está cerrado");
datosRecibidos = "puerto serial está cerrado";
}
// si hay un error, imprimirlo
function recibirError(error) {
print(error);
}
// si tenemos datos desde el puerto serial
function recibirDatos() {
// leer línea de datos de entrada
let entrada = serial.readLine();
// borrar espacios
trim(entrada);
// si la línea está vacía, no hacer nada
if (!entrada) return;
// imprimir los datos en consola
console.log(entrada);
// actualizar variable datosRecibidos
datosRecibidos = entrada;
}
// draw() ocurre en bucle, después de setup()
function draw() {
// fondo blanco
background(255);
// relleno negro
fill(0);
// texto datos recibidos en posición 10, 10
text(datosRecibidos, 10, 10);
}