Programmable Systems Electronic devices have been developed to make life more enjoyable, easier, safer or more productive. Some examples: Microwave oven. Traffic lights. Computers. Games consoles. Electronic Control Systems There are 2 types of Electronic device, 1) Purely electronic devices such as Digital Watches 2) Mechatronic devices such as a Computer Hard Drive Question: Why do you think a Computer Hard Drive comes under Mechatronic devices? Pupil Assignment 1. List three electronic devices. 2. List three mechatronic devices. 3. Explain the ‘mechanism’ in each of the three mechatronic devices listed. Some possible answers: 1) Mobile Phone, Television remote control, Calculator 2) Computer DVD-ROM drive, Smart Phone, Remote door lock in a car Mechatronic Device A typical mechatronic system picks up signals from the environment, processes them to generate output signals, transforming them for example into forces, motions and actions. System Diagram Both Electronic and Mechatronic devices have one thing in common, they both have a control unit. The system diagram for a warning device for a freezer in a restaurant would be drawn as below. INPUT HEAT INPUT TRANSDUCER TEMPERATURE SENSOR PROCESS 0 0C OUTPUT TRANSDUCER OUTPUT SOUND DRIVER BUZZER Transducers Input transducers are electronic devices that detect changes in the ‘real world’ and send signals into the process block of the electronic system. Output transducers are electronic devices that can be switched on and off by the process block of the electronic system. A popular electronic toy is shown. Try to identify as many input and output transducers as you can. Pupil Assignment List the Input and Output transducers for the following products Pop Fizzy Kolah Juice Ginger Yuk Personal Music Player Vending Machine Washing machine Hairdryer Microcontrollers A microcontroller is often described as ‘a computer on a chip’ It has a memory and the ability to receive inputs and control outputs It is a small & inexpensive device Often built into products to make them more intelligent and easier to use Usually programmed for a specific purpose/ product Advantages of Microcontrollers A microcontroller can often replace several parts or even a complete circuit. The main advantages to using one are: Increased reliability (less parts to fail) Simplified product assembly (less parts required) Greater product flexibility (can be re-programmed) Pupil Assignment List three devices that may contain a microcontroller. Explain why you think it would be useful to have a microcontroller in these devices. Stamp Controller Programming Procedure: Draw a flowchart for the control task. Write the program on the computer using the Stamp software. Connect the download cable from the computer to the stamp controller. Connect the power supply to the stamp controller. Use the Stamp software to download the program. Getting Started - Programming Start up the Stamp software and key in the program. Save the program and then download it to the stamp controller by clicking ‘Run’. Your teacher will give you help with the software, if you need it. In your own words explain what the program does. main: high 7 pause 1000 low 7 pause 1000 end Pupil Assignment red red and amber 10 s 2s green 10 s amber 2s Using the times shown in the table for each stage of a Traffic Light sequence, write a P-Basic Program for the lights then run and test your program. Flow Charts START Start / Stop Symbol SWITCH PIN 7 HIGH WAIT2 SECONDS Input / Output Symbol Wait Symbol SWITCH PIN 6 HIGH WAIT1 SECOND SWITCH PIN 4 & 5 HIGH WAIT3 SECONDS There are other symbols you will need to learn, but we will discuss those when we need to use them. SWITCH ALL OFF STOP Pupil Assignment A microwave oven operates with the following sequence. Draw a flowchart and write a P-Basic program for this sequence. Light on Turntable on Magnetron on Wait 30 seconds Magnetron off Wait 10 seconds Turntable off Buzzer on Wait 0.5 second Buzzer off Light off You can decide for yourself which pins to allocate to the output transducers Adding Comments Comments are always added to program listings to help explain the program operation. An example is shown below. Main: high 7 ‘switch pin 7 high pause 1000 ‘wait 1 second low 7 ‘switch pin 7 off pause 1000 ‘wait 1 second goto main ‘jump to label main Note the apostrophe which tells the program that what follows is a comment, not a line of code. Program Layout & White Space Lets have a look at the layout of the previous code. Note how the code is indented, (tabbed in). This is known as leaving “WHITE SPACE”. White space makes the layout and reading of programs much clearer. The start of the program is indicated by the “LABEL” main, note the colon after the label. Labels can have any name as long as it is not a P- Basic command. Copy down the program below and label each part as shown. White Space Main: Label Code high 7 ‘switch pin 7 high pause 1000 ‘wait 1 second low 7 ‘switch pin 7 off pause 1000 ‘wait 1 second goto main ‘jump to label main Comments Symbols Sometimes it can be hard to remember which pins are connected to which devices. The ‘symbol’ command can then be used at the start of a program to rename the inputs and outputs. symbol red = 7 symbol green = 5 ' rename 7 ‘red’ ' rename 5 ‘green’ main: ' ' ' ' ' ' ' ' high red low green pause 1000 low red high green pause 1000 goto main make a label called ‘main’ red LED on green LED off wait 1 second red LED off green LED on wait 1 second jump back to the start Key in the program, then run and test. LOOPS START Sometimes it is necessary to create programs that loop ‘forever’, as is the case in this flowchart. There is no ‘Stop’ symbol because the program never ends! What command makes the program loop? SWITCH PIN 7 HIGH WAIT2 SECONDS SWITCH PIN 6 HIGH WAIT1 SECOND SWITCH PINS 4& 5 HIGH WAIT3 SECONDS SWITCH ALL OFF WAIT1 SECOND main: high 7 pause 2000 high 6 pause 1000 high 4 high 5 pause 3000 low 4 low 5 low 6 low 7 pause 1000 goto main Pupil Assignment red 1. Draw a flow chart for the control of the traffic lights 2. Write a P-Basic program using the symbol command to give names to pins 3. The program should loop 4. Run and test your program red and amber 10 s 2s green 10 s amber 2s Pupil Assignment A fountain in a garden centre is to be used to attract visitors to a new range of plastic ponds. The garden centre owner wishes to develop a microcontrollerbased system that can be programmed to switch the fountain pump and an external lighting system on and off at regular intervals. Draw a flowchart for the control sequence and add the missing comments to the program listing. main: high 7 pause 10000 high 6 pause 40000 low 6 pause 10000 low 7 pause 60000 goto main ' switch the pump on ' wait 10 seconds ' switch the lights on '… '… '… '… '… '… Pupil Assignment A toy shop has a train set in the window. The train set has an electric train, a set of red/green signals and a set of moving track points that allow the train to move around two different loops of track. Draw a flow chart and write a P-Basic program to control the train set. 1. 2. 3. 4. Switch the green signal on Switch the train on for 30 seconds Stop the train Switch the green signal off and the red signal on 5. Switch the points on 6. Switch the train on for 30 seconds 7. Stop the train 8. Switch the points off 9. Switch the red signal off 10. Jump back to step 1 Input connection Pin Output connection 7 train motor 6 points 5 green signal 4 red signal 3 2 1 0 Output Module Allows output transducers to be connected to the stamp controller Typical output transducers are Motors, Buzzers and Bulbs To use the output module, the output device should be connected between the screw-terminal numbered output (4–7) and a V+ connection. Pupil Activity Connect 2 dc motors to the output module, enter the following code then run and test your program. YOUR TEACHER WILL EXPLAIN THE MODULE CONNECTIONS main: high 5 high 7 pause 1000 low 5 low 7 pause 1000 high 4 high 6 pause 1000 low 4 low 6 goto main ' ' ' ' ' ' ' ' ' ' ' ' ' make a label called ‘main’ motor A forward motor B forward STAMP CONTROLLER wait 1 second motor A halt motor B halt wait 1 second motor A backward motor B backward wait 1 second motor A halt motor B halt jump back to the start OUTPUT DRIVER MODULE Speed Control There are two ways to control the speed of a d.c. motor. Vary the voltage applied to the motor. Unfortunately the ‘turning power’ (torque) of the motor will also drop, which means the whole motor system will be less powerful. The second way to control the motor is to always apply the full voltage but then to switch the power supply on and off rapidly. The advantage of this system is that the torque remains quite high. This method is known as PULSE WIDTH MODULATION Pulse Width Modulation V MARK SPACE t Motor off is known as SPACE – Larger Space to Mark Ratio = slow speed Motor on is known as MARK – Larger Mark to Space Ratio = fast speed Pupil Activity Connect a d.c. solar motor across the ‘V+’ and ‘7’ terminals on the output driver module. Key in, download and run the program listed below. This program drives the motor at approximately half speed, as the space (off time) is twice the length of the mark (on time). main: high 7 pause 5 low 7 pause 10 goto main ' ' ' ' ' output high pause for 5 ms output low pause for 10 ms loop Try out different speeds (by experiment) by altering the length of the pause delays. Pupil Assignment 1) Explain the terms ‘mark’ and ‘space’ in relation to PWM speed control of a d.c. motor. 2) Describe the advantages and disadvantages of using PWM speed control. 3) Sketch 2 PWM graphs, one for a fast speed and one for a slow speed. Pupil Assignment The motor on the washing machine is controlled by outputs 6 and 7 (motor B). Switching output 6 on will make the motor turn one way; switching output 7 on will make the motor turn the other way. Draw a flowchart and write a PBASIC program that will make the motor rotate at full speed in each direction for five seconds. Write a second PBASIC program that will make the motor rotate at half speed in each direction for five seconds. Use PWM speed control for the motor. For Next Loops It is often useful to repeat the same part of a program a number of times, for instance when flashing an LED. In these cases a ‘for … next’ loop can be used. START SET COUNTER = 5 SWITCH PIN 7 HIGH Note the new flowchart symbol. This is the decision symbol WAIT 1 s SWITCH PIN 7 LOW NO WAIT 1 s ? HAVE WE LOOPED 5 TIMES? YES STOP For Next Loops – Pupil Activity Key in, download and run the following program. symbol counter = b0 symbol red = 7 main: ' define the variable ‘counter’ ' define pin 7 with the name ‘red’ for counter = 1 to 5 high red pause 1000 low red pause 1000 next counter end ' ' ' ' ' ' ' start a for … next loop switch pin 7 high wait for 1 second switch pin 7 low wait for 1 second end of for … next loop end program Pupil Assignment Connect the buggy to the output module. The buggy should follow the path shown in the diagram, moving in each direction for three seconds. Draw a flowchart for the movement of the buggy, making use of a ‘for … next’ command structure. 3 3 3 3 Write a high-level program in PBASIC to control the movement of the buggy as shown by your flowchart. Sub - Procedures A sub-procedure is a separate ‘mini-program’ that can be called from the main program. Once the sub-procedure has been carried out, the main program continues. Sub-procedures are often used to separate the program into small sections to make it easier to understand. Sub-procedures that complete common tasks can also be copied from program to program to save time. Pupil Activity symbol red = 7 symbol buzzer = 6 symbol counter = b0 ' rename pin 7 ‘red’ ' rename pin 6 ‘buzzer’ ' define a counter using variable b0 main: ' ' ' ' flash: noise: for counter = 1 to 25 high red pause 50 low red pause 50 next counter return ' ' ' ' ' ' ' ' make a label called ‘main’ call the sub-procedure flash call the sub-procedure noise loop back ' end of the main program make a sub-procedure called ‘flash’ start a for … next loop red LED on wait 0.05 second red LED off wait 0.05 second next loop return from the sub-procedure high buzzer pause 2000 low buzzer return ' ' ' ' buzzer on wait 2 seconds buzzer off return from the sub-procedure gosub flash gosub noise goto main end Flowchart Symbol Sub-Procedure symbol Your teacher will show you the correct way to draw a flowchart which includes a sub-procedure Pupil Assignment A washing machine motor should rotate 15 seconds in one direction before reversing and rotating 15 seconds in the opposite direction. This should repeat 10 times. Draw a flowchart Write a P-Basic program making use of sub-procedures Run and test your program Input Module Allows sensors to be connected to the stamp controller There are 4 digital and 2 analogue inputs Pins 0 and 1 have a test button, they can be pressed instead of adding switches Digital Signals and Input Transducers Digital Sensors act like switches They are either VOLTAGE ON or OFF HIGH or LOW 1 or 0 5V 0V TIME Some common switches you will meet are the , Microswitch Push and Rocker switch Reed switch Analogue Signals Volts (V) Time (s) Analogue signals can vary between a maximum and minimum value and depend on the conditions being monitored, for example light or temperature. Common analogue input transducers are the Light Dependent Resistor, thermistor, (temperature sensor) and variable resistor. More Symbols Microswitch (Single pole, single throw). Light Dependent Resistor, LDR Push Switch -t Push to make Thermistor Reed Switch Magnet Variable Resistor if-then Command To enable the Stamp Controller to accept inputs, we need to learn a new command, the IF – THEN command Connect a switch to pin 0, key in, download and run the program listed below. This program makes output pin 7 flash every time the push-switch on input pin 0 is pushed. main: flash: if pin0 =1 then flash goto main ' make a label called ‘main’ ' jump if the input is on ' else loop back around high 7 pause 2000 low 7 goto main ' ' ' ' ' make a label called ‘flash’ switch output 7 on wait 2 seconds switch output 7 off jump back to start Pupil Assignment A burglar alarm must sound a buzzer and light a warning signal for 20 seconds when any of the 2 windows in a room are opened. Each window contains a reed switch that is connected to the alarm. Draw a flowchart and write a PBASIC program that will operate the burglar alarm correctly. Use the following input and output connections. Input connection Pin Output connection 7 red light 6 buzzer 5 4 3 2 switch 1 1 switch 0 0 Pupil Assignment As part of a Christmas decoration in a shop, a lighting sequence is to be controlled by a microcontroller. The output connections are shown below. Input connection Pin Output connection 7 red light 6 yellow light 5 green light 4 3 When a visitor treads on a pressure mat under the carpet, the lights should flash on and off in sequence three times. 2 1 pressure mat 0 Pupil Assignment A washing machine operates as follows. Wait until the start switch is on. Wait until the door switch is on. Switch on the LED. Switch on the solenoid bolt. Wash cycle: repeated 20 times – motor forwards for five seconds, motor backwards for five seconds. Spin cycle: repeated 10 times – motor forwards for two seconds, motor backwards for two seconds. Switch off the solenoid bolt. Switch off the LED. Draw a flowchart and write a PBASIC program to control the movement of the washing machine as described above. Input connection Pin 7 6 Output connection motor reverse motor forward 5 solenoid bolt 4 LED 3 2 door Microswitch 1 start switch 0 Pupil Assignment Develop a PBASIC program that will carry out the instructions shown in the flowchart. Use the following pin configuration. START GREEN LED ON SWITCH PUSHED? Input connection Pin Output connection Y GREEN LED OFF AMBER LED ON 7 red light 6 amber light WAIT 3 s 5 green light GREEN LED OFF Red On/ Amber RED LED ON Green Off 4 WAIT 4 s 3 AMBER LED ON 2 1 start switch 0 WAIT 2 s RED/AMBER LED OFF GREEN LED ON N Pupil Assignment State whether each of the input transducers below is an analogue or digital sensor. (a) LDR (b) reed switch (c) microswitch (d) thermistor (e) variable resistor (f) tilt switch (g) push switch (h) rocker switch For each of the input transducers give an example of an electronic product that may use that transducer. Explain how the transducer would be used within the product. Number Systems The Stamp Microcontroller can accept decimal numbers as well as binary numbers. However, we need to tell the microcontroller what we are using. Decimal values are written as usual: 10 (= 10 in decimal) Binary values are indicated by a % symbol: %10 (= 2 in decimal) Your teacher will now show you how to convert decimal to binary and binary to decimal. Pupil Assignment Convert each of the following binary numbers into decimal. 1) %11110000 2) %11000011 3) %01010101 4) %10101010 Convert each of these decimal numbers into binary. 1) 17 2) 23 3) 11 4) 38 5) 33 The “let dirs” command Up till now, if we wanted to switch on more than one output, we needed to switch them on one by one. However, by using binary, we can now switch on more than one pin at a time. To enable us to achieve this, we must first tell the microcontroller what pins are outputs and which are inputs. To do this we use the Let dirs = %00001111 dirs command. ‘let pins 0 to 3 be outputs the rest inputs The “let pins” command Once we have instructed the microcontroller what is outputs and what is inputs, we use the let pins command. Let dirs =%11111111 ‘all pins outputs Main: let pins = %00001111 ‘switch on pins 0 to 3 pause 1500 ‘1.5 second delay let pins = 0 ‘switch all pins off pause 1500 ‘1.5 second delay let pins = %11110000 ‘switch on pins 4 to 7 pause 1500 ‘1.5 second delay let pins = 0 ‘switch off all pins end ‘end program