138 lines
4.1 KiB
Plaintext
138 lines
4.1 KiB
Plaintext
|
*******************************
|
||
|
* PROTOCOLO OSC *
|
||
|
*******************************
|
||
|
|
||
|
Páginas de referencia:
|
||
|
http://opensoundcontrol.org/spec-1_0
|
||
|
http://opensoundcontrol.org/spec-1_0-examples
|
||
|
http://www.linuxjournal.com/content/introduction-osc
|
||
|
|
||
|
|
||
|
+ Arduino -> World
|
||
|
===================
|
||
|
|
||
|
"Envío del valor de un sensor"
|
||
|
/ard/id/n value
|
||
|
|
||
|
ard = Placa bahía Arduino
|
||
|
id = Id de la placa (byte, en firmware)
|
||
|
n = Número de puerto (byte, 1-56)
|
||
|
value = Valor leído (int32, Arduino solo soporta int16)
|
||
|
|
||
|
Para las tres operaciones esta es a estructura en bytes:
|
||
|
|
||
|
Indices 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
|
||
|
Bits 8 16 24 32 40 48 56 64 72 80 88 96 8 16 24 32 8 16 24 32
|
||
|
Contenido / a r d / B / B \0 \0 \0 \0 , i \0 \0 INT32
|
||
|
Tipo { OSC Address Pattern }{OSCTypeTag}{OSCArgument}
|
||
|
|
||
|
= mensaje fijo de 20 bytes
|
||
|
|
||
|
+ World -> Arduino
|
||
|
===================
|
||
|
|
||
|
"Escritura del valor de un sensor"
|
||
|
/ard/id/wr/n value
|
||
|
|
||
|
ard = Placa bahía Arduino
|
||
|
id = Id de la placa (byte, 1-255)
|
||
|
wr = Escribir valor
|
||
|
n = Número de puerto (byte, 1-56)
|
||
|
value = Valor a escribir (int32, interpretado como byte)
|
||
|
Nota: El Arduino no tiene un DAC, por lo que sólo puede
|
||
|
escribir valores digitales o PWM. El PWM solo es posible
|
||
|
en los puertos que cuenten con esa capacidad.
|
||
|
|
||
|
"Activar o desactivar un sensor"
|
||
|
/ard/id/en/n value
|
||
|
|
||
|
ard = Placa bahía Arduino
|
||
|
id = Id de la placa (byte, 1-255)
|
||
|
en = Activar pin
|
||
|
n = Número de puerto (byte, 1-56)
|
||
|
value = Activar o desactivar el envío de ese sensor (int32, interpretado como bool)
|
||
|
=0 : true
|
||
|
!=0 : false
|
||
|
|
||
|
"Configurar la función de un pin"
|
||
|
/ard/id/cf/n value
|
||
|
|
||
|
ard = Placa bahía Arduino
|
||
|
id = Id de la placa (byte, 1-255)
|
||
|
cf = Configurar pin
|
||
|
n = Identificador de pin (byte, nomenclatura pin_bahia, ver más abajo)
|
||
|
value = (int32)
|
||
|
1 | Digital Out
|
||
|
2 | Digital In
|
||
|
3 | "Analog Out" (PWM)
|
||
|
4 | Analog In
|
||
|
|
||
|
|
||
|
Para las tres operaciones esta es a estructura en bytes:
|
||
|
|
||
|
Indices 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
|
||
|
Bits 8 16 24 32 40 48 56 64 72 80 88 96 8 16 24 32 8 16 24 32
|
||
|
Contenido / a r d / B / c f / B \0 , i \0 \0 INT32
|
||
|
Tipo { OSC Address Pattern }{OSCTypeTag}{OSCArgument}
|
||
|
|
||
|
= mensaje fijo de 20 bytes
|
||
|
|
||
|
|
||
|
*******************************
|
||
|
* CONFIGURACION PINES *
|
||
|
*******************************
|
||
|
|
||
|
|
||
|
+ Mapeo pines Arduino <-> bahía <-> pin_bahia <-> ATMega <-> # pin paquete DIP:
|
||
|
===============================================================================
|
||
|
|
||
|
Arduino Bahía pin_bahia ATMega DIP 28
|
||
|
|
||
|
A0 X1 0 PC0(ADC0) 23
|
||
|
A1 X2 1 PC1(ADC1) 24
|
||
|
A2 X3 2 PC2(ADC2) 25
|
||
|
A3 X4 3 PC3(ADC3) 26
|
||
|
A4 X5 4 PC4(ADC4/SDA) 27
|
||
|
A5 X6 5 PC5(ADC5/SCL) 28
|
||
|
D13 X7_0 6 PB5(SCK) 19
|
||
|
D12 X7_1 7 PB4(MISO) 18
|
||
|
D11 X7_2 8 PB3(MOSI/OC2) 17
|
||
|
D9 X7_3 9 PB1(OC1A) 15
|
||
|
D5 X7_4 10 PD5(T1) 11
|
||
|
D6 X7_5 11 PD6(AIN0) 12
|
||
|
D7 X7_6 12 PD7(AIN1) 13
|
||
|
D8 X7_7 13 PB0(ICP) 14
|
||
|
|
||
|
|
||
|
+ Configuración zonas por defecto:
|
||
|
==================================
|
||
|
|
||
|
"Analog Out" (PWM) = X7_2 - X7_5
|
||
|
Analog In = X6, X5
|
||
|
Digital Out = X4, X3, X7_0, X7_1, X7_6, X7_7
|
||
|
Digital In = X2, X1
|
||
|
|
||
|
|
||
|
+ Zona 7:
|
||
|
=========
|
||
|
|
||
|
Id PWM
|
||
|
|
||
|
0 No
|
||
|
1 No
|
||
|
2 Si
|
||
|
3 Si
|
||
|
4 Si
|
||
|
5 Si
|
||
|
6 No
|
||
|
7 No
|
||
|
|
||
|
|
||
|
*******************************
|
||
|
* TABLAS CONFIGURACION *
|
||
|
*******************************
|
||
|
|
||
|
(Los indices son bahia_pin)
|
||
|
|
||
|
|