Upload
parth-parikh
View
28
Download
5
Tags:
Embed Size (px)
DESCRIPTION
Computer Engineering Final Year Project based on embedded system Raspberry Pi.The main motto of Project is to reduce the cost and size of computer, So that each and everyone can afford it.It consists of various features like Gaming, Programming, Media Center, Network Access Storage, Controlling Electronic Devices, Web Server etc..As it has many features it is named as Multipurpose Pi.
Citation preview
Multipurpose Pi INTRODUCTION
KJIT
[1]
A Project Report On
Multipurpose Pi
Submitted in Partial Fulfilment of The Degree of
Bachelor of Engineering
In
Computer Engineering
(8thSEM)
Prepared By
Parth N Parikh (100640107058)
Piyush Sahani (100640107059)
Dharmendra Singh Pal (110640107032)
Guided By
Assistant Prof. Rohit Tiwari
GUJARAT TECHNOLOGICAL UNIVERSITY (GTU)
K.J.INSTITUTE OF ENGINEERING & TECHNOLOGY,
SAVLI, DIST: VADODARA
DEPARTMENT OF COMPUTER ENGINEERING
May 2015
Multipurpose Pi INTRODUCTION
KJIT
[2]
K.J.INSTITUTE OF ENGINEERING & TECHNOLOGY,
SAVLI, DIST: VADODARA
CERTIFICATE
This is to certify that this work of UDP entitled Multipurpose Pi represents the bonafide work
of Parth N Parikh (100640107058), Piyush G Sahani (100640107059) and Dharmendra Singh Pal
(100640107032) for the partial fulfilment of the degree of Bachelor of Engineering in Computer
Engineering at the Department of Computer Engineering, K.J.Institute of Engineering &
Technology, Savli, Vadodara, Gujarat, during the academic year 2014-15 (Sem-8) and his work is
satisfactory.
Internal Guide, Project Coordinators,
Rohit Tiwari Dipali Jitiya
Assistant Professor Assistant Professors
Computer Engineering Department Computer Engineering Department
Head of Department, Principal,
Sohil Shah Dr. Neetha John
Assistant Professor KJIT,Savli.
Computer Engineering Department
Multipurpose Pi INTRODUCTION
KJIT
[3]
Abstract Project Description:
In todays fast growing world of technology computer and its proper education is very
important. Our proposed project`s motto is to make available an learning platform at very low
cost which could be affordable by each and every one, Project Multipurpose Pi will be
developed using the concepts of embedded system Raspberry PI configuring with different
applications , open source codes and tools to sum-up a perfect credit card sized device with
multiple functions.
Applicability of the Project:
This project is applicable for both Commercial and Public Utility Model. Web Server,
Controlling electronic devices, NAS, Media Centre, and Video Gaming.
Multipurpose Pi INTRODUCTION
KJIT
[4]
ACKNOWLEDGEMENTS
I would like to acknowledge the contribution of certain distinguished people, without their support
and guidance this project work would not have been completed.
I take this opportunity to express my sincere thanks and deep sense of gratitude to my internal project
guide Mr.Rohit Tiwari, Asst. Professor, Computer Engineering, KJIT, for his guidance and moral
support during the course of preparation of this project report. I really thank him from the rock bottom
of my heart for always being there with his extreme knowledge and kind nature.
I take this opportunity to thank all my friends and colleagues who started me out on the topic and
provided extremely useful review feedback and for their all-time support and help in each and every
aspect of the course of my project preparation. I am grateful to my K.J. Institute of Engineering &
Technology, Savli for providing me all required stuff and good working environment.
Acknowledgements and thanks are also extended to all the authors whose articles have been referred
to for the completion of this report.
Parth N Parikh
Piyush Sahani
Dharmendra Singh Pal
Multipurpose Pi INTRODUCTION
KJIT
[5]
LIST OF FIGURES
Figure Number Description Page Number
Figure-3.1 E-R Diagram 35
Figure-3.2 Use case Diagram 37
Figure-3.3 Sequence Diagram 39
Figure-3.4 Activity Diagram 41
Figure-3.5 Class Diagram 43
Figure-4.2.1 Desktop on High Resolution Display (HDMI) 48
Figure-4.2.2 Desktop on Low Resolution Display (RCA) 49
Figure-4.2.3 Gamming On Multipurpose Pi 50
Figure-4.2.4 IDLE - Python Programming 51
Figure-4.2.5 Graphics Creation Programming 52
Figure-4.2.6 Starting Raspbian 53
Figure-4.2.7 Starting Raspberry Pi Controlling Via SSH 54
Figure-4.2.8 Shell in Raspbian 55
Figure-4.2.9 Using Scratch Programming 56
Figure-4.2.10 Raspbian Basic Configuration Menu 57
Figure-4.3.1 XBMC Main Screen 58
Figure-4.3.2 Images from Hard Drive 59
Figure-4.3.3 Live Radio 60
Figure-4.3.4 Live Tv (with Addon IPNA) 61
Figure-4.3.5 Live TV 62
Figure-4.3.6 Movies Title 63
Figure-4.3.7 Music from Hard Drive 64
Figure-4.3.8 Music Streaming from Android Phone 65
Figure-4.3.9 Music Streaming from Internet 66
Figure-4.3.10 Video Streaming from Android Phone 67
Figure-4.4.1 LED Testing With GPIO 68
Figure-4.4.2 Single LED Blinking 69
Figure-4.4.3 Controlling LED Using Android Device 70
Figure-4.5.1 Network Attached File Server (NAS) 71
Multipurpose Pi INTRODUCTION
KJIT
[6]
LIST OF TABLES
Figure-4.6.1 Accessing Web Server 72
Table Number Description Page
Number
Table 4.1.1 Raspberry Pi Specifications 45
Table 4.1.2 GPIO input/output pin electrical characteristics 46
Table 4.1.3 GPIO 26 Pin Header 47
Multipurpose Pi INTRODUCTION
KJIT
[7]
ABBREVIATIONS AND SYMBOLS
ABBREVIATIONS
GPIO : General Purpose Input Output
SDLC : Software Development Life Cycle
SRS : System Requirement Specification
UML : Unified Modelling Language
GUI : Graphical User Interface
Multipurpose Pi INTRODUCTION
KJIT
[8]
SYMBOLS
E-R Diagram:
Entities: Attributes:
Relationship: Link:
Data flow Diagram:
Data Flow: Process:
Source: Data Store:
Multipurpose Pi INTRODUCTION
KJIT
[9]
Use case Diagram:
Actor: System Boundary:
Use Case: Connectors:
Sequence Diagram:
Actor: Object Life Cycle:
Activation: Synchronous Message:
Multipurpose Pi INTRODUCTION
KJIT
[10]
INDEX
Abstract I
Acknowledgement II
List of Figures III
List of Tables IV
Symbols and Abbreviations V
Index VIII
Chapter : 1 INTRODUCTION 1
1.1 Project Detail 14
1.1.1 Project Definition 14
1.1.2 Project Profile 14
1.2 Purpose 16
1.3 Scope 16
1.4 Objective 16
1.5 Technology and Literature Review 16
Chapter : 2 ABOUT THE SYSTEM 19
2.1 System Requirement Specification 20
2.1.1 Project Management Approach 20
2.1.2 Study of Current System 21
2.1.3 Limitations of Current System 22
2.1.4 Tools and Technology used 22
2.1.5 Functionality 24
2.1.6 Hardware and Software
Specification 25
2.1.7 Raspberry Pi 2(Latest Version) 26
2.2 Feasibility Study 27
2.3 Project Planning 28
Chapter : 3 ANALAYSIS 33
3.1 E-R Diagram 35
3.2 Use Case Diagram 37
3.3 Sequence Diagram 39
3.4 Activity Diagram 41
3.5 Class Diagram 43
Chapter : 4 DESIGN 44
4.1 Raspberry Pi General Specifications 45
4.2 Raspbian OS 48
Multipurpose Pi INTRODUCTION
KJIT
[11]
4.3 XBMC OS ( Media Centre ) 58
4.4 Controlling Electronic Devices 68
4.5 Network Accessed Storage 71
Chapter : 5 IMPLEMENTATION 73
5.1 Implementation Environment 74
5.2 Coding Standard 74
5.3
. 5.4
5.5
Tools for Python Code Quality 75
Tools for Python Code 76
Python Codes 78
Chapter :6 TESTING 79
6.1 Testing Plan 80
6.2 Testing Strategy 81
6.3 Testing Methods 81
Chapter :7 CONCLUSION & FUTURE WORK 84
6.1 Conclusion 85
6.2 Future Enhancement 86
Reference 87
Multipurpose Pi INTRODUCTION
KJIT
[12]
CHAPTER - 1
INTRODUCTION
Multipurpose Pi INTRODUCTION
KJIT
[13]
1. Introduction
1.1 Project Details
1.1.1 Project Definition
Project Multipurpose Pi is developed using the concepts of embedded system Raspberry
PI configuring with different applications , open source codes and tools to sum-up a perfect
credit card sized device with multiple functions.
1.1.2 Project Profile
We have selected a project which is Multipurpose Pi for small, medium and large scale
enterprise. It will be beneficial in both Commercial Utility Model and Public Utility Model.
It will be based on embedded system technology.
The project will have following features:
Media Center :-
XBMC can be used to play almost all popular audio and video formats around. It was designed
for network playback, so you can stream your multimedia from anywhere in the house or
directly from the internet using practically any protocol available. Use your media as-is:
XBMC can play CDs and DVDs directly from the disk or image file, almost all popular archive
formats from your hard drive. XBMC will scan all of your media and create a personalized
library complete with box covers, descriptions, and fan art. There are playlist and slideshow
functions, a weather forecast feature and many audio visualizations. Once installed and
configured, your computer will become a fully functional multimedia jukebox.
NAS :-
NAS is Network Accessed Storage, one or more Hard Drive connected to the Multipurpose Pi
that provides file-based data storage services and sharing to other devices on the network.
Multipurpose Pi INTRODUCTION
KJIT
[14]
Controlling Electronic Devices :-
By connecting the different devices to GPIO (General Purpose Input Output) pins we can
connect almost all types of electronic devices and control them through different mediums
like Keyboard/Mouse, Android Phone, Tablets and Over Internet.
Currently we have connected an LED (Light Emitting Diode) and using android phone to
control it over Wi-Fi.
Web Server :-
A web server is a system that processes requests via HTTP, the basic network protocol used to
distribute information on the World Wide Web. The most common use of web servers is to
host websites, but there are other uses such as data storage, running enterprise applications,
handling email, FTP, educational purpose for learning in school and collages or other web uses.
Gamming :-
The emulation machine runs off of a Multipurpose Pi running Retro pie, this allows it to support
various emulators such as NES, SNES, Gameboy, Gameboy Colour, Gameboy Advance, Sega
Genesis, Neo Geo, MAME, PlayStation One and can even emulate an Apple II. It also supports
Python Games which we have practically implemented.
Multipurpose Pi INTRODUCTION
KJIT
[15]
1.2 Purpose
The system is being created for both public and industrial use.
Anyone can buy low cost device with multiple features compared to computer.
By this project computer literacy rate can be improved as it can be implemented
everywhere.
1.3 Scope
This device will improve the computer learning capabilities of students.
This device will improve the efficiency of an Enterprise.
This device can be used in home for entertainment, learning and luxury.
This device can work with any kind of display having RCA or HDMI port.
Exploring computing Education in Rural Schools.
Automation in Industries can be done.
It can be used as small scale web server anywhere.
1.4 Objective
In todays fast growing world of technology computer and its proper education is very
important. Our proposed project`s motto is to make available an learning platform at
very low cost which could be affordable by each and every one.
Low cost device with multiple features which gives enhancement in automation and
luxury.
1.5 Technology and Literature Review
There are many projects based on embedded system Raspberry Pi.
We have selected some of the best ones and configured all in one to make a
multipurpose device.
Some of the interesting projects are:
Raspberry Pi Web Server
How to set up a simple wired web server on your Raspberry Pi, with PHP and MySql.
The Raspberry Pi is a good choice for a webserver that will not receive too much traffic,
Multipurpose Pi INTRODUCTION
KJIT
[16]
such as a testing server, or small intranet, as it doesnt get too hot (so is nice and quiet), and
only uses around 5 Watts of power (approx. costing 3.50 a year if it's running 24/7)
http://www.instructables.com/id/Raspberry-Pi-Web-Server/
Raspberry Pi Remote For Free!
How to use the HDMI-CEC protocol to control your Pi with your Tv's remote control.
This is very useful because it saves you from having to buy a remote just for your Pi and
also leaves you with an open usb that you would have needed for your wireless keyboard
and mouse.
http://www.instructables.com/id/Raspberry-Pi-Remote-For-Free/
Raspberry Pi Smart Target
The Raspberry Pi Smart Target was designed to be hit by the now famous Flying Monkey,
but it can be hit by any other light object such as small ball. When the Target is hit the
following events happen:
1. A random sound effect is played through a small set of speakers connected to the
Raspberry Pi.
2. A "congratulations" message is displayed in the front LCD screen.
3. The Raspberry Pi grabs a snapshot from a network camera (Dropcam) and is posted to a
social network.
4. A random message is posted along with the picture taken by the Dropcam.
5. The whole action is immortalized in the interwebz.
http://www.instructables.com/id/Raspberry-Pi-Smart-Target/
Raspberry Pi as low-cost HD surveillance camera
This instruct able describes how to build a surveillance cam based on a Raspberry Pi
micro-computer which records HD video when something moves in the monitored area.
Live picture can be viewed from any web browser, even from your mobile while you're on
the road.
What you will get:
See live stream in any web browser from anywhere
Record any motion into video file
Multipurpose Pi INTRODUCTION
KJIT
[17]
Usually, such a cam will cost you around US$1.000, but with the result from this
intractable, you will get such a cam for only about US$120.
http://www.instructables.com/id/Raspberry-Pi-as-low-cost-HD-surveillance-camera/
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[19]
CHAPTER - 2
ABOUT THE SYSTEM
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[20]
2. About the System:
2.1 System Requirement Specification
2.1.1 Project Management Approach
Waterfall Model has been adopted as an approach for development of project.
Most of the requirements of the project are fixed and already thought of functionality updating
is expected in future. So Waterfall model is the right approach for our project.
The waterfall model is a sequential design process, often used in software development
processes, in which progress is seen as flowing steadily downwards through the phases of
Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation,
and Maintenance.
The waterfall development model originates in the manufacturing and construction industries:
highly structured physical environments in which after-the-fact changes are prohibitively
costly, if not impossible. Since no formal software development methodologies existed at the
time, this hardware-oriented model was simply adapted for software development.
Waterfall model, the following phases are followed in order:
1. Requirements
2. Analysis
3. design
4. coding
5. Testing
6. Acceptance
It places emphasis on documentation as well as source code. In less thoroughly designed and
documented methodologies, knowledge is lost if team members leave before the project is
completed, and it may be difficult for a project to recover from the loss.
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[21]
Figure-2.1.1 Water Fall Model
2.1.2 Study of Current System:
Currently, there are many people who dont have any computer knowledge and due to its cost
they cant afford it.
There are also many schools and organizations in rural areas where requirement of computer
is very necessary for education and development purpose.
There is very less awareness about the embedded systems which could reduce the cost of
computers and can be used for many purposes.
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[22]
2.1.3 Limitations of Current System:
Currently only computers are used for computer education that also not on all places.
Size of computer is very huge and it is bulky compared to Multipurpose Pi.
Cost of computer is also very high almost three times of Multipurpose Pi.
Higher power consumption for running a computer.
Limited display options are available.
Only Universal Serial Bus as port for connecting different devices.
Very less chance of easy portability.
Cannot run for 24 x 7 without specific environment.
2.1.4 Tools & Technology Used:
Technology used:-
Embedded System (Raspberry Pi)
The Raspberry Pi is a low cost, credit-card sized computer that plugs into a computer monitor
or TV, and uses a standard keyboard and mouse
Tools:-
Raspbian Operating System
Raspbian is a free operating system based on Debian optimized for the Raspberry Pi hardware.
An operating system is the set of basic programs and utilities that make your Raspberry Pi run.
XBMC Operating System
XBMC can be used to play almost all popular audio and video formats around. It was designed
for network playback, so you can stream your multimedia from anywhere in the house or
directly from the internet using practically any protocol available. Use your media as-is:
XBMC can play CDs and DVDs directly from the disk or image file, almost all popular archive
formats from your hard drive. XBMC will scan all of your media and create a personalized
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[23]
library complete with box covers, descriptions, and fan art. There are playlist and slideshow
functions, a weather forecast feature and many audio visualizations. Once installed and
configured, your computer will become a fully functional multimedia jukebox.
SD Formatter 4.0
This software formats all SD memory cards, SDHC memory cards and SDXC memory cards.
SD Formatter provides quick and easy access to the full capabilities of your SD, SDHC and
SDXC memory cards.
The SD Formatter was created specifically for memory cards using the SD/SDHC/SDXC
standards. It is strongly recommended to use the SD Formatter instead of formatting utilities
provided with operating systems that format various types of storage media. Using generic
formatting utilities may result in less than optimal performance for your memory cards.
The SD/SDHC/SDXC memory cards have a "Protected Area" on the card for the SD standard's
security function. The SD Formatter does not format the "Protected Area". Please use
appropriate application software or SD-compatible device that provides SD security function
to format the "Protected Area" in the memory card.
Win32 Disk Imager
This program is designed to write a raw disk image to a removable device or backup a
removable device to a raw image file. It is very useful for embedded development, namely Arm
development projects (Android, Ubuntu on Arm, etc).
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[24]
2.1.5 Functionality:
Media Center :-
XBMC can be used to play almost all popular audio and video formats around. It was designed
for network playback, so you can stream your multimedia from anywhere in the house or
directly from the internet using practically any protocol available. Use your media as-is:
XBMC can play CDs and DVDs directly from the disk or image file, almost all popular archive
formats from your hard drive. XBMC will scan all of your media and create a personalized
library complete with boxcovers, descriptions, and fanart. There are playlist and slideshow
functions, a weather forecast feature and many audio visualizations. Once installed and
configured, your computer will become a fully functional multimedia jukebox.
NAS :-
NAS is Network Accessed Storage, one or more Hard Drive connected to the Multipurpose
Pi that provides file-based data storage services and sharing to other devices on the network.
Controlling Electronic Devices :-
By connecting the different devices to GPIO (General Purpose Input Output) pins we can
connect almost all types of electronic devices and control them through different mediums
like Keyboard/Mouse, Android Phone, Tablets and Over Internet.
Currently we have connected an LED (Light Emitting Diode) and using android phone to
control it over Wi-Fi.
Web Server :-
A web server is a system that processes requests via HTTP, the basic network protocol used to
distribute information on the World Wide Web. The most common use of web servers is to
host websites, but there are other uses such as data storage, running enterprise applications,
handling email, FTP, educational purpose for learning in school and collages or other web uses.
Gamming :-
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[25]
The emulation machine runs off of a Multipurpose Pi running Retropie, this allows it to support
various emulators such as NES, SNES, Gameboy, Gameboy Color, Gameboy Advance, Sega
Genesis, Neo Geo, MAME, PlayStation One and can even emulate an Apple II. It also supports
Python Games which we have practically implemented.
2.1.6 Hardware and Software Specification:
H/w Requirements:
o Raspberry Pi Model B
o Display ( HDMI )
o Keyboard
o Mouse
o External Hard Disk
o USB Power Hub
o Wi-Fi Adapter
o Portable Power Bank
S/w Requirements:
o Operating System: Raspbian, XBMC
o Open Source applications and tools.
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[26]
2.1.7 Raspberry Pi V2 Latest Version
The Raspberry Pi 2 Model B is the second generation Raspberry Pi. It replaced the original Raspberry
Pi 1 Model B+ in February 2015.
Compared to the Raspberry Pi 1 it has:
A 900MHz quad-core ARM Cortex-A7 CPU
1GB RAM
Like the (Pi 1) Model B+, it also has:
4 USB ports
40 GPIO pins
Full HDMI port
Ethernet port
Combined 3.5mm audio jack and composite video
Camera interface (CSI)
Display interface (DSI)
Micro SD card slot
VideoCore IV 3D graphics core
Because it has an ARMv7 processor, it can run the full range of ARM GNU/Linux distributions,
including Snappy Ubuntu Core, as well as Microsoft Windows 10 (see the blog for more information).
The Raspberry Pi 2 has an identical form factor to the previous (Pi 1) Model B+ and has complete
compatibility with Raspberry Pi 1.
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[27]
2.2 Feasibility Study
Feasibility studies aim to objectively and rationally uncover the strengths and weaknesses
of an existing business or proposed venture, opportunities and threats as presented by the
environment, the resources required to carry through, and ultimately the prospects for
success. In its simplest terms, the two criteria to judge feasibility are cost required and value
to be attained.
The assessment is based on an outline design of system requirements, to determine whether
the company has the technical expertise to handle completion of the project.
Economic Feasibility
Economic analysis is the most frequently used method for evaluating the effectiveness of a
new system. More commonly known as cost/benefit analysis, the procedure is to determine
the benefits and savings that are expected from a candidate system and compare them with
costs.
If benefits outweigh costs, then the decision is made to design and implement the system.
An entrepreneur must accurately weigh the cost versus benefits before taking an action.
Cost-based study:
It is important to identify cost and benefit factors, which can be categorized as follows:
Development cost
Operating cost
This is an analysis of the costs to be incurred in the system and the benefits derivable out
of the system.
Time-based study:
This is an analysis of the time required to achieve a return on investments. The future value
of a project is also a factor.
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[28]
Operational Feasibility
Operational feasibility is a measure of how well a proposed system solves the problems, and
takes advantage of the opportunities identified during scope definition and how it satisfies
the requirements identified in the requirements analysis phase of system development.
Schedule Feasibility
A project will fail if it takes too long to be completed before it is useful. Typically this means
estimating how long the system will take to develop, and if it can be completed in a given
time period using some methods like payback period. Schedule feasibility is a measure of
how reasonable the project timetable is.
Technical Feasibility
A large part of determining resources has to do with assessing technical feasibility. It
considers the technical requirements of the proposed project. The technical requirements are
then compared to the technical capability of the organization. The systems project is
considered technically feasible if the internal technical capability is sufficient to support the
project requirements.
2.3 Project Planning
Project planning is part of project management, which relates to the use of schedules such as
Gantt charts to plan and subsequently report progress within the project environment.
Initially, the project scope is defined and the appropriate methods for completing the project
are determined. Following this step, the durations for the various tasks necessary to complete
the work are listed and grouped into a work breakdown structure. The logical dependencies
between tasks are defined using an activity network diagram that enables identification of the
critical path.
Necessary resources can be estimated and costs for each activity can be allocated to each
resource, giving the total project cost
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[29]
At this stage, the project plan may be optimized to achieve the appropriate balance between
resource usage and project duration to comply with the project objectives. Once established
and agreed, the plan becomes what is known as the baseline.
Progress will be measured against the baseline throughout the life of the project. Analyzing
progress compared to the baseline is known as earned value management.
Gantt Charts
Gantt Charts are useful tools for analyzing and planning more complex projects.
Help you to plan out the tasks that need to be completed
Give you a basis for scheduling when these tasks will be carried out
When a project is under way, Gantt charts are useful for monitoring its progress. You
can immediately see what should have been achieved at a point in time, and can
therefore take remedial action to bring the project back on course. This can be essential
for the successful and profitable implementation of the project.
Allow you to plan the allocation of resources needed to complete the project, and help
you to work out the critical path for a project where you must complete it by a particular
date.
When a project is under way, Gantt Charts help you to monitor whether the project is
on schedule. If it is not, it allows you to pinpoint the remedial action necessary to put it
back on schedule.
Sequential and parallel activities:
An essential concept behind project planning (and Critical Path Analysis) is that some activities
are dependent on other activities being completed first. As a shallow example, it is not a good
idea to start building a bridge before you have designed it!
These dependent activities need to be completed in a sequence, with each stage being more-or-
less completed before the next activity can begin. We can call dependent activities 'sequential'
or 'linear'.
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[30]
Other activities are not dependent on completion of any other tasks. These may be done at any
time before or after a particular stage is reached. These are nondependent or 'parallel' tasks.
Step 1.List all activities in the plan
For each task, show the earliest start date, estimated length of time it will take, and whether it
is parallel or sequential. If tasks are sequential, show which stages they depend on.
Step 2.Set up your Gantt chart
Head - up graph paper with the days or weeks through to task completion.
Step 3.Plot the tasks onto the graph paper
Schedule them in such a way that sequential actions are carried out in the required sequence.
Ensure that dependent activities do not start until the activities they depend on have been
completed.
Step 4.Presenting the analysis
The last stage in this process is to prepare a final version of the Gantt chart. This shows how
the sets of sequential activities link together, and identifies the critical path activities. At this
stage you also need to check the resourcing of the various activities. While scheduling, ensure
that you make best use of the resources you have available, and do not over-commit resource.
Analysis, development and testing of supporting modules are essential activities that must
be completed on time.
Hardware installation and commissioning is not time-critical as long as it is completed
before the Core Module Training starts.
Multipurpose Pi ABOUT THE SYSTEM
KJIT
[31]
Figure-2.3.1 Gantt chart
Multipurpose Pi ANALYSIS
KJIT
[33]
CHAPTER - 3
ANALYSIS
3. Analysis
Multipurpose Pi ANALYSIS
KJIT
[34]
3.1 E-R Diagram
An entity-relationship diagram (ERD) is a type of data modelling that shows a graphical representation
of objects or concepts within an information system or organization and their relationship to one
another.
An entity-relationship diagram (ERD) is a graphical representation of an information system that
shows the relationship between people, objects, places, concepts or events within that system. An ERD
is a data modelling technique that can help define business processes and can be used as the foundation
for a relational database.
Three main components of an ERD are the entities, which are objects or concepts that can have data
stored about them, the relationship between those entities, and the cardinality.
Which defines that relationship in terms of numbers.
Multipurpose Pi ANALYSIS
KJIT
[35]
E-R Diagram
Figure-3.1: E-R Diagram
Multipurpose Pi ANALYSIS
KJIT
[36]
3.2 Use Case Diagram:
A use case diagram at its simplest is a representation of a user's interaction with the system and
depicting the specifications of a use case. A use case diagram can portray the different types of users
of a system and the various ways that they interact with the system. This type of diagram is typically
used in conjunction with the textual use case and will often be accompanied by other types of diagrams
as well.
Multipurpose Pi ANALYSIS
KJIT
[37]
Use Case Diagram
Figure 3.2: Use case Diagram
Multipurpose Pi ANALYSIS
KJIT
[38]
3.3 Sequence Diagram:
The Sequence Diagram models the collaboration of objects based on a time sequence.
It shows how the objects interact with others in a particular scenario of a use case.
With the advanced visual modelling capability, you can create complex sequence diagram in few
clicks.
Besides, VP-UML can generate sequence diagram from the flow of events which you have defined in
the use case description.
The Sequence Diagram models the collaboration of objects based on a time sequence.
It shows how the objects interact with others in a particular scenario of a use case.
With the advanced visual modeling capability, you can create complex sequence diagram in few clicks.
Besides, VP-UML can generate sequence diagram from the flow of events which you have defined in
the use case description.
Multipurpose Pi ANALYSIS
KJIT
[39]
Sequence Diagram
Figure 3.3: Sequence Diagram
Multipurpose Pi ANALYSIS
KJIT
[40]
3.4 Activity Diagram:
It show the interaction, focusing on the work performance.
Display a sequence of actions including alternative execution and object involved in performing the
work.
Symbols:
Action state: It show the internal actions that are executed when in the state.
It typically has an automatic state transaction to another state when its actions have been performed.
Start State:
Stop state:
It show the interaction, focusing on the work performance.
Display a sequence of actions including alternative execution and object involved in performing the
work.
Multipurpose Pi ANALYSIS
KJIT
[41]
Activity Diagram
Figure-3.4: Activity Diagram
Multipurpose Pi ANALYSIS
KJIT
[42]
3.5 Class Diagram:
A class diagram is an illustration of the relationships and source code dependencies among classes in
the Unified Modelling Language (UML). In this context, a class defines the methods and variables in
an object, which is a specific entity in a program or the unit of code representing that entity.
In software engineering, a class diagram in the Unified Modelling Language (UML) is a type of static
structure diagram that describes the structure of a system by showing the system's classes, their
attributes, operations (or methods), and the relationships among objects.
The class diagram is the main building block of object oriented modelling. It is used both for general
conceptual modelling of the systematics of the application, and for detailed modelling translating the
models into programming code. Class diagrams can also be used for data modeling.[1] The classes in
a class diagram represent both the main objects, interactions in the application and the classes to be
programmed.A UML use case diagram for the interaction of a client (the actor) and a restaurant (the
system)
Multipurpose Pi ANALYSIS
KJIT
[43]
Class Diagram
Figure-3.5: Class Diagram
Multipurpose Pi DESIGN
KJIT
[44]
CHAPTER 4
DESIGN
Multipurpose Pi DESIGN
KJIT
[45]
4. Design
4.1 Raspberry Pi General Specifications
4.1.1 Raspberry Pi Specifications
CPU: BCM2835
CPU speed: 700 MHz
RAM: 512 MB
Ethernet: Yes
HDMI: Yes
Analog video: Yes
Audio 3.5 mm jack
SD socket: standard SD
On-board regulators: linear
Expansion header pins (GPIO): 26
USB ports: 2
Mounting holes: 2
Dimensions: 3.35 2.2 0.8
Weight: 40 g
Table-4.1.1: Raspberry Pi Specifications
Multipurpose Pi DESIGN
KJIT
[46]
4.1.2 GPIO input/output pin electrical characteristics Table :
Output low voltage < 0.40 V 1)
VOL < 0.66 V 2) < 0.40 V 3)
Output high voltage > 2.40 V 4)
VOH > 2.64 V 5) > 2.90 V 6)
Input low voltage < 0.80 V 7)
VIL < 0.54 V 8) < 1.15 V 9)
Input high voltage > 2.00 V 10)
VIH > 2.31 V 11) > 2.15 V 12)
Hysteresis > 0.25 V 13)
0.66 2.08 V 14)
Schmitt trigger input low threshold 1.09 - 1.16 V 15)
VT 0.9 16)
Schmitt trigger input high threshold 2.24 - 2.74 V 17)
VT+ 0.90 V 18)
Pull-up/down 40 65K 19) resistance 100K 20)
Pull-up/down < 50 uA 21) current < 28 uA 22)
Pin capacitance 5 pF 23)
Bus hold resistance 5-11K 24)
Table-4.1.2: GPIO input/output pin electrical characteristics Table
Multipurpose Pi DESIGN
KJIT
[47]
4.1.3 GPIO 26 Pin Header
P1: 26-pin header
Signal Pins Signal
+3.3V 1 2 +5V
GPIO_02 GPIO_00 3 4 +5V
(SDA1)
GPIO_03 GPIO_01 5 6 GND
(SCL1)
GPIO_04
7 8
GPIO_14
(GPCLK0) (UART0_TxD)
GND 9 10
GPIO_15
(UART0_RxD)
GPIO_17 11 12
GPIO_18
(PCM_CLK)
GPIO_27 GPIO_21 13 14 GND
GPIO_22 15 16 GPIO_23
+3.3V 17 18 GPIO_24
GPIO_10 19 20 GND
(SPI_0_MOSI)
GPIO_09 21 22 GPIO_25
(SPI_0_MISO)
GPIO_11
23 24
GPIO_08
(SPI_0_SCLK) (SPI_0_CE0_N)
GND 25 26
GPIO_07
(SPI_0_CE1_N)
Notes: 1. Signals in plain type are for Rev 2 boards, Signals for Rev 1 boards are shown in italics. 2. Primary functions for signals are shown in parentheses.
Table-4.1.3: GPIO 26 Pin Header
Multipurpose Pi DESIGN
KJIT
[48]
4.2 Raspbian OS :
4.2.1 Raspbian Desktop on High Resolution Display (HDMI) :
Figure-4.2.1: Raspbian Desktop on High Resolution Display (HDMI)
Multipurpose Pi DESIGN
KJIT
[49]
4.2.2 Raspbian Desktop on Low Resolution Display (RCA) :
Figure-4.2.2: Raspbian Desktop on Low Resolution Display (RCA)
Multipurpose Pi DESIGN
KJIT
[50]
4.2.3 Gamming On Multipurpose Pi:
Figure 4.2.3: Gamming On Multipurpose Pi
Multipurpose Pi DESIGN
KJIT
[51]
4.2.4 IDLE - Python Programming:
Figure-4.2.4: IDLE - Python Programming
Multipurpose Pi DESIGN
KJIT
[52]
4.2.5: Graphics Creation Programming:
Figure-4.2.5: Graphics Creation Programming
Multipurpose Pi DESIGN
KJIT
[53]
4.2.6: Starting Raspbian:
Figure-4.2.6: Starting Raspbian
Multipurpose Pi DESIGN
KJIT
[54]
4.2.7: Starting Raspberry Pi Controlling Via SSH:
Figure-4.2.7: Starting Raspberry Pi Controlling Via SSH
Multipurpose Pi DESIGN
KJIT
[55]
4.2.8: Shell in Raspbian:
Figure-4.2.8: Shell in Raspbian
Multipurpose Pi DESIGN
KJIT
[56]
4.2.9: Using Scratch Programming:
Figure-4.2.9: Using Scratch Programming
Multipurpose Pi DESIGN
KJIT
[57]
4.2.10: Raspbian Basic Configuration Menu:
Figure-4.2.10: Raspbian Basic Configuration Menu
Multipurpose Pi DESIGN
KJIT
[58]
4.3 XBMC OS ( Media Center ) :
4.3.1 XBMC Main Screen:
Figure-4.3.1: XBMC Main Screen
Multipurpose Pi DESIGN
KJIT
[59]
4.3.2 Images from Hard Drive:
Figure-4.3.2: Images from Hard Drive
Multipurpose Pi DESIGN
KJIT
[60]
4.3.3 Live Radio:
Figure-4.3.3: Live Radio
Multipurpose Pi DESIGN
KJIT
[61]
4.3.4 Live Tv (Add-on IPNA):
Figure-4.3.4: Live Tv (Add-on IPNA)
Multipurpose Pi DESIGN
KJIT
[62]
4.3.5 Live Tv:
Figure-4.3.5: Live TV
Multipurpose Pi DESIGN
KJIT
[63]
4.3.6 Movies Title:
Figure-4.3.6: Movies Title
Multipurpose Pi DESIGN
KJIT
[64]
4.3.7 Music from Hard Drive:
Figure-4.3.7: Music from Hard Drive
Multipurpose Pi DESIGN
KJIT
[65]
4.3.8 Music Streaming from Android Phone:
Figure-4.3.8: Music Streaming from Android Phone
Multipurpose Pi DESIGN
KJIT
[66]
4.3.9 Music Streaming from Internet:
Figure-4.3.9: Music Streaming from Internet
Multipurpose Pi DESIGN
KJIT
[67]
4.3.10 Video Streaming from Android Phone:
Figure-4.3.10: Video Streaming from Android Phone
Multipurpose Pi DESIGN
KJIT
[68]
4.4 Controlling Electronic Devices :
4.4.1 LED Testing With GPIO:
Figure-4.4.1: LED Testing With GPIO
Multipurpose Pi DESIGN
KJIT
[69]
4.4.2 Single LED Blinking:
Figure-4.4.2: Single LED Blinking
Multipurpose Pi DESIGN
KJIT
[70]
4.4.3 Controlling LED Using Android Device:
Figure-4.4.3: Controlling LED Using Android Device
Multipurpose Pi DESIGN
KJIT
[71]
4.5 NAS :
4.5.1 Network Attached File Server (NAS)
Figure-4.5.1: Network Attached File Server (NAS)
Multipurpose Pi DESIGN
KJIT
[72]
4.6 Web Server :
4.6.1 Accessing Web Server
Figure-4.6.1: Accessing Web Server
Multipurpose Pi IMPLEMENTATION
KJIT
[73]
CHAPTER 5
IMPLEMENTATION
Multipurpose Pi IMPLEMENTATION
KJIT
[74]
5. Implementation:
5.1 Implementation Environment:
Our project is based on embedded system, moreover it is multi user device (User cover both
Public utility and commercial Utility usage). User can use any feature whenever they want so
for that all the features combined in such a manner that users can use it easily.
Multi Users:
The environment in our system is Multi User environment. There can be multiple users like
Public at home, Workers in industries, Students in schools and colleges, Scientist and
researchers at their labs and organizations etc.
Multipurpose:
A better model is needed so that each user can perform their task easily. Moreover system
should be such that it is easily understandable by users so they can use this system with easily
and improve their productivity and knowledge.
For this we have divided modules in two parts based on operating system used. XBMC for
Media Center and Raspbian for Webserver, NAS, Controlling Electronic Devices & Gamming.
Implementation phase requires precise planning and monitoring mechanism in order to ensure
schedule and completeness.
5.2 Coding Standard:
The following guidelines are applicable to all aspects python development:
Make code as simple and readable as possible. Assume that someone else will be reading
your code.
Prefer small cohesive classes and methods to large monolithic ones.
Use a separate file for each class, struct, interface, enumeration, and delegate with the
exception of those nested within another class.
Write the comments first. When writing a new method, write the comments for each step
the method will perform before coding a single statement. These comments will become
Multipurpose Pi IMPLEMENTATION
KJIT
[75]
the headings for each block of code that gets implemented.
Use liberal, meaningful comments within each class, method, and block of code to
document the purpose of the code.
Mark incomplete code with // TODO: comments. When working with many classes at once,
it can be very easy to lose a train of thought.
Prefer while and for each over other available looping constructs when applicable. They
are logically simpler and easier to code and debug.
5.3 GPIO (General Purpose Input Output)
The GPIO pins on a Raspberry Pi are a great way to interface physical devices like buttons and
LEDs with the little Linux processor. If youre a Python developer, theres a sweet library
called RPi.GPIO that handles interfacing with the pins. In just three lines of code, you can get
an LED blinking on one of the GPIO pins.
The R-Pi has 17 GPIO pins brought out onto the header, most have alternated functions other
than just I/O, and there are two pins for UART, two for I2C and six for SPI. All the pins can
be use for GPIO with either INPUT or OUTPUT, there also internal pull-up & pull-downs for
each pin but the I2C pins have and onboard pull-up so using them for GPIO may not work in
some cases.
Using any of the pins will require extra care, than most Arduino users maybe be used to. These
pins are 3V3 not 5V like the AVR chips, and they a directly connected to the Broadcom chip
at the heart of the R-Pi. This means there is not protection, if you send 5V down a pin there is
a good chance of killing the Pi.
There will also be an issue with trying to draw to much power form the pins, according to the
data-sheet each pin programmed to current drive between 2mA and 16mA, and it has been
warned that trying to draw 16mA from several pins at once could also lead to a damaged Pi.
Also from the wiki the "maximum permitted current draw from the 3v3 pin is 50mA" and the
"maximum permitted current draw from the 5v pin is the USB input current (usually 1A) minus
any current draw from the rest of the board." The current draw for Model B is stated as 700mA
so with a 1A power supply this leaves about 300mA to play with.
Multipurpose Pi IMPLEMENTATION
KJIT
[76]
Installing RPi.GPIO
RPi.GPIO is a small python library that take some of the complexity out of driving the GPIO
pins, once install a single LED can be lit with 3 lines of python. Installing the library is almost
as simple, either at a text console or using Terminal enter the following
$ wget http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.1.0.tar.gz
$ tar zxf RPi.GPIO-0.1.0.tar.gz
$ cd RPi.GPIO-0.1.0
$ sudo python setup.py install
5.4 Tools for Python Code Quality:
There are various tools that can help you to check your Python code for PEP8 conformance
and general code quality. We recommend using them.
pep8 checks your Python code against some of the style conventions in PEP 8. Perform
style clean-ups on master to help avoid spurious merge conflicts.
pylint analyzes Python source code looking for bugs and signs of poor quality.
pyflakes also analyzes Python programs to detect errors.
flake8 combines both pep8 and pyflakes into a single tool.
Syntactic is a Vim plugin with support for flake8, pyflakes and pylint.
Multipurpose Pi IMPLEMENTATION
KJIT
[77]
5.5 Python Codes:
Python program for activating GPIO pin to glow LED.
import RPi.GPIO as GPIO ## Import GPIO library
GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(7, GPIO.OUT) ## Setup GPIO Pin 7 to OUT
GPIO.output(7,True) ## Turn on GPIO pin 7
Python program to switch off LED.
import RPi.GPIO as GPIO ## Import GPIO library
GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(7, GPIO.OUT) ## Setup GPIO Pin 7 to OUT
GPIO.output(7,False) ## Turn on GPIO pin 7
Python program to blink LED.
import RPi.GPIO as GPIO ## Import GPIO library
import time ## Import 'time' library. Allows us to use 'sleep'
GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(7, GPIO.OUT) ## Setup GPIO Pin 7 to OUT
##Define a function named Blink()
def Blink(numTimes,speed):
for i in range(0,numTimes): ## Run loop numTimes
print "Iteration " + str(i+1) ## Print current loop
GPIO.output(7,True) ## Switch on pin 7
time.sleep(speed) ## Wait
Multipurpose Pi IMPLEMENTATION
KJIT
[78]
GPIO.output(7,False) ## Switch off pin 7
time.sleep(speed) ## Wait
print "Done" ## When loop is complete, print "Done"
GPIO.cleanup()
## Ask user for total number of blinks and length of each blink
iterations = raw_input("Enter total number of times to blink: ")
speed = raw_input("Enter length of each blink(seconds): ")
## Start Blink() function. Convert user input from strings to numeric data types and pass
to Blink() as parameters
Blink(int(iterations),float(speed))
Multipurpose Pi TESTING
KJIT
[79]
CHAPTER - 6
TESTING
Multipurpose Pi TESTING
KJIT
[80]
6.1 TESTING PLAN
Software Testing has a dual function; it is used to identify the defects in program and it is used
to help judge whether or not program is usable in practice. Thus software testing is used for
validation and verification, which ensure that software conforms to its specification and meets
need of the software customer.
Developer resorted Alpha testing, which usually comes in after the basic design of the program
has been completed. The project scientist will look over the program and give suggestions and
ideas to improve or correct the design. They also report and give ideas to get rid of around any
major problems. There is bound to be a number of bugs after a program have been created.
Analyze and check system representations such as the requirements document, design diagrams
and program source code. They may be applied at all stages of the process.
Figure 6.1 Testing Diagram
Multipurpose Pi TESTING
KJIT
[81]
6.2 TESTING STRATEGY
Unit Testing
Software products are normally tested first at the individual component (unit) level. Unit
testing (or module testing) is the testing of different units (or modules) of a system in
isolation.
Integration Testing
After testing all the components individually the components are slowly integrated and
tested at each level of integration. That is called integration testing.
System Testing
Finally the fully integrated system is tested that is called system testing.
6.3 TESTING METHODS
Statistical Testing
Statistical Testing is used to test the programs performance and reliability and to check
how it works under operational conditions. Tests are design to reflect the actual user inputs
and their frequency.
The stages involved in the statistical analysis for this system are as follows:
Parameter type mismatches
Parameter number mismatches
Black-Box Testing
In Black-Box Testing or Functional Testing, Developers are concerned about the output of
the module and software, i.e. whether the software gives proper output as per the
requirements or not. In another words, this testing aims to test behavior of program against
it specification without making any reference to the internal structure of the internal
structure of the program or the algorithms used. Therefore the source code is not needed,
and so even purchased modules can be tested. The program just gets a certain input and its
functionality is examined by observing the output.
This can be done in the following ways:
Multipurpose Pi TESTING
KJIT
[82]
Input Interface
Processing
Output Interface
The programs get certain inputs. Then the program does its jobs and generates a certain
output, which is collected by a second interface. This result is then compared to the
expected output, which has been determined before the test.
White Box Testing
White box testing is an important primary testing approach. Here code is inspected to see
what it does. This test is designed to check the code. Code is tested using code scripts,
driver, etc which are employed to directly interface with and drive the code.
The tester can analyse code and use the knowledge about the structure of a component to
drive the test data.
Performance Testing
Performance testing is design to test the runtime performance of the system within the
context of the system. This test is performed at module level as well as the as at system level.
Individual modules developed by Developers are tested for required performance.
Multipurpose Pi TESTING
KJIT
[83]
TEST CASES
TEST CASE: Starting, Power Failure, Internet Failure
Sr.
No
Test Case Expected Output Actual Output Status
1 Starting Raspberry Pi
with Raspbian OS
Raspbian should
Boot and Desktop
should be loaded
Booting
completed and
Desktop Loaded
Pass
2 Power Failure &
Reboot (Raspbian)
Raspbian should
Boot and Desktop
should be loaded
Booting Done
Desktop Loaded
Message : Use
Power Off to
Shutdown
Pass
3 Starting Raspberry Pi
with XBMC OS
XBMC should Boot
and Media Centre
should be loaded
Booting
completed and
Media Centre
Loaded
Pass
4 Power Failure &
Reboot (XBMC)
XBMC should Boot
and Media Centre
should be loaded
Booting Done.
Media Centre
Loaded.
Message : Use
Power Off to
Shutdown
Pass
5 Internet Connection
Lost
Running
Applications do not
affected other than
live streaming
All applications
running
successfully.
Message:
Internet Conn
Lost
Pass
Table: 6.1.1 Test Case for Starting, Power Failure, Internet Failure.
- 84 -
CHAPTER - 7
CONCLUSION & FUTURE
WORK
- 85 -
7. Conclusion & Future Work:
7.1 Conclusion:
The development of Multipurpose Pi includes so many people like user system developer, user
of system and the management, it is important to identify the system requirements by properly
collecting required data for its development.
Proper design builds upon this foundation to give a blue print, which is actually implemented
by the developers. On realizing the importance of systematic documentation all the processes
are implemented using a software engineering approach.
Working in a live environment enables one to appreciate the intricacies involved in the System
Development Life Cycle (SDLC) with Water fall model.
The Multipurpose Pi is developed using embedded system Raspberry Pi and Open Source tools.
The Project provide a credit card sized computer with multiple features which can be used as
both public utility model and commercial utility model.
The system includes mainly 5 modules:
(i) Media Center
(ii) Web Server
(iii) Controlling Electronic Devices
(iv) Network Access Storage
(v) Gamming
We have gained a lot of practical knowledge from this project, which we think, shall make us
stand in a good state in the future.
- 86 -
7.2 Future Work:
We will try to implement voice recognition.
Controlling electronic devices directly through voice commands.
Controlling more number of electronic devices.
We will try to add motion sensing technology.
Add more applications to maximize the luxury living by automations.
- 87 -
REFRENCES
1. Raspberry Pi Official Website
http://www.raspberrypi.org/
We got the startup and basic guide to achieve this successful completion of project.
2. Raspberry Pi Forum
We got help from the developer all over the world by this forum.
http://www.raspberrypi.org/forums/
3. Source forge
We got many open source tools and softwares from source forge like SD card formatter,
win32 disk writer etc.
http://www.sourceforge.net/
4. Instructables
We got ideas and help to understand the procedures easily from this tutorial website.
http://www.instructables.com/
5. Google
Last but not least, without Google we could not think to resolve our problems we faced. We
surfed thousands of website through it to successfully complete the project.
http://www.raspberrypi.org/documentation/usage/gpio/