Picadae hardware and control code
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
kevin c5c95c5f97 tiny/i2c_timer_pwm_2.c,tinyMakefile : New firmware version with programmable hold delay. 3 år sedan
..
app picadae_api.py,picadae_shell.py : Added 'flags' parameter and 'make_scale' API. 3 år sedan
ctrl app/README.md,tiny/README.md,ctrl/READM.md : Initial commit. 3 år sedan
tiny tiny/i2c_timer_pwm_2.c,tinyMakefile : New firmware version with programmable hold delay. 3 år sedan
README.md app/README.md,tiny/README.md,ctrl/READM.md : Initial commit. 3 år sedan

README.md

This folder contains the picadae control code.

The picadae control program consists of three parts:

Architecture

The keyboard control hardware consists of 8 driver boards mounted above the solenoids on the keyboard assembly. Each driver board has 11 key driver circuits which control 11 piano keys. Each key driver circuit consists of an ATtiny85 microcontroller which controls a set of power transistors which in turn control the state of the solenoid. The solenoid can be in one of three states:

  • off
  • attack
  • hold

The attack state is triggered by pulsing the the solenoid with a fast (250 microsecond to 30 millisecond) 36 volt pulse. The duration of the pulse determines the attack dynamic. Longer pulses produce louder notes. At the end of the attack state the solenoid transitions into a hold state. During this time the key is held down with just enough force to sustain the note.

All 88 ATtiny85 microncontrollers are attached to a single I2C bus which is mastered by an ATmega328 MCU which acts as a serial to I2C translator for the host computer.

The host API is implemented as the Python class ‘Picadae’ in app/picadae_api.py. The control shell program app/picadae_shell.py shows an example usage of the API.