PRE2019 3 Group4 Electrical Design: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
 
Line 18: Line 18:
[[File:Solenoid_Test.gif|left|Testing the solenoid using the final version of the control PCB.]]
[[File:Solenoid_Test.gif|left|Testing the solenoid using the final version of the control PCB.]]


===How are button presses registered===
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
==How are button presses registered==
[[File:BasicSwitch.png|300px|right|thumb|Wiring schematic for a basic pull-up switch.]]
[[File:BasicSwitch.png|300px|right|thumb|Wiring schematic for a basic pull-up switch.]]
Button presses of either the control buttons that advance the system to another level, the control buttons that confirm or reset the given input and the buttons that register braille dot presses will be implemented by using a basic switch. The switch will be normally open, so nu current can flow through it. This causes the 10k resistor to have no voltage drop, letting a voltage of 0V appear at the RaspberryPi GPIO pin. When the button is pressed, the switch will close connecting the resistor directly between 5V and ground. Now the voltage at the GPIO pin is pulled up to 5V, which can be registered by the RaspberryPi and depending on which GPIO pin goes high, the appropriate action can be taken.
Button presses of either the control buttons that advance the system to another level, the control buttons that confirm or reset the given input and the buttons that register braille dot presses will be implemented by using a basic switch. The switch will be normally open, so nu current can flow through it. This causes the 10k resistor to have no voltage drop, letting a voltage of 0V appear at the RaspberryPi GPIO pin. When the button is pressed, the switch will close connecting the resistor directly between 5V and ground. Now the voltage at the GPIO pin is pulled up to 5V, which can be registered by the RaspberryPi and depending on which GPIO pin goes high, the appropriate action can be taken.

Latest revision as of 18:44, 5 March 2020

How is the braille cell actuated

Plan

Wiring schematic for the braille pad.

The braille dots in the reading cell will be actuated by solenoids, one solenoid for each dot. The solenoids will be controlled by the RaspberryPi that controls the whole system. However, since the solenoids require a large current to maintain their position, the control signal form the RPi cannot be used to directly supply power to the solenoids. Instead, the control signal is applied to the gate of a power MOSFET, in this case the TIP31C, to allow current to flow from the main 5V bus to ground, through the solenoid. This energizes the solenoid, pushing a metal pin upwards. When the control signal to the gate of the MOSFET goes low again, current can no longer flow to ground. However, an inductor such as a solenoid will in this case act as a voltage source temporarily, as it takes time for the current through an inductor to change. To prevent sparks, a flyback diode is put in parallel to the solenoid in opposite direction, to provide a path for the current to flow when the transistor is closed, but the solenoid is still energized. This circuit is depicted in the figure to the right.

An important thing to keep in mind is that the solenoid is not intended to be constantly powered at its maximum force. This would cause the coil to heat up and be damaged fairly quickly. To prevent this, several approaches can be taken. The first of which is to add a resistor in series with the solenoid as this would limit the current through the solenoid. A downside of this approach is that the maximum force exerted by the solenoid will be limited. Another way of reducing the (average) current through the solenoid is to apply a Pulse-Width Modulated (PWM) signal to the gate of the transistor. This would allow current to flow through the solenoid for an adjustable portion of the time, reducing the force generated and current required as well. The advantage of this approach as opposed to adding a resistor is that it is adjustable in code.


Testing the design on a breadboard.

Testing

The next step is to build the design on a breadboard to see if it will also work in practice. After some trying it worked just fine, drawing a current of 300 mA (which is the maximum current that can be used for indefinitely long periods of time without causing any problems) when the transistor is given a 3.3V PWM control signal with a duty cycle of 60%. For the solenoid to be able to extend upwards, the springs need to be removed.

One of the finished experiment PCBs to control the solenoids.

Assembly

After confirming the design works, the circuit built on the breadboard must be created twelve times over on the experiment PCBs, six for each braille cell. All in-going and outgoing wires can be inserted into the terminal blocks, such that the system can still be relatively easily disassembled if necessary. There are terminal blocks for the wires to the solenoids themselves, the control wires from the Raspberry Pi, and the power. Now the final version is ready, it is tested one last time to ensure all connections are made properly.

Testing the solenoid using the final version of the control PCB.










How are button presses registered

Wiring schematic for a basic pull-up switch.

Button presses of either the control buttons that advance the system to another level, the control buttons that confirm or reset the given input and the buttons that register braille dot presses will be implemented by using a basic switch. The switch will be normally open, so nu current can flow through it. This causes the 10k resistor to have no voltage drop, letting a voltage of 0V appear at the RaspberryPi GPIO pin. When the button is pressed, the switch will close connecting the resistor directly between 5V and ground. Now the voltage at the GPIO pin is pulled up to 5V, which can be registered by the RaspberryPi and depending on which GPIO pin goes high, the appropriate action can be taken.