Advances in Research 7(2): 1-10, 2016, Article no.AIR.25270 ISSN: 2348-0394, NLM ID: 101666096
SCIENCEDOMAIN international www.sciencedomain.org
Model Based Design (MBD) Approach to Embedding Algorithm with Arduino Uno B. K. Aliyu1*, Lt Cdr C. U. Nwojiji2 and A. O. Opasina1 1
2
Centre for Space Transport and Propulsion (CSTP), Epe, Lagos, Nigeria. Plans and Propulsion System, Nigerian Navy Shipyard, Port Harcourt, Nigeria. Authors’ contributions
This work was carried out in collaboration between all authors. Author BKA designed the study and wrote the first draft of the manuscript. Author Lt Cdr CUN verified all MATLAB/Simulink result and managed the literature searches. Author AOO ensured hardware integrity. All authors read and approved the final manuscript. Article Information DOI: 10.9734/AIR/2016/25270 Editor(s): (1) Martin Kroger, Professor, Computational Polymer Physics, Swiss Federal Institute of Technology (ETH Zurich), Switzerland. (2) José Alberto Duarte Moller, Center for Advanced Materials Research, Complejo Industrial Chihuahua, Mexico. (3) Shi-Hai Dong, Professor of Department of Physics, School of Physics and Mathematics, National Polytechnic Institute, Building 9, Unit Professional Adolfo Lopez Mateos, Mexico. Reviewers: (1) R. Praveen Sam, JNT University, Anantapur, India. (2) Shiu Kumar, Fiji National University, Fiji. Complete Peer review History: http://sciencedomain.org/review-history/14356
th
Original Research Article
Received 25 February 2016 Accepted 20th April 2016 th Published 27 April 2016
ABSTRACT The ability for Problem Solving Environment (PSE) to model, simulate and embed algorithms unto micro-controllers without manually converting algorithms to C programming language has been subjected to a lot of scepticism. This modern method popularly referred to as Model Base Design (MBD) approach is gaining popularity amongst system engineers worldwide. Its intuitiveness combined with the learning ease and rapid prototyping appetite has lured great research agencies like NASA to use MBD in the guidance, navigation, and control (GN&C) system for the Orion project. In this study, we explored the benefit of MBD, using MATLAB/Simulink as our PSE and Arduino Uno as our micro-controller. The main goal is to develop a simple traffic light and embed it ® in Arduino Uno from MATLAB/Simulink. The traffic light algorithm was developed using Stateflow ®. ® and the complete model built and simulated in Simulink Simulink Coder was then used to automatically convert the algorithm to C code. Hence, Arduino Uno was targeted in an experiment set-up with 3 Light Emitting Diodes (LEDs). The three LEDs (red, green and yellow) blinked in the _____________________________________________________________________________________________________ *Corresponding author: E-mail:
[email protected];
Aliyu et al.; AIR, 7(2): 1-10, 2016; Article no.AIR.25270
designed manner depicting a typical traffic light control. In the course of this study, it was observed that the MATLAB syntax used to blink the LED varied between the R2014a and the R2015b versions of MATLAB.
Keywords: Model based design (MBD); MATLAB/Simulink; Arduino; traffic light. inaccessible or even non-existent as in the case of a new design [2]. Simulation refers to solutions of the model, albeit generally approximate in nature. There exist various forms of models for physical entities, these include mathematical equations, look-up Tables, finite state machines, etc.
1. INTRODUCTION The evolution of embedded systems design shows how design practices have moved from a close coupling of design and implementation levels to relative independence between the two. Language-and synthesis-based origins: The first generation of methodologies traced their origins to one of two sources: Language-based methods lie in the software tradition, and synthesis-based methods stem from the hardware tradition. A language-based approach is centred on a particular programming language with a particular target runtime system (often fixedpriority scheduling with pre-emption). Early examples include Ada and, more recent, RTJava.
MBD uses models of a system and its requirements in the design of complex systems in addition to facilitating a more efficient design process. Some of the major benefits of MBD approach are: •
•
Implementation platform independence: The second generation of methodologies introduced a semantic separation of the design level from the implementation level to gain maximum independence from a specific execution platform during the design phases. There are several examples. SystemC combines a synchronous hardware semantics with asynchronous execution mechanisms from software (C++); implementations require partitioning into components that will be realized in hardware on one side and in software on the other. The semantics of common dataflow languages such as MATLAB’s Simulink are defined through a simulation engine that has modelling at the crux with an implementation focus on generating efficient code generation [1].
•
•
Design by simulation. Executable models increase understanding of the behaviour of the model and lead to better design quality. Test and verification. Continuous tests and verifications can be made on a model. Documentation. The model is the only information carrier. Documentation and code are by-products and are generated based on model. A model is also easier to share and communicate between people when compared to text, hence a visualization (model) is worth a thousand words and is unambiguous. Auto-generated code decreases the number of actors involved and maintains consistency between specifying model and implementable code and its documents [3].
1.1 Model Based Design (MBD) Model-based design seeks independence from specific execution semantics or implementation choices. The word ‘‘model’’ is a generic term referring to a conceptual or physical entity that resembles, mimics, describes, predicts, or conveys information about the behaviour of some process or system. The benefit of having a model is to be able to explore the intrinsic behaviour of a system in an economical and safe manner. The physical system being modelled may be
Fig. 1. System model in MBD
2
Aliyu et al.; AIR, 7(2): 1-10, 2016; Article no.AIR.25270
later stages, ref. [7]. The main motivation for applying model-driven and component-based engineering techniques is that new applications can be created with much less effort than in traditional approaches, simply by assembling existing parts. The principles of model-driven and component-based development are successfully applied in hardware manufacturing. [8]
Some other benefits are: • •
Early identification of requirements. Reuse of models.
MBD is implemented by placing the model in the centre, which leads to the following fundamentals: • •
Thus, the needs for Problem Solving Environments (PSE) like MATLAB/Simulink are inevitable tools for MBD.
Interaction between developers and the various tasks is accomplished via the model. The model will have more than one purpose and may be needed by more than one person.
1.2 MBD Related Projects While Lockheed Martin was already familiar with Model-Based Design, this approach represented a paradigm shift for many NASA engineers and contractors. When the guidance, navigation, and control (GN&C) system for the Orion crew vehicle undergoes Critical Design Review (CDR), more than 90% of the flight software will already be developed-a first for NASA on a project of this scope and complexity. This achievement is due in large part to a new development approach using Model-Based Design. Model-Based Design has helped these organizations work on both the GN&C algorithm and flight software development concurrently [9].
At the beginning of any design process of a new product, we have little knowledge of the problem, but great freedom in decision-making, and the decisions we make determines much of the cost incurred later in the design process. However, one would wish to be able to obtain more knowledge early on in order to maintain the same high degree of design freedom and postpone the commitment of costs, as illustrated in Fig. 2 [4-6].
When executed well, model-based design encourages enhanced performance and quicker time to market for a product. MBD focuses on multi-core methodological issues, real-time analysis, modelling and validation. A compilation of work from internationally renowned authors using MBD is presented in [10]. In the aerospace industry, Honeywell Aerospace USA uses MBD for Flight Control Systems dsiggn-DO-178 (Level A), [11]. Using traditional control development methods, test and implementation of the embedded control systems had to wait until late in the process. This delay was tied to the availability of production prototypes for testing the behaviour of the control software-a critical step in revealing errors in the embedded software behaviour. Because the initial integration of hardware and software took place so late in the development cycle, the discovery of errors often resulted in production delays, as well as additional expense in code updates and verification tests [12]. Hence, the appetite of automatic Generating hardware codes is the advantage of the MBD process.
Fig. 2. Contemporary design process compared with MBD By employing modern modelling, simulation and optimization techniques, vast improvements can be achieved in all parts of the design process. Simulation reduces the risk of detecting design faults late in the development work. Research has shown that early detection and correction of design faults cost 200 - 1,000 times less than at
3
Aliyu et al.; AIR, 7(2): 1-10, 2016; Article no.AIR.25270
1.3 Generating Code Embedded Coder
with
they perform with hardware. Simulink built-in support for hardware includes [15]:
Simulink
• •
Simulink is a graphical front end to MATLAB that allows you to easily create models of dynamic systems in form of block diagrams. In Simulink, it is very straightforward to represent and then simulate a model representing a physical system. Models are represented graphically in Simulink as block diagrams. A wide array of blocks is available to the user in the provided libraries for representing various phenomena and models in a range of formats. One of the primary advantages of employing Simulink (and simulation in general) for the analysis of systems is that it allows us to quickly see the response of complicated systems that may be prohibitively difficult to analyse analytically. Simulink is able to numerically approximate the solutions to mathematical models that we are unable to, or don't wish to solve analytically. In general, the mathematical equations representing a given system serve as the basis for a Simulink model [13]. Because C/C++ code is automatically generated from the Simulink models, most design software coding will be completed before Critical Design Review (CDR). In addition to saving time and reducing error in code generation with Embedded Coder™ provides three advantages at this stage of the program. Firstly, it enables us to verify that the code that will ultimately get deployed aboard the target hardware can be generated, and verified to produce the same results as the Simulink simulations of the source models. Secondly, code generation enables engineers who are accustomed to writing their own code to inspect the generated C/C++ code and even debug directly in the code. Thirdly, it enables analysts to dramatically realize closed-loop run-time performance by embedding the generated code directly into the Trick simulation infrastructure [14].
• • • •
Automated installation and configuration Target hardware device libraries of Simulink blocks that connect to I/O ports, sensors, and actuators Streamlined workflows for designing, building, and executing algorithms on supported target hardware Direct communication between Simulink and the target hardware Interactive parameter tuning and signal monitoring of your application as it runs Model deployment for autonomous execution ®
Simulink models serve as an executable specification from which flight software is automatically generated. As a result, the domain experts-work directly with the executable algorithm models rather than with documents that must then be interpreted by software developers. With the reality of MBD and Simulink Coder, the System Engineering Division of Centre for Space Transport and Propulsion (CSTP) in LagosNigeria is pioneering research and development with MBD approach in the nation. This paradigm shift in design of embedded systems for engineering application has open a frontier for limitless projects at affordable prices, considering the low cost attractiveness of Arduino based micro-controllers.
1.4 Arduino Uno The Arduino Uno is a microcontroller board based on the ATmega328. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analogue inputs, a 16 MHz ceramic resonator, a USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started [16,17].
Simulink is ideal for running closed-loop simulations because its interactive, visual environment helps engineers identify and resolve defects quickly. Simulink provides built-in support for prototyping, testing, and running models on low-cost target hardware, including Arduino, LEGO MINDSTORMS NXT, Panda Board, and Beagle Board. You can design algorithms in Simulink for control system, robotics, audio processing, and computer vision applications and then see how
Fig. 3. Arduino Uno
4
Aliyu et al.; AIR, 7(2): 1-10, 2016; Article no.AIR.25270
The Uno differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it features the Atmega16U2 (Atmega8U2 up to version R2) programmed as a USB-to-serial converter. Revision 3(R3) of the board has the following new features: •
•
2. MICROCONTROLLER BASED TRAFFIC LIGHT SYSTEM Embedding traffic light algorithms in microcontrollers have been in existence for quite a while [19,20]. The fact that Arduino microcontrollers are cheap and widely in use (having the extra advantage of sheared sketches) makes traffic light algorithms even easier to be implemented on the microcontroller [21].
1.0 pinout: added SDA and SCL pins that are near to the AREF pin and two other new pins placed near to the RESET pin, the IOREF that allow the shields to adapt to the voltage provided from the board. In future, shields will be compatible with both the board that uses the AVR, which operates with 5V and with the Arduino Due that operates with 3.3V. Stronger RESET circuit. Atmega 16U2 replace the 8U2.
In this study we intend to embed a traffic light algorithm onto an Arduino based microcontroller using MBD approach.
2.1 MBD Traffic Light System To model, simulate, and embed any algorithm into a microcontroller from MBD standpoint, there has to be an established form of communication between the Problem Solving Environment (PSE) and the microcontroller. In this study, the PSE is MATLAB/Simulink and the micro-controller is Arduino. We will first program the Arduino board to blink an LED (Light Emitting Diodes) directly with MATLAB code and then build a Simulink model. The Simulink model for blinking the LED will then serve as the basis for building and implementing the traffic light algorithm.
"Uno" means one in Italian and is named to mark the upcoming release of Arduino 1.0. The ATmega328 has 32 KB (with 0.5 KB used for the bootloader). It also has 2 KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM library). Each of the 14 digital pins on the Uno can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 volts. Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions: •
•
• • •
2.2 Blinking an LED with MATLAB Code MATLAB codes could be written to program Arduino directly from the command line. To do this, the Arduino IDE must be installed on the computer that has MATLAB/Simulink running.
Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip. External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details. PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI communication using the SPI library. LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH (1) value, the LED is on, when the pin is LOW (0), it's off [18].
For Arduino to listen to MATLAB commands arriving from the serial port, execute the commands, and, if needed, return a result, the adioes.pde sketch needs to be uploaded into the micro-controller from the Arduino IDE. This is the "server" program needed that will continuously run on the microcontroller board. As long as no other file is uploaded later, this step does not need to be repeated anymore, and the package can be used as soon as the board is connected to the computer. Typically, to blink an LED from command line in MATLAB, the following hardware is needed: • • • •
5
Small breadboard 220 Ohm resistor Connecting wires Arduino Uno
Aliyu et al.; AIR, 7(2): 1-10, 2016; Article no.AIR.25270
• •
2.3 Blinking an LED from Simulink
USB cable Jumper wires
Simulink can be enhanced with different kind of libraries that can simulate the behaviour of a large variety of systems and run simulations on targeted hardware boards. MathWorks is putting a lot of effort in supporting various kind of board at every new release of MATLAB. Simulink builtin support for the Arduino platform includes [22]:
The experimental set-up with the above hardware is shown in Fig. 4a which guided the implementation in Fig. 4b. Ensure that a C compiler has been configured with MATLAB, this can be achieved by typing the mex-setup at the command prompt of MATLAB. Hence, the following MATLAB (R2015b) code will blink the LED:
•
a=arduino('COM39') configureDigitalPin(a,9,'output'); % sets pin 9 as output for i = 1:1000 writeDigitalPin(a,9,1); % sets LED on pause(0.5); writeDigitalPin(a,9,0); % sets LED Off pause(0.5); end
Library of Simulink blocks that connect to Arduino I/O, such as digital input and output, analog input and output, serial receive and transmit, and servo read and write Interactive parameter tuning and signal monitoring of applications running on the Arduino Mega (not available on Arduino Uno)
•
After installing the support package of Arduino from Simulink, the model in Fig. 5 was built to depict the same experiment in Fig. 4.
Fig. 5. Simulink model for blinking LED (a) Simulation of the model in Fig.5 was done in normal mode to verify results graphically as shown in Fig. 6. From the Simulink Coder icon, we simply choose the option Deploy to Hardware from the drop down button after changing the simulation mode to inf. This automatically converts our algorithm to C code and embeds it in the Arduino board connected to the computer. 1 Pulse
(b) Fig. 4. (a) ideal set-up (b) Implemented set-up in CSTP Instrumentation Lab The duration for blinking and pausing can be modified as desired directly from the code.
0.5
0 0
Being able to blink an LED directly from Simulink is also possible. This involves building the appropriate model in Simulink.
1
2 3 Time(s)
4
Fig. 6. Generated pulse in Simulink 6
5
Aliyu et al.; AIR, 7(2): 1-10, 2016; Article no.AIR.25270
Basically, the model in Fig. 5 comprises of two main blocks; pulse generator and digital output block. The latter block was added to the Simulink library after the Arduino support package for Arduino was installed. The pulse block was set to output pulse with amplitude of 1, period of 10s, 0 pulse width 5, phase delay of 0 and sample time of 0.1s. To set-up the practical platform to programme an Arduino Uno board to implement the traffic light model, we need the pulse generator block and the digital output blocks from Fig. 5. Also, Stateflow-an environment for modelling and simulating combinatorial and sequential decision logic based on flow charts and state machines, was employed to depict the sequence of the algorithm using finite state machine. A finite state machine is a representation of an event-driven (reactive) system. In an event-driven system, the system makes a transition from one state (mode) to another, if the condition defining the change is true.
Fig. 7. Stateflow model of the traffic light algorithm In Fig. 7, the MATLAB command sfpref(‘ActionLanguage’,’C’) was used to change charts created to have C as the action language from a default MATLAB language. This is necessary before uploading the code into the Arduino Uno.
Stateflow lets you combine graphical and tabular representations, including state transition diagrams, flow charts, state transition Tables, and truth Tables, to model how your system reacts to events, time-based conditions, and external input signals. Stateflow includes state machines animation and static and run-time checks for testing design consistency and completeness before implementation. You can include Stateflow charts as blocks in a Simulink® model. The collection of these blocks in a ® Simulink model is the Stateflow machine [23,24].
2.4 Simulink Traffic Light Implementation A typical traffic light algorithm can be implemented with 3 LEDs and controlled by a micro-controller. The completed Simulink model of the algorithm that needs to be embedded is shown in Fig. 8. Running simulation in normal mode for 10s gave the result in Fig. 9 thus, we went ahead to deploy our code in to the hardware using the setup in Fig. 10 (a) as a guide.
In Fig. 7, the algorithm for the traffic light was built to depict an intended sequence that will be demonstrated by the blinking of three LEDs.
Fig. 8. Simulink model of a traffic light algorithm with Stateflow 7
Aliyu et al.; AIR, 7(2): 1-10, 2016; Article no.AIR.25270
specific to R2015b version of MATLAB. The same feat repeated in R2014a required the syntax a.pinMode(9,'output') to configure pin 9 as output and digitalWrite(a,9,1) to switch on the LED.
Pulse
1 Red Yellow Green
0.5
0
0
2
4
6
8
In Simulink as shown in Fig. 6 and Fig. 9, the Signal Generator block outputs Pulse Width Modulation (PWM). PWM consist of two values; Period-how long before the signal repeats, Pulse Width-how long the signal is High (1) before it goes Low (0). This creates an on-off pattern. This on-off pattern can simulate voltages in between full on (5 Volts) and off (0 Volts) by changing the portion of the time the signal spends ‘on’ versus the time that the signal spends ‘off’ (see Fig. 11). The duration of "on time" is called the pulse width. To get varying analogue values, you change, or modulate, that pulse width. If you repeat this on-off pattern fast enough with an LED for example, the result is as if the signal is a steady voltage between 0v and 5v controlling the brightness of the LED. In Fig. 6, the lines represent a regular time period generated by the Pulse Generator block from Simulink library. The Pulse Generator block generates square wave pulses at regular intervals. The block waveform parameters: Amplitude, Pulse Width, Period, and Phase delay, determine the shape of the output waveform. The diagram in Fig. 11 shows how each parameter affects the waveform.
10
Time(s)
Fig. 9 Traffic light control simulation result
(a)
(b) Fig. 10. (a) Experimental guide (b) Laboratory implementation for traffic control
3. DISCUSSION OF RESULTS To establish connection with Arduino from MATLAB, the command a=arduino from MATLAB command prompt creates a MATLAB variable name ‘a’ on the workspace thus, creating an Arduino object which includes the I2C library. Note that we had to first install Arduino IDE and uploaded the adioes.pde sketch unto the Arduino from the IDE. This establishes the bases for MATLAB to continuously communicate directly with our Arduino hardware. This is done once and the IDE is closed-never to be used. This makes MATLAB the only means to communicate with the Arduino Uno when it is connected to the computer.
Fig. 11. Characteristics of PWM With simulation options of sample-based mode for the signal generator, inf in Simulink, and fixed-step solver ode3, we simulated, blinked and targeted the Arduino Uno with the algorithms in Fig. 5, and Fig. 8. In the sample-based mode, the block computes its outputs at fixed intervals, as seen in Fig. 6. In Fig. 9 the interval between each LED pulse varied based on the intended sequence of the algorithm. For the red LED to be on, it sustained the 1 (5 volts) amplitude for 5s while both green and yellow were off (zero amplitude PWM, and zero volt). The instant the
It is pertinent to note that the syntax used in this study to blink the LED with MATLAB codes is 8
Aliyu et al.; AIR, 7(2): 1-10, 2016; Article no.AIR.25270
green LED comes on, the red goes off while it sustained for 2s (1 amplitude or 5v). During the last 1s of the green light being on, the yellow comes on and sustains the 1 amplitude or 5v for the last 1s. Note that the Duty cycle (percentage of time the signal is High or Pulse Width/Period) for red is 50 per cent, green is 20 per cent and yellow is 10 per cent. Both green and yellow rest now at zero amplitude which is equivalent to 0 volts, while the red light comes ‘on’ with amplitude of 1. The sequence continuous in a cycle on the microcontroller due to inf option triggered in Simulink before Simulink Coder was invoked.
2.
3.
4.
5.
4. CONCLUSION 6.
In this study, the MBD approach was explored from the standpoint of MATLAB/Simulink with Arduino Uno as the targeted hardware. We explored the ability of MATLAB/Simulink to model finite state mechanics depicting a simple algorithm for traffic light. The ultimate goal of the MBD approach is to validate an algorithm graphically and also automatically generate C code to embed the algorithm in a microcontroller. The ability to generate C code automatically from Simulink using Simulink ® Coder in this study has relieved us of the errorprone traditional means of the manual conversion. To achieve the MBD task, we began by ensuring perfect communication between MATLAB and Arduino Uno from the command prompt window. We discovered that for the same Arduino Uno board, the MATLAB syntax to configure a desired pin as output and also write to that same pin differs between R2014a and R2015b versions of MATLAB. From Simulink environment, a support package from math works was added to the Simulink library to facilitate the communication with Arduino. Results of this study proved to be very intuitive, facilitate learning processes and makes embedded system design projects more efficient.
7.
8.
9.
10.
11.
12.
COMPETING INTERESTS Authors have interests exist.
declared
that
no
competing 13.
REFERENCES 1.
14.
Thomas A. Henzinger, Joseph Sifakis. The disciple of embedded systems design. Published by the IEEE Computer Society; 2007. 0018-9162/07/$25.00.
15.
9
Harold klee, Randal Allen. Simulation of dynamic systems with matlab and simulink. Second Edition; 2011. ISBN 13: 978-1-4398-3674-3. Smith P, Prabhu S, Friedman J. Best practices for establishing a model-based design culture, 2007-01-0777. SAE World Congress & Exhibition, Detroit, MI, USA; 2007. Fabrycky WJ, Blanchard BS. Life-Cycle cost and economic analysis. Prentice Hall, Englewood Cliffs, NJ; 1991. Mavris DN, DeLaurentis DA. A probabilistic approach for examining aircraft concept feasibility and viability. Aircraft Design. 2000;3:79-101. National Science Foundation. Research opportunities in engineering design. NSF Strategic Planning Workshop Final Report (NSF Grant DMI-9521590), USA; 1996. Backlund G. The effects of modelling requirements in early phases of buyersupplier relation. Linköping Studies in Science and Technology, Thesis No. 812, Linköping; 2000. Christian Bunse, Hans-Gerhard Gross, Christian Peper. Applying a model-based approach for embedded system development. Report TUD-SERG-2007020; 2007. ISSN 1872-5392. Scott Tamblyn, Joel Henry. Accelerating NASA GN&C flight software development; 2011. Available:mathworks.com/newsletters Gabriela Nicolescu, Pieter J. Model-based design for embedded systems; 2009. ISBN 9781420067842 Tom Erkkinen. Model–based design of complex embedded systems using industry standards; 2015. Available:mathworks.com/newsletters NI Tutorials shortening the embedded design cycle with model-based design; 2012. Available:http://www.ni.com/embeddedsyst ems/ Holly Moore. MATLAB for engineers; 2012. ISBN-13: 978-0-13-210325-1 ® tm MATLAB coder coder user’s guide R2015b. Copyright 2011–2015 by The MathWorks, Inc. Available:http://www.mathworks.com/acad emia/hardware-resources
Aliyu et al.; AIR, 7(2): 1-10, 2016; Article no.AIR.25270
Technology (IJARCET). 2012;1(7). ISSN: Massimo Banzi. Getting started with arduino. Second Edition, O’Reilly Media, 2278 – 1323. Inc; 2011. ISBN: 978-1-449-309879. 21. Saima Maqbool, et al. Smart traffic light 17. Maik Schmidt. Arduino; a quick-start control and congestion avoidance system during emergencies using arduino and Guide; 2011. ISBN-10: 1-934356-66-2. 18. Michael Margolis. Arduino cookbook; 2011. zigbee 802.15.4. International Journal of ISBN: 978-1-449-31387-6. Advanced Research in Computer Science 19. Nang Hom Kham, Chaw Myat. and Software Engineering. 2013;31(6). Implementation of modern traffic light ISSN: 2277 128X. control system. International Journal of 22. Available:http://www.mathworks.com Scientific and Research Publications. /academia/arduino-software/arduino2014;4(6). ISSN 2250-3153. simulink.html 20. Dilip B, Alekhya Y, Divya Bharathi P. 23. Stateflow® getting started guide R2015b. FPGA implementation of an advanced Copyright 2011–2015 by The MathWorks, traffic light controller using verilog HDL. Inc. ® International Journal of Advanced 24. Stateflow user’s guide R2015b. Copyright Research in Computer Engineering & 2011–2015 by The MathWorks, Inc. _________________________________________________________________________________ 16.
© 2016 Aliyu et al.; This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
Peer-review history: The peer review history for this paper can be accessed here: http://sciencedomain.org/review-history/14356
10