Pre-order at CrowdSupply
PCB for Programmable-Air
The electronics for Programmable-Air are pretty simple, as these things go. The PCB is composed of two boards that are connected by default but can be snapped off and used independently. The 'master' board contains an Arduino Nano, two pumps and IO. The 'slave' board contains three valves and the pressure sensor circuit. In this way, the 'master' board contains the brains and IO as well as the pressure sources while the 'slave' board contains the valves to control air flow and feedback from the pressure sensor. The 'master' board contains connectors to attach two more slave boards, thus allowing you to control three independent soft robots with the same Arduino. However, most of the time you'd probably only use the boards in their default configuration.
Below is the pin definition for the v0.5 of the board:
Here are the functions of all the Pins:
-
Power:
- Vin(+12V) - from the external power source
- +5V - Regulated 5V from Arduino's linear 5V regulator
- GND - Common ground for all signals
-
Connections on master board:
- D10 - Drives the base of the transistor for Motor 1
- D11 - Drives the base of the transistor for Motor 2
- D12 - Drives the three onboard neopixels(for debugging and such)
- D13 - Drives the base of the Load transistor. The collector of the Load is broken out as Load. You can connect it to an external pump or relay for regulating them.
- D2 - Connected to the blue button, pulled up using the internal 20K resistor and connects to ground when button is pressed
- D3 - Connected to the red button, pulled up using the internal 20K resistor and connects to ground when button is pressed
- AREF - Connected to a LM4040 +5V voltage reference
-
Connections to slave boards
-
Board 0
- A3 - Pressure sensor output(on the valve board). Can be used as a GPIO if slave board is not connected. Range~ 1V-4V
- D4 - Drives Valve #02 via a transistor(on the valve board). Can be used as a GPIO if slave board is not connected.
- D5 - Drives Valve #01 via a transistor(on the valve board). Can be used as a GPIO if slave board is not connected.
- D6 - Drives Valve #00 via a transistor(on the valve board). Can be used as a GPIO if slave board is not connected.
-
Board 1
- A2 - Pressure sensor output(on the valve board). Can be used as a GPIO if slave board is not connected. Range~ 1V-4V
- D9 - Drives Valve #12 via a transistor(on the valve board). Can be used as a GPIO if slave board is not connected.
- D8 - Drives Valve #11 via a transistor(on the valve board). Can be used as a GPIO if slave board is not connected.
- D7 - Drives Valve #10 via a transistor(on the valve board). Can be used as a GPIO if slave board is not connected.
-
Board 2
- A5 - Pressure sensor output(on the valve board). Can be used as a GPIO if slave board is not connected. Range~ 1V-4V
- A4 - Drives Valve #22 via a transistor(on the valve board). Can be used as a GPIO if slave board is not connected.
- A1 - Drives Valve #21 via a transistor(on the valve board). Can be used as a GPIO if slave board is not connected.
- A0 - Drives Valve #20 via a transistor(on the valve board). Can be used as a GPIO if slave board is not connected.
-
The yellow, green and white button are connected to the base of the transistors driving their respective valves and override the signal from the Arduino. They are intended to be used for testing a new soft robot without any coding.