Difference between revisions of "HANcoder/Training Material/Highwaysurfer"
Line 528: | Line 528: | ||
[[file:Microcontroler.jpg|600x150px|right|Click to enlarge image]] | [[file:Microcontroler.jpg|600x150px|right|Click to enlarge image]] | ||
The microcontroller is directly connected with the ground and source stars with an extra fuse in series for protection. | The microcontroller is directly connected with the ground and source stars with an extra fuse in series for protection. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
Line 542: | Line 537: | ||
===Input=== | ===Input=== | ||
− | The input gets data from the sensors. For this system we need to translate the output of 3 types of sensors. 3 ultrasonic sensors, 1 potentiometer and 1 rotation speed sensor. Below we can see how this is done using HANcoder. | + | The input gets data from the sensors. For this system, we need to translate the output of 3 types of sensors. 3 ultrasonic sensors, 1 potentiometer and 1 rotation speed sensor. Below we can see how this is done using HANcoder. |
− | ==== | + | ====Position Sensor==== |
− | From the potentiometer we get a certain voltage. If we multiply the voltage by 1/4096 and 1.065. In combination with the constant we can get the position of the car. (Figure 4 Position sensor) | + | From the potentiometer, we get a certain voltage. If we multiply the voltage by 1/4096 and 1.065. In combination with the constant we can get the position of the car. (Figure 4 Position sensor) |
− | ==== | + | ====Speed Sensor==== |
The output of the rotation sensor is a sinus signal, but in combination with the interface chip it will be a block signal. With the 'timer input get' block out of the HANcoder library it is possible to get the frequency out of the block signal. If you multiply the frequency by: 2*Pi*0.04*1/44 it will give the speed of the roll as an input for the algorithm. (figure 5 speed sensor) | The output of the rotation sensor is a sinus signal, but in combination with the interface chip it will be a block signal. With the 'timer input get' block out of the HANcoder library it is possible to get the frequency out of the block signal. If you multiply the frequency by: 2*Pi*0.04*1/44 it will give the speed of the roll as an input for the algorithm. (figure 5 speed sensor) | ||
− | ==== | + | ====Ultrasonic Sensor==== |
+ | Ultrasonic sensors emit short, high-frequency sound pulses at regular intervals. If they strike an object, then they are reflected as echo signals to the sensor. | ||
(Figure 6 ultrasonic sensor) | (Figure 6 ultrasonic sensor) | ||
===Algorithm=== | ===Algorithm=== | ||
+ | In Figure 7, we can see the algorithm that deals with the car position, the lane change and the lane selection system. The three blocks are the most important part of the algorithm. | ||
+ | |||
+ | For detecting the position of the car, a potentiometer is used. In the input, the value from the potentiometer is transformed to meters. In this state flow the car position is detected by the logic. The output is a value 1, 2 or 3. The algorithm uses the value to determine which part of the next state flows is used. | ||
+ | |||
+ | (Figure 9) | ||
+ | |||
+ | In Figure 9, the lane selection system is shown. With the values from the car position detection one of the three state flows is selected. The multiport switch gives a lane (1,2,3) that is desired to go to. If all the lanes are blocked, the StopBelt output will be 1(Boolean). | ||
+ | |||
+ | (Figure 10) | ||
+ | |||
+ | This is the state flow when the current lane is lane 1, as shown in Figure 10. The three lanes have a logic connected in a triangle. This means if the car is in lane 1, it’s possible to go to either lane 2 or lane 3. For the other state flows, please look at the software. | ||
+ | |||
+ | (Figure 11) | ||
+ | |||
+ | The logic for the rotation direction of the stepper engine is shown in Figure 11. The value of the desired lane and the current lane are compared by a plus minus block. The block takes the value of the current value minus the value of the desired lane. With the other blocks the on/off for the stepper engine is 1 or 0. The direction is 0 or 1. | ||
+ | (Figure 12) | ||
+ | |||
+ | ===Output=== | ||
+ | |||
+ | ====LED==== | ||
+ | This output is for the test led on the Olimexino.<br> | ||
+ | By changing the frequency, it is possible to see if<br> | ||
+ | the new software is flashed correctly. <br> | ||
+ | ====Direction roll==== | ||
+ | This is a digital output for the driver board. <br> | ||
+ | When changing this output from low to high and<br> | ||
+ | high to low the direction of turning from the <br> | ||
+ | electric motor will change. With this demo the <br> | ||
+ | direction won’t change, so this output is constant.<br> | ||
+ | ====Speed step==== | ||
+ | This digital output controls the speed of the <br> | ||
+ | stepper motor. | ||
+ | ====Resolution 1 & resolution 2==== | ||
+ | These two outputs are used to determine the resolution of the<br> | ||
+ | stepper motor. In total there are 4 combinations (2 ports, high and low).<br> | ||
+ | The resolutions changes from a full step to a half, a quarter and an eight step. <br> | ||
+ | ====Belt Speed desired==== | ||
+ | This output is used to control the speed of the conveyor belt.<br> | ||
+ | By HANtune it is possible to control the speed. <br> | ||
+ | Since the motor driver needs a PWM signal, <br> | ||
+ | this is converted in the subsystem.<br> | ||
+ | ====On/Off step==== | ||
+ | This digital output is used to control the stepper motor. <br> | ||
+ | ====Direction Step==== | ||
+ | This digital output is controls the direction of the stepper engine. <br> | ||
+ | The direction will change is when the output is changed from low to high and high to low. <br> | ||
+ | ====Trigger frequency==== | ||
+ | The trigger frequency is used to control the ultrasonic sensors.<br> | ||
+ | By triggering the sensors, they will measure the distance to an object. |
Revision as of 08:33, 19 June 2017
General overview
A car runs on a conveyor belt and can run on three different lanes.
When an obstacle is detected in the path of the car,
the car will switch a lane to avoid a collision.
It is possible to block all three lanes, but then the car will stop.
This demo is built up from different subsystems.
The mechanical, the electrical and the software.
All these systems are also divided into the sub-components.
Mechanical:
The construction of the total demo assembly is divided in 3 separate sub-assembly’s:
the housing components, the lane change mechanism and the conveyer belt.
Electrical:
The electrical components are connected by soldering and screw terminals.
The power supply from the wall socket goes directly into the transformer
that generates the correct power supply for the components such as the H-bridge
that controls the conveyer belt motor, the microcontroller,
stepper-motor and the ultrasonic sensors.
Software:
The software is also divided into 3 separate systems: the input, algorithm and output.
The input gives the values that the algorithm need to create the output.
The algorithm decides what happens with the belt. When there is an obstacle the car will switch lanes,
if all 3 lanes are blocked the belt will stop.
Introduction
The HAN-AR have two model based development tools, HANcoder and HANtune, that they would like to promote. In order to do this a new demonstration model was required.
This is what the project team Highway Surfer has created.
The model will showcase the abilities of the tools and will act as an eye catcher at tech fairs and conferences that the HAN-AR attends.
With the help of this document people who are interested in recreating this project or start their own projects will be able to see what the steps involved are,
the materials required and the capabilities of the tools, HANcoder and HANtune.
This project was started with the help a template. This template can be downloaded from the following link:
On this wikipage, you can find the building process for the mechanical parts, the wiring and other processes for the electronics, and the logic for building the software algorithm.
To make it easy for the consumer, we have an easy to understand order list with relevant links.
Materials Required
In the Appendix, a detailed order list has been attached. However, a simple list is added in each subchapter to tender to specific parts.
Hardware parts
Local hardware store:
- 5.5 [mm] multiplex
- Aluminum L-profile 20X20 [mm]
- Bolts, nuts
- PVC tube (80mm diameter x 1m length)
- Grip material for the PVC tubes
- Conveyor belt
- Axes
- End pieces’ roll (wood)
Online webshop:
- Bearings
- Gears/pullies and belts, for the drivetrain and lane change mechanism:
Electrical
Online webshop:
- Olimexino STM-32 board
- Stepper motor-driver
- Ardumoto - Motor Driver Shield
- Transformer
- Transistor 7805
- Female power connector for Olimexino
- 6x Screw terminal block 1.50 [mm²]
- Mini fuse 2 [A]
- Mini fuse 5 [A]
- Resistor 10 [KO]
- Resistor 1 [KO]
- Capacitor 0.33 [µF]
- Capacitor 4,7 [µF]
- Capacitor 22 [µF]
- Zener diode 18 [V]
- Wall socket (220 ~ 230 [V])
Sensors
Actuators
Software
- MatLab-Simulink
- HANcoder
- HANtune
HANcoder and HANtune are available at OpenMBD. (On the website is a download manual for all the software.)
Mechanical
For the mechanical design the dimensions can be found in the CAD 2D drawings, which can be downloaded from the website [link here]. When all the parts are cut, they can be assembled. In the exploded views in this document the exact order of assembly is explained.
Conveyor belt base
Housing
To build the housing of the conveyor belt you need following items:
- 3x multiplex plates of 1220x610mm with a thickness of 5,5 [mm].
- Blueprints of the individual panels for the dimensions.
- Saw or something to cut the wood.
- Bolts(m5)
- L-profile(3000x20x20 [mm])
- Measuring tape
- Wood drill
Cutting
To get the right dimensions for this DEMO a LaserPro X500 was used which can be seen in figure 1.
The Solid Works drawings of all the wooden parts are send to a device that runs 'Corel Draw X8' which can be seen in figure 2.
The process can be seen in Figure 3. We chose this option to get a cleaner finish. Of course, there are other ways to get the panels to the right dimensions.
L-profile’s and drilling
The following L-profiles need to be cut- 2x540mm 5 holes per plane
- 4x100mm 2 holes per plane
- 2x460mm 3 holes per plane
- 10x50mm 2 holes per plane
Some holes need to be drilled in the L-profiles to match the bolts, for this DEMO 5mm. Be aware that the holes in the two planes are not on top of each other, see figure 4.
Assembling
Place the plates with the L-profile against each other and mark the holes.
Do not forget witch L-profile you use, every profile is slightly different even with the best measurements.
Continue by drilling the marked holes in the wood and assemble the parts with bolts and nuts. Start from the bottom and work all the way up.