Tenemos la NanoPlayBoard a la vuelta de la esquina, y se me ha ocurrido que podríamos ir pensando en proyectos que pudiesen hacerse usando los componentes que la forman, los cuales para los despistados son estos:
Sensores
Una fotoresistencia conectada al pin de entrada analógica A6.
Un potenciómetro conectado al pin de entrada analógica A7.
Cuatro pulsadores leidos mediante combinación binaria a través de los pines A0 y A1.
Un acelerómetro de tres ejes conectado a los pines A4 y A5 por medio del bus I2C.
Un encoder incremental de 16 pasos/revolución conectado a los pines D2 y A2.
Actuadores
Un buzzer conectado al pin de salida digital con capacidad de PWM D3.
Un led RGB conectado a los pines de salida digital con capacidad de PWM D9, D10, D11 (rojo, verde y azul respectivamente).
Una matriz (7x5) de led’s conectada a dos registros de desplazamiento controlados mediante los pines D13, D12 y D4 para indicar la columna a encender como el patrón a visualizar en la columna.
Puertos
Un zócalo hembra para conectar un detector de objetos por ultrasonidos conectado a los pines D7 y D8.
Un zócalo hembra para conectar un sensor de temperatura y humedad tipo DTH11/DTH22 conectado al pin A3.
Dos zócalos macho para conectar dos servomotores conectados a los pines D5 y D6.
Un zócalo hembra para conectar un modulo Bluetooth HC-05/HC-6.
En el [repositorio de la librería de Arduino][1] hay un directorio con [ejemplos][1], he tratado de incluir un ejemplo para cada método de la librería pero todavía faltan algunos:
├── 01.potentiometer
│ ├── read
│ └── scaleTo
├── 02.ldr
│ ├── read
│ └── scaleTo
├── 03.buzzer
│ └── playTone
├── 04.rgb
│ ├── on_off
│ ├── setColor_HEX
│ ├── setColor_RGB
│ ├── setIntensity
│ └── toggle
├── 05.ledmatrix
│ ├── printChar
│ ├── printInLandscape
│ ├── printMessage
│ └── printPattern
├── 06.servo
│ └── to
├── 07.servos
│ ├── robot_01
│ ├── robot_02
│ └── robot_03
├── 08.rotaryencoder
│ └── getPosition
├── 09.ultrasound
│ └── pingCm
├── 10.accelerometer
│ └── getX
├── 11.dht
│ ├── readHumidity_01
│ ├── readHumidity_02
│ ├── readTemperature_01
│ └── readTemperature_02
├── 12.buttons
│ └── isPressed
├── 13.android
│ ├── firmware_bluetooth
│ └── firmware_usb_otg
├── 14.midi
│ ├── midi_note_ldr
│ └── midi_note_potentiometer
└── 15.json-over-serial
├── json_serial_buzzer
├── json_serial_ldr
├── json_serial_ldr_potentiometer
├── json_serial_ldr_threshold
├── json_serial_ledmatrix
├── json_serial_ledmatrix_pattern
├── json_serial_potentiometer
└── json_serial_rgb
```
También hay un directorio que se llama [experimental][2] con algunos de los experimentos que he estado haciendo con la placa.
* **breathing_rgb_led**: Simula el efecto de _breathing_ de los leds de los Macbook.
* **buzzer_potentiometer**: Emite sonidos por el buzzer variando la frecuencia con el potenciómetro.
* **electronic_dice**: Utiliza la matriz de leds para hacer un dado electrónico.
* **ledmatrix_ldr_landscape**: Muestra en la matriz de leds el valor leído con el ldr.
* **ledmatrix_potentiometer_alphabet**: Muestra en la matriz de leds los símbolos del alfabeto ascii seleccionando el código con el potenciómetro.
* **ledmatrix_potentiometer_landscape**: Muestra en la matriz de leds los valores leídos con el potenciómetro.
* **morse_code**: Convierte una cadena de texto a código morse utlizando el led rgb y el buzzer para emitir sonidos.
* **rgb_blink_ldr**: Hace parpadear el led rgb variando el tiempo de espera según los valores leídos con el ldr.
* **rgb_blink_potentiometer**: Hace parpadear el led rgb variando el tiempo de espera según los valores leídos con el potenciómetro.
[1]: https://github.com/josejuansanchez/NanoPlayBoard-Arduino-Library
[2]: https://github.com/josejuansanchez/NanoPlayBoard-Arduino-Library/tree/master/experimental
Haciendo uso del acelerómetro podremos determinar cuando hemos saltado con la placa y el tiempo de vuelo. Y de ahí, podríamos sacar la altura de nuestro salto para mostrarla en la pantalla.
Nivel
Gracias al acelerómetro podríamos determinar la inclinación de la placa mostrando en la pantalla la inclinación actual.