Internship Report
Internship Report
net/publication/331298736
Internship Report
CITATIONS READS
0 1,800
2 authors, including:
Tesfamichael Molla
Transfer Multisort Electronik
14 PUBLICATIONS 5 CITATIONS
SEE PROFILE
All content following this page was uploaded by Tesfamichael Molla on 23 February 2019.
Tesfamichael Molla
Kena Awoke
02/18/2019
Ministry of Innovation and Technology
Internship Report
Declaration
We are honestly declaring that, this is our own work and no copying is there
with our work and that all sources of materials used in this project have been
strongly acknowledged. This is to certify that the above declaration made by
our effort is correct to the best of our knowledge.
In doing so, we assure that we agree with all written above with our signature
as follows.
Name ID Signature
i
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Mentor Approval
This is to certify that the internship report entitled “Self Driving Car” is
prepared by Tesfamichael Molla and Kena Awoke under my guidance based on
the regular reports that they had submitted. I recommend this report to be
submitted to the Department of Electrical and Computer Engineering for
evaluation.
ii
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Supervisor approval
I, the undersigned supervisor of this internship report entitled “Self Driving
Car” have evaluated and approved the corrected version of the final report as
per the guideline of Electrical and Computer Engineering.
iii
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Acknowledgment
Above all, let be glory to God almighty for always being with in all our life,
secondly We would like to thank Wolkite University, Department of Electrical
and Computer Engineering for preparing this internship program and for
assigning us a supervisor to whom our deepest gratitude is for sharing his
experience, enlighten us the practical knowledge and Ministry of Innovation and
Technology (MInT) for accepting our request letter. Next we would like to thank
Mr. Ashenafi Paulos for facilitating the internship by giving the chance to find
the internship hosting company by our choice. And for *Human resource and
management Dr. Khalid who in valuable cooperation in accepting our application
letter and sending us to our mentor Mr. Elias* who gave advice and treat us
accordingly, understood everything those are practiced in the site and in the office
with respect to their past history, so we thank very much all of them for their
support, advice and contribution in all activities for our work in Self Driving Car
project.
iv
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Executive Summary
This internship report contains the overall matters which pass during the last four
months while staying in Ministry of Innovation and Technology (MInT). The first
part of the report, express the background, history, and objectives of the
internship hosting company, the overall organization and work flow in MInT.
The second part of the report briefly describes general overall internship
experience. The third part of the report describes assessment of the internship
what we gained from internship. The forth part of the report describes technical
aspects of the internship like design period and information about the material
and methodology used during internship period. The last part tells about
conclusions and recommendation of project respectively.
v
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
List of figures
Fig [1] Organizational structure …………………………………………….. 5
vi
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Acronyms
3D 3 Dimension
Max Maximum
CONV Convolution
vii
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Table of Contents
Declaration.................................................................................................................................. i
Mentor Approval ........................................................................................................................ ii
Supervisor approval .................................................................................................................. iii
Acknowledgment ...................................................................................................................... iv
Executive Summary ....................................................................................................................v
List of figures ............................................................................................................................ vi
Acronyms ................................................................................................................................ vii
Chapter 1 ....................................................................................................................................1
Introduction ................................................................................................................................1
MInT products and services ........................................................................................................4
Affiliate organizations .............................................................................................................4
Values of MInT .......................................................................................................................4
Organization and work flow ........................................................................................................5
Chapter 2 ....................................................................................................................................7
Overall internship experience ......................................................................................................7
Entry into the Company ..............................................................................................................8
Section of the company we have been working in .......................................................................8
Work task we have been executed ...............................................................................................8
Procedure used in our work task ..................................................................................................8
Performance Over Given Work Tasks .........................................................................................8
The challenges during our work ..................................................................................................9
Overall benefit from internship....................................................................................................9
Importance of internship .............................................................................................................9
Chapter 3 .................................................................................................................................. 11
Internship Project ...................................................................................................................... 11
Self-driving car ......................................................................................................................... 11
Abstract ............................................................................................................................... 11
Introduction ......................................................................................................................... 12
Object detection algorithm ................................................................................................. 13
CNN ..................................................................................................................................... 13
viii
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Architecture Overview ........................................................................................................ 14
Layers used to build ConvNets ........................................................................................... 16
Normalization Layer ............................................................................................................. 20
Fully-connected layer ............................................................................................................ 20
Scope ........................................................................................................................................ 20
Materials for the demonstration ................................................................................................. 21
Raspberry pi .............................................................................................................................. 21
Hardware ............................................................................................................................. 22
Processor.............................................................................................................................. 23
Performance ........................................................................................................................ 23
RAM .................................................................................................................................... 24
Video .................................................................................................................................... 24
Arduino ..................................................................................................................................... 25
TB6612FNG motor driver ......................................................................................................... 26
Micro servo ............................................................................................................................... 27
Chapter 4 .................................................................................................................................. 28
Recommendation and Conclusion ............................................................................................. 28
Recommendation ...................................................................................................................... 28
Conclusion ................................................................................................................................ 29
Appendix .................................................................................................................................. 30
Python code for raspberry pi .............................................................................................. 30
Arduino Code ...................................................................................................................... 33
Reference .................................................................................................................................. 34
ix
Wolkite University
Department of Electrical and computer engineering
Chapter 1
Introduction
As we all know that we live in the age of science and technology. The life of
every one of us highly depends on the scientific invention and modern day
technologies. Science and technology has changed the lives of people to a great
extent. It has made life easy, simple and fast. In the new era, the science
development has become a necessity to finish the era of bullock cart and bring
the trend of motorized vehicles. Science and technology has been implemented
to every aspect of modernization in every nation. Modern gadget has been
introduced to every walk of life and have solved almost all the problems. It was
not possible to have all the benefit of it without it in the sector like medicine,
education, infrastructure, electricity, aviation, information technology and other
field.
What improvement we are seeing in our life on daily basis is because of the
science and technologies. For the proper growth and development of the country,
it is very necessary to go science and technology hand in hand. Villages are
getting developed to towns and towns to cities thus expanding the greater
horizons of economy. Those country with better technology and technologist
have better economy. However, those countries with poor technological
advancements and use exhibit a very poor economic performance. Ethiopia is
said to be a land that started farming early as history of farming itself. However
due to the absence of modern technology, for ages the sector did not bring the
excepted result. Traditional ox ploughing is still being practiced. This does not
mean that the whole farming practice is still traditional. These are farming that
use modern technologies. In order to accelerate the countries, fast and
sustainable development, strengthen the science, technology and innovation
sector is important. Strengthen the sector will enable the countries dedication to
1
Ministry of Innovation and Technology
Internship Report
shift to industry led economy to be efficient and effective. Therefore, in order to
realize economic shift in short time the science, technology and innovation is
established.
The internship program goals are to improve our knowledge by linking the
theoretical knowledge through practical experience. So we can develop our
capacity to handle, adapt challenging situations in the real world.
Company Background
Establishment
2
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Vision
To see Ethiopia, entrench the capacity which enable learning, adaptation and
utilization of effective foreign technologies by the year 2022/23.
Mission
The ministry of science and technology has the following power and duties
3
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
MInT products and services
MInT staffs are involved with a number of different sectors, that Strengthening
the science, technology and innovation sector is essential to accelerate the rapid
and sustainable growth of our country. The scale of the sector will enable the
economy of the industry to be economically viable and efficient as a leader in
the industry. Some of organization currently working with:
Affiliate organizations
Science and Technology Information Center (Ethiopia)
Ethiopian Intellectual Property Office
Ethiopian Conformity Assessment Enterprise
Ethiopian National Accreditation Office
Ethiopian Radiation and Protection Authority
Ethiopian Standards Agency
Ethiopian Space Science
Ethiopian Biotechnology Institute
Ethiopian Metrology Institute of Ethiopia
Addis Ababa Science and Technology University
Adam Science and Technology University
Values of MInT
Organization’s information is our wealth for development
Inventions is our tool for growth and development
Strengthen scientific collaboration and partnership
Promote science-based performance
Research ethics is our motto.
Search for new knowledge and technology
Work towards customer satisfaction
4
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Organization and work flow
5
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
6
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Chapter 2
Overall internship experience
Introduction
7
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Entry into the Company
We got into the Ministry of Innovation and Technology (MInT) through an
agreement between the university and the company which is done through the
University Industry Linkage (UIL) office.
8
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
The challenges during our work
The challenges during our work tasks are lack of getting lab seat to access some
internet, getting components needed for the project
Taken Measures to overcome the challenges
The measures we have taken to overcome the challenges are finding some
components from social media, by asking some advice from people and our
supervisor.
Overall benefit from internship
Internship is necessary to develop our knowledge by visualize the theoretical
knowledge in to practical knowledge. Not only this it also important to achieve
the ability, how to work or how to engage in the practical work like the proper
design in the ground.
Importance of internship
The main importance of this internship is to provide practical skills. This
practical skill was improved by exercising theoretical knowledge on the reality
performed activities it also develops: -
10
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Chapter 3
Internship Project
Self-driving car
Abstract
Self-driving is a vague term with a vague meaning as explained by tech
emergence magazine. Experiments have been conducting on automating driving
since ate list the 1920s [1]. There are five levels of automation in current self-
driving cars with their own degree of automation [2]. In this paper I am
proposing level 4 automation, which is a car that can drive itself almost all the
time without any human input, but might be programmed not to drive in
unmapped areas or during severe weather. The system has three stages. The
first stage will be receiving data from videos and sensors, followed by a
preprocessing section which applies CNN and Object detection mechanism on
the images and finally there is a classification model for predicting steering
angle, acceleration and direction. Performance will be tasted on various model
attributes and conditions and will be presented in graphical interface.
11
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Introduction
A self-driving car, also known as a robot car, autonomous car, or driverless
car, is a vehicle that is capable of sensing its environment and moving with little
or no human input [3]. Autonomous cars combine a variety of sensors to
perceive their surroundings, such as radar, computer, Vision, Lidar, Sonar, GPS,
odometery and inertial measurement units. Advanced control
systems interpret sensory information to identify appropriate navigation paths,
as well as obstacles and relevant signage [4] [5]. Potential benefits include
reduced costs, increased safety, increased mobility, increased customer
satisfaction and reduced crime. Safety benefits include a reduction in traffic
collisions [6] [7], resulting injuries and related costs, including for insurance.
Automated cars are predicted to increase traffic flow [8]; provide enhanced
mobility for children, the elderly [9], disabled, and the poor; relieve travelers
from driving and navigation chores; lower fuel consumption; significantly
reduce needs for parking space[10]; reduce crime [11]; and facilitate business
models for transportation as a service, especially via the sharing economy [12]
[13]. Problems include safety [14], technology, liability[15] [16], desire by
individuals to control their cars[17], legal framework and government
regulations; risk of loss of privacy and security concerns, such as hackers or
terrorism; concern about the resulting loss of driving-related jobs in the
road transport industry; and risk of increased suburbanization as travel becomes
more convenient.
12
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Object detection algorithm
This part of the system will detect pedestrian, traffic signs and other obstacles
that comes around the road. The algorithm uses haar cascade files to detect
objects in a given images. Haar cascade file are digital image features used in
object detection. They owe their name to their intuitive similarity with Haar
wavelets and were used in the first real time face detector. The system I am
proposing will use 1 haar cascade file for one object. The output of the detection
is going to be fed to the next stage which is the CNN (Convolutional Neural
Network).
CNN
In deep-learning, a convolutional neural network is a class of deep, feed-forward
artificial neural networks, most commonly applied to analyzing visual imagery.
CNNs use a variation of multilayer perceptron designed to require
minimal preprocessing. They are also known as shift invariant or space invariant
artificial neural networks (SIANN), based on their shared-weights architecture
and translation invariance characteristics.
A CNN consists of an input and an output layer, as well as multiple hidden layers.
The hidden layers of a CNN typically consist of convolutional layers, pooling
layers, fully connected layers and normalization layers. Description of the process
as a convolution in neural networks is by convention. Mathematically it is a cross-
correlation rather than a convolution. This only has significance for the indices in
the matrix, and thus which weights are placed at which index.
13
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
After the decision is made by those CNN architectures the out is applied on the
car and process the second frame. In our system, performance speed is going
to be my main concern, because accuracy can be improved by feeding more
data.
Architecture Overview
Recall: Neural Networks receive an input (a single vector), and transform it
through a series of hidden layers. Each hidden layer is made up of a set of
neurons, where each neuron is fully connected to all neurons in the previous
layer, and where neurons in a single layer function completely independently
and do not share any connections. The last fully-connected layer is called the
“output layer” and in classification settings it represents the class scores.
Regular Neural Nets don’t scale well to full images. In CIFAR-10, images are
only of size 32x32x3 (32 wide, 32 high, 3 color channels), so a single fully-
connected neuron in a first hidden layer of a regular Neural Network would have
32*32*3 = 3072 weights. This amount still seems manageable, but clearly this
fully-connected structure does not scale to larger images. For example, an image
of more respectable size, e.g. 200x200x3, would lead to neurons that have
200*200*3 = 120,000 weights. Moreover, we would almost certainly want to
14
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
have several such neurons, so the parameters would add up quickly! Clearly, this
full connectivity is wasteful and the huge number of parameters would quickly
lead to over fitting.
15
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Every layer of a ConvNet transforms the 3D input volume to a 3D output volume
of neuron activations. In this example, the red input layer holds the image, so its
width and height would be the dimensions of the image, and the depth would be
3 (Red, Green, Blue channels).
INPUT [32x32x3] will hold the raw pixel values of the image, in this case
an image of width 32, height 32, and with three color channels R,G,B.
CONV layer will compute the output of neurons that are connected to
local regions in the input, each computing a dot product between their
weights and a small region they are connected to in the input volume. This
may result in volume such as [32x32x12] if we decided to use 12 filters.
RELU layer will apply an element wise activation function, such as the
[Math Processing Error]
Thresholding at zero. This leaves the size of the volume unchanged
([32x32x12]).
POOL layer will perform a down sampling operation along the spatial
dimensions (width, height), resulting in volume such as [16x16x12].
FC (i.e. fully-connected) layer will compute the class scores, resulting in
volume of size [1x1x10], where each of the 10 numbers correspond to a
class score, such as among the 10 categories of CIFAR-10. As with
16
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
ordinary Neural Networks and as the name implies, each neuron in this
layer will be connected to all the numbers in the previous volume.
In this way, ConvNets transform the original image layer by layer from the
original pixel values to the final class scores. Note that some layers contain
parameters and other don’t. In particular, the CONV/FC layers perform
transformations that are a function of not only the activations in the input
volume, but also of the parameters (the weights and biases of the neurons). On
the other hand, the RELU/POOL layers will implement a fixed function. The
parameters in the CONV/FC layers will be trained with gradient descent so that
the class scores that the ConvNet computes are consistent with the labels in the
training set for each image.
Pooling Layer
18
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
General pooling. In addition to max pooling, the pooling units can also perform
other functions, such as average pooling or even L2-norm pooling. Average
pooling was often used historically but has recently fallen out of favor compared
to the max pooling operation, which has been shown to work better in practice.
Pooling layer down samples the volume spatially, independently in each depth
slice of the input volume. Left: In this example, the input volume of size
[224x224x64] is pooled with filter size 2, stride 2 into output volume of size
[112x112x64]. Notice that the volume depth is preserved. Right: The most
common down sampling operation is max, giving rise to max pooling, and here
shown with a stride of 2. That is, each max is taken over 4 numbers (little 2x2
square).
Back propagation. Recall from the back propagation chapter that the backward
pass for a max(x, y) operation has a simple interpretation as only routing the
gradient to the input that had the highest value in the forward pass. Hence, during
the forward pass of a pooling layer it is common to keep track of the index of
the max activation (sometimes also called the switches) so that gradient routing
is efficient during back propagation.
19
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Getting rid of pooling. Many people dislike the pooling operation and think that
we can get away without it. For example, Striving for Simplicity: The All
Convolutional Net proposes to discard the pooling layer in favor of architecture
that only consists of repeated CONV layers. To reduce the size of the
representation they suggest using larger stride in CONV layer once in a while.
Discarding pooling layers has also been found to be important in training good
generative models, such as variation auto encoders (VAEs) or generative
adversarial networks (GANs). It seems likely that future architectures will
feature very few to no pooling layers.
Normalization Layer
Many types of normalization layers have been proposed for use in ConvNet
architectures, sometimes with the intentions of implementing inhibition schemes
observed in the biological brain. However, these layers have since fallen out of
favor because in practice their contribution has been shown to be minimal, if
any. For various types of normalizations, see the discussion in Alex
Krizhevsky’s cuda-convnet library API.
Fully-connected layer
Neurons in a fully connected layer have full connections to all activations in the
previous layer, as seen in regular Neural Networks. Their activations can hence
be computed with a matrix multiplication followed by a bias offset. See the
Neural Network section of the notes for more information.
Scope
The final goal of the research is to build robot that can plough any given farm
by learning the environment without any human intervention, but this project
only emphasis on enabling the robot to learn environments and mange itself.
20
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
As per our plan the project is all about demonstrating the system in the real time
environment. On this case the model we planned to use was a free open source
package.
Materials for the demonstration
SunFounder 3D printed car model
Raspberry pi 3 model B
TB6612FNG motor driver
Arduino UNO
Micro servo
2 DC Motors
Raspberry pi camera
Raspberry pi
22
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Processor
The Broadcom BCM2835 SoC used in the first generation Raspberry Pi includes a
700 MHz ARM11 76JZF-S processor, VideoCore IV graphics processing
unit (GPU), and RAM. It has a level 1 (L1) cache of 16 KB and a level 2 (L2) cache
of 128 KB. The level 2 cache is used primarily by the GPU. The SoC
is stacked underneath the RAM chip, so only its edge is visible. The 1176JZ(F)-S is
the same CPU used in the original iPhone, although at a higher clock rate, and mated
with a much faster GPU.
The earlier V1.1 model of the Raspberry Pi 2 used a Broadcom BCM2836 SoC with
a 900 MHz 32-bit, quad-core ARM Cortex-A7 processor, with 256 KB shared L2
cache. The Raspberry Pi 2 V1.2 was upgraded to a Broadcom BCM2837 SoC with
a 1.2 GHz 64-bit quad-core ARM Cortex-A53 processor, the same SoC which is
used on the Raspberry Pi 3, but underclocked (by default) to the same 900 MHz CPU
clock speed as the V1.1. The BCM2836 SoC is no longer in production as of late
2016.
The Raspberry Pi 3+ uses a Broadcom BCM2837B0 SoC with a 1.4 GHz 64-bit
quad-core ARM Cortex-A53 processor, with 512 KB shared L2 cache.
Performance
While operating at 700 MHz by default, the first generation Raspberry Pi provided
a real-world performance roughly equivalent to 0.041 GFLOPS. On the CPU level
the performance is similar to a 300 MHz Pentium II of 1997–99. The GPU provides
1 Gpixel/s or 1.5 Gtexel/s of graphics processing or 24 GFLOPS of general purpose
computing performance. The graphical capabilities of the Raspberry Pi are roughly
equivalent to the performance of the Xbox of 2001.
Raspberry Pi 2 V1.1 included a quad-core Cortex-A7 CPU running at 900 MHz and
1 GB RAM. It was described as 4–6 times more powerful than its predecessor. The
GPU was identical to the original. In parallelized benchmarks, the Raspberry Pi 2
V1.1 could be up to 14 times faster than a Raspberry Pi 1 Model B+.
The Raspberry Pi 3, with a quad-core ARM Cortex-A53 processor, is described as
having ten times the performance of a Raspberry Pi 1. This was suggested to be
highly dependent upon task threading and instruction set use. Benchmarks showed
the Raspberry Pi 3 to be approximately 80% faster than the Raspberry Pi 2
in parallelized tasks.
23
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
RAM
On the older beta Model B boards, 128 MB was allocated by default to the GPU,
leaving 128 MB for the CPU. On the first 256 MB release Model B (and Model A),
three different splits were possible. The default split was 192 MB (RAM for CPU),
which should be sufficient for standalone 1080p video decoding, or for simple 3D,
but probably not for both together. 224 MB was for Linux only, with only a
1080p frame buffer, and was likely to fail for any video or 3D. 128 MB was for
heavy 3D, possibly also with video decoding (e.g. XBMC). Comparatively
the Nokia 701 uses 128 MB for the Broadcom Video Core IV.
For the later Model B with 512 MB RAM new standard memory split files
(arm256_start.elf, arm384_start.elf, arm496_start.elf) were initially released for
256 MB, 384 MB and 496 MB CPU RAM (and 256 MB, 128 MB and 16 MB video
RAM) respectively. But a week or so later the RPF released a new version of start.
Elf that could read a new entry in config.txt (gpu_mem=xx) and could dynamically
assign an amount of RAM (from 16 to 256 MB in 8 MB steps) to the GPU, so the
older method of memory splits became obsolete, and a single start. Elf worked the
same for 256 MB and 512 MB Raspberry Pis.
The Raspberry Pi 2 and the Raspberry Pi 3 have 1 GB of RAM. The Raspberry
Pi Zero and Zero W have 512 MB of RAM.
Video
The video controller can generate standard modern TV resolutions, such as HD
and Full HD, and higher or lower monitor resolutions as well as older NTSC or
PAL standard CRT TV resolutions. As shipped (i.e., without custom overclocking)
it can support the following resolutions: 640×350 EGA; 640×480 VGA;
800×600 SVGA; 1024×768 XGA; 1280×720 720p HDTV;
1280×768 WXGA variant; 1280×800 WXGA variant; 1280×1024 SXGA;
1366×768 WXGA variant; 1400×1050 SXGA+; 1600×1200 UXGA;
1680×1050 WXGA+; 1920×1080 1080p HDTV; 1920×1200 WUXGA.[45]
Higher resolutions, up to 2048×1152, may work or even 3840×2160 at 15 Hz (too
low a frame rate for convincing video). Note also that allowing the highest
resolutions does not imply that the GPU can decode video formats at these
resolutions; in fact, the Pis are known to not work reliably for H.265 (at those high
resolutions), commonly used for very high resolutions (however, most common
formats up to Full HD do work).
24
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Arduino
25
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
The Arduino project started in 2003 as a program for students at the Interaction
Design Institute Ivrea in Ivrea, Italy, aiming to provide a low-cost and easy way for
novices and professionals to create devices that interact with their environment
using sensors and actuators. Common examples of such devices intended for
beginner hobbyists include simple robots, thermostats and motion detectors.
The name Arduino comes from a bar in Ivrea, Italy, where some of the founders of
the project used to meet. The bar was named after Arduin of Ivrea, who was
the margrave of the March of Ivrea and King of Italy from 1002 to 1014.
26
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Micro servo
To control with an Arduino, we suggest connecting the orange control wire to pin
9 or 10 and using the Servo library included with the Arduino IDE (see here for
an example sketch). Position "0" (1.5ms pulse) is middle, "90" (~2ms pulse) is all
the way to the right, "-90" (~1ms pulse) is all the way to the left.
Note that the default servo pulse widths (usually 1ms to 2ms) may not give you a
full 180 degrees of motion. In that case, check if you can set your servo controller
to custom pulse lengths and try 0.75ms to 2.25ms. You can try shorter/longer
pulses but be aware that if you go too far you could break your servo !
27
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Chapter 4
Recommendation and Conclusion
Recommendation
Ministry of Innovation and technology has a lot of departments as part of its
main office. The most fun part and the one we were working on, Engineer
department (Idea generation room) is responsible for incubating various
innovational projects. The office is full of PCB designing machines and 3D
printers.
Most of the employees in the department work on very interesting projects that
could contribute to our increasingly growing industrial revolution. But as we
may have noticed, after projects completed the probability of them going to
market is very low, despite the fact that some of the projects will made it to
higher level qualifications and come out to be a good product.
As our opinion, it would be very interesting if there were a platform that can
communicate the local entrepreneurs and the department so that students and
other entrepreneurs can be benefited from it. With that said marketing products
is also should be given a higher priority.
28
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Conclusion
So far in our stay, we have experienced a lot of skills and professional manners.
The fact that we have a good experience to work with professionals in a
productive manner is priceless. We also had the chance to see how the PCB
manufacturing is in product level, which will help us our next biggest journey,
our thesis. With all that said, we can confidently say our four month was spend
wishfully.
29
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Appendix
Python code for raspberry pi
from tkinter import *
from tkinter.colorchooser import askcolor
import RPi.GPIO as GPIO
from time import sleep
import serial
class Paint(object):
DEFAULT_PEN_SIZE = 50
DEFAULT_COLOR = 'black'
def __init__(self):
self.root = Tk()
self.Forward_btn = Button(self.root, text='Forward', command=self.forward)
self.Forward_btn.grid(row=0, column=1)
self.Backward_btn = Button(self.root, text='Backward', command=self.Backward)
self.Backward_btn.grid(row=2, column=1)
self.Turnleft_btn = Button(self.root, text='Right', command=self.left)
self.Turnleft_btn.grid(row=1, column=2)
self.Stop_btn = Button(self.root, text='Stop', command=self.stop)
self.Stop_btn.grid(row=1, column=1)
self.Turnright_btn = Button(self.root, text='Left', command=self.right)
self.Turnright_btn.grid(row=1, column=0)
self.var = 0
self.choose_size_button = Scale(self.root, from_=1, to=180, resolution=30, variable =
self.var, command=self.printval, orient=HORIZONTAL)
self.choose_size_button.grid(row=3, column=1)
self.inval=90
self.choose_size_button.set(self.inval)
self.count = 0
#self.setup()
self.root.mainloop()
30
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
def left(self):
if self.inval < 180:
self.inval=self.inval+30
self.choose_size_button.set(self.inval)
def right(self):
if self.inval > 0:
self.inval=self.inval-30
self.choose_size_button.set(self.inval)
def printval(self, var):
print(var)
ser.write(str.encode(str(var)))
def forward(self):
#self.activate_button(self.Forward_btn)
#s = '~/Desktop/Mnst/amharic_data/d/' + str(self.count) + '.ps'
self.stop()
sleep(1)
p.ChangeDutyCycle(60)
p2.ChangeDutyCycle(60)
GPIO.output(12, False)
GPIO.output(1, False)
def Backward(self):
#self.activate_button(self.Backward_btn)
self.stop()
sleep(1)
p.ChangeDutyCycle(60)
p2.ChangeDutyCycle(60)
GPIO.output(12, True)
GPIO.output(1, True)
31
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
def stop(self):
#self.activate_button(self.Turnleft_btn, eraser_mode=True)
p.ChangeDutyCycle(0)
p2.ChangeDutyCycle(0)
if __name__ == '__main__':
GPIO.setmode (GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)
GPIO.setup(1, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setwarnings(False)
ser = serial.Serial('/dev/ttyACM0', 9600)
#GPIO.output(12, False)
#GPIO.output(1, False)
p2 = GPIO.PWM(23, 50)
p = GPIO.PWM(18, 50)
p.start (0)
p2.start(0)
sleep (2)
Paint()
32
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Arduino Code
#include <Servo.h>
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
Serial.begin(9600);
}
void loop() {
val = Serial.readString();
myservo.write(val.toInt()); // tell servo to go to position in variable
delay(15); // waits 15ms for the servo to reach the position
33
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
Reference
[1] https://www.techemergence.com/self-driving-car-timeline-themselves-top-
11-automakers/
[2] https://en.wikipedia.org/wiki/Self-driving_car
[3] Gehrig, Stefan K.; Stein, Fridtjof J. (1999). Dead reckoning and cartography
using stereo vision for an automated car. IEEE/RSJ International Conference
on Intelligent Robots and Systems. 3. Kyongju. pp. 1507–
1512. doi:10.1109/IROS.1999.811692. ISBN 0-7803-5184-3.
[4] Lassa, Todd (January 2013). "The Beginning of the End of Driving". Motor
Trend. Retrieved 1 September 2014.
[6] Umar Zakir Abdul, Hamid; et al. (2016). "Current Collision Mitigation
Technologies for Advanced Driver Assistance Systems–A
Survey" (PDF). PERINTIS eJournal. 6 (2). Retrieved 14 June 2017.
[8] Gibson, David K. (28 April 2016). "Can we banish the phantom traffic jam?".
BBC.
34
Wolkite University
Department of Electrical and computer engineering
Ministry of Innovation and Technology
Internship Report
[9] "Driver licensing system for older drivers in New South Wales,
Australia". NSW Government. 30 June 2016. Retrieved 16 May 2018.
[11] Miller, Owen. "Robotic Cars and Their New Crime Paradigms".
Retrieved 4 September 2014.
[12] Miller, John (19 August 2014). "Self-Driving Car Technology's Benefits,
Potential Risks, and Solutions". theenergycollective.com. Archived from the
original on 8 May 2015. Retrieved 4 June 2015.
[14] Henn, Steve (31 July 2015). "Remembering When Driverless Elevators
Drew Skepticism". NPR. Retrieved 14 August 2016.
[16] Adhikari, Richard (11 February 2016). "Feds Put AI in the Driver's
Seat". Technewsworld. Retrieved 12 February 2016.
[17] "New Allstate Survey Shows Americans Think They Are Great Drivers –
Habits Tell a Different Story". PR Newswire. 2 August 2011. Retrieved 7
September 2013.
[18] https://en.wikipedia.org/wiki/Convolutional_neural_network
35
Wolkite University
Department of Electrical and computer engineering