HANcoder/Training Material/Highwaysurfer

From OpenMBD
Jump to: navigation, search
Click to enlarge image

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.

Click to enlarge image

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.

Click to enlarge image

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.








Rendering assem.jpg

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

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:


Sensors

Actuators

Software

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 the wooden this DEMO a LaserPro X500 was used.
The Solid Works drawings of all the wooden parts are send to a device that runs 'Corel Draw X8'.
The process can be seen in the pictures below. We chose this option to get a cleaner finish. Of course, there are other ways to get the panels to the right dimensions.

Click to enlarge image Click to enlarge image Click to enlarge image





L-profile’s and drilling

The following L-profiles need to be cut
Click to enlarge image
  • 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.

Assembling

Click to enlarge image

Place the plates with the L-profile against each other and mark the holes.
Do not forget which 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.



Rollers

Tensioning side Powered side
Click to enlarge image Click to enlarge image

To build the rollers the following parts are needed:

  • PVC pipe Ø 80 [mm]
  • Threaded rod M10 for axles ~ 600 [mm]
  • Wood ~ 40 mm thick enough for 4 blocks
  • Bearings 2x: inner-Ø 10mm, outer-Ø 22mm
  • Tooth wheel (powered side), ABS-ring (tension side).
  • Some strips of rubbery material (EPDM) the get the friction needed for the belt.


Assembling

Bearing block Complete roller
Click to enlarge image Click to enlarge image
Drill Bearing block Machining
Click to enlarge image Click to enlarge image Click to enlarge image


Cut 2 pieces of PVC to a length of 450mm. Drill the 4 roller blocks and put them into the lathe to machine them to their final form as seen on the drawings. When that is finished place the bearings in the blocks and glue the blocks into the PVC pipe.
For the powered side the tooth wheel is pressed in and for the tension side the ABS-ring is pressed around it.
For friction between the belt and PVC pipe a couple of strips of rubbery material (EPDM) are glued around it.



Conveyor belt

Click to enlarge image

Items needed:

  • 1500*450 [mm] strong and bendable fiber (this demo: 80%PVC and 20% polyester)
  • Thread and a needle or a sewing mill

Test fit the conveyor belt around the rollers which are placed at a minimum width. Mark some spots on the overlapped part which you can see circled in picture.
Remove the conveyor belt and align it back on the spots so you can stitch it together with a needle or a sewing mill.

Bridge Assembly

Housing

The housing assembly for the bridge has the same procedure as the conveyor belt box. On the front panel of the bridge, the ultrasonic sensors are mounted. Extra parts needed are:

  • 500x50 sheet metal bracket for the 3 ultrasonic sensors
  • 2x piano-hinge (for easy excess to the lane change mechanism)
  • Toggle switch
Ultrasonic sensor setup

A piece of sheet metal (500x50 [mm]) is needed to create the bracket for the ultrasonic sensors. This bracket will be clammed on between the bottom panel and the 20x20 [mm] profile.
The ultrasonic sensors are screwed on the bracket and the wiring goes thru the slot that is created by the piano hinges up top.

Bracket Bracket with sensors
Click to enlarge image Click to enlarge image






Lane change mechanism

Within the bridge the lane change mechanism located. To create this, you need the following items:

  • Wooden bracket to hold everything together
  • 20x20 aluminum profile
  • M5 screws and nuts
  • Step motor
  • Toothed belt 5m (10 mm wide)
  • 2x Tooth wheel with spline
  • 2x custom bushings
  • Potentiometer
  • 2x Threaded bushing
  • Link from bike chain.
  • 4x m4 screws and nuts
  • Wire rod
  • Model car

Assembling

Bracket Bracket with sensors
Click to enlarge image Click to enlarge image

Use the same aluminum profiles as the conveyor belt box to attach all the panels to each other.
On top of the front panel the piano hinges are mounted to create the cover.

To mount the lane change mechanism a bracket is needed. The dimensions of the bracket are located on the drawings.
The bracket is laser cut. The slots are used to tension the belt.
On the other side, there is a hole for the potentiometer. For the lane change mechanism, the 2 tooth wheels are fitted, one on the potentiometer that reads the position of the car and the other one on the stepper motor that creates the linear movement.
The custom bushings are needed to get the tooth wheels fitted on the stepper motor and potentiometer.
On the bottom of the bridge a switch is mounted to turn on the demo.

Bracket Potentiometer
Click to enlarge image Click to enlarge image

The custom bushings are needed to get the tooth wheels fitted on the stepper motor and potentiometer.
On the bottom of the bridge a switch is mounted to turn on the demo.

The clamp that is used to hold the car is made from sheet metal and a threaded bushing.
The pieces of sheet metal are cut and clammed together with the chain links around the belt with the m4 screws and nuts.

Drill a hole in the roof of the model car and place the threaded bushing. Then a piece of wire rod is used to connect the car to the clamp on the belt.


Exploded view lane change mechanism Bushing Clamps Belt clamp Car
Click to enlarge image Click to enlarge image Click to enlarge image Click to enlarge image Click to enlarge







Electronical

In this chapter, the electronical building process is explained. In the first subchapter connecting all the sensors and actuators to the Olimexino micro controller.
The second subchapter contains the installation of the electronics in the demo.

The electronic circuit

This is the final version of our electric scheme. Each individual component will be ran down separately validating the choices and verifying the values of resistances and capacitors.
Each of the components is are linked in series with the power output of the transformer or 7805.

Power supply

Most of the components work on 12V. To get the 12V a 60 Hz transformer is used. Reasons for this were the low costs compared to a battery.
To power the ultrasonic sensor and the DNF10 sensor we used a 7805 voltage regulator because it’s the cheapest option available.

The switch

Click to enlarge image

An on/off button is integrated on the ground side of our circuit. The electric scheme shows a button plus coil parallel and a relay powered by the coil in series. A regular button with relay can’t handle the electricity so it had to be powered by a coil. Most switches have this built in so the component only needs to be put in series.



The stepper motor

Click to enlarge image

The PM engine will be controlled by a motor driver, in our case the “Easy driver stepper motor driver”. The reason an H-bridge is used, is because the PM needs to be controlled in two directions. An H-bridge can change the direction by switching the poles. Another advantage of an H-bridge is that the protection for peek tensions is already built in. The H-bridge is connected twice with the microcontroller. Once for the direction, and once for the duration and speed.


The conveyor belt motor

Click to enlarge image

The PM motor is being controlled by a H-bridge, the “Sparkfun Ardumoto - Motor Driver Shield”.
A H-bridge was used to protect the motor against peak tensions and make linking it more convenient. The H-bridge is connected twice with the microcontroller.
Once for the direction, and once for the duration and speed.


Ultrasonic sensors (SR04)

Click to enlarge image

The ultrasonic sensors are connected to the micro controller twice, once for the micro controller to trigger the sensors and for the sensor output.
To protect the circuit from voltage peaks from electromagnetic waves caused by the transformer filtering techniques are used.
The filters contain one capacitor and resistance. For each resistance 10kΩ is common. In the circuit R4=R5=R6=10kΩ.
Also, C3=C4=C5. To determine the C values, the filter frequency need to be calculated first.
To get the filter frequency (Fc) from the ultrasonic sensor to following recommended measurement cycle(t) of 60 [ms] is used.
These values are found in the specifications of the ultrasonic sensors.


F = frequency
F = 1 / t
F = 1 / 0,06
F = 16,667 [Hz]

x = Filterfactor = 50

Fc = F * x
Fc = 16,667 * 50
Fc = 833 [Hz]

Fc = 1 / (2π * R * C)
C = 1 / (2π * R * Fc)
C = 1 / (2π * 10000 * 833) = 19,1 [nF]

VR sensor and DNF10 chip

Click to enlarge image

The configuration of the chip has been given, and the values of R8, R9 and C7 are in the specifications.
The configuration converts a sinus wave into a block wave. It only has one output towards the micro controller. The VR sensor also has a capacitor and resistance to filter.
To measure the frequentation coming from the VR sensor we need to know the amount of tooth on the gear it measures and its RPM.
The RPM is identical to the RPM max of the model craft electronic motor.


Nmaxmotor = 53 RPM at 12V To simulate the increases of voltage a maximum RPM of 70 at > 12V is used.

N = 70 [min-1] = 70/60 = 1,16667 [sec-1]
Z = 44
F = N * Z = 1,166667 * 44 = 51,333 [Hz]
Fmax = F * A= 51,333 * 1,5 = 76,9999 [Hz]
Fc filter = Fmax * x = 76,9999 * 50 = 2,85 [KHz]

Fuses

A 2 [A] fuse and a 5 [A] fuse is needed in the system for the peak current.
The 2 [A] fuse that is located under the micro controller will burn when there is more than 2 Amperes
in the system because of the risk that the micro controller can’t handle the current.
The 5 [A] is needed for the rest of the system that the components won’t burn through.

Potentiometer

Click to enlarge image

The potentiometer is connected to the microcontroller and is powered by the 5V chip. It is also filtered.
Like all the other filters the resistance is 10 kΩ. To get the filter frequency Fc from the potentiometer a frequency of 30 Hz is used.
The actual frequency will never be close to 30 Hz because the system will need to swap lane 60 times each second.

Fc = F * x = 76,9999 * 50 = 1500 [Hz]
Fc = 1 / 2π * R * C
C = 1 / 2π * R * Fc = 1 / (2π * 10000 * 1500) = 10,6 [nF]


Installation

Click to enlarge image

Different electric schemes for each of the components are being used in this chapter. The main scheme can be found above.
For clarification, some pictures are mirrored to make them correspond with the pictures from the back side.
If a part is marked with red it’s not involved in the electric scheme.





The ground and source

Connection diagram Ground and source
Click to enlarge image Click to enlarge image

Every electric circuit starts with a ground and a source. So, it would only be logical to start connecting this circuit first.
To connect all the ground and source wires we are using a star point.
A start point is used to prevent ground loops in the system.
Only a few ground wires from the filters are being connected before the ground star.
This is because the electricity through these wires is so small that the chances of ground loops here are slim.

The ground star has been made using a screw and bold that compresses multiple wires with spacers in between.
This way all the wires make contact if the screw is tightened enough.

As seen in the electric scheme in between the transformer and the ground stars there are a few extra components.
The fuse, the Zener diodes and the switch.
Before we go in depth with each of the components there is a simple version of how everything is connected according to the main electric scheme.


The transformer

Click to enlarge image

To connect the transformer there are 5 wires that need to be connected. The first three wires are from the powerplug.
Connect them according to the symbols on the transformer or according to the picture on the right.




The Zener-diode

Click to enlarge image

Following the source wire from the transformer, the next component is the Zener diode. This diode is there to protect the system from voltage peaks.
It’s switched parallel directly with the transformer. Because a PCB is being used, all the connections are made with screw blocks.
Because there was no Zener diode of 18 V available 3 Zener diodes of 6.5V are linked in series.
The resistances of 32Ω are parallel connected because of the power which needs to be eliminated. SI (source input) and GI (ground input) are directly from the transformer,
while SO (source output) and GO (ground output) are connected to the rest of the circuit.

The fuse

The fuse is just a fuse switched in series. For our design, it’s connected to the ground.
It’s placed on a PCB. Since it’s a two-way fuse it doesn’t matter which way it is connected.

The switch

Click to enlarge image

The switch in the electric scheme is shown as a parallel on/off button with a coil and a relay in series.
The on/off button and its electric coil are built into the component what is being used.
That means the component can be switched in series like the relay.
Just like the fuse it doesn’t matter which way it is connected. Make sure to note when the switch is on or off.

The PCB

PCB’s (Printed Circuit Board) are used as screw blocks to connect the wires. Screw blocks are to connect or disconnect.
Besides that, they are very cheap and easy to apply. To connect these blocks iron wire is used and soldered with tin.
The screw blocks are white blocks in the electric system.

The high frequency filters

Click to enlarge image

All the long wires in our system function as antenna’s that are exposed to the EMI (Electromagnetic interferance)from the transformer.
To filter these frequencies a combination of resistances and capacitors is used. Using a PCB for these resistors and capacitors is convenient.
The values can be found in the main electric scheme. [IO] are the inputs from the ultrasonic sensors,
[OU] is the output of the filters from the ultrasonic sensor,
[-] is ground and [OC] with [IC] are the respective input and output from the chip that is connected to the micro-controller.


The low voltage circuit

Click to enlarge image

The second PCB is mostly used to supply the components that run under 4 V instead of 12 V. These are the ultrasonic sensors and the DNF10 chip.
The DNF chip is connected due the max 9240 specifications. The [-] screw block is connected to the ground while the [12V PS] is connected to the power source.
The combination of the 7805 and the capacitors will create a 5 V power source on the third pin. The capacitors are connected due the specification of the manufacturer.
The [OC] screw block is the output of the chip and is connected to the micro-controller.
The [USPS] is the ultrasonic sensor power source and is connected to the ultrasonic sensors’ VCC.
And at last the [IVR] is the input of the VR sensor. Be aware that the + side of this output needs to be connected to the proper side of the chip.

The micro-controller

Click to enlarge image

The microcontroller is directly connected with the ground and source stars with an extra fuse in series for protection.




Software

Click to enlarge image

The software is split up into 3 main parts. The input, the algorithm and the output.
Each of these can be edited in the HANcoder software by double clicking the blocks.
In the input block the inputs of the sensors are defined.
In combination with the Simulink blocks it is possible to translate the sensor output to an input for the algorithm.
The algorithm is the main logic of the code. The output would then provide the actuator with information on what needs to be done.




Input

The input gets data from the sensors. For this system, 3 types of sensors are needed to translate the output.
3 ultrasonic sensors, 1 potentiometer and 1 rotation speed sensor. The picture below shows how this is done using HANcoder.

Position Sensor

Click to enlarge image

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.


Speed Sensor

Click to enlarge image

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.




Ultrasonic Sensor

Click to enlarge image

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.






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 7 Figure 8
Click to enlarge image
Click to enlarge image


Figure 9
Click to enlarge image

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
Click to enlarge image

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.








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)

Figure 11 Figure 12
Click to enlarge image
Click to enlarge image



Output

LED

Click to enlarge image

This output is for the test led on the Olimexino.
By changing the frequency, it is possible to see if
the new software is flashed correctly.

Direction roll

This is a digital output for the driver board.
When changing this output from low to high and
high to low the direction of turning from the
electric motor will change. With this demo the
direction won’t change, so this output is constant.

Speed step

This digital output controls the speed of the
stepper motor.

Resolution 1 & resolution 2

These two outputs are used to determine the resolution of the
stepper motor. In total there are 4 combinations (2 ports, high and low).
The resolutions changes from a full step to a half, a quarter and an eight step.

Belt Speed desired

This output is used to control the speed of the conveyor belt.
By HANtune it is possible to control the speed.
Since the motor driver needs a PWM signal,
this is converted in the subsystem.

On/Off step

This digital output is used to control the stepper motor.

Direction Step

This digital output is controls the direction of the stepper engine.
The direction will change is when the output is changed from low to high and high to low.

Trigger frequency

The trigger frequency is used to control the ultrasonic sensors.

By triggering the sensors, they will measure the distance to an object.