Vous êtes sur la page 1sur 84

Scribd

Search
Search
Search
Upload
EN
Change Language

Home
Saved
Bestsellers
Books
Audiobooks
SnapshotsLOPMENT OF AN ARDUINO-BASED EMBEDDED SYSTEM.
Case: Greenhouse monitoring
ThesisScribd
SearchScribd
Search
Search
Search
Upload
EN
Change Language

Home
Saved
Bestsellers
Books
Audiobooks
Snapshots
Magazines
Documents
Sheet Music

Once you upload an approved document, you will be able to download the document

Thesis.pdf

Don't want to upload?


Get unlimited downloads as a member

Sign Up Now
Upload a document to access your download
Upload your original presentations, research papers, class notes, or other
documents to download Thesis.pdf

Select Documents To Upload


or drag & drop
Supported file types: pdf, txt, doc, ppt, xls, docx, and more
By uploading, you agree to our Scribd Uploader Agreement

Reach more than 90 million readers

Upload in seconds

Index with Google and other search engines


Embed on your own website

FROM OUR USERS


Since discovering Scribd, it's the only website I use to upload and share my
documents. It's fast, easy to use, and I can upload as much as I want.

Marin S.

I go back to Scribd every time because I know I can trust it to work quickly and
the content will look great. Scribd helps me tell better stories.

Sara R.

I use Scribd because it's the best place to find high quality information and share
it with a global audience.

Almir O.

Footer Menu
ABOUT
About Scribd
Press
Our blog
Join our team!
Contact Us
Invite Friends
Gifts
SUPPORT
Help / FAQ
Accessibility
Purchase help
AdChoices
Publishers
LEGAL
Terms
Privacy
Copyright
Social Media
Scribd - Download on the App Store
Scribd - Get it on Google Play
Copyright � 2019 Scribd Inc. .Browse Books.Site Directory.
Site Language:
English
Change Language

Search
Search
Upload
EN
Change Language

Home
Saved
Bestsellers
Books
Audiobooks
Snapshots
Magazines
Documents
Sheet Music
1 views
0Up votes, mark as useful
0Down votes, mark as not useful
electronic voting machine
Uploaded bysony Date uploadedon Apr 24, 2019
Description:electronic voting machine is used for voting without any riggingFull
description

Save
Save Electronic Voting Machine For Later

Embed

Share

Print
RELATED TITLES
Carousel Next
Avoid Railway Accidents at Unattended Railway Gates Using 8051 Microcontroller
Avoid Railway Accidents at Unattended Railway Gates Using 8051 Microcontroller
Electro Principe
Electro Principe
cct dgrm
cct dgrm
secification generale
secification generale
AC i DC choke
AC i DC choke
design of a two tone generator
design of a two tone generator
Rectifier
Rectifier
Ac Ripple Current in Dc Link
Ac Ripple Current in Dc Link
slvu377
slvu377
Discrete Semiconductor Devices and Circuits_42_Performance-Based Assessments for
Semiconductor Circuit Competencies
Discrete Semiconductor Devices and Circuits_42_Performance-Based Assessments for
Semiconductor Circuit Competencies
AP185 E1 Crisostomo Sevilla.pdf
AP185 E1 Crisostomo Sevilla.pdf
Question Paper Edc
Question Paper Edc
AC Direct Off-Line Power Supplies
AC Direct Off-Line Power Supplies
Solutions Chap13
Solutions Chap13
str s6707 08
str s6707 08
Frequency Converter With Active Rectifiers and Sequential Connection of Six
Inverters in Each Phase of the Load _ Technique and Programs
Frequency Converter With Active Rectifiers and Sequential Connection of Six
Inverters in Each Phase of the Load _ Technique and Programs
LGP55L-12LBP+EAY62512801+
LGP55L-12LBP+EAY62512801+
BasicDCpowerOct2013 Emerson
BasicDCpowerOct2013 Emerson
04417606
04417606
project work-converted.pptx
project work-converted.pptx
Download Now
Jump to Page
1
You are on page 1of 63

Search inside document


Search document

1
AN INDUSTRY ORIENTED MINI PROJECT REPORT
On
ELECTRONIC VOTING MACHINE
Submitted in partial fulfillment of requirements For the award of the degree of
BACHELOR OF TECHNOLOGY
In
ELECTRONICS & COMMUNICATION ENGINEERING
By
A.V.KARTHIK PRASAD

(Regd No: 15891A0462) A. HARINI REDDY (Regd No: 15891A0463) C.HARIKA (Regd No:
15891A0472)
Under the guidance of
Mrs. R.B.KALYANI (
Assistant Professor)
DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING
2018-2019

i
DECLARATION
I hereby declare that project entitled

ELECTRONIC VOTING MACHINE

is bonafide work duly completed by us. It does not contain any part of project or
thesis submitted by any other candidate to this or any other institute of the
university. All such material that have been obtained from other sources have been
duly acknowledged.
A.V.KARTHIK PRASAD Regd No: 15891A0462 A.HARINI REDDY Regd No: 15891A0463 C. HARIKA
Regd No: 15891A0472

ii
DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING
CERTIFICATE
This is to certify that the thesis work titled �
ELECTRONIC VOTING MACHINE
� submitted
by
A.V.KARTHIK PRASAD (Regd No: 15891A0462)
,
A.HARINI REDDY (Regd No: 15891A0463), C.HARIKA (Regd No: 15891A0472)
in partial fulfillment of the requirements for the award of the degree of Bachelor
of Technology in Electronics & Communication Engineering to the Vignan Institute Of
Technology And Science, Deshmukhi is a record of bonafide work carried out by
him/her under my guidance and supervision. The results embodied in this project
report have not been submitted in any university for the award of any degree and
the results are achieved satisfactorily.
Mrs.R.B. Kalyani Dr. N Dinesh Kumar
(Asst. Professor)

(Head of the department)

Pages 4-47 for members only


Unlock Full Access with a 30 Day Free Trial
Continue Reading For Free

Pages 51-63 for members only


Unlock Full Access with a 30 Day Free Trial
Continue Reading For Free
Share this document
Share or Embed Document
Sharing Options
Share On Facebook, Opens A New WindowShare On Twitter, Opens A New WindowShare On
LinkedIn, Opens A New WindowShare With Email, Opens Mail ClientCopy Text
Related Interests
Rectifier
Direct Current
Capacitor
Computer Hardware
Electrical Engineering
Documents Similar To electronic voting machine
Carousel Next
Avoid Railway Accidents at Unattended Railway Gates Using 8051 Microcontroller
Avoid Railway Accidents at Unattended Railway Gates Using 8051 Microcontroller
UPLOADED BY

Mohit Tiwari
Electro Principe
Electro Principe
UPLOADED BY

Ojog Ciprian Alin


cct dgrm
cct dgrm
UPLOADED BY

Uche Avriel Asimov Oputa


secification generale
secification generale
UPLOADED BY

Nic Ric
AC i DC choke
AC i DC choke
UPLOADED BY

Nedel Labile
design of a two tone generator
design of a two tone generator
UPLOADED BY
elpunte2
Rectifier
Rectifier
UPLOADED BY

El Zapater
Ac Ripple Current in Dc Link
Ac Ripple Current in Dc Link
UPLOADED BY

Vijit Dubey
slvu377
slvu377
UPLOADED BY

Thuba� Chaves
Discrete Semiconductor Devices and Circuits_42_Performance-Based Assessments for
Semiconductor Circuit Competencies
Discrete Semiconductor Devices and Circuits_42_Performance-Based Assessments for
Semiconductor Circuit Competencies
UPLOADED BY

Mahmoud Basho
AP185 E1 Crisostomo Sevilla.pdf
AP185 E1 Crisostomo Sevilla.pdf
UPLOADED BY

Richmond L. Crisostomo
Question Paper Edc
Question Paper Edc
UPLOADED BY

Treasa Sebastian
AC Direct Off-Line Power Supplies
AC Direct Off-Line Power Supplies
UPLOADED BY

Nassim Hani Koubeissi


Solutions Chap13
Solutions Chap13
UPLOADED BY

api-3730129
str s6707 08
str s6707 08
UPLOADED BY

MickRdz
Frequency Converter With Active Rectifiers and Sequential Connection of Six
Inverters in Each Phase of the Load _ Technique and Programs
Frequency Converter With Active Rectifiers and Sequential Connection of Six
Inverters in Each Phase of the Load _ Technique and Programs
UPLOADED BY

gunawansigi36
LGP55L-12LBP+EAY62512801+
LGP55L-12LBP+EAY62512801+
UPLOADED BY
Richard Jaca
BasicDCpowerOct2013 Emerson
BasicDCpowerOct2013 Emerson
UPLOADED BY

hendpraz88
04417606
04417606
UPLOADED BY

Sandy Ronaldo
project work-converted.pptx
project work-converted.pptx
UPLOADED BY

Sidhant Kaushik
Chapter 10.pdf
Chapter 10.pdf
UPLOADED BY

Amir
A Project Report on the Analysis of Portable DC Power Supply
A Project Report on the Analysis of Portable DC Power Supply
UPLOADED BY

Rana Jahanzaib
tsd-1395
tsd-1395
UPLOADED BY

vincent02hk_57881301
FONTE MDR 40-
FONTE MDR 40-
UPLOADED BY

DEBORA CARLA SANTANA


Sursa DC 24 V 192681
Sursa DC 24 V 192681
UPLOADED BY

ovidiutache
Mp Project Report Final (1)
Mp Project Report Final (1)
UPLOADED BY

MalikMajid
mXvsrsz
mXvsrsz
UPLOADED BY

Dieguin Su�rez
Diodes
Diodes
UPLOADED BY

Mohammad Awal
00923768.pdf
00923768.pdf
UPLOADED BY
Muhammad Jahanzeb
manual (2)
manual (2)
UPLOADED BY

Bustanul Firdaus
More From sony
generations of cellular network
generations of cellular network
UPLOADED BY

sony
tech sem manisha docx. 2 (1).docx
tech sem manisha docx. 2 (1).docx
UPLOADED BY

sony
mini doc 232.docx
mini doc 232.docx
UPLOADED BY

sony
ARDUINO BASED FLOOR CLEANING ROBOT USING ULTRASONIC SENSOR.docx
ARDUINO BASED FLOOR CLEANING ROBOT USING ULTRASONIC SENSOR.docx
UPLOADED BY

sony
Footer MenuBack To Top
ABOUT
About Scribd
Press
Our blog
Join our team!
Contact Us
Invite Friends
Gifts
SUPPORT
Help / FAQ
Accessibility
Purchase help
AdChoices
Publishers
LEGAL
Terms
Privacy
Copyright
Social Media
Scribd - Download on the App Store
Scribd - Get it on Google Play
Copyright � 2019 Scribd Inc.Browse BooksSite Directory
Site Language:
English
Change Language
Related titles
Carousel Next
Avoid Railway Accidents at Unattended Railway Gates Using 8051 Microcontroller
Avoid Railway Accidents at Unattended Railway Gates Using 8051 Microcontroller
Electro Principe
Electro Principe
cct dgrm
cct dgrm
secification generale
secification generale
AC i DC choke
AC i DC choke
design of a two tone generator
design of a two tone generator
Rectifier
Rectifier
Ac Ripple Current in Dc Link
Ac Ripple Current in Dc Link
slvu377
slvu377
Discrete Semiconductor Devices and Circuits_42_Performance-Based Assessments for
Semiconductor Circuit Competencies
Discrete Semiconductor Devices and Circuits_42_Performance-Based Assessments for
Semiconductor Circuit Competencies
AP185 E1 Crisostomo Sevilla.pdf
AP185 E1 Crisostomo Sevilla.pdf
Question Paper Edc
Question Paper Edc
Click To Expand Related Titles
CENTRIA UNIVERSITY OF APPLIED SCIENCES
Information Technology
May 2016
ABSTRACT
Unit
Kokkola - Pietarsaari
Date
May 2016
Author
Eetu-Pekka Kouhia
Degree Program
Information Technology
Name of thesis
DEVELOPMENT OF AN ARDUINO-BASED EMBEDDED SYSTEM.
Case: Greenhouse monitoring
Instructor
Kauko Kolehmainen
Pages
26 + 28
Supervisor
Kauko Kolehmainen
Today embedded systems are replacing various systems that used to be designed with
a set of complex
electronic circuits. Usually the heart of the embedded system i
MagazinesScribd
Page 1
Data Logger using Raspberry Pi Scott Cairns - 1817523 April 2013Dissertation
submitted in partial fulfilment for the degree of BSc (Hons)
ComputingScienceDepartment of Computing Science and MathematicsUniversity of
Stirling 0
Page 2
Abstract The Raspberry Pi � a newly released credit card sized microcomputer � has
sparked a lot ofinterest since its release resulting in a large amount of projects
being carried out using it. Thisproject looks at using the Raspberry Pi to create a
cost efficient data logger. Data loggers aregenerally expensive and limScribd
Search
Search
Search
Upload
EN
Change Language

Home
Saved
Bestsellers
Books
Audiobooks
Snapshots
Magazines
Documents
Sheet Music

Once you upload an approved document, you will be able to download the document

Main Project Report Final 2

Don't want to upload?


Get unlimited downloads as a member

Sign Up Now
Upload a document to access your download
Upload your original presentations, research papers, class notes, or other
documents to download Main Project Report Final 2

Select Documents To Upload


or drag & drop
Supported file types: pdf, txt, doc, ppt, xls, docx, and more
By uploading, you agree to our Scribd Uploader Agreement

Reach more than 90 million readers

Upload in seconds

Index with Google and other search engines

Embed on your own website

FROM OUR USERS


Since discovering Scribd, it's the only website I use to upload and share my
documents. It's fast, easy to use, and I can upload as much as I want.

Marin S.

I go back to Scribd every time because I know I can trust it to work quickly and
the content will look great. Scribd helps me tell better stories.

Sara R.

I use Scribd because it's the best place to find high quality information and share
it with a global audience.
Almir O.

Footer Menu
ABOUT
About Scribd
Press
Our blog
Join our team!
Contact Us
Invite Friends
Gifts
SUPPORT
Help / FAQ
Accessibility
Purchase help
AdChoices
Publishers
LEGAL
Terms
Privacy
Copyright
Social Media
Scribd - Download on the App Store
Scribd - Get it on Google Play
Copyright � 2019 Scribd Inc. .Browse Books.Site Directory.
Site Language:
English
Change Language
offered constant support, motivation andfeedback. I would also like to thank
Professor Leslie Smith for ideas during the initialproposal of the project.3
Page 5
Table of Contents
Abstract...........................................................................
....................................................1Attestation...................
...................................................................................
.....................2Acknowledgements.............................................
................................................................3Table of
Contents...........................................................................
......................................4List of
Figures............................................................................
.........................................51
Introduction.......................................................................
...........................................61.1Background and
Context............................................................................
...........61.2Scope and
Objectives.........................................................................
...................71.3Achievements................................................
........................................................71.4Overview of
Dissertation.......................................................................
...............72 State-of-The-
Art................................................................................
...........................92.1Hardware............................................
...................................................................92.2Commercial
data
loggers............................................................................
.........102.3Solar
Logger.............................................................................
...........................112.4Garage
monitor............................................................................
.......................112.5PiEye �������������������.
������������������. ................ 112.6Temperature
Sensor.............................................................................
................122.7Summary.......................................................
......................................................123
Development........................................................................
.......................................133.1Design.................................
................................................................................133
.1.1Installer......................................................................
.................................133.1.2Data
logger.............................................................................
.....................133.2Implementation...........................................
........................................................163.2.1Software............
...................................................................................
.......163.2.2Hardware.............................................................
........................................194 Testing and
Evaluation.........................................................................
.......................204.1Testing................................................
.................................................................204.1.1Data
logging over the
network....................................................................204.1.2D
ata logging on the SD
card.......................................................................204.1.3T
aking a single
image..............................................................................
....214.1.4Data logging with no webcam plugged
in...................................................214.1.5Single image capture
with no webcam plugged in......................................214.1.6Using
unauthorised
keys.............................................................................22
4.1.7Testing the optical
sensor............................................................................2
24.1.8Testing the temperature
sensor....................................................................234.1.9Us
ing a standard user
account.....................................................................244.2Is
sues and
limitations........................................................................
..................245
Conclusion.........................................................................
.........................................265.1Conclusion...........................
...............................................................................265.
2Future
Work...............................................................................
.........................265.2.1Portability........................................
............................................................265.2.2Sensors.........
...................................................................................
............275.2.3Audio
feedback...........................................................................
................275.2.4Recording
software...........................................................................
..........27References.............................................................
............................................................28Appendix A Source
code for FFServer.conf
file................................................................30Appendix B
Source code for installation
file.....................................................................31Appendix
C Software Installation
guide............................................................................32
Appendix D User
guide..............................................................................
.......................36Appendix E Source code for logger.py
Program................................................................414
Page 6
List of Figures Figure 1. A fully assembled Gertboard with the
Pi...............................................................9Figure 2. The
Adafruit Pi
Cobbler............................................................................
..........10Figure 3. The Pi-Face Digital
Interface..........................................................................
....10Figure 4. Typical output the user will see when Data
Logging...........................................16Figure 5. Outcome of first test
case...............................................................................
.....20Figure 6. Outcome of second test
case...............................................................................
20Figure 7. Outcome of the third test
case.............................................................................21
Figure 8. Outcome of the fourth test
case...........................................................................21Fi
gure 9. Outcome of the fifth test
case..............................................................................2
2Figure 10.Outcome of the sixth test
case.........................................................................22Figu
re 11.Outcome of the seventh test
case.....................................................................23Figure
12.Outcome of the eight test
case.........................................................................23Figu
re 13.Outcome of the ninth test
case........................................................................24Figur
e 14.Snapshot of the top command when
storing....................................................24Figure 15.Snapshot of
the top command when
streaming...............................................25Figure 16.List of frame
formats for
webcam...................................................................35Figure
17.Terminal view for changing root
password.....................................................37Figure 18.Terminal
view for changing root
password.....................................................37Figure 19.Terminal
view when running
program............................................................38Figure
20.Terminal view showing
stream........................................................................38Fig
ure 21.Terminal view when beginning
logging..........................................................38Figure
22.Terminal view showing
store..........................................................................39Fi
gure 23.Terminal view when beginning
logging..........................................................39Figure 24.List
of contents within logger
folder...............................................................39Figure
25.Terminal view taking single
image..................................................................405
Page 7
1 Introduction The aim of this project is to create a functional data logger using
the Raspberry Pi that iscapable of recording information from the webcam,
microphone and various GPIO sensorssuch as temperature and optical sensors. This
will allow the user to control the data loggerusing buttons connected via GPIO. The
Raspberry Pi required various software packages andPython modules to be installed
for the Raspbian Wheezy operating system to allowinteraction with both USB devices
and GPIO devices.The project aims to allow anyone who has a spare webcam
(compatible with the Pi) ormicrophone and a Raspberry Pi to use the software in
order to create a data logging device,which could be used for things such as a cost
efficient CCTV camera, recording audioinformation (such as notes the user may wish
to hear back later). If the users have a batterypack this would enable it to be
potentially used anywhere (limited only by battery life) evenin extreme cases such
as being used to record climbing mountains or bungee jumping. Thefinal device will
allow the user to upload the video and audio at a later date (or stream
ifwirelessly connected to a network). This can be extended to make use of the GPIO
byincluding other sensors (a typical temperature sensor such as the one used in
this project � theTMP36 � costs about one pound).The project that has been
undertaken is to develop a portable data logger using the newlyreleased Raspberry
Pi microcomputer. As the Raspberry Pi was newly released onset of thisproject (the
official release was 29 February 2012) this involved research into the device,
aswell as any required hardware to ensure there were no compatibility issues, the
operatingsystems available to such a device, the software available which would
allow the device tointeract with sensors (such as webcams and microphones) and
interaction with the GPIO(General Purpose Input / Output). The GPIO is a collection
of small pins on the Raspberry Piwhich allows devices to be attached and
controlled. The operating system can detect andconfigure for either input or
output, and this project makes use of this to allow LEDs to beenabled and disabled
for purposes of user feedback, and also allow buttons to be pressed(enabling
interaction with the program and the carrying out of commands such as
initialisingdata logging) as well as receiving sensor data (temperature and optical
for this project,however many more exist) using the GPIO pins. GPIO pins can be
used using variousdifferent methods; this project makes use of the newly released
Gertboard15, which slots ontothe GPIO pins to extend the capability of the GPIO.
The Gertboard includes motor controller,dual channel digital to analogue converter,
dual channel analogue to digital converter, on-board LEDs, buttons15. 1.1
Background and Context The Raspberry Pi has received a lot of attention ever since
it was first announced. Sincerelease, many lot of people have obtained Pi�s to
tinker about with and create various projectsincluding streaming video and
recording temperatures, but there appears to be a lack of all-round data loggers. A
basic temperature data logger can cost between �40 and over �300, andfunctionality
can often be limited to viewing a digital display of the current temperature
ordisplay over a limited time20. In addition it would cost over �100 for wireless
webcam tostream over the network21 and even that does not include audio. This
project makes use of the6
Page 8
Raspberry Pi � a $25 Linux box22 � and a small number of accessories which
includes; anoptical sensor23, a temperature sensor24 and a webcam25, all of which
can be purchased forunder �25 to turn the Raspberry Pi into a data logger capable
of recording and steamingwebcam video, storing webcam video and audio and recording
via text document, internetupload graphing temperature and optical sensor data in
real time. 1.2 Scope and Objectives The overall goal of this project was to develop
a data logger using the Raspberry Pimicrocomputer. The project included development
of software for the Raspberry Pi using thePython programming language and a variety
of modules available for the programminglanguage to allow interaction with USB
sensors (such as webcams and microphones), GPIOsensors (such as temperature sensors
and optical sensors), GPIO inputs (such as buttons) andGPIO outputs (such as LEDs).
This software would be used to allow the Raspberry Pi toautomatically log data from
hardware devices such as USB Webcams, microphones and avariety of other sensors
including GPIO temperature sensors and optical sensors. It wouldallow users to make
use of the Gertboard to press one of the three available buttons to run
anappropriate command. The aims of the project also included the setting up of the
Gertboardand a breadboard to allow the Raspberry Pi to interface with the GPIO with
devices such assensors, LEDs and push buttons.The final project includes a working
data logger, consisting of a Raspberry Pi connected toa Gertboard. The Gertboard is
fully configured to make use of the on-board buttons and thenthis is also connected
to a breadboard which allows multicolour LEDs and a temperature andoptical sensor
to be connected. The Raspberry Pi contains an SD card which holds theRaspbian
Wheezy operating system and the project software; the first script �logger.py� is
themain software used for data logging, running this allows use of the GPIO buttons
to start andend recording as well as changing the streaming method and taking a
single image capture.Pressing the appropriate buttons calls a function which
executes the required commands. Thesecond item of software, �installation.py�, is a
file to help users with installation of the datalogger. It automatically downloads
most of the required packages and Python modules, whichallows it to be used with
the installation guide to make the installation process as easy andquick as
possible reducing chances of the user encountering problems due to missing
softwareor required Python modules. 1.3 Achievements Developments that have
occurred through the duration of the project include: � Learning to use Raspbian
Wheezy operating system� Understanding how to connect to the Raspberry Pi remotely
(using SSH)� Developing an understanding of Python programming language�
Understanding of the required packages to get the webcam to stream as well as the
command line parameters for these packages � Understanding of the required packages
and Python modules to interact with GPIO and the Gertboard to obtain reading from
sensors and control output � Understanding of the EEML package to allow real time
graphing via COSM� Understanding of threading and multiprocessing in Python to
allow logging of three different sensors as well as keyboard inputs � Learning how
to use a breadboard, Gertboard and the electrical components used with this (such
as LEDs, buttons, sensors, capacitors, resistors)7
Page 9
� Developed a functioning data logger The overall achievement from this project is
a Raspberry Pi with the suitable software andhardware to allow it to record data
from sensors; this includes two items of software onewhich runs the Python script
to allow data logging and one to assist in the installation of thesoftware with the
installation guide. 1.4 Overview of Dissertation The thesis contains five different
chapters which explain the project, discuss how it wasdeveloped, what was required,
the testing of the product and how it could be extendedChapter 1 gives an
introduction to the project, background and what this project has done,the goals
and scope of the project and the achievements of the project. Chapter 2 contains
areview of projects in the same area and how they differ from this project,
including a briefdescription of some of the hardware used by this and similar
projects. Chapter 3 provides adescription of the software and hardware used to
achieve the goal of creating a Data loggerusing the Raspberry Pi, including what
each software package is used for, as well as thedesign of the project. Chapter 4
includes the testing of this software and product as well asdetailed issues and
limitations faced during this project. Chapter 5 gives the conclusion anddiscusses
potential future work for the project.8
Page 10
2 State-of-The-Art Although the Raspberry Pi is a relatively new device (officially
released 29 February 2012) ithas generated a massive amount of interest due to the
low cost of the device, this has resultedin a massive amount of projects being
undertaken on the Raspberry Pi in the short time it hasbeen available. 2.1 Hardware
To the best knowledge of the author, no project of this exact specification has
beendeveloped. Data loggers using the Raspberry Pi appear to be common however
little appear tobe based on visual and audio information, using GPIO inputs and
outputs as well as allowingportability. The GPIO (General Purpose Input / Output)
is a collection of pins which can beaccessed on the Raspberry Pi to allow use with
other electrical components such as LEDs,buttons, and sensors. The project also
makes use of the Gertboard Rev 2 which has onlyrecently been released (officially
released 17 Jan 2013)11 to interact with and extend the GPIOcapabilities, the
Gertboard connects directly to the Raspberry Pi GPIO pins by slotting on tothe
pins, it contains several LEDs, switches, converters, and a motor controller, one
of theseconverters is the MCP3002 analogue to digital converter which is built into
the board. Thefully assembled Gertboard is shown in Figure 1 (image taken from
ModMyPi32)Figure 1. A fully assembled Gertboard with the PiIt appears most projects
involving GPIO sensors appear to make use of the MCP3008 andMCP3002 standalone
analogue to digital converters rather than the Gertboard. The MCP3002is a 2.7V Dual
channel 10 bit analogue to digital converter with SPI serial interface16,
theMCP3008 is a 2.7V 8 channel 10 bit analogue to digital converter with SPI serial
interface17,and both of these devices are standalone chips which can be put into
the breadboard. A recent9
Page 11
development from RS Components UK is the camera board, they aim to produce a
cameraboard which is capable of 5 megapixels and can record 1080p H.264 videos at
30 frames persecond. The Adafruit Pi Cobbler is a breakout kit for the Raspberry
Pi; it allows the user tomake use of a ribbon-type cable to connect the GPIO pins
to the custom PCB which can thenbe used on a solderless breadboard allowing easy
connection to specific gpio pins. TheAdafruit Pi Cobbler is shown in Figure 2
(image taken from eBay33)Figure 2. The Adafruit Pi CobblerThe Pi-Face digital
interface is also another breakout board similar to the Gertboard. Thisdevice slots
on to the GPIO pins and allows the functionality of the GPIO to be extended
toperform actions such as motor control, light control, and sense inputs. The Pi-
Face interface isshown in Figure 3 (image taken from Pi-Face34)10
Page 12
Figure 3. The Pi-Face Digital Interface 2.2 Commercial data loggers Commercial data
loggers typically focus on monitoring one sensor and tend to be veryexpensive; an
example of a low cost temperature recorder is the MadgeTech Temp101A31.This data
logger includes storage for up to 1 million temperature readings and the ability
tostart and stop the recording. This data logger costs nearly �60 while only using
one sensor. Anexample of a wireless data logger using temperature sensor and
external sensors is the TandDRTR-574-H. This device includes two sensors which
record optical and temperature readingsas well as the ability to extend on this
with two external sensors as well as allowing wirelessconnections. This data logger
costs almost �380. 2.3 Solar Logger Projects similar to the work presented in this
project include Brian Dorsey�s Solar Datalogger2 in this project the author
connects the Raspberry Pi to various sensors such astemperature, voltage and
current sensors through GPIO using this data he then records theinformation making
it visible on his website then produces graphs showing the fivetemperatures and
information regarding the current power usage3 as well as gas and electricmeter
readings18. The Solar Logger project relates to this project with the extension of
theRaspberry Pi to make use of the GPIO pins to record sensor data; however this
projectincludes GPIO buttons, GPIO LEDs and USB webcams and microphones which do
notappear to be used by the Solar Logger project. The Solar Logger project also is
linked tovarious temperature sensors placed around the house which would allow
little portability asthe user cannot move the Raspberry Pi without going out of
range of the sensors, whereas thisproject allows for portability as all items are
located on the board. 2.4 Garage monitor Another similar project to this is by
Matthew Kirk at the University of Cambridge, in hisproject he makes use of GPIO to
record temperature sensors, use LEDs and buttons which issimilar to this project
for the use of GPIO, he builds a circuit to connect a temperature sensorthen writes
a program to read the sensor information and connects to the Pi via GPIO6.
Thetemperature sensor used in this project is the DS18B20 and connects the Pi to a
breadboardusing the Adafruit Pi cobbler. A similar project to the temperature
sensor project is includeBrian Haniffin�s14 recently published project, in this he
uses the Raspberry Pi, a MCP3008analogue to digital converter, a TMP36 temperature
sensors and various other GPIOcomponents to create a garage monitor which records
the state of the door (open or closed) aswell as the current temperature which then
creates a PHP page showing the status of the doorand temperature which allows him
to quickly glance at phone to check the status. Both theseprojects are similar to
this project with the use of GPIO LEDs, The temperature sensor projectwith the GPIO
buttons and the garage monitor project with the TMP36 temperature sensor,however
neither of these allow recording beyond this to include USB devices such aswebcams
and microphones or optical sensors. This project has a large focus on the
USBrecording through microphones or webcams to allow visual and audio data to be
recorded aswell as GPIO sensors such as temperature.11
Page 13
2.5 PiEye A similar project is the �PiEye� by Calin Crisan4 in which he uses a
webcam to do a livestream of his aquarium over the internet5. Similar to the PiEye
project is the product from oneof the retailers of the Raspberry Pi (RS Components
UK) which have been developing a newcamera board (which would be used instead of a
webcam)7, in this they aim to produce acamera board which is capable of 5 megapixel
and recording in High Definition (1080p) thisuses CSI pins (camera serial
interface, visually looks similar to GPIO pins)8. Another similarproject is the
guest blog posted on the official Raspberry Pi website from Francis Aguis10 inwhich
he uses the Raspberry Pi and a webcam to live stream his bird table in the
garden9.These projects mainly focus on recording the visual data but again appear
to lack the audio aswell as any GPIO capabilities. The PiEye project makes use of
the package MJPG streamerwhich streams the video over the network but does not
appear to allow storing it on the devicewhereas Francis� project makes use of
Motion which is used to detect if part of the imagefrom the webcam has changed19
and FFMPEG to stream the webcam over the network. Thisproject similarly makes use
of FFMPEG and FFServer to stream the webcam over thenetwork and store it on the SD
card; neither of these projects appears to include the ability tosave it to the SD
card which is one of the features of this project. 2.6 Temperature Sensor There
appears to be a small number of projects which make use of temperature sensorssuch
as Monirul Pathan�s project12. In this he makes use of the TMP36 temperature sensor
andthe MCP3008 analogue to digital converter as well as a small number of other
temperaturesensors. Similarly Scruss13 published a project using the MCP3008 with
the LM35DZtemperature sensor. Another similar project would be the Data logger for
householdtemperatures1 in which the author records information about temperatures
in his householdvia GPIO then produces a graph to show these temperatures over
time. The temperaturesensors projects both appear to allow no real recording, the
only way to see the temperature isby reading it off the terminal so once it has
closed there�s no data stored whereas this projectboth stores the information on
the SD card in a text file and also uploads the data in real timeto allow graphing
on the internet. None of the projects make use of the Gertboard and appearto stick
with the MCP3008 analogue to digital converter and again they are limited to
GPIOsensors without the ability to use buttons or LEDs showing the status or any
visual and audiorecording. 2.7 Summary There are a small number of data loggers
which exist but to the best knowledge of theauthor all of them either appear to
focus solely on GPIO use for temperature, current, andother sensor readings or
focus solely on visual, none appear to make use of GPIO and USBsensors and GPIO
inputs and outputs. A small number of the projects allow for portabilitysuch as the
PiEye and Francis� project which can be used outdoors and moved. None of
theprojects make use of the Gertboard to extend the GPIO and appear to stick to
standaloneanalogue to digital converters such as the MCP3008 and a small number use
the sametemperature sensor � the TMP36 � as this appears to be a reliable and cost
efficient sensor. Noprojects appear to allow recording video and audio through USB
while connecting to theGPIO using a Gertboard and making use of temperature and
optical sensors, using buttons to12
Page 14
control the program and LEDs to show the current status which is required for
efficient datalogging and so a project that does this and investigates portability
is of interest for furtherdevelopment.13
Page 15
3 Development 3.1 Design Two programs were created during this project, one to aid
in the installation of softwareand another to run the main program to allow data
logging. Both of these run in the terminaland have no Graphical User Interface
designed, the installation program only requires the userto input Y/N for saving
required modules. The data logging program only allows externallyconnected
computers to input �1�, �2�, �3�, and �Q�. No other interaction is required
betweenthe user and program other than these or through use of the GPIO buttons.
3.1.1 Installer The installation program (�installation.py�) makes use of two
modules, �os� and �time�, theos module is used to allow Python to interact with the
operating system to create �system�calls which allow Python to make use of the
terminal, the time module is used for the sleepcommand. The program then uses
system calls to run various commands allowing it todownload the necessary software
packages and Python modules, as well as creating adirectory for the logger on the
desktop. The installer was produced to allow an efficientmethod of downloading the
software packages and Python modules that are required by thedata logger. It
creates a specific folder for the logger in which all the data will be saved
in.This saves the user from having to sit at their computer downloading each
required packageand module which could take hours depending on their network
connection. 3.1.2 Data logger The data logging program makes use of several modules
and functions. These modulesallow the ability to extend the Python library which
allows extension of the functionality. ThePython program makes use of several
different functions, this allows the program to createdifferent processes for each
of the function calls this would ensure that if an error occurredwith one of these
processes it would not terminate the overall program and continue to run theother
processes (for example if the process for recording the optical sensor failed,
bothwebcam recording and temperature sensor recording are done through two other
processesboth of these would continue to work successfully, if one function was
used in the same casedata logging would end as one section of the function had
failed). The program makes use ofcommand line interface rather than using a
graphical user interface, as the Raspberry Pi hasvery limited resources available
this ensures no extra resources are used simply to run theGUI. With the use of GPIO
buttons to allow control of the program there was simply no needfor an extra GUI to
be implemented, which would also require more space on the SD cardallowing less
recordings to be saved. Accessing the data logger remotely allows overwritingof the
GPIO buttons, allowing �1�, �2� and �3� to act as buttons (B1, B2 and B3) if the
user isunable to physically press the buttons then it�s still possible to run the
data logger. 3.1.2.1 COSMCOSM (previously Pachube) is a service which allows users
to connect to and uploadsensor readings. This project makes use of EEML (Extended
Environments MarkupLanguage) which allows a connection to COSM to upload sensor
reading in real-time, COSMthen records the data and automatically graph the data.
This allows sharing of sensor data14
Page 16
with anyone in the world with an internet connection as well as the ability to
monitor thedevice from anywhere in the world. COSM allows users to read and graph
data stored up tothree months old. COSM allows users to see webpages for individual
feeds (one sensor) orview a person�s profile which includes any sensors they may
upload. EEML connects toCOSM using an API key, an API feed number and an API URL,
using this it then sends asingle reading from the sensor then COSM does the rest
(updating the graphs and updatingthe website reading). An alternative to COSM is
open.sen.se; however this appears to be aninvite only service for now. Open.sen.se
appears to offer better graphing (use of colours,multiple figures plotted on one
graph instead of a different feed for each). This project madeuse of COSM to create
two feeds, one for the temperature sensor data and one for the opticalsensor data.
Using EEML this connects to COSM using the API url, key and feed number toupdate
with real time sensor readings and graph the data.3.1.2.2 ModulesThe data logging
program (�logger.py�) makes use of eleven modules which includes �os�,�time�,
�datetime�, �RPi.GPIO�, �spidev�, �multiprocessing�, �eeml�, �evdev�,
�signal�,�termios� and �thread�. The �os� module is used by Python to allow
interaction with theoperating system, throughout this file it is used for various
commands such as; allowingsystem calls similarly to the installation program (these
are used to run external softwarepackages such as ffmpeg as well as resetting the
terminal on close), get an environmentvariable from the operating system to
determine if the user is connected remotely or not, theability to send a kill
signal for a process, and reading a key press from the terminal. The�time� module
allows Python access to various time related functions, in this program themodule
has various uses which include the ability to get the current time which is
thenformatted and used for a timestamp on newly created files and sensor recording.
It is alsoused to allow sleep calls which are used to allow sufficient time for
reading messages, preventbuttons from being detected several times due to holding
it down, and spacing out the timebetween processes starting. The �datetime� module
allows manipulation of dates whichincludes the format, in this program it is used
to allow a string to be produced from the timeinteger received from the time
module.The �RPi.GPIO� module allows the Python program to communicate with the GPIO
pinson the Raspberry Pi, this module is used to allow gpio pins to be set up as an
input or outputand then attempt to detect changes such as a button press (this
would change the input from 1to 0), it is also be used to make changes such as
enabling and disabling an LED, when closingthe program it is also used to perform a
clean-up which resets the gpio ports to defaults beforethe program was run. The
�spidev� module is used to allow the Python program tocommunicate with the SPI
port. This is used to send and receive bits from the sensors; thisallows it to read
the raw values from the sensors. The �multiprocessing� module is used toallow
various different functions to be run concurrently; this also allows Python to
terminatethe processes which threading does not offer in Python. It is used to run
each of the sensorsindividual functions when data logging begins. The �eeml� module
is the extendedenvironments mark-up language which allows connection to COSM to be
able to send realtime sensor information.15
Page 17
The �evdev� module is used to import UInput and ecodes. This is used to allow
Python tocreate an input device and inject key presses, allowing a key press to end
the webcam streamwhen connected locally. The module �signal� is used with the os
module to allow Python tosend a kill signal for the ffmpeg process if it is running
when the user wishes to begin datalogging. The �termios� module is used to modify
the terminal that the program is running in,this gets the current terminal,
modifies it to allow detection of key presses. When exiting theprogram the reset
allows the terminal to return to its unmodified state. The �thread� module isused
for threading within Python. This is used for the key listener function as it does
not needto be terminated during the running of the program and will run in the back
waiting for a keypress, threading is used rather than multiprocessing as it allows
use of shared memory, thisallows it to alter global variables.3.1.2.3 FunctionsThe
data logging program makes use of several different functions, each of these
functionsprovide a purpose to the main section of the program. The functions in
this program are�get_adc�, �recordTemp�, �recordLight�, �startRecord�,
�stopRecord�,� singleImg� and�keyPress�. The �get_adc� function receives a channel
parameter, this function opens a spidevwrapper to communicate with the SPI port and
send bits to and receive bits from the SPIchannel, and this gets the output from
the sensors, it then uses this raw data to return them tothe function which called
it.The �recordTemp� function sets up a variable using time and datetime modules to
get thecurrent timestamp, it then calls the get_adc function to receive the reading
for channel 1(temperature sensor), converts this reading to a Celsius reading and
Fahrenheit then opens afile to write it to as well as sending it to COSM. The
function then gets put to sleep for 30seconds then repeats, it will repeat until
the logging is cancelled or the program is closed. The�recordLight� function is
similar to recordTemp but calls get_adc function using the parameter0 indicating
the light sensor is on channel 0. This function just simply writes the reading
valueto the file and COSM without any calculations. This function again waits 30
seconds thenrepeats, and will repeat until logging is cancelled or the program is
closed. The �startRecord�function receives a �method� parameter indicating the
method of logging for the webcam(store or stream); the function sets up a list of
parameters which allow changing of framerates, frame size, and other important
parameters. The function then gets a list of the openprocesses attempting to check
if ffmpeg is running, if so end the process. The method variableis used to
determine which code is run to store to SD card or to stream over the network,
andthen the appropriate variables are used within the system call.The �stopRecord�
function checks if data logging is currently in process, if it is it thenterminates
the three processes if they are alive (a process may have terminated prior to this
ifit failed, for example no webcam plugged in). If locally connected it then uses
evdev to createan input device and inject �q� to end the webcam stream. The
�singleImg� function is similar tothe startRecord; it sets up variables to hold
information such as the frame size, input name,and other important parameters. It
then checks if the ffmpeg process is running, if it isattempts to kill it then run
the system call to take the image.16
Page 18
The �keyPress� function is used to modify the terminal which allows reading of
inputs. Itthen checks these and passes them back out of the program to be used for
overwriting thebuttons. This function originally posed as a problem as to start
with the function was calledusing multiprocessing, doing this caused issues with
detecting buttons and the ability to passthe key back out of the function as
multiprocess functions do not share the same memory, sois unable to access global
variables or return any variable from the function. This problemwas overcome by
using threading, threading allowed access to global variables allowing thedetected
key to be passed back out of the thread.3.1.2.4 Exception handlingThe functions in
this program all include exception handling, each function will include a�try� and
�except KeyboardInterrupt� which is the exception if the user presses Ctrl + C
theprogram will end, at the same time the program will perform a system call to
reset theterminal (removing the previous edits it made to allow key detection) as
well as a clean-up ofthe gpio ports ensuring no random LEDs are left on. If the
user does not cause aKeyboardInterrupt then it will be skipped.3.1.2.5 Main
sectionThe main section of the data logging program is an infinite loop which will
wait fordetection of a key or button, once either of these are detected the
appropriate section of codewill be executed resulting in a change to the LEDs,
variables and a function call. Varioussleep calls are used here to prevent several
detections from one button press, again thissection of code includes a �try� and
�except KeyboardInterrupt� clause which performs thegpio clean-up and terminal
reset ensuring the terminal is back to how it was before theprogram was run. There
are various prints used throughout the program to assist the user andgive the user
feedback to their interaction, such as recording has started and recording
methodhas changed.3.1.2.6 OutputThe end user will see a terminal in which any
appropriate messages will appear. When theprogram begins the user may get a message
if they are connected remotely allowing theability to overwrite the GPIO buttons, a
message will also appear stating the program hasfully loaded. Enabling data logging
will show another suitable warning message for usersthen begin data logging, during
data logging every 30 seconds the temperature and opticalsensors reading will be
displayed. The user will receive a message when changing thestreaming method
between store to the SD card or stream over the network. The user will alsoreceive
a message detailing the process of an image capture. Figure 4 shows typical output
theuser will see when beginning the program and beginning data logging, when
remotelyconnected.17
Page 19
Figure 4. Typical output the user will see when Data Logging 3.2 Implementation To
implement this project and create a data logger using the Raspberry Pi, an
investigation ofthe available hardware and software was required. 3.2.1 Software
The project includes a variety of software packages and Python modules installed
onto theRaspberry Pi to allow data logging, this includes: � Raspbian Wheezy o This
is the free operating system that is based on Debian and has beencustomised and
optimized for use on the Raspberry Pi.o This project makes use of Raspbian Wheezy
as the operating system.o It was decided that Raspbian was suitable for use as it
was the mostrecommended version from the Raspberry Pi Foundation and had
beendesigned specifically for the Raspberry Pi�s hardware. Raspbian is
widelysupported, offers both command line and GUI, and is capable ofeverything
required for this project � Python o The programming language used for the main
software in the project, thiscomes pre-installed on Raspbian Wheezy. This allows
interaction with theUSB (for peripherals such as webcam and microphone), GPIO
(takinginputs, setting outputs) and interacts with the operating system (makinguse
of terminal).o This project makes use of Python as the sole programming language. �
Geany o This is a software package; Geany is a lightweight IDE
(integrateddevelopment environment) for various languages including Python.o This
project makes use of Geany when editing the Python code andrunning it from within
the Raspberry Pi Graphical desktop. � FFMPEG o This is a software package that
allows the Raspberry Pi to interact with theUSB webcam or microphone, it is used to
capture the webcam, stream itover the network or save it on the SD card. This needs
to be installed with18
Page 20
some knowledge of the arguments used to run it (different frame rates,frame sizes,
input locations, and other important parameters).o This project allows the user to
pick a method �store� or �stream� using thismethod the suitable FFMPEG code will be
executed allowing a streamover the network or a video saved to the SD card. Several
variables areused with this allowing the user to change the log level, frame rate,
size,file format, and other important parameters.o There are a small number of
other alternatives to FFMPEG such asMEncoder and guvcview, however MEncoder
appeared to have issueswith the webcam settings and guvcview appeared to be
designed for moreof a GUI desktop rather than use in command line interfaces. �
FFServer o This is a software package that allows the Raspberry Pi using FFMPEG
tostream over a network or internet allowing other devices to connect to thestream
and view it. This is installed with the FFMPEG package and needsa configuration
file to set some parameters (such as address port, bitrate,frame size, and other
important parameters).o This project makes use of FFServer when the logging method
is set to�stream� at which point ffserver will run and FFMPEG output will be setto
the ip and port that FFServer is currently running on. � Fswebcam o This is a
software package that allows the Raspberry Pi to capture a singleimage from the
webcam, this needs to be installed with some knowledgeon the arguments used (again
such as frame rates, frame sizes, outputlocation, and other important parameters).o
This project allows a single image to be taken using the right button /number 3;
this calls the Fswebcam code using various variables againallowing the user to set
the frame size, input name, save location. � uvcdynctrl o This is a software
package that allows the Raspberry Pi to configure thewebcam; this includes options
such as changing this brightness, contract,hue, saturation, sharpness, and zoom. It
can also be used to list all thecurrent webcam devices detected by Raspbian, and
all the formatscompatible with these deviceso This project made use of the
uvcdynctrl software package to receive theavailable frame sizes and pixel formats
that can be used with this webcam,it will also allow other users to make use of the
command to see theavailable formats for their webcams and change the variables in
the codeto suit. � Git 19
Page 21
o This is a software package that allows the Raspberry Pi to connect to a
git(github.com) and clone the contents of the specified git. This allowssoftware to
be downloaded if it is not listed as a software package; gitsimply clones the
contents of the git and does not install the software.o This project makes use of
Git to clone several Python modules fromgithub which are not available through the
software packages list. � Python-RPi.GPIO OThis is a Python module that allows the
Raspberry Pi and Python programto communicate with the gpio pins and make use of
them, this module isrequired to make use of LEDs and buttons that are connected via
theGertboard or directly on the GPIO pins.o This is used within the project to set
up the GPIO buttons and LEDs thenfurther to enable/disable LEDs and listen for
button presses, when exitingthe program this is again used to clean up the gpio
(setting it back to thedefault values before the program ran). � Py-Spidev o This
is a Python module that allows the Raspberry Pi and Python programto communicate
with SPI devices as the Python-RPi.GPIO modulecurrently does not allow interfacing
with SPI devices.o This is used within the project to communicate with sensors,
this allowsPython to communicate with an SPI port, open a channel, send a signaland
receive a signal and make use of the received signal to get the currentreading on
the sensors. � Python-dev o This is a Python module that needs to be installed to
allow Python-RPi.GPIO to be installed correctly.o This is used during installation
to allow the other Python module to beinstalled and ran. � SetupTools o This is a
Python module again that needs to be installed to assist anothermodule; this is
required for the EEML installation.o Again this is used during installation to
allow EEML to be installed andrun correctly. � Python-EEML o This is a Python
module that�s used to communicate over the internet withCOSM (previously Pachube)
which allows real time uploading of data andgraphing.o This module is used within
the project to allow the Python code to sendthe sensor data to COSM using the API
URL and API Key provided20
Page 22
during COSM registration, this also allows a data format to be set or sendraw data,
in the project temperature is sent using Celsius and opticalsensor sent using raw
data. � Python-evdev o This is a Python module that�s used to allow Python to
create an inputdevice and allow input events to be placed directly into the
system.o This module is used within the project to create an input device then
injectthe key event �q� into it, used when ending the data logging to allow
thewebcam stream to end. 3.2.2 Hardware The hardware that is currently used within
the project includes: � Raspberry Pi � The currently used Raspberry Pi is the Model
B Revision 1 version meaning it is limited to 256MB RAM whereas the new Revision 2
contains512MB of ram. It also contains a 700MHz CPU, 2 USB 2.0 ports, CompositeRCA,
HDMI, DSI, 10/100 Ethernet and 5v MicroUSB power source. � SD card � An SD card is
used to run the Raspbian Wheezy operating system with all the software packages and
Python modules installed as well as the two Pythonprograms to install and run the
data logger. � Microsoft LifeCam VX-2000 � This Microsoft webcam is used for visual
and audio data (using the inbuilt microphone), this is not a verified peripheral
howevertesting of this peripheral revealed no issues with functionality, and so it
wasdeemed suitable for use26. � Gertboard � This project makes use of the Fully
Assembled Gertboard Rev 2 which slots directly on to the Raspberry Pi�s GPIO pins
to extend its functionality,this is set up to allow use of the 3 on-board buttons
and using the on-boardMCP3002 to connect to the optical and temperature sensor
located on thebreadboard, it also supplies 3V3 and GND to the breadboard as well as
theappropriate GPIO pins. � Breadboard � This is used to connect the LEDs and
sensors to the Gertboard and supply power to them. � TMP36 � This is the
temperature sensor used in the project; it is a low voltage sensor that records
between -40�C to +125�C27. This is connected to theGertboards on-board analogue to
digital converter to allow a digital reading withinPython. � TSL250 � This is the
optical sensor used in the project, it is a low power light-to- voltage optical
sensor. This is connected to the Gertboards on-board analogue todigital converter
to allow a digital reading within Python.21
Page 23
� Electrical components � Various other electrical components are used such as a
green, red and yellow LED, 0.1uF ceramic disc capacitors and resistors to
allowaccurate readings and limit power to electrical components.22
Page 24
4 Testing and Evaluation 4.1 Testing The testing done on this project will include
the use of Scenario testing. Scenario testing is atesting method which makes use of
hypothetical stories as the test cases, these scenariosattempt to replicate what
the end user wishes to use the software for. Scenario testing will usea list of
scenarios and ensure that each part of the program has run with various
differentcases. These test cases will run through every bit of code in the program
ensuring there are noissues with coding. 4.1.1 Data logging over the network � Test
case � Enabling data logging, streaming webcam feed over the network o In this test
case, the goal was to enable data logging and stream thewebcam feed over the
network. To do this it required changing the loggingmethod and starting the
logging. � Test steps � Run the program, press the middle button (or 2), press the
left button (or 1) � Expected results � The program should show information then
start streaming over the network with the ability to connect to it via VLC � Result
� Pass, as expected (Figure 5) Figure 5. Outcome of first test case 4.1.2 Data
logging on the SD card � Test case � Enabling data logging, storing the webcam feed
on the SD card o In this test case, the goal was to enable data logging and store
the webcamfeed on to the SD card. To do this it required starting the logging. �
Test steps � Run the program, press the left button (or 1)� Expected results � The
program should show information then start recording to the SD card � Result �
Pass, as expected (Figure 6) 23
Page 25
Figure 6. Outcome of second test case 4.1.3 Taking a single image � Test case �
Taking a single image o In this test case, the goal was to take a photograph of a
single image andstore it on the SD card. To do this required pressing the button
for a singleimage capture. � Test steps � Run the program, press the right button
(or 3)� Expected results � The program should show that it is taking an image then
store it� Result � Pass, as expected (Figure 7) Figure 7. Outcome of the third test
case 4.1.4 Data logging with no webcam plugged in � Test case � Enabling data
logging with no webcam plugged in o In this test case, the goal was to enable data
logging with no webcamplugged in to the USB slots. This would show if one part of
the systemfails the rest will continue to function as normal and record the
gpiosensors. � Test steps � Remove the webcam from USB, run the program, press the
left button (or 1) � Expected results � The stream will not continue and report an
error, but the gpio sensors will continue to log � Result � Pass, as expected
(Figure 8) Figure 8. Outcome of the fourth test case24
Page 26
4.1.5 Single image capture with no webcam plugged in � Test case � Taking a single
image with no webcam plugged in o In this test case, the goal was to take a
photograph of a single image andstore it on the SD card with no webcam plugged in
to the USB slots. � Test steps � Remove the webcam from USB, run the program, press
the right button (or 3) � Expected results � An error will occur stating it cannot
open the device and fail to continue � Result � Pass, as expected (Figure 9) Figure
9. Outcome of the fifth test case 4.1.6 Using unauthorised keys � Test case �
Pressing keys which are not assigned to do something checking the resulto In this
test case, the goal was to press keys which are not assigned by thePython program
to do anything, showing the feedback the user gets andcontinuing to function as
before. � Test steps � Run the program, press random keys� Expected results � A
message will appear stating that key is unusable� Result � Pass, as expected
(Figure 10) Figure 10. Outcome of the sixth test case 4.1.7 Testing the optical
sensor � Test case � Flashing a light on the optical sensor to attempt to alter the
readings 25
Page 27
o In this test case, the goal was to test the accuracy and reliability of
theoptical sensor by altering the light available to the sensor (through use of
atorch) ensuring that it reports lower readings if the light increases. � Test
steps � Record five optical sensor readings, put a flashlight near the optical
sensor and record another five while altering the brightness of the flashlight
(first2 � full brightness, 3rd � medium brightness, 4th � lowest brightness, 5th �
off) � Expected results � Second five numbers should be lower than first five�
Result � Pass, as expected (Figure 11) o First five: 86, 87, 88, 90, 87o Second
five: 0, 0, 0, 48, 80Figure 11. Outcome of the seventh test case 4.1.8 Testing the
temperature sensor � Test case � Place freezing item next to temperature sensor to
attempt to alter the readingso In this test case, the goal was to test the accuracy
and reliability of thetemperature sensor by altering the temperature around the
sensor (using afrozen item), ensuring that it reports a lower temperature when the
item isnext to it than prior to it being there. � Test steps � Record five
temperature sensor readings, put a frozen item next to the temperature sensor and
record another five � Expected results � Second five numbers should be considerably
lower than the first five � Result � Pass, as expected (Figure 12) o First five:
17.0, 17.0, 17.0, 17.0, 17.7o Second five: 10.9, 10.9, 9.3, 9.0, 8.726
Page 28
Figure 12. Outcome of the eight test case 4.1.9 Using a standard user account �
Test case � Running the data logger with a standard user (not root) who has no
access to specific parts of the system that is required for data loggingo In this
test case, the goal was to use a standard user account to attempt torun the data
logger which requires root access. � Test steps � Log into the Pi using �pi� user,
run the program� Expected results � Inability to access GPIO� Result � Pass, as
expected (Figure 13) Figure 13. Outcome of the ninth test case 4.2 Issues and
limitations Throughout the project the main issue / limitation was down to the CPU.
The Raspberry Piruns on an ARM1176JZF-S30 (armv6k) 700 MHz Processor (which can
dynamically increaseup to 1 GHz). The software used to record video and audio from
the webcam however,appeared to use most of the CPU when storing to the SD card27
Page 29
Figure 14. Snapshot of the top command when storingA snapshot (Figure 12) shows the
�top� command running on the Raspberry Pi. This showsthe top CPU processes as well
as other information such as the CPU % and the memoryusage. Running the program
recording the webcam stream to the SD card results in the CPUrunning at typically
100%, with only three processes running in this figure the CPU usage isat 100%
(90.7% used on user mode and 9.3% used by system). FFMPEG is taking up 56.2%of
that, it appears when ffmpeg is running using so much of the CPU it has issues
recordingboth visual and audio data from the webcam, which results in an ALSA
buffer xrun errorbeing shown in the terminal. When streaming the webcam video over
the network the ffmpegappears to take up a fraction of the resources it is using
for video and audioFigure 15. Snapshot of the top command when streamingA snapshot
(Figure 13) shows the top command again, this time it is similarly running at100%
CPU usage (98.1% by user and 1.9% by system), however this time the ffmpeg
processappears to only be using a fraction of the CPU usage it was when storing to
the SD card,reducing from 56.2% to 3.9%. It would appear attempting to capture
visual and audio datausing the Raspberry Pi will struggle due to the CPU and result
in the ALSA buffer xrun28
Page 30
errors, although it will still record with these during play back of the video file
it will appearto skip a frame when each of the errors occurs.Several other packages
were tested such as MEncoder and guvcview, MEncoder attemptsto do the same as
ffmpeg does but similarly frame drops still occurred, a lower video qualitywas
created, and had issues with the webcam used for this project. Guvcview appears
morepreferred for graphical interface rather than over a command line interface
resulting in littleuse for this project. Removing audio from the data logging
appeared to allow ffmpeg to runfine when storing it to the SD card. It would
definitely appear that it is a limitation of theCPU, and appears to be attempting
to record too much data which is causing random skippingof frames. Although the
error exists the output file is not corrupt and still usable, at a cost of afew
frames based on the length of the recording.Similarly with the previous problem,
when FFMPEG ends the streaming and storing it tothe SD card it can take some time
to finish encoding the audio, which resulted in the need toimplement code to kill
the previous process when starting a new process if it was stillrunning. The time
for encoding the audio is typically instant or a few seconds and can vary bythe
length of the video or the amount of audio information stored, however in some
tests thiswas taking over ten minutes to fully encode and end the process. During
which would notallow the user to start a new stream as the process is already
running, implementation of thiscode will kill the previous ffmpeg process (meaning
the audio in the file may be corrupt ornot complete) and allow the new process to
start. This could again be a limitation caused bythe lack of processing power to
allow the encoding of the file.29
Page 31
5 Conclusion 5.1 Conclusion The goal of this project was to create a functional
data logger using the Raspberry Pi,which would involve developing of software to
make this possible. The data logger wouldallow the data to be stored locally as
well as the possibility of it being sent across thenetwork/internet. The project
would make use of both USB and GPIO sensors to allowlogging and allow control of
the device through GPIO.The author believes the goal has been met with this
project, the final product is afunctioning data logger allowing recording of
temperature, optical data as well as streaming,storing and single image capture
from the webcam. Users have the ability to control thedevice through the GPIO
buttons and receive feedback on their actions via the GPIO LEDs.The project
includes the development of two items of software, an installer and the logger.This
software allows a user to set up their own data logger, the logger allows remote
access tocontrol it or be controlled via buttons on the GPIO, this will run
commands allowing thestream to start, method to change, and single image capture.
The data logging makes use ofthe online service COSM to create real-time graphs
using the sensor data. The user can makeuse of the user guides and installation
guides created for this software to assist them in usingit.The project mainly went
according to plan creating the data logger; however a few issueswere encountered.
Although the storing to SD card with audio does not work as intended dueto the
limitation, removal of audio would allow a fully functioning data logger with no
errorscaused by audio or CPU limitations. This project has successfully allowed for
a low cost datalogger to be produced with the ability to be used in the real world
with various different usesand the ability to extend on the data loggers
functionality such as portability and additionalsensors. 5.2 Future Work The work
done so far in this project has allowed for development of a functioning data
loggerhowever this can be extended in various areas to improve the data logger.
5.2.1 Portability The first major improvement would be portability; this was
initially one of the plannedgoals for this project however due to time this was
unable to be researched sufficiently andimplemented, to extend the data logger to
include portability this would involve thepurchasing of a 5V regulated output
external battery pack which is compatible with theRaspberry Pi, eLinux contains a
list of verified peripherals which includes working externalbattery packs of which
its users have tested and commented on28. TeckNet iEP392 Dual-Port12,000 mAh
External Power Bank appears to be the most favoured choice for external
batterypacks, with reported use of up to 16.5 hours before requiring a recharge,
although this wouldbe reduced due to the amount of power being used to stream/save
webcam footage it wouldstill allow quite a few hours of portable data logging which
could be useful for outdoor trips.30
Page 32
To allow portability it would also include purchasing a USB WiFi adapter to allow
EEML toconnect to COSM for graphing as well as network streaming if required, these
typicallyrequire more power than a standard Raspberry Pi USB port provides so may
be required touse an externally powered USB hub, alternatively the EW-7811Un from
Edimax workswithout the need for an externally powered USB hub and should work with
the webcam inone USB port and this adapter in the other, the EW-7811Un also appears
to be the only WiFiadapter that is instantly recognized by the Raspbian Wheezy
operating system (as of 2012-09-18 version) so should be a simple installation just
editing the SSID and key29. 5.2.2 Sensors Another area for extension is sensors,
although currently the Gertboard only has a twochannel analogue to digital
converter, this can be resolved by making use of MCP3004 orMCP3008 analogue to
digital converters, allowing 4 channel and 8 channel respectively. Thiswould allow
for addition sensors (two to six) to be used with the data logger. Each sensorwould
simply need a new function to retrieve the data then make use of it (print it,
store itthen send it to COSM), there are various sensors available on the market
such as sound,proximity, location/GPS, movement, touch, humidity, radiation,
pressure, biometric, infrared,weather, and countless others. There are hundreds if
not thousands of sensors available toimplement onto the data logger which would
increase the usefulness of the data logger as ithas the ability to record even more
relevant data than before, it would also increase the gapbetween this and any other
data logger as they typically stick to very few different sensors. 5.2.3 Audio
feedback The product can be extended to include some form of output possibly via
audio feedbacksuch as a buzzer, this could be used for various situations such as
warnings to the user, forexample if the temperature is very low, if the proximity
to something is very close and theusers speed is enough to impact, if there�s any
errors with the program such as faulty sensordata. It would also be used to give
audio feedback to button presses and an action taken, suchas beginning to record
rather than relying solely on the green and red LEDs, i.e. if the datalogger is in
a place that is hard to see the user may not know if they have successfully
enabledrecording or not without the ability to see the data logger. 5.2.4 Recording
software Another improvement is the webcam recording software, currently the FFMPEG
softwaremakes use of the full CPU which in turn limits its ability to successfully
record both visualand audio data in the case it is storing it to the SD card, this
can cause an issue whenrecording from the webcam and in turn an error appears. The
only similar software to thisthat�s Raspbian Wheezy / Raspberry Pi friendly appears
to be MEncoder which has issueswith the webcam used within this project, further
research could be done into how to reducethe CPU load that ffmpeg requires to
possibly fixing the issue, if it is possible.31
Page 33
References [1] Raspberry Pi data logger,
http://neilbaldwin.net/blog/weather/raspberry-pi-data-logger/,November 2012[2]
Raspberry Pi Solar Data logger, http://www.briandorey.com/post/Raspberry-Pi-Solar-
Data-Logger.aspx, July 2012[3] Home Solar PV and Water Current Report,
http://home.briandorey.com/, November 2012[4] PiEye � streaming webcam in JPG
format with Raspberry Pi,http://www.bobtech.ro/tutoriale/raspberry-pi/78-streaming-
webcam-in-format-m-jpg-cu-raspberry-pi, September 2012[5] PiEye,
http://pieye.dnsdynamic.com:8080/?action=stream, November 2012[6] University of
Cambridge � Computer Laboratory: Raspberry Pi Temperature
Sensor,http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/temperature/,
November 2012[7] Raspberry Pi � Camera board,
http://www.raspberrypi.org/archives/2555, November2012[8] YouTube - Raspberry Pi
Camera, http://www.youtube.com/watch?v=8N7kgtL0-Ts,November 2012[9] Raspberry Pi �
Guest blog #7 Bird table webcam by Francis
Agius,http://www.raspberrypi.org/archives/2504, November 2012[10] Raspberry Pi �
Bird table webcam, http://www.raspberrypi.org/wp-content/uploads/2012/11/Robin.avi,
November 2012.[11]Assembled Gertboard for Raspberry Pi �
Element14,http://www.element14.com/community/docs/DOC-51726/l/assembled-gertboard-
for-raspberry-pi, January 2013[12] Raspberry Pi + Temperature Sensors,
http://monirulpathan.com/afterhours/raspberry-pi-temperature-sensors/, September
2012[13] Simple ADC with the Raspberry Pi,
http://scruss.com/blog/2013/02/02/simple-adc-with-the-raspberry-pi/, February
2013[14] My Raspberry Powered Garage Monitor,
http://brianhanifin.com/2012/11/raspberry-pi-garage-monitor/, November 2012[15]
AssembledGertboardforRaspberryPi,http://www.element14.com/community/docs/DOC-
51726/l/assembled-gertboard-for-raspberry-pi, January 2013[16]
MicrochipMCP3002usermanual,http://ww1.microchip.com/downloads/en/DeviceDoc/21294C.p
df, April 2013[17]
MicrochipMCP3004/8usermanual,http://ww1.microchip.com/downloads/en/DeviceDoc/21295d
.pdf, April 2013[18]Home Solar PV and Water Current Report � Gas and Electric meter
readings,http://home.briandorey.com/meter/default.aspx, April 2013[19] Motion � Web
Home, http://www.lavrsen.dk/foswiki/bin/view/Motion, February 2011[20] Data Loggers
| Datalogging | Data Acquisition | Datalogger -http://www.loggershop.co.uk/, April
2013[21] CnMSecure Wireless Camera Kit at Argos.co.uk
-http://www.argos.co.uk/webapp/wcs/stores/servlet/Browse?
storeId=10151&langId=110&catalogId=23051&mRR=true&q=CCTV&c_1=1%7Ccategory_root
%7CHome+and+garden%7C33005908&r_001=3%7CCamera+type%7CCMOS+wireless%7C1, April
2013[22] Raspberry Pi - http://www.raspberrypi.org/, April 2013[23] TSL250R-LF �
TAOS � PHOTODIODE, SENSOR, L/VOLTS,http://uk.farnell.com/jsp/displayProduct.jsp?
sku=1182346&action=view&CMP=GRHB-FINDCHIPS1-1004321, April 2013[24] TMP36 �
Temperature Sensor � SparkFun Electronics,https://www.sparkfun.com/products/10988,
April 201332
Page 34
[25] Microsoft Webcam: LifeCam VX-800 | Microsoft
Hardware,http://www.microsoft.com/hardware/en-gb/p/lifecam-vx-800, April 2013[26]
RPi VerifiedPeripherals � eLinux, http://elinux.org/RPi_VerifiedPeripherals, April
2013[27] TMP36 Datasheet and product info | Voltage Output Temperature
Sensors,http://www.analog.com/en/mems-sensors/digital-temperature-
sensors/tmp36/products/product.html, April 2013[28]
RPiVerifiedPeripherals�eLinux,http://elinux.org/RPi_VerifiedPeripherals#Working_ext
ernal_Battery_packs_.28with_5.C2.A0V_regulated_output.29, April 2013[29]
RPiVerifiedPeripherals�eLinux,http://elinux.org/RPi_VerifiedPeripherals#Working_USB
_Wi-Fi_Adapters, April 2013[30] Raspberry Pi � Wikipedia,
http://en.wikipedia.org/wiki/Raspberry_Pi, April 2013[31] MadgeTech Temp101A �
Miniature Temperature Data Logger,http://www.loggershop.co.uk/madgetech/temp101a-
temperature-data-logger/prod_532.html, April 2013[32] Gertboard Kit � Fully
Assembled, https://www.modmypi.com/raspberry-pi-fully- assembled-gertboard, April
2013 [33] Raspberry Pi Cobbler GPIO Super Starter Kit,
http://www.ebay.co.uk/itm/Raspberry-Pi-Cobbler-GPIO-Super-Starter-Kit-Breadboard-
Cable-LEDs-Switches-/181071750824,April 2013[34] Pi-Face Interface for Raspberry
Pi, http://pi.cs.man.ac.uk/interface.htm, April 201333
Page 35
Appendix A Source code for FFServer.conf file This appendix provides the source
code for the ffserver.conf file; it contains the informationused for the network
stream of the webcam and allows configuration of the ffserver, thisconfiguration
results in an mjpeg stream with a resolution of 352x288. The file is used
whenrunning ffserver.Port 8001BindAddress 0.0.0.0MaxClients 10MaxBandwidth
50000NoDaemon<Feed webcam.ffm>file /tmp/webcam.ffmFileMaxSize 10M</Feed><Stream
webcam.mjpeg>Feed webcam.ffmFormat mjpegVideoSize 352x288VideoFrameRate
10VideoBitRate 20000VideoQMin 2VideoQMax 31</Stream>34
Page 36
Appendix B Source code for installation file This appendix contains the source code
for the installation.py file which is used to retrieve thePython modules and
software required for the
program.#********************************************************************##
Name: installation.py ## Description: Python program for installation of the Python
modules/software required forlogger.py file ## OS: Raspbian ## Author: Scott Cairns
## Notes: Used with the User Installation Guide
##*************************************************************************#import
os# import os to use for system callsimport time# for sleepsprint 'WARNING: This
could take a while, installing latest packages may take a while'print 'FFMPEG will
take a while to compile'time.sleep(2)# give time to read warningos.system("sudo
apt-get update")# download latest package list showing newversions of
packagesos.system("sudo apt-get upgrade")# install the latest versionsif not
os.path.exists("logger"):# check if the logger path doesn't
existos.makedirs("logger")# if so, create itos.system("sudo apt-get install python-
dev")# install Python dev moduleos.system("sudo apt-get install python-rpi.gpio")#
install gpio moduleos.system("sudo apt-get install git")# install gitos.system("git
clone git://github.com/doceme/py-spidev")# clone the github
filesos.system("wgethttp://pypi.python.org/packages/source/s/setuptools/setuptools-
0.6c11.tar.gz")# get the compressed fileos.system("tar zxvf setuptools-
0.6c11.tar.gz")# get setuptools module(req'd for eeml install)os.system("wget -O
geekman-python-eeml.tar.gz https://github.com/geekman/python-
eeml/tarball/master")#get EEML moduleos.system("tar zxvf geekman-python-
eeml.tar.gz")# extract itos.system("git clone git://github.com/gvalkov/python-
evdev.git")# clone github filesos.system("sudo apt-get install fswebcam")# get
fswebcamos.system("sudo apt-get install uvcdynctrl")# get uvcdynctrlprint
"Complete! Consult the user installation guide to proceed"35
Page 37
Appendix C Software Installation guide This appendix contains a Software
Installation guide to allow end users to install the Pythonprogram and make use of
the included installer; it also includes information regarding how toset up the
Gertboard and breadboard.Steps for installing the modules and software required for
the Python script:1. Copy the installation.py file to the Desktop (home/pi/Desktop)
(via FTP, USB flashdrive, or any preferred method).2. (In the terminal window) run
the command �cd /home/pi/Desktop�, to navigate tothe correct folder.3. Run the
command �python installation.py� � This will run through the Pythonscript, it may
take some time to complete depending on the users internet connection.Once complete
a message will appear to confirm it has been completed.4. If new updates are
required the user will be required to press Y/N to proceed with theinstallation
(this may happen up to 6 times over the course of the installation)5. Once the
�Complete!� message shows up in the terminal install py-spideva. Navigate to the
folder using �cd py-spidev�b. Run �sudo python setup.py install�This will navigate
into the py-spidev directory then run the setup.py file which willinstall the
python module spidev.6. Install setuptoolsa. Navigate to the folder using �cd
/home/pi/Desktop/setuptools*�b. Run �sudo python setup.py build�c. Run �sudo python
setup.py install�Again, taking the user into the setuptools directory then running
build and install onsetup.py, which will install the Setuptools software.* The
exact name will vary depending on the current release version.7. Install EEMLa.
Navigate to the folder using �cd /home/pi/Desktop/geekman-python-eeml*�b. Run �sudo
python setup.py install�This navigates the user into the geekman-python-eeml folder
then running setup.py toinstall, which will install the EEML python module.* The
exact name will vary depending on the current release version.8. Install evdeva.
Navigate to the folder using �cd /home/pi/Desktop/python-evdev�b. Run �git checkout
$versiontag�c. Run �sudo python setup.py install�36
Page 38
This navigates the user into the python-evdev directory, uses the versiontag
whichupdates files in the tree to match the version specified and runs setup.py to
install.9. Install FFMPEGa. FTP or log into root then edit
�/etc/apt/sources.list�b. Add �deb-src http://www.deb-multimedia.org sid main�c.
Add �deb http://www.deb-multimedia.org wheezy main non-free�d. Run �sudo apt-get
update�e. Run �sudo apt-get install deb-multimedia-keyring�f. Remove �deb
http://www.deb-multimedia.org wheezy main non-free�from �/etc/apt/sources.list�g.
Run �sudo apt-get source ffmpeg-dmo�h. Navigate to the folder using �cd ffmpeg-
dmo*�i. Run �./configure�j. Run �make && make install�k. Remove �deb-src
http://www.deb-multimedia.org sid main� from�/etc/apt/sources.list�This will
download the ffmpeg files and install them, FFMPEG could take up to afew hours to
install (step I and J).10. Create the ffserver.conf file in �/etc/� � The source
code for this file is containedwith the documentation.Steps for preparing the
Gertboard:1. Place one jumper on B1, B2 and B3 (2 pin slots right of C9).2. Place
one jumper on 3V3 (Note: the 3V3 jumper should be on the upper two pinsabove J7,
not the 3V3 at the top of the board).3. Set up SPI, place jumpers on:a. GPIO
11/SCLKb. GPIO 10 / MOSIc. GPIO 9 / MISOd. GPIO 8 / CSnA4. Set up buttons as GPIO,
place jumper cables between:a. B1 and GPIO 25b. B2 and GPIO 24c. B3 and GPIO 235.
Place jumper cable between 3V3 (top of the board) and + on breadboard.6. Place
jumper cable between GND (right of AD1 near J28) and � on breadboard.7. Set up
connection to breadboard, place jumper cables between:a. GPIO 22 and long pin on
green LEDb. GPIO 18 and long pin on yellow LEDc. GPIO 17 and long pin on red LEDd.
AD1 and middle pin of TMP36 (Temp sensor)e. AD0 and middle pin of Optical sensor37
Page 39
Steps for preparing the breadboard:1. Place 330 ohms resistors between:a. negative
(GND) and the smaller pin on the green LEDb. negative (GND) and the smaller pin on
the yellow LEDc. negative (GND) and the smaller pin on the red LED2. Place jumper
cables between:a. Positive (3V3) and the top pin of the temperature sensorb.
Negative (GND) and the bottom pin of the temperature sensorc. Positive (3V3) and
the bottom pin of the optical sensord. Negative (GND) and the top pin of the
optical sensor3. Add a .01uF capacitor to both sensors between the 3V3 and GND
connections (topand bottom).Steps for changing the webcam:1. Log in to the
Raspberry Pi using any account available (default user: pi password:raspberry) � To
view the list of devices enter �uvcdynctrl �l� this should display a list of
devices including the camera. � To view the list of available actions enter
�uvcdynctrl �c�, this will show a list of controls for the device such as zoom,
brightness, and contract. � To get the current value of any control enter
�uvcdynctrl �g control� where control is the value the user wishes to obtain such
as the contrast. � To set a value for any of the controls enter �uvcdynctrl �s
control value� for example �uvcdynctrl -s hue 0� to set the Hue value to 0. � To
list the available frame formats enter �uvcdynctrl �f�, this will give a list of
the available frame sizes, frame rates and pixel formats.Figure 16. List of frame
formats for webcam38
Page 40
2. Open �logger.py� either remotely or locally.3. To change the variables for the
storing or streaming of webcama) Scroll down to �def startRecord(method):�b) Edit
the appropriate variables (frameRate, frameSize, and other importantparameters)4.
To change the variables for the single image capturea) Scroll down to �def
singleImg():�b) Edit the appropriate variables (frameSize, inputName)5. Save the
Python script and execute it.39
Page 41
Appendix D User guide This appendix contains the User guide which shows the end
user how to run the program aswell as carry out various tasks that the software
will be used to do.Auto login:This will allow the Raspberry Pi to automatically log
in using the root account withoutprompting for a username and password during every
start up, this only works locally withinthe Pi, connecting via SSH will still
require the user to enter a username and password.1. Log in using any account.2.
Enter �sudo nano /etc/inittab�.3. Scroll down until �1:2345:respawn:/sbin/getty
�noclear 38400 tty1� is visible.4. After /sbin/getty type ��autologin root�.5. It
should now read �1:2345:respawn:/sbin/getty �autologin root �noclear 38400 tty1�.6.
Press Ctrl + X, a message should appear �Save modified buffer�.7. Type �Y�, another
message will show �file name to write�.8. Press enter.9. Restart the Raspberry Pi
and it should automatically log in using �root�.Setting script to auto run:This
will allow the Python script to automatically run when the user log into a user (if
notusing auto login) allowing the program to run with no visual display.1. Log in
using any account.2. Enter �sudo nano /etc/profile�.3. Scroll down to the bottom of
the page.4. At the end enter �python /home/pi/Desktop/logger.py�.5. Press Ctrl + X,
a message should appear �Save modified buffer�.6. Type �Y�, another message will
show �file name to write�.7. Press enter.40
Page 42
8. Restart the Raspberry Pi and the script should automatically start after logging
in (ifnot using the auto login).Running the script:NOTE: When running the python
script try to make sure it is only loaded once (eitherremotely or locally), if the
user load it via SSH and again from the Pi directly it couldcause issues and
unexpected commands.Using graphical session:To use the program on the graphical
desktop a small number of extra steps will be required toensure the file can be
executed1. Log in using root user (�root�)a. If the root password has not been set
log into the default user (default user: pidefault password: raspberry).b. Enter
�sudo passwd� in terminal the user should receive a prompt asking forthe new
password then confirmation.Figure 17. Terminal view for changing root password2.
Run the graphical desktop using command �startx�.3. Open the file manager (Menu >
Accessories > File manager).4. Locate /home/pi/Desktop.5. Right click on the
�logger.py� file and go to Properties.6. Under the Permissions tab tick the �Make
the file executable� box and click Ok.7. Double click the logger.py file and
execute in terminal.8. The python script should now have loaded.Using terminal:1.
Log in using root user (�root�)a. If the root password has not been set, log into
the default user (user: pipassword: raspberry).b. Enter �sudo passwd� in terminal
the user should receive a prompt asking forthe new password then
confirmation.Figure 18. Terminal view for changing root password41
Page 43
2. Run the command �cd /home/pi/Desktop�3. Run �python logger.py�.4. The python
script should now have loaded within the terminal.Figure 19. Terminal view when
running programStreaming webcam footage over the network:1. Locate the middle
button (indicated by S2) on the Gertboard and press it (or press 2on a keyboard if
remotely connected).2. A message in the terminal should state that the Recording
method has changed to�stream�.Figure 20. Terminal view showing stream3. Locate the
left button (indicated by S3) on the Gertboard and press it (or press 1 on
akeyboard if remotely connected).4. A warning will appear followed by sensor
information (temperature and optical).Figure 21. Terminal view when beginning
logging5. The red LED will disable and the green LED will now be showing. 6. Open a
media player such as VLC and load the stream http://ip-address-of-
pi:8001/webcam.mjpeg 7. The sensor information is sent to COSM and can be viewed
on;a. https://cosm.com/users/scottrpi# - Overviewb. https://cosm.com/feeds/117510 -
Opticalc. https://cosm.com/feeds/117505 - Temperature8. Within the �logger� folder
(home/pi/Desktop/logger) a file will be created/updatednamed �light.txt� and
�temperatures.txt� which contain information from the sensors.9. Press the left
button again (or press 1 on keyboard) to end the sensor data logging.10. The green
LED will disable and the red LED will again be showing.42
Page 44
11. (If remotely connected) press Q to end the webcam stream.Storing webcam footage
on the SD card:1. The default method when the script is loaded sets it to store
data to the SD card (if ithas been changed press 2 or middle button/S2).Figure 22.
Terminal view showing store2. Locate the left button (indicated by S3) on the
Gertboard and press it (or press 1 on akeyboard if remotely connected).3. A warning
will appear followed by sensor information (temperature and optical).Figure 23.
Terminal view when beginning logging4. The red LED will disable and the green LED
will now be showing.5. Again the sensor information is sent to COSM and can be
viewed on;a. https://cosm.com/users/scottrpi# - Overviewb.
https://cosm.com/feeds/117510 - Opticalc. https://cosm.com/feeds/117505 -
Temperature6. Within the �logger� folder (home/pi/Desktop/logger) a file will be
created/updatednamed �light.txt� and �temperatures.txt� which will contain
information from thesensors as well as a �webcam-XXXX-XX-XX~XX:XX:XX.mpeg� file
containing thewebcam footage and the timestamp from when it was taken (in the
filename).Figure 24. List of contents within logger folder7. Press the left button
again (or press 1 on keyboard) to end the sensor data logging.8. The green LED will
disable and the red LED will again be showing.9. (If remotely connected) press Q to
end the webcam storing.Taking a single webcam image:1. Locate the right button
(indicated by S1) on the Gertboard and press it (or press 3 ona keyboard if
remotely connected).2. The yellow LED will flash on for a second and off again.3. A
message in terminal should state �Writing JPEG image to ��.43
Page 45
Figure 25. Terminal view taking single image4. Within the �logger� folder
(home/pi/Desktop/logger) a file will be created named�image-XXXX-XX-
XX~XX:XX:XX.jpg� which will contain the single image and thetimestamp from when it
was taken (in the filename).44
Page 46
Appendix E Source code for logger.py Program This appendix contains the source code
for the logger.py file which is the main programwhich allows data
logging.#**************************************************************************
********************************## Name: project.py## Description: Python program
for the Data Logger## OS: Raspbian## Author: Scott Cairns## Notes: If any errors
occur, ensure that installation guide has been followed
properly##*************************************************************************
*********************************#import os# used for terminalcommandsimport time#
get timestamp to put onfiles and gpioimport datetime# used for timestampimport
RPi.GPIO as gpio# access to the GPIOimport spidev# for A/D convertersimport
multiprocessing# for threading/multiprocessingimport eeml# Markup language
forCOSMfrom evdev import UInput, ecodes as e # Imitating a key eventimport signal#
for killing taskimport termios# for key pressesimport thread# for key presses
thread# reload spi drivers prevent spi failuresimport subprocessunload_spi =
subprocess.Popen('sudo rmmod spi_bcm2708',
shell=True,stdout=subprocess.PIPE)start_spi = subprocess.Popen('sudo modprobe
spi_bcm2708', shell=True,stdout=subprocess.PIPE)45
Page 47
# set up GPIO pins for 3 input (buttons) and 3 output (LEDs)gpio.setmode(gpio.BCM)#
Sets to BM mode which allows you to usevisual pin numbergpio.setwarnings(False)#
Sometimes 'channel already in use' warning shows,this disables itredLED = 17#
variable to hold GPIO pin numberfor red LEDgreenLED = 22# GPIO pin number for green
LEDyellowLED = 18# GPIO pin number for yellow LEDgpio.setup(yellowLED, gpio.OUT)#
GPIO ID for yellow LED (single image)gpio.setup(redLED, gpio.OUT)# GPIO ID for red
LED (stop recording)gpio.setup(greenLED, gpio.OUT)# GPIO ID for green
LEDgpio.setup(23, gpio.IN, pull_up_down=gpio.PUD_UP) # Set up button on
Gertboardgpio.setup(24, gpio.IN, pull_up_down=gpio.PUD_UP) # Set up button on
Gertboardgpio.setup(25, gpio.IN, pull_up_down=gpio.PUD_UP) # Set up button on
Gertboard# set all GPIO LEDs to be disabled by default except
redgpio.output(yellowLED, False)gpio.output(redLED, True)# True to show it's not
recordinggpio.output(greenLED, False)# boolean to hold value if recording or
notrecording = False# variable to hold the recording method (store or stream)method
= "store"# variable to hold the current detected key presskeyDetect = ''# variable
to hold whether we're looking for key presses or not# (prevent it being called
thousands of times)keyRun = False# Variables for using in console warning using
ANSI escaped sequencesgreen = '\033[92m'# colour code for greenblue = '\033[94m'#
colour code for blueyellow = '\033[93m'# colour code for yellowred = '\033[91m'#
colour code for redendc = '\033[0m'# end of console warning# variable to hold the
connection method (if remotely connected linux sets the 'DISPLAY'# environment
variable (such as localhost:10.0) if not then returns Empty variable ('None')conVar
= os.environ.get('DISPLAY')if (conVar != None):# if connection method isn't
'None'ie remotely connected46
Page 48
conMethod = "remote"# set the method to 'remote'print yellow + 'INFO: As you are
remotely connected you can overwrite buttons' +endc# print infoprint yellow + 'Key
1 = GPIO #23 (Record), Key 2 = GPIO #24 (Stop record), Key 3= GPIO #25 (Capture)' +
endc # print infoelse:# if it's not remotelyconnectedconMethod = "local"# set
method to 'local'# COSM info - allows real time graphing over the
internettemp_api_key = 'R-TZoaYnOUWVnf-s_mLMHwL3LQeSAKxZY0tNdThiS0I2VT0g'# API key
for COSM - Temptemp_api_feed = 117505# Feed ID for COSM - Templight_api_key =
'_Ea8XluPFqxAv3IQF-Zhk_3VqBySAKwrZGxXT0hPQTREOD0g'# API key for COSM -
Lightlight_api_feed = 117510# Feed ID for COSM - Lighttemp_api_url = '/v2/feeds/
{feednum}.xml'.format(feednum = temp_api_feed)# API URLlight_api_url = '/v2/feeds/
{feednum}.xml'.format(feednum = light_api_feed)# API URL#
https://cosm.com/users/scottrpi- shows both feeds# https://cosm.com/feeds/117510-
shows feed for light sensor# https://cosm.com/feeds/117505- shows feed for temp
sensor# Function to obtain the Analog to Digital conversion and return the valuedef
get_adc(channel):spi = spidev.SpiDev ()# use spidevpython wrapper to communicate
with SPI portspi.open(0,0)#open channel 0 (ADC is on SPI channel 0 (CE0 / GPIO8)#r
= spi.xfer2([1,(3)<<4,0])#adc_val = ((r[1]&3) << 8) + r[2]if (channel ==
0):#Channel 0 (actual AC1) is the Light sensor# Send start bit, sgl/diff, odd/sign,
MSBF# channel = 0 sends 0000 0001 1000 0000 0000 0000# channel = 1 sends 0000 0001
1100 0000 0000 0000# sgl/diff = 1; odd/sign = channel; MSBF = 0r = spi.xfer2([1,
(2+channel)<<6,0])# spi.xfer2 returns same number of 8 bit bytes# as sent. In this
case, 3 - 8 bit bytes are returned# We must then parse out the correct 10 bit byte
from# the 24 bits returned. The following line discards# all bits but the 10 data
bits from the center of47
Page 49
# the last 2 bytes: XXXX XXXX - XXXX DDDD - DDDD DDXXadc_val = ((r[1]&31) << 6) +
(r[2] >> 2)if (channel == 1):#Channel 1 (Actual AC0) is the Temp sensor# Send start
bit, sgl/diff, odd/sign, MSBF# channel = 0 sends 0000 0001 1000 0000 0000 0000#
channel = 1 sends 0000 0001 1100 0000 0000 0000# sgl/diff = 1; odd/sign = channel;
MSBF = 0r = spi.xfer2([1,(2+channel)<<6,0])# spi.xfer2 returns same number of 8 bit
bytes# as sent. In this case, 3 - 8 bit bytes are returned# We must then parse out
the correct 10 bit byte from# the 24 bits returned. The following line discards#
all bits but the 10 data bits from the center of# the last 2 bytes: XXXX XXXX -
XXXX DDDD - DDDD DDXXadc_val = ((r[1]&31) << 6) + (r[2] >> 2)return adc_val#
Function to request the digital value from temperature sensor and record it and
graph itdef recordTemp():try:while 1:# LooptimeInt = time.time()# Get current
timestamp as an integertimeStr =
datetime.datetime.fromtimestamp(timeInt).strftime('%Y-%m-%d %H:%M:%S') # Convert it
to a stringreading = get_adc(1)# get temp sensor digital readingc_temp = (((reading
* (3300.0 / 1024.0)) - 100.0) / 10.0) - 40.0 #Calculate temp in Cf_temp = ( c_temp
* 9.0 / 5.0) + 32#Calculate temp in Fc_temp = "%.1f" % c_temp# set C temp to 1
decimal placef_temp = "%.1f" % f_temp# set F temp to 1 decimal placeprint
"Temperature: ", c_temp, "C", f_temp, "F" # print thetemperatures into terminalf =
open('/home/pi/Desktop/logger/temperatures.txt', 'a') # Opensfile 'temperatures'
with method A for appendf.write("Time: " + timeStr + " Temperature: " + c_temp + "C
" +f_temp + "F\n") # write temp to filef.close()# close fileonce finished the
write#pac = eeml.Pachube(temp_api_url, temp_api_key)# using markup language to
connect to COSM (previously Pachube)48
Page 50
#pac.update([eeml.Data(0, c_temp, unit=eeml.Celsius())])# set the data and use
Celsius unit#pac.put()# do ittime.sleep(30)# Only record thetemperatures every 30
secondsreturn;except KeyboardInterrupt:# Ctrl C on keyboardos.system("reset")#
Reset terminal to prevent hidden charactersafter program endsgpio.cleanup()# reset
GPIO ports if KeyboardInterrupt# Function to request the digital value from light
sensor and record it and graph itdef recordLight():try:while 1:# LooptimeInt =
time.time()# Get currenttimestamp as an integertimeStr =
datetime.datetime.fromtimestamp(timeInt).strftime('%Y-%m-%d %H:%M:%S') # Convert it
to a stringreading = get_adc(0)# get light sensordigital readingprint "Light: ",
reading# print light sensor readinglight = reading# set light tothe return
variablelight = "%.1f" % light# set light reading to1 decimal placef =
open('/home/pi/Desktop/logger/light.txt', 'a')# Opens file 'light.txt' with method
a for appendf.write("Time: " + timeStr + " Light: " + light + "\n")# write
lightinfo to filef.close()# Close file once finished writing#pac =
eeml.Pachube(light_api_url, light_api_key)# usingmarkup language to connect to COSM
(previously Pachube)#pac.update([eeml.Data(0, light)])# run update, don't set a
data type as it's just raw number#pac.put()# do ittime.sleep(30)#Record light every
30 secondsreturn;except KeyboardInterrupt:# Ctrl C on keyboardos.system("reset")#
Reset terminal to prevent hidden charactersafter program endsgpio.cleanup()# reset
GPIO ports if KeyboardInterrupt49
Page 51
# Function to set variables required for recording and start the recordingdef
startRecord(method):try:# set up the variables required for the recordingserverConf
= "/etc/ffserver.conf"# path to the ffserver configlogLevel = "error"# logging
level, quiet, panic,fatal, error, warning, info, verbose, debugrframeRate = "1"#
Frame rate in Hz(for saving/recording)sframeRate = "30"# Frame rate in Hz(for
streaming)frameSize = "352x288"# Set frame size in width xheight (640x480, 352x288,
320x240, 176x144, 160x120 supported)fileFormat = "video4linux2"# output
formatinputName = "/dev/video0"# Input type, video0 forcameraoutLocation =
"http://localhost:8001/webcam.ffm"# Output location,over networktimeInt =
time.time()# Get current timestamp asan integertimeStr =
datetime.datetime.fromtimestamp(timeInt).strftime('%Y-%m-%d~%H:%M:%S') # Convert it
to a stringoutLocationSave = "/home/pi/Desktop/logger/webcam-%s.avi" %timeStr#
Output location, in this case save under /home/pi/ with name 'webcam-
timestamp.mpg'vSync = "1"# videosync (make sure no duplicate frames etcaSync = "1"#
audiosync to fix wait at startaFormat = "alsa"# format for audio:oss or
alsaaChannel = "1"# audio channelsaInput = "hw:1,0"# input device foraudio (sound
card #1 sub #0)# Run terminal command to run ffserver and
ffmpeg#os.system("ffserver -f " + serverConf + " & ffmpeg -v " + logLevel +#" -r "
+ frameRate + " -s " + frameSize + " -f " + fileFormat +#" -i " + inputName + "
-vcodec mjpeg -f alsa -ac 1 -ar 48000-i hw:1,0 " + outLocation + " " +
outLocationSave)p = subprocess.Popen(['ps', '-A'], stdout=subprocess.PIPE)#check
open processes50
Page 52
out, err = p.communicate()# record them in 'out'for line in out.splitlines():#
check each lineif 'ffmpeg' in line:# if ffmpeg is in itprint red + "Attempting to
kill ffmpeg - May cause audioissues with last save" + endctime.sleep(2)# show
warning for 2 seconds before continuingpid = int(line.split(None, 1)[0])# get the
process IDos.kill(pid, signal.SIGKILL)# send kill signalif (method == "store"):# if
the selected method is to store itto the SD card (video + audio)#print "Recording
has started - Storing to SD card"#print appropriate message#os.system("ffmpeg -v "
+ logLevel + " -r " + frameRate + " -s " +frameSize + " -f " + fileFormat +#" -i "
+ inputName + " -f alsa -ac 1 -i hw:1,0 " + " " +outLocationSave)os.system("ffmpeg
-v " + logLevel + " -r " + rframeRate + " -s " +frameSize + " -f " + fileFormat +"
-vsync " + vSync + " -i " + inputName + " -f " +aFormat + " -ar 8000 -ac " +
aChannel + " -async " +aSync + " -i " + aInput + " " + outLocationSave)elif (method
== "stream"):# if the selected method is to strream it overnetwork (video
only)print "Recording has started - Streaming across network"# printappropriate
messageos.system("ffserver -f " + serverConf + " & ffmpeg -v " + logLevel +" -r " +
sframeRate + " -s " + frameSize + " -f " +fileFormat +" -i " + inputName + " " +
outLocation)return;except KeyboardInterrupt:# Ctrl C on keyboardos.system("reset")#
Reset terminal to prevent hidden charactersafter program endsgpio.cleanup()# reset
GPIO ports if KeyboardInterrupt# Function to end the processes / recording51
Page 53
def stopRecord(recording):try:if (recording == True):# if recording hasstartedif
(p1.is_alive()):# If process1 (recordTemp) is alivep1.terminate()#
terminateprocessif (p2.is_alive()):# If process2 (recordLight) is
alivep2.terminate()# terminateprocessif (p3.is_alive()):# If process3 (startRecord)
is alivep3.terminate()# terminateprocess# Imitate a key press, only works if
running script from device(remote connection requires pressing q)if (conMethod ==
"local"):# only do itif actually on the deviceui = UInput()#create new
uinputui.write(e.EV_KEY,e.KEY_Q, 1)# key Qpress downui.write(e.EV_KEY,e.KEY_Q, 0)#
key Qpress upui.syn ()# doitui.close()# close uinputprint "Recorded finished"#
printappropriate messageelse:# ifrecording hasn't startedprint "Recording has not
yet started"# print appropriate messagereturn;except KeyboardInterrupt:# Ctrl C on
keyboardos.system("reset")# Reset terminal to prevent hidden charactersafter
program endsgpio.cleanup()# reset GPIO ports if KeyboardInterrupt# Function to set
variables for an image and execute itdef singleImg():52
Page 54
frameSize = "352x288"# Set frame size in width x heightinputName = "/dev/video0"#
Input type, video0 for cameratimeInt = time.time()# Get current timestamp as
anintegertimeStr = datetime.datetime.fromtimestamp(timeInt).strftime('%Y-%m-%d~%H:
%M:%S') # Convert it to a stringpicOut = "/home/pi/Desktop/logger/image-%s.jpg" %
timeStr # Output locationfor single image timestamp attachedp =
subprocess.Popen(['ps', '-A'], stdout=subprocess.PIPE)# checkopen processesout, err
= p.communicate()# record them in 'out'for line in out.splitlines():# check each
lineif 'ffmpeg' in line:# if ffmpeg is in itprint red + "Attempting to kill ffmpeg
- May cause audio issues withlast save" + endctime.sleep(2)pid =
int(line.split(None, 1)[0])# get the process IDos.kill(pid, signal.SIGKILL)# send
kill signal# Run terminal command which will take a single image and save it to
picOutos.system("fswebcam -r " + frameSize + " -d " + inputName + " " +
picOut)return;def keyPress():try:term = open("/dev/tty", "r")# /dev/tty is the
terminal for the currentprocess, open in reading modefd = term.fileno()# returns
integer filedesciptorold = termios.tcgetattr(fd)# return list containing tty
attributesfor file descriptornew = termios.tcgetattr(fd)# return list containing
tty attributesfor file descriptornew[3] &= ~termios.ICANON & ~termios.ECHO#
canonical modeand echo input characterstermios.tcsetattr(fd, termios.TCSANOW, new)
# sets the parametersassociated with terminal, TCSANOW = immediatelykey = None#
current key isn'tset53
Page 55
try:# trykey = os.read(fd, 1)# read key pressfinally:# always execute this
beforeleaving try statementtermios.tcsetattr(fd, termios.TCSAFLUSH, old) # set
attrs again thistime after all output is written to object has fd has been
trasmittedterm.close()# close the fileglobal keyDetect# allow overwriting
ofvariable outside functionglobal keyRun# allow overwriting ofvariable outside
functionif key == '1':# if keypressed is '1'keyDetect = '1'# then set itto 1elif
key == '2':# if key is '2'keyDetect = '2'# set to 2elif key == '3':# if key is
'3'keyDetect = '3'# set to 3elif key == 'Q':# if key is 'Q'print 'Please try
again'# print message to try againelse:#otherwiseprint 'Unusable key detected'#
print to show unusuablekeykeyRun = False# set it tofalse as it's not longer
runningexcept KeyboardInterrupt:# Ctrl C on keyboardos.system("reset")# Reset
terminal to prevent hidden charactersafter program endsgpio.cleanup()# reset GPIO
ports if KeyboardInterrupttry:time.sleep(1)# preventsome misreading buttons during
start upprint "Python Program loaded, press a button to continue"while 1:# Infinite
loopif (((gpio.input(23) == False) or (keyDetect == '1')) and (recording ==False)):
# if record button is pressed and not recording, record54
Page 56
if (conMethod == "remote"):# give warning if remotelyconnectedprint yellow + "INFO:
As remotely connected you must pressQ to end the webcam stream" + endcprint yellow
+ "WARNING: When ending the stream, it may take afew minutes depending on the
length of recording" + endctime.sleep(2)# give timeto read the
infogpio.output(redLED, False)# disable the redLEDgpio.output(greenLED, True)#
enable the LED toshow it's recording (green)recording = True#Setrecording variable
to truep1 = multiprocessing.Process(target=recordTemp)#create a process with target
as recordTempp2 = multiprocessing.Process(target=recordLight)# create aprocess with
target as recordLightp3 = multiprocessing.Process(target=startRecord,
args=(method,))# create a process with target as startRecord taking 'method'
variable as paramp3.start()#Start process to startRecordtime.sleep(2)# wait a
fewsecondsp1.start()#Start process to recordTemptime.sleep(3)# wait a
fewsecondsp2.start()#Start process to recordLightkeyDetect = ''#
ResetkeyDetecttime.sleep(1)# preventbutton from being detected several times with 1
pressif (((gpio.input(23) == False) or (keyDetect == '1')) and (recording ==
True)):# if record button is pressed and recording, stopgpio.output(greenLED,
False)# disable the LED to showit's recording (green)gpio.output(redLED, True)#
enable the LED toshow it's not recording (red)stopRecord(recording);# Call
thestopRecord function (pass recording boolean)recording = False#Setrecording
variable to falsekeyDetect = ''# resetkeyDetect55
Page 57
time.sleep(1)# preventbutton from being detected several times with 1 pressif
(((gpio.input(24) == False) or (keyDetect == '2')) and (method == "store")):# if
switch button is pressed and current method is storemethod = "stream"# changemethod
to streamprint "Recording method has changed to stream - The recording willbe
streamed across the network" # print appropriate messagekeyDetect = ''#
resetkeyDetecttime.sleep(1)# sleep for 1secondif (((gpio.input(24) == False) or
(keyDetect == '2')) and (method =="stream")):# if switch button is pressed and
current method is streammethod = "store"# changemethod to storeprint "Recording
method has changed to store - The recording will besaved to the SD card" # print
appropriate messagekeyDetect = ''# resetkeyDetecttime.sleep(1)# sleep for 1secondif
((gpio.input(25) == False) or (keyDetect == '3')):gpio.output(yellowLED, True)#
enable LED for shortduration to show it's taken image (yellow)time.sleep(1)# sleep
forone secondgpio.output(yellowLED, False)# disable LED againsingleImg();# Call
thesingleImg functionkeyDetect = ''# resetkeyDetecttime.sleep(1)# preventbutton
from being detected several times with 1 pressif ((conMethod == "remote") and
(keyRun == False)):# if remotely connected start function to allow key
detectiontime.sleep(1)# allow timefor q to be
pressedthread.start_new_thread( keyPress, ())keyRun = True# set it totrue so it
won't call this statement each loopexcept KeyboardInterrupt:# Ctrl C on
keyboardos.system("reset")# Reset terminal to prevent hidden characters
afterprogram endsgpio.cleanup()# reset GPIO ports if KeyboardInterrupt56
Page 58
gpio.cleanup()# reset GPIO ports if exitos.system("reset")# Reset terminal to
prevent hidden characters after programends57
Search
Search
Search
Upload
EN
Change Language

Home
Saved
Bestsellers
Books
Audiobooks
Snapshots
Magazines
Documents
Sheet Music

Once you upload an approved document, you will be able to download the document

Cairns Thesis

Don't want to upload?


Get unlimited downloads as a member

Sign Up Now
Upload a document to access your download
Upload your original presentations, research papers, class notes, or other
documents to download Cairns Thesis

Select Documents To Upload


or drag & drop
Supported file types: pdf, txt, doc, ppt, xls, docx, and more
By uploading, you agree to our Scribd Uploader Agreement

Reach more than 90 million readers

Upload in seconds

Index with Google and other search engines

Embed on your own website

FROM OUR USERS


Since discovering Scribd, it's the only website I use to upload and share my
documents. It's fast, easy to use, and I can upload as much as I want.

Marin S.

I go back to Scribd every time because I know I can trust it to work quickly and
the content will look great. Scribd helps me tell better stories.

Sara R.

I use Scribd because it's the best place to find high quality information and share
it with a global audience.

Almir O.

Footer Menu
ABOUT
About Scribd
Press
Our blog
Join our team!
Contact Us
Invite Friends
Gifts
SUPPORT
Help / FAQ
Accessibility
Purchase help
AdChoices
Publishers
LEGAL
Terms
Privacy
Copyright
Social Media
Scribd - Download on the App Store
Scribd - Get it on Google Play
Copyright � 2019 Scribd Inc. .Browse Books.Site Directory.
Site Language:
English
Change Language

Documents
Sheet Music

Main Page
Site Index
Report an Issue
About / Contact
Support LearnCpp
SEARCH

2.4 � Introduction to local scope


BY ALEX ON FEBRUARY 8TH, 2015 | LAST MODIFIED BY ALEX ON AUGUST 30TH, 2019
Local variables

Function parameters, as well as variables defined inside the function body, are
called local variables (as opposed to global variables, which we�ll discuss in a
future chapter).

1
2
3
4
5
6
int add(int x, int y) // function parameters x and y are local variables
{
int z{ x + y }; // z is a local variable too

return z;
}
In this lesson, we�ll take a look at some properties of local variables in more
detail.
Local variable lifetime

In lesson 1.3 -- Introduction to variables, we discussed how a variable definition


such as int x; causes the variable to be instantiated (created) when this statement
is executed. Function parameters are created and initialized when the function is
entered, and variables within the function body are created and initialized at the
point of definition.

int add(int x, int y)


{
int z{ x + y };

return z;function is entered, and destroyed in the opposite order of creation


when the function is exited. We�ll discuss this in more detail in a future lesson,
when we talk about the call stack.
Here�s a slightly more complex program demonstrating the lifetime of a variable
named x:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>

void doSomething()
{
std::cout << "Hello!\n";
}

int main()
{
int x{ 0 }; // x's lifetime begins here

doSomething(); // x is still alive during this function call

return 0;
} // x's lifetime ends here
In the above program, x�s lifetime runs from the point of definition to the end of
function main. This includes the time spent during the execution of function
doSomething.

Local scope

An identifier�s scope determines where the identifier can be accessed within the
source code. When an identifier can be accessed, we say it is in scope. When an
identifier can not be accessed, we say it is out of scope. Scope is a compile-time
property, and trying to use an identifier when it is not in scope will result in a
compile error.

A local variable�s scope begins at the point of variable definition, and stops at
the end of the set of curly braces in which they are defined (or for function
parameters, at the end of the function). This ensures variables can not be used
before the point of definition (even if the compiler opts to create them before
then).

Here�s a program demonstrating the scope of a variable named x:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>

// x is not in scope anywhere in this function


void doSomething()
{
std::cout << "Hello!\n";
}

int main()
{
// x can not be used here because it's not in scope yet

int x{ 0 }; // x enters scope here and can now be used

doSomething();

return 0;
} // x goes out of scope here and can no longer be used
In the above program, variable x enters scope at the point of definition and goes
out of scope at the end of the main function. Note that variable x is not in scope
anywhere inside of function doSomething. The fact that function main calls function
doSomething is irrelevant in this context.

Note that local variables have the same definitions for scope and lifetime. For
local variables, scope and lifetime are linked -- that is, a variable�s lifetime
starts when it enters scope, and ends when it goes out of scope.

Another example
Here�s a slightly more complex example. Remember, lifetime is a runtime property,
and scope is a compile-time property, so although we are talking about both in the
same program, they are enforced at different points.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>

int add(int x, int y) // x and y are created and enter scope here
{
// x and y are visible/usable within this function only
return x + y;
} // y and x go out of scope and are destroyed here

int main()
{
int a{ 5 }; // a is created, initialized, and enters scope here
int b{ 6 }; // b is created, initialized, and enters scope here

// a and b are usable within this function only


std::cout << add(a, b) << '\n'; // calls function add() with x=5 and y=6

return 0;
} // b and a go out of scope and are destroyed here
Parameters x and y are created when the add function is called, can only be
seen/used within function add, and are destroyed at the end of add. Variables a and
b are created within function main, can only be seen/used within function main, and
are destroyed at the end of main.

To enhance your understanding of how all this fits together, let�s trace through
this program in a little more detail. The following happens, in order:

execution starts at the top of main


main�s variable a is created and given value 5
main�s variable b is created and given value 6
function add is called with values 5 and 6 for arguments
add�s variable x is created and initialized with value 5
add�s variable y is created and initialized with value 6
operator+ evaluates expression x + y to produce the value 11
add copies the value 11 back to caller main
add�s y and x are destroyed
main prints 11 to the console
main returns 0 to the operating system
main�s b and a are destroyed
And we�re done.

Note that if function add were to be called twice, parameters x and y would be
created and destroyed twice -- once for each call. In a program with lots of
functions and function calls, variables are created and destroyed often.

Functional separation

In the above example, it�s easy to see that variables a and b are different
variables from x and y.

Now consider the following similar program:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>

int add(int x, int y) // add's x and y are created and enter scope here
{
// add's x and y are visible/usable within this function only
return x + y;
} // add's y and x go out of scope and are destroyed here

int main()
{
int x{ 5 }; // main's x is created, initialized, and enters scope here
int y{ 6 }; // main's y is created, initialized, and enters scope here

// main's x and y are usable within this function only


std::cout << add(x, y) << '\n'; // calls function add() with x=5 and y=6

return 0;
} // main's y and x go out of scope and are destroyed here
In this example, all we�ve done is change the names of variables a and b inside of
function main to x and y. This program compiles and runs identically, even though
functions main and add both have variables named x and y. Why does this work?

First, we need to recognize that even though functions main and add both have
variables named x and y, these variables are distinct. The x and y in function main
have nothing to do with the x and y in function add -- they just happen to share
the same names.
Second, when inside of function main, the names x and y refer to main�s locally
scoped variables x and y. Those variables can only be seen (and used) inside of
main. Similarly, when inside function add, the names x and y refer to function
parameters x and y, which can only be seen (and used) inside of add.

In short, neither add nor main know that the other function has variables with the
same names. Because the scopes don�t overlap, it�s always clear to the compiler
which x and y are being referred to at any time.

Key insight

Names used for function parameters or variables declared in a function body are
only visible within the function that declares them. This means local variables
within a function can be named without regard for the names of variables in other
functions. This helps keep functions independent.
We�ll talk more about local scope, and other kinds of scope, in a future chapter.

Where to define local variables

Local variables inside the function body should be defined as close to their first
use as reasonable:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>

int main()
{
std::cout << "Enter an integer: ";
int x{}; // x defined here
std::cin >> x; // and used here

std::cout << "Enter another integer: ";


int y{}; // y defined here
std::cin >> y; // and used here

int sum{ x + y }; // sum defined here


std::cout << "The sum is: " << sum; // and used here

return 0;
}
In the above example, each variable is defined just before it is first used.
There�s no need to be strict about this -- if you prefer to swap lines 5 and 6,
that�s fine.

Best practice

Define your local variables as close to their first use as reasonable.


Quiz time

Question #1

What does the following program print?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>

void doIt(int x)
{
int y{ 4 };
std::cout << "doIt: x = " << x << " y = " << y << '\n';

x = 3;
std::cout << "doIt: x = " << x << " y = " << y << '\n';
}

int main()
{
int x{ 1 };
int y{ 2 };

std::cout << "main: x = " << x << " y = " << y << '\n';

doIt(x);

std::cout << "main: x = " << x << " y = " << y << '\n';

return 0;
}
Show Solution

2.5 -- Why functions are useful, and how to use them effectively
Index
2.3 -- Introduction to function parameters and arguments

C++ TUTORIAL | Print This Post PRINT THIS POST


157 comments to 2.4 � Introduction to local scope
� Older Comments 1 2 3
Dan
August 28, 2019 at 9:35 am � Reply
Quick scroll through the comments and didn't see this question. I apologize if it's
a repeat. Is there a best practice when naming a parameter variable and the
argument variable passed to it? Even though they can have the same name like in the
example demonstrating scope, it seems to me that it could be a source of confusion
to anyone reading your code if they did.

nascardriver
August 29, 2019 at 12:04 am � Reply
If they describe the same thing, they should have the same name. `x` and `y` are
bad names, unless they're used for coordinates where they're well established
names.
Local variables are a feature of many programming languages, anyone who knows a
language will understand them.
If this is your first language, it's ok to be confused, it'll pass.

Dan
August 30, 2019 at 3:39 am � Reply
Thanks!

Jose
July 29, 2019 at 6:31 am � Reply
Hi, when explaining the quiz code at the end I think
"doIt�s x and y are destroyed" and
"main�s x and y are destroyed"
should have the identifiers in reverse order to keep consistency with what�s been
explained previously.

Alex
July 29, 2019 at 11:27 am � Reply
Updated. Thanks for the suggestion.

Singh
June 18, 2019 at 8:46 am � Reply
I am getting below the result of running a shared program. Just curious to know
what made the malfunction while running below code whereas its working fine with
other two options.

OUTPUT:
"Please add both numbers.
A: 5
B: 6
Addition of both 5 and 6 is 116296576

Program Finished."
[code]
#include <iostream>

int addfunction(int x, int y)


{
std::cout<<"Addition of both " <<x <<" and " <<y <<" is " <<x+y;
/* why can't we use above where as both the belw sections works fine.
instead of
int c{x+y};
return c;
OR
retrun x+y; */
}

int main()
{
int a, b;
std::cout<<"Please add both numbers.\n";
std::cout<<"A: ";
std::cin>>a;
std::cout<<"B: ";
std::cin>>b;

std::cout<<addfunction(a,b);

std::cout<<"\n\nProgram Finished.";

return 0;
}
[\code]

Arman
June 19, 2019 at 2:48 am � Reply
Mistake 1:type of addfunction function must be void.because it doesnt return any
value and just print sth on screen.
Mistake 2:you shouldn't use cout<<addfunction(a,b); because addfunction doesnt
return any value.you should simply call the function itself without cout.

nascardriver
June 19, 2019 at 3:17 am � Reply
Correct. Your code tags will work if you close them using a forward slash (/). You
should always print a line feed as the last character of you output to avoid mixed
lines.

Prateek
May 3, 2019 at 4:39 am � Reply
In second snippet(above ) :

int add( int x , int y) // x and y created and initialized here

I am a bit confused here. I understand that 'x' and 'y' has been created but how is
it initialized?
Here 'x' and 'y'has not been assigned any value.

Please do reply

nascardriver
May 3, 2019 at 4:43 am � Reply
They're initialized from the values that are passed by the caller.
1
add(3, 1); // x = 3, y = 1

Cade
April 14, 2019 at 2:09 am � Reply
Under the local scope section it says: �Here�s program� instead of �Here�s a
program� or �Here is a program�. Not try a be annoying just wanted to help.

Have a Good Day:)

Alex
April 14, 2019 at 8:13 am � Reply
Thanks, appreciate you pointing out the typo. Fixed!

Michael Johnston
April 1, 2019 at 1:54 am � Reply
Great explanation for people new to programming; however, as someone coming from
another language where, by default, parameters are passed by reference, I got the
quiz wrong. It might be helpful to include another �for advanced users� snippet on
this which states this explicitly.

nascardriver
April 1, 2019 at 2:50 am � Reply
Hi!

Which language is it you're talking about? I only know languages where objects or
arrays are passed by reference by default, but none where all arguments are passed
by reference.

Dirk de Klerk
April 3, 2019 at 10:18 am � Reply
You seemed to have skipped 2.3. He explicitly states that when arguments are passed
to parameters when calling functions it is "passed by value". He even wrote it in
bold.

Saurabh
March 18, 2019 at 6:05 pm � Reply
https://www.learncpp.com/cpp-tutorial/introduction-to-local-scope/

This ensures variables can not be used before the point of definition (even if the
compiler opts to create them before them).

I think that this should be ... compiler opts to create them before then

(then instead of them)

Alex
March 19, 2019 at 8:35 pm � Reply
Fixed. Thanks!

Juan
March 3, 2019 at 10:58 am � Reply
The page is very good, I would just say: they can relax with the use of "astute
readers". It sounds to differentiate groups of people, according to their qualities
(which leads to discrimination). If this is a page to learn something without prior
knowledge, it is not necessary to assume anything that has not been explained.
Perhaps, instead of astute readers, less ambiguous explanations would be needed.
That is why the work of rewriting parts of the tutorials, to update their content,
is a good practice. Thanks for that hard work!

Alex
March 4, 2019 at 9:15 pm � Reply
Fair enough. All astuteness has been removed. I appreciate the feedback.

Hana
March 2, 2019 at 1:54 pm � Reply
The output of the solution's "doit" is "doIt" with a capital I instead.

Alex
March 4, 2019 at 9:08 pm � Reply
Thanks! Fixed.

Wilson
February 24, 2019 at 1:48 pm � Reply
First three code snippets has a small typo here:

int z{ x + y; }

(should be int z{ x + y };)....

otherwise, great guide, Alex. Thanks!

Alex
February 26, 2019 at 7:35 pm � Reply
Fixed! Thanks for pointing out the typo.

GG
February 5, 2019 at 4:38 am � Reply
in another example: main�s b and z are destroyed should be.... main�s b and a are
destroyed

Alex
February 7, 2019 at 6:07 am � Reply
Thanks!

Hans
October 26, 2018 at 12:25 am � Reply
Helo there, first of all thanks for making this site. I learn so much here. I wanna
ask something about the answer for this quiz. Why does the variable x in void doIt
has value of 1? void doIt(int x) didn't give it value so shouldn't it become
unpredictable?

nascardriver
October 26, 2018 at 1:54 am � Reply
@x is passed to @doIt from @main. You might want to re-read lesson 1.4a, because
this is an important concept.

Hans
October 26, 2018 at 7:06 am � Reply
Whoa thanks nascardriver for the reply and enlightment. I understand it now. I miss
the little x inside the doIt there. My bad XD

Sourabh
October 18, 2018 at 10:45 pm � Reply
HEY
if nothing is initialized in int x= {nothing is assigned here to x}
what will be the value given by compiler to X???

nascardriver
October 19, 2018 at 2:55 am � Reply
1
2
3
4
5
int x; // Undefined
int x =; // Syntax error
int x = 0; // 0
int x{ 0 }; // 0 (Uniform initialization, lesson 2.1)
int x{}; // 0
Kio
March 7, 2018 at 3:58 pm � Reply
Hi Alex,

Maybe some kind of suggestion. What do you think,


using same example below this

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>

int add(int x, int y) // add's x and y are created here


{
return x + y;
} // add's x and y go out of scope and are destroyed here

int main()
{
int x = 5; // main's x is created here
int y = 6; // main's y is created here
std::cout << add(x, y) << std::endl; // the values from main's x and y are
copied into add's x and y
return 0;
}
additional print address of the variable x and y (so beginners can see, that their
addresses are different). Or maybe this is confusing?

� Older Comments 1 2 3
Leave a Comment
Put all code inside code tags: [code]your code here[/code]
Name (required)

Email (will not be published) (required)


Website

ADMIN
Log in
LearnCpp.com -- Teaching you how to program in C++ since 2007.
Copyright � 2019 Learn C++ - All Rights Reserved
1 views
0Up votes, mark as useful
0Down votes, mark as not useful
Rasberry-Pi-Based-Fleet-Telematics-System-for-San-Miguel-Family.docx
Uploaded byJoshua Israel Albao Date uploadedon May 01, 2019
Description:Full description

Save
Save Rasberry-Pi-Based-Fleet-Telematics-System-For-San-... For Later

Embed

Share

Print
RELATED TITLES
Carousel Next
Srisms.battery.charger.with.Digital.display
Srisms.battery.charger.with.Digital.display
Linux Lab 15 Apache Virtual Host Access Control
Linux Lab 15 Apache Virtual Host Access Control
Battery and Charger Sizing Calculation - ST-LQ
Battery and Charger Sizing Calculation - ST-LQ
Lumax Auto Q1 FY18 Presentation
Lumax Auto Q1 FY18 Presentation
Fire-Lite CHG-120F Data Sheet
Fire-Lite CHG-120F Data Sheet
Rechargeable Portable USB Charger
Rechargeable Portable USB Charger
Zabbix Howto
Zabbix Howto
Apollo Manuals Complete
Apollo Manuals Complete
Shark Cordless Floor & Carpet Sweeper
Shark Cordless Floor & Carpet Sweeper
AirRam Manual
AirRam Manual
VRLA Battery Testing
VRLA Battery Testing
Cargadores
Cargadores
Bench Marking on Web Server
Bench Marking on Web Server
Apache Security 1ed TOC and Preface
Apache Security 1ed TOC and Preface
June Promo 2013
June Promo 2013
BAC06A_V1.0_en
BAC06A_V1.0_en
Weekly Check List
Weekly Check List
Doc
Doc
Sunsaver Manual
Sunsaver Manual
Configuring Tomcat With Apache or IIS for Load Balancing
Configuring Tomcat With Apache or IIS for Load Balancing
Download Now
Jump to Page
1
You are on page 1of 47

Search inside document


Search document

STI College Cubao


1
Rasberry Pi-Based Fleet Telematics System for UV Express

Presented to the Faculty of the Computer Engineering Program STI College Cubao In
Partial Fulfilment of the Requirements for the Degree Bachelor of Science in
Computer Engineering Joshua Israel V. Albao Adrian S. Galsim Judah Emmanuel DG.
Gonzales Phil-Jay V. Igtanloc March 30, 2019

STI College Cubao

2
ENDORSEMENT FORM FOR PROPOSAL DEFENSE

TITLE OF RESEARCH: Raspberry Pi-Based Fleet Telematics System

NAME OF PROPONENTS:
Joshua Israel V. Albao Adrian S. Galsim Judah Emmanuel DG. Gonzales Phil-Jay V.
Igtanloc In Partial Fulfilment of the Requirements for the degree Bachelor of
Science in Computer Engineering has been examined and is recommended for Proposal
Defense.
ENDORSED BY:

Engr. John Jericho C. Arquines

Thesis Adviser APPROVED FOR PROPOSAL DEFENSE:


Engr. Jayrold H. Baliwagan
Thesis Coordinator

NOTED BY:
Ms. Annabelle S. Hernandez
Program Head March 30, 2019

STI College Cubao

3
APPROVAL SHEET
This thesis proposal titled:
Raspberry Pi-Based Fleet Telematics System
prepared and submitted by
Joshua Israel V. Albao; Adrian S. Galsim; Judah Emmanuel DG. Gonzales
; and
Phil-Jay V. Igtanloc
, in partial fulfilment of the requirements for the degree of Bachelor of Science
in Computer Engineering, has been examined and is recommended for acceptance an
approval.
Engr. John Jericho C. Arquines
Thesis Adviser Accepted and approved by the Thesis Review Panel in partial
fulfilment of the requirements for the degree of Bachelor of Science in Computer
Engineering Engr. Jayrold H. Baliwagan Engr. Ramil N. Madriaga
Panel Member
Panel Member

Engr. Philip A. Adams


Lead Panelist Noted:
Engr. Jayrold H. Baliwagan Annabelle Hernandez
Thesis Coordinator
Program Head
March 30, 2019

STI College Cubao

4
TABLE OF CONTENTS
APPROVAL
SHEET .............................................................................
......... 3

Table of Contents ..........................................


Error! Bookmark not defined.

Introduction ......................................................................
............................... 5
Background of the
problem ...........................................................................
........ 5 Overview of the current state of the
technology .................................................. 5 Objectives of the
Study .............................................................................
............. 8 Scope and limitations of the
study ........................................................................ 9
Literature
Review ............................................................................
.............. 11
Theoretical/Technical
Background ......................................................................
11 Local
Studies ...........................................................................
............................. 11 Foreign
Studies............................................................................
......................... 12
Synthesis .........................................................................
..................................... 14
Methodology .......................................................................
.......................... 15
Requirement
Gathering .........................................................................
.............. 15 Quick
Design ............................................................................
............................ 17 Building
Prototype .........................................................................
...................... 17 Customer
Evaluation ........................................................................
.................... 17 Refining
Prototype .........................................................................
...................... 17 Engineering
Product ...........................................................................
.................. 18
Hardware/Software .................................................................
............................ 18
Hardware ..........................................................................
............................... 18
Software ..........................................................................
................................. 19 Block
Diagram ...........................................................................
........................... 21 State Transition
Diagram ...........................................................................
.......... 21 Calendar of
Activities ...............................................
Error! Bookmark not defined.
Budgetary
Estimate ..........................................................................
.................... 25 Human
Resources ....................................................
Error! Bookmark not defined.

References ........................................................................
............................. 27

Pages 5-47 for members only


Unlock Full Access with a 30 Day Free Trial
Continue Reading For Free
Share this document
Share or Embed Document
Sharing Options
Share On Facebook, Opens A New WindowShare On Twitter, Opens A New WindowShare On
LinkedIn, Opens A New WindowShare With Email, Opens Mail ClientCopy Text
Related Interests
Apache Http ServerMy SqlBattery ChargerAndroid (Operating System)Computer
Engineering
Documents Similar To Rasberry-Pi-Based-Fleet-Telematics-System-for-San-Miguel-
Family.docx
Carousel Next
Srisms.battery.charger.with.Digital.display
Srisms.battery.charger.with.Digital.display
UPLOADED BY

k s s kumar
Linux Lab 15 Apache Virtual Host Access Control
Linux Lab 15 Apache Virtual Host Access Control
UPLOADED BY

smile4ever54
Battery and Charger Sizing Calculation - ST-LQ
Battery and Charger Sizing Calculation - ST-LQ
UPLOADED BY
Bao Tan Dang
Lumax Auto Q1 FY18 Presentation
Lumax Auto Q1 FY18 Presentation
UPLOADED BY

shahav
Fire-Lite CHG-120F Data Sheet
Fire-Lite CHG-120F Data Sheet
UPLOADED BY

JMAC Supply
Rechargeable Portable USB Charger
Rechargeable Portable USB Charger
UPLOADED BY

SalvadorDignum
Zabbix Howto
Zabbix Howto
UPLOADED BY

Sharjeel Sayed
Apollo Manuals Complete
Apollo Manuals Complete
UPLOADED BY

slidy66
Shark Cordless Floor & Carpet Sweeper
Shark Cordless Floor & Carpet Sweeper
UPLOADED BY

billyh1026
AirRam Manual
AirRam Manual
UPLOADED BY

gtechonline
VRLA Battery Testing
VRLA Battery Testing
UPLOADED BY

edgard
Cargadores
Cargadores
UPLOADED BY

Amber Smith
Bench Marking on Web Server
Bench Marking on Web Server
UPLOADED BY

LinuxMalaysia Malaysia
Apache Security 1ed TOC and Preface
Apache Security 1ed TOC and Preface
UPLOADED BY

Muhamad Lukman
June Promo 2013
June Promo 2013
UPLOADED BY
Natalia Kovacs
BAC06A_V1.0_en
BAC06A_V1.0_en
UPLOADED BY

Rahmat Nur Ilham


Weekly Check List
Weekly Check List
UPLOADED BY

ghostshot
Doc
Doc
UPLOADED BY

Abhishek Gaur
Sunsaver Manual
Sunsaver Manual
UPLOADED BY

Dedy Prijatna
Configuring Tomcat With Apache or IIS for Load Balancing
Configuring Tomcat With Apache or IIS for Load Balancing
UPLOADED BY

George Anadranistakis
Simplex 4081-0002
Simplex 4081-0002
UPLOADED BY

vlaya1984
Alternator Charging Capacity Test Procedure Ver 4
Alternator Charging Capacity Test Procedure Ver 4
UPLOADED BY

Candiano Popescu
92 Prod Apache
92 Prod Apache
UPLOADED BY

Achmad Nurramadhani
DW_MySQL
DW_MySQL
UPLOADED BY

Shamanth M N Mudilar
XC Series Battery Chargers
XC Series Battery Chargers
UPLOADED BY

Andres Huertas
Op Lpc2000 Rev3
Op Lpc2000 Rev3
UPLOADED BY

Kingsley Amaeze
Battery Management An
Battery Management An
UPLOADED BY

Ibrahim Maihoub
PHG-CEM7
PHG-CEM7
UPLOADED BY

Minh Son B�i


CBI2410A_R8 Eng.pdf
CBI2410A_R8 Eng.pdf
UPLOADED BY

dinhvu
illustrated_assembly_manual_k8012.pdf
illustrated_assembly_manual_k8012.pdf
UPLOADED BY

War Linux
More From Joshua Israel Albao
Carousel Next
Igtanloc_DisiproLab3
Igtanloc_DisiproLab3
UPLOADED BY

Joshua Israel Albao


Igtanloc_CaseStudy-5
Igtanloc_CaseStudy-5
UPLOADED BY

Joshua Israel Albao


Igtanloc_CaseStudy-5.pdf
Igtanloc_CaseStudy-5.pdf
UPLOADED BY

Joshua Israel Albao


Case Study 5
Case Study 5
UPLOADED BY

Joshua Israel Albao


Case 4.pdf
Case 4.pdf
UPLOADED BY

Joshua Israel Albao


244249688-CASE-4-Module.pdf
244249688-CASE-4-Module.pdf
UPLOADED BY

Joshua Israel Albao


Albao_CaseStudy-4
Albao_CaseStudy-4
UPLOADED BY

Joshua Israel Albao


Joshua Pogi.docx
Joshua Pogi.docx
UPLOADED BY
Joshua Israel Albao
Schatty's Documentation
Schatty's Documentation
UPLOADED BY

Joshua Israel Albao


Footer MenuBack To Top
ABOUT
About Scribd
Press
Our blog
Join our team!
Contact Us
Invite Friends
Gifts
SUPPORT
Help / FAQ
Accessibility
Purchase help
AdChoices
Publishers
LEGAL
Terms
Privacy
Copyright
Social Media
Scribd - Download on the App Store
Scribd - Get it on Google Play
Copyright � 2019 Scribd Inc.Browse BooksSite Directory
Site Language:
English
Change Language
Related titles
Carousel Next
Srisms.battery.charger.with.Digital.display
Srisms.battery.charger.with.Digital.display
Linux Lab 15 Apache Virtual Host Access Control
Linux Lab 15 Apache Virtual Host Access Control
Battery and Charger Sizing Calculation - ST-LQ
Battery and Charger Sizing Calculation - ST-LQ
Lumax Auto Q1 FY18 Presentation
Lumax Auto Q1 FY18 Presentation
Fire-Lite CHG-120F Data Sheet
Fire-Lite CHG-120F Data Sheet
Rechargeable Portable USB Charger
Rechargeable Portable USB Charger
Zabbix Howto
Zabbix Howto
Apollo Manuals Complete
Apollo Manuals Complete
Shark Cordless Floor & Carpet Sweeper
Shark Cordless Floor & Carpet Sweeper
AirRam Manual
AirRam Manual
VRLA Battery Testing
VRLA Battery Testing
Cargadores
Cargadores
Click To Expand Related TitlesAccessibility links
Skip to main contentAccessibility help
Accessibility feedback
Google
image processing matlab learning tool

About 20,700,000 results (0.67 seconds)


Search Results
Web results
Image Processing Toolbox - MATLAB - MathWorks

https://www.mathworks.com � products � image


Image Processing Toolbox provides engineers and scientists with an extensive
set ... With just a few lines of MATLAB code, you can build deep learning
models ...
?Image Segmentation App � ?Image Segmentation Using the ...
People also ask
How Matlab is used in image processing?

What is matlab image processing toolbox?

How do I install an image processing toolbox in Matlab?

Which software is used for image processing?

Feedback
Web results
Image Processing Toolbox Documentation - MathWorks

https://www.mathworks.com � help � toolbox � images


Image Processing Toolbox provides a comprehensive set of ... and image registration
using deep learning and traditional image processing techniques.
Videos

Introduction to MATLAB with Image Processing Toolbox - Video ...


MathWorks - Mar 16, 2015

PREVIEW
2:04
What Is Image Processing Toolbox? - Video - MATLAB
MathWorks - Aug 16, 2012

Image Processing and Computer Vision with MATLAB Video


MathWorks - Nov 23, 2018

Essential Tools for Machine Learning Video - MATLAB


MathWorks - Dec 11, 2016

Image Recognition Using Machine Learning Video - MATLAB


MathWorks - Sep 30, 2016

PREVIEW
Introduction to MATLAB with Image Processing Toolbox - Video ...
MathWorks - Jan 18, 2018

Image Processing and Computer Vision with MATLAB Video - MATLAB


MathWorks - Apr 25, 2018

PREVIEW
38:40
Image Processing Made Easy - MATLAB Video
MATLAB
YouTube - Sep 6, 2014

An Interactive Tool for Using Landsat 8 Data in MATLAB - Video ...


MathWorks - Apr 17, 2015
Web results
Digital Image Processing - MATLAB & Simulink - MathWorks

https://www.mathworks.com � discovery � digital-image-processing


Learn how to do digital image processing using computer algorithms with ... for
processing digital images include using algorithms and tools that provide a ...
Getting Started with Image Processing Toolbox - MathWorks

https://www.mathworks.com � help � images � getting-started-with-image-...


Tutorials. Basic Image Import, Processing, and Export. This example shows how ...
Image types determine how MATLAB� interprets data matrix elements as pixel ... The
toolbox supports binary, indexed, grayscale, and truecolor image types.
Image Processing and Computer Vision - MATLAB & Simulink ...

https://www.mathworks.com � solutions � image-video-processing


Image Processing and Computer Vision enables you to acquire, process, and
analyze ... algorithms for image processing, computer vision, and deep
learning. ... OpenCV, Python, and C/C++ using interoperable APIs and integration
tools.
Image Processing with MATLAB | MATLAB and Simulink Training

https://www.mathworks.com � training-schedule � image-processing-with-...


Results 1 - 12 of 12 - Learn more about this two-day Image Processing with MATLAB
course, ... the use of appropriate MATLAB � and Image Processing Toolbox ...
MATLAB and Simulink Training

https://matlabacademy.mathworks.com
Get started quickly using deep learning methods to perform image ... Learn core
MATLAB functionality for data analysis, modeling, and programming.
Image processing using MATLAB: Basic operations (Part 1 of 4)

https://electronicsforu.com � Engineering Projects For You


Mar 14, 2019 - ... basic to advanced functions of MATLAB's image processing toolbox
... machine learning, artificial intelligence and human vision research.
Images for image processing matlab learning tool
Image result for image processing matlab learning tool
Image result for image processing matlab learning tool
Image result for image processing matlab learning tool
Image result for image processing matlab learning tool
Image result for image processing matlab learning tool
Image result for image processing matlab learning tool
Image result for image processing matlab learning tool
Image result for image processing matlab learning tool
Image result for image processing matlab learning tool
Image result for image processing matlab learning tool
View all
More images for image processing matlab learning tool
Report images
Related search
MATLAB books
View 2+ more
Digital Image Processing
Digital Image Processing
MATLAB Tutorial CD: Learning MATLAB Superfast
MATLAB Tutorial CD: Lear...
Matlab: A Practical Introduction to Programming and Problem Solving
Matlab: A Practical Introduct...
MATLAB Programming for Engineers
MATLAB Programming for Engin...
MATLAB for Engineers
MATLAB for Engineers
Matlab, An Introduction With Applications
Matlab, An Introduction With App...
MATLAB For Dummies
MATLAB For Dummies
Searches related to image processing matlab learning tool
image processing matlab tutorial

matlab image processing functions

matlab image processing examples

matlab image processing tutorial pdf

image processing using matlab code

matlab image processing codes free

matlab image processing toolbox download

image processing using matlab projects

Page navigation
1
2
3
4
5
6
7
8
9
10
Next
Footer links
Philippines Tanza, Cavite - From your places (Home) - Use precise location - Learn
more
HelpSend feedbackPrivacyTermsoad an approved document, you will be able to download
the document

Thesis Documentation

Don't want to upload?


Get unlimited downloads as a member

Sign Up Now
Upload a documenA frequency
1.4.3 Quantization of Continuous-Amplitude Silassification o f Signals 6
1.2.1 Multichannel and Multidimensional Signals. 7caling of CMOS processes.
? Design resources: Circuit and system design in CMOS is supported by vast number
resources. Many design tecAccessibility links
Skip to main contentAccessibility help
Accessibility feedback
Google
bilateral filter image processing

About 3,870,000 results (0.52 seconds)


Search Results
Featured snippet from the web
Image result for bilateral filter image processing
A bilateral filter is a non-linear, edge-preserving, and noise-reducing smoothing
filter for images. It replaces the intensity of each pixel with a weighted average
of intensity values from nearby pixels. This weight can be based on a Gaussian
distribution.
Bilateral filter - Wikipedia

https://en.wikipedia.org � wiki � Bilateral_filter


Feedback
About Featured Snippets
Web results
Bilateral filter - Wikipedia

https://en.wikipedia.org � wiki � Bilateral_filter


A bilateral filter is a non-linear, edge-preserving, and noise-reducing smoothing
filter for images. It replaces the intensity of each pixel with a weighted average
of intensity values from nearby pixels. This weight can be based on a Gaussian
distribution.
?Definition � ?Limitations � ?Related models
Bilateral Filtering

homepages.inf.ed.ac.uk � CVonline � LOCAL_COPIES � MANDUCHI1


Jump to Experiments with Color Images - For black-and-white images, intensities
between any two gray ... In fact, a bilateral filter allows combining the three
color bands ... and is probably sufficient for most image processing needs, ...
?Introduction � ?The Idea � ?The Gaussian Case � ?Experiments with Black-and ...
[PDF]
Bilateral filter in image processing - Semantic Scholar

https://pdfs.semanticscholar.org � ...
by M Zhang - ?1912 - ?Cited by 23 - ?Related articles
Bilateral filter in image processing. Ming Zhang. Louisiana State University and
Agricultural and Mechanical College, mzhang4@lsu.edu. Follow this and ...
A Gentle Introduction to Bilateral Filtering and its ... - Stanford University

https://web.stanford.edu � class � reading � A gentle introduction to bilateral ...


Fast bilateral filtering for the display of high-dynamic-range images Durand
and .... image, which need to be considered when an image processing algorithm
is ...
[PDF]
Bilateral Filtering for Gray and Color Images - JHU Computer Science

www.cs.jhu.edu � ~misha � ReadingSeminar � Papers � Tomasi98


by C Tomasi - ?Cited by 8578 - ?Related articles
image processing and computer vision. In the broadest sense of the term
�filtering,� the value of the filtered image at a given location is a function of
the values of ...
[PDF]
Bilateral Filters

https://www.csie.ntu.edu.tw � lectures � handouts � lec14_bilateral_4up


combination. P t. Bilateral. Filter. Input. Image. Post- process. Local contrast.
Result. Global contrast. Bil t l. Careful combination. P t. Bilateral. Filter.
Input. Image.
[PDF]
Bilateral Filtering - CSE IIT Delhi

www.cse.iitd.ac.in � ~pkalra � col783-2017 � bilateral-filtering


by S Paris - ?Cited by 516 - ?Related articles
of bilateral filtering has grown rapidly and is now ubiquitous in image- processing
applications Figure 1.1. It has been used in various contexts such as denoising ...
Bilateral filtering of images with Gaussian kernels - MATLAB imbilatfilt

https://www.mathworks.com � ... � Image Filtering


This MATLAB function applies an edge-preserving Gaussian bilateral filter to the
grayscale or RGB image, I.
Bilateral Filtering - Numerical Tours

www.numerical-tours.com � matlab � denoisingadv_8_bilateral


This function is able to process in parallel a 3D block F by filtering each
F(:,:,i). ... Fast Bilateral Filtering for the Display of High-Dynamic-Range
Images, Fredo ...
[PDF]
Bilateral Filtering for Gray and Color Images

https://users.soe.ucsc.edu � ~manduchi � Papers � ICCV98


by C Tomasi - ?Cited by 8577 - ?Related articles
colors where they appear in the original image. 1 Introduction. Filtering is
perhaps the most fundamental operation of image processing and computer vision.
Searches related to bilateral filter image processing
bilateral filter ppt

bilateral filtering opencv

bilateral filtering matlab

advantages and disadvantages of bilateral filter

bilateral filter parameters opencv

joint bilateral filter

bilateral filter depth image

guided image filtering

Page navigation
1
2
3
4
5
6
7
8
9
10
Next
Footer links
Philippines Tanza, Cavite - From your places (Home) - Use precise location - Learn
more
HelpSend feedbackPrivacyTermshniques and design libraries for analog and digital
design are
available.
? Availability: CMOS processes are now readily available for prototype designs
through
fabrication brokers, at low prices. This has boosted the design knowledge by real
implementations, rather than pure theoretical treatmentsAccessibility links
Skip to main contentAccessibility help
Accessibility feedback
Google
online shopping thesis philippines

About 2,890,000 results (0.50 seconds)


Search Results
Web results
consumer perception and purchase behavior on online shopping ...
https://nbmconference.files.wordpress.com � 2017/03
Filipino consumers' buying patterns had diversified through an increased
accessibility to products and services with online options. The research presented
Filipino Millennials as online impulse buyers in four scales: ...... Doctoral
Dissertation.
Thesis Chapter 1 | E Commerce | Online Shopping - Scribd

https://www.scribd.com � document � Thesis-Chapter-1


Rating: 4.5 - ?22 votes
Can be used as a guide in doing the chapter one of a thesis. ... number of Filipino
consumer that purchases online remains relatively low. For that reason, this ...
[PDF]
Online Buying Behaviour of SMEs - ATIFTAP

https://atiftap.org � ...
by FF Tallud - ?2014 - ?Cited by 1 - ?Related articles
Abstract: The attitude and behaviour of SMEs? towards online buying are two main
factors that .... the three component cities in Region 2, Philippines namely.
Growth, opportunities in PH online shopping | Grant Thornton

https://www.grantthornton.com.ph � articles-and-updates1 � line-of-sight


Dec 29, 2017 - Online shops such as Amazon, Lazada, Zalora, Shopee, and OLX
have ... In its disclosure to the Philippine Stock Exchange, the Ayala Group ...
[PDF]
International Journal of Education and Research Vol. 3 No. 1 January ...

https://www.ijern.com � journal � January-2015


Jan 1, 2015 - online shopping students of the College of Business
Administration, .... The University of Eastern Philippines caters 9,000 students
1,140 of ...
(DOC) Chapter 2 REVIEW OF RELATED LITERATURE AND STUDIES ...

https://www.academia.edu � Chapter_2_REVIEW_OF_RELATED_LITER...
The phenomenal growth and rising of the popularity of the internet and the
World ... as auctions, online shopping, and online banking (Lacson, Pasadilla,
2006). ... 29 29 Philippine firms have yet to fully tap the potentials of e-
commerce that will ... consists of information gathered from thesis and
dissertations which are also ...
Searches related to online shopping thesis philippines
local thesis about online shopping in the philippines

thesis about online shopping in the philippines pdf


local studies about online shopping in the philippines pdf

research about online shopping in the philippines 2016

research about online shopping in the philippines pdf

local literature about online shopping in the philippines pdf

thesis title about online shopping

history of online shopping in the philippines

Page navigation
1
2
3
4
5
6
7
8
9
10
Next
Footer links
Philippines Tanza, Cavite - From your places (Home) - Use precise location - Learn
more
HelpSend feedbackPrivacyTerms.
? Price: CMOS is the cheapcaling of CMOS processes.e demo. Get to Market Quickly.
Drive New Revenue Growth. Reduce Business Costs. Get A Free Demo. 24/7 Support.
Types: E-Commerce, Business Intelligence, Enterprise, Mid-Market, Small Business.
Search Results
Web results
Thesis Documentation | E Bay | Online Shopping - Scribd

https://www.scribd.com � doc � Thesis-Documentation


Rating: 4 - ?8 votes
1 SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR BAHANDI
PASALUBONG CENTER. A Thesis Proposal Presented to ...
154257678-Thesis-Documentation.txt | E Bay | Online Shopping - Scribd

https://www.scribd.com � document � 154257678-Thesis-Documentation-txt


This system entitled SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND .... ne e-commerce
and inventory system for Bahandi Pasalubong Center as an ...
Online store thesis - ddns.net

thaigusehoro.ddns.net � online-store-thesis-cia
Online Shopping PhD Thesis Statement - Write a Ph.D ... service to write a
university Online Shopping thesis for a masters thesis research proposal. ... A
CASE STUDY ANALYSIS OF E-COMMERCE STRATEGIES FOR RETAIL BUSINESSES A .... SITE AND
INVENTORY SYSTEM FOR BAHANDI PASALUBONG CENTER.
Thesis About Online Shopping System

americanmusicclassics.com � 2211-thesis-about-online-shopping-system
1 SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR BAHANDI
PASALUBONG CENTER. A Thesis Proposal Presented to.
Images for SHOP-ONLINE: A PROPOSED E ...
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
View all
More images for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Report images
Web results
7 Best Ecommerce Platforms to Launch Your Online Store (2019)

https://www.adamenfroy.com � ecommerce-platforms
Jul 20, 2019 - If you want to start your e-commerce store, choosing the best ...
product options, shipping, fulfillment, control panel experience, and more. ...
offer coupons and discounts, and automatically track inventory. ... You can also
customize the look of your mobile ecommerce site with their online store builder
tool.
Missing: BAHANDI ?PASALUBONG
Thesis online store - granincor

https://granincor.cf � 597367-thesis-online-store
1 SHOPONLINE: A PROPOSED ECOMMERCE SITE AND INVENTORY SYSTEM FOR BAHANDI PASALUBONG
CENTER. A Thesis Proposal Presented to the ...
Retail POS System - Retail POS Software for selling in store or anywhere

https://www.shopify.com � pos � retail


Retail Point of Sale Systems - Sell in-store and online with Shopify POS retail
package. ... of POS Hardware and Retail Software enabling you to take your business
anywhere. ... Inventory, sales, orders, and customers auto-syncs with Shopify. ...
cart Ecommerce hosting Mobile commerce Ecommerce software Online store ...
Missing: BAHANDI ?PASALUBONG
E-Commerce Website (Online Shop)?Quantum X, Inc.

https://www.quantumx.com � ecommerce-online-shop
Start your online store with an e-commerce website to showcase your selling
products. ... product merchandising, payment integration, product delivery to
inventory ... MASTER organizes crew documents online for fast and easy management.
Missing: BAHANDI ?PASALUBONG
Ecommerce, Ecommerce Software, E-commerce � NetSuite ...

https://www.netsuite.com � portal � products � ecommerce � products


SuiteCommerce enables businesses to move from siloed online, in-store and phone ...
seamlessly connects ecommerce and in-store POS to order management, inventory, ...
Unlimited flexibility enables B2C sites to deliver the engaging and ...
Missing: BAHANDI ?PASALUBONG
Searches related to SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM
FOR BAHANDI PASALUBONG CENTER
online shopping system project documentation

online shopping information system

online shopping project documentation doc

online shopping thesis philippines

waterfall model for online shopping system

thesis about online shopping in the philippines pdf

local thesis about online shopping in the philippines

thesis for online shopping

Page navigation
1
2
3
Next

? Design resources: Circuit and system design in CMOS is supported by vast number
resources. Many design techniques and design libraries for analog and digital
design are
available.
? Availability: CMOS processes are now readily available for prototype designs
through
fabrication brokers, at low prices. This has boosted the design knowledge by real
implementations, rather than pure theoretical treatments.
? Price: CMOS is the cheapcaling of CMOS processes.
? Design resources: Circuit and system design in CMOS is supported by vast number
resources. Many design techniques and design libraries for analog and digital
design are
available.
? Availability: CMOS processes are now readily available for prototype designs
through
fabrication brokers, at low prices. This has boosted the design knowledge by real
implementations, rather than pure theoretical treatments.
? Price: CMOS is the cheapcaling of CMOS processes.
? Design resources: Circuit and system desi
? Availability: CMOS processes are now readily available for prototype designs
through
fabrication brokers, at low prices. This has boosted the design knowledge by real
implementations, rather than pure theoretical treatments.
? Price: CMOS is the cheapcaling of CMOS processes.
? Design resources: Circuit and system design in CMOS is sue demo. Get to Market
Quickly. Drive New Revenue Growth. Reduce Business Costs. Get A Free Demo. 24/7
Support. Types: E-Commerce, Business Intelligence, Enterprise, Mid-Market, Small
Business.
Search Results
Web results
Thesis Documentation | E Bay | Online Shopping - Scribd

https://www.scribd.com � doc � Thesis-Documentation


Rating: 4 - ?8 votes
1 SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR BAHANDI
PASALUBONG CENTER. A Thesis Proposal Presented to ...
154257678-Thesis-Documentation.txt | E Bay | Online Shopping - Scribd

https://www.scribd.com � document � 154257678-Thesis-Documentation-txt


This system entitled SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND .... ne e-commerce
and inventory system for Bahandi Pasalubong Center as an ...
Online store thesis - ddns.net

thaigusehoro.ddns.net � online-store-thesis-cia
Online Shopping PhD Thesis Statement - Write a Ph.D ... service to write a
university Online Shopping thesis for a masters thesis research proposal. ... A
CASE STUDY ANALYSIS OF E-COMMERCE STRATEGIES FOR RETAIL BUSINESSES A .... SITE AND
INVENTORY SYSTEM FOR BAHANDI PASALUBONG CENTER.
Thesis About Online Shopping System

americanmusicclassics.com � 2211-thesis-about-online-shopping-system
1 SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR BAHANDI
PASALUBONG CENTER. A Thesis Proposal Presented to.
Images for SHOP-ONLINE: A PROPOSED E ...
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Image result for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
View all
More images for SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM FOR
BAHANDI PASALUBONG CENTER
Report images
Web results
7 Best Ecommerce Platforms to Launch Your Online Store (2019)

https://www.adamenfroy.com � ecommerce-platforms
Jul 20, 2019 - If you want to start your e-commerce store, choosing the best ...
product options, shipping, fulfillment, control panel experience, and more. ...
offer coupons and discounts, and automatically track inventory. ... You can also
customize the look of your mobile ecommerce site with their online store builder
tool.
Missing: BAHANDI ?PASALUBONG
Thesis online store - granincor

https://granincor.cf � 597367-thesis-online-store
1 SHOPONLINE: A PROPOSED ECOMMERCE SITE AND INVENTORY SYSTEM FOR BAHANDI PASALUBONG
CENTER. A Thesis Proposal Presented to the ...
Retail POS System - Retail POS Software for selling in store or anywhere
https://www.shopify.com � pos � retail
Retail Point of Sale Systems - Sell in-store and online with Shopify POS retail
package. ... of POS Hardware and Retail Software enabling you to take your business
anywhere. ... Inventory, sales, orders, and customers auto-syncs with Shopify. ...
cart Ecommerce hosting Mobile commerce Ecommerce software Online store ...
Missing: BAHANDI ?PASALUBONG
E-Commerce Website (Online Shop)?Quantum X, Inc.

https://www.quantumx.com � ecommerce-online-shop
Start your online store with an e-commerce website to showcase your selling
products. ... product merchandising, payment integration, product delivery to
inventory ... MASTER organizes crew documents online for fast and easy management.
Missing: BAHANDI ?PASALUBONG
Ecommerce, Ecommerce Software, E-commerce � NetSuite ...

https://www.netsuite.com � portal � products � ecommerce � products


SuiteCommerce enables businesses to move from siloed online, in-store and phone ...
seamlessly connects ecommerce and in-store POS to order management, inventory, ...
Unlimited flexibility enables B2C sites to deliver the engaging and ...
Missing: BAHANDI ?PASALUBONG
Searches related to SHOP-ONLINE: A PROPOSED E-COMMERCE SITE AND INVENTORY SYSTEM
FOR BAHANDI PASALUBONG CENTER
online shopping system project documentation

online shopping information system

online shopping project documentation doc

online shopping thesis philippines

waterfall model for online shopping system

thesis about online shopping in the philippines pdf

local thesis about online shopping in the philippines

thesis for online shopping

Page navigation
1
2
3
Next
pported by vast number
resources. Many design techniques and design libraries for analog and digital
design are
available.
? Availability: CMOS processes are now readily availab
Saved
Bestsellers

Save
Save Thesis For Later

Embed

Share
Print
RELATED TITLES
Carousel Next
Dell Guide to Greener Electronics 14
Dell Guide to Greener Electronics 14
FlexiPacket Multi Radio 2.4 Commission
FlexiPacket Multi Radio 2.4 Commission
Summary of EPEAT Criteria(IEEE 1680)
Summary of EPEAT Criteria(IEEE 1680)
pAINT PRODUCTION
pAINT PRODUCTION
Pollution Control in Recycling Industry
Pollution Control in Recycling Industry
SENATE HEARING, 109TH CONGRESS - ELECTRONIC WASTE
SENATE HEARING, 109TH CONGRESS - ELECTRONIC WASTE
RoHS
RoHS
Toxic Avengers
Toxic Avengers
E-Waste Mgt in Lagos_MA Social Policy_JYU 2012
E-Waste Mgt in Lagos_MA Social Policy_JYU 2012
DIGC 102 Dossier
DIGC 102 Dossier
TBC UE-9000 Manual
TBC UE-9000 Manual
Summa D75 Manual
Summa D75 Manual
Electronic Waste Recycling
Electronic Waste Recycling
A Manual for Water and Waste Management - What the Tourism Industry Can Do to
Improve Its Performance
A Manual for Water and Waste Management - What the Tourism Industry Can Do to
Improve Its Performance
1 Introduction to Electronics (E-waste) Recycling
1 Introduction to Electronics (E-waste) Recycling
Recycling Essay
Recycling Essay
LEGRAND 20161004_148894_1
LEGRAND 20161004_148894_1
3KXE341007R4401-CI_TZIDC_110_120_EN_B_07_2012 abb positionneur.pdf
3KXE341007R4401-CI_TZIDC_110_120_EN_B_07_2012 abb positionneur.pdf
Untitled
Untitled
gold ex pdf.pdf
gold ex pdf.pdf
Download Now
Jump to Page
1
You are on page 1of 267

Search inside document


Search document

Modeling and Issues in India: Pr


Submitted in par D
BIRLA INSTITU PILANI
ssessment of e-wa
Books
Audiobooks
le for prototype designs through
fabrication brokers, at low prices. This has boosted the design knowledge by real
implementations, rather than pure theoretical treatments.
? Price: CMOS is the cheap
1.2.2 Continuous-Time Versuation, and testing) and basic software skills (C++). I
am eager to learn newation, and testing) and basic software skills (C++). I am
eager to learn news Discrete-Time Signals. 8
1.2.3 Continuous-Valued Versus Discrete-Valued Signals. 10
1.2.4 Deterministic Versus Random Signals, 11
T h e C o n c e p t o f F re q u en cy in C o n tin u o u s-TIn CMOS integrated
circuit design there is a trade-off between static power consumption and
technology scaling. Leakage power accounts for an increasingly larger portion of
total power
consumption in deep submicron technologies. Recently, the power density has
increased � im e an d
D isc rete-T im e Signals 14
1.3.1 Continuous-Time Sinusoidal Signals, 14
1.3.2 Discrete-Time Sinusoidal Signals. 16PinoyBIX Engiation, and testing) and
basic software skills (C++). I am eager to learn newneering
WLP technology differs from other ball grid array, leaded, and laminate-based CSPs
because no bond wires or interposer connections are required.
What are you looking for?

START HERE ASK A QUESTION ANSWER QUESTIONS MCQ LIST ADVERTISE HERE

In CMOS integrated circuit design there is a trade-off between static power


consumption and
technology scaling. Leakage power accounts for an increasingly larger portion of
total power
consumption in deep submicron technologies. Recently, the power density has
increased �

At the end of the 18th century, a kilogram was the mass of a cubic decimeter of
water. In 1889, the 1st CGPM sanctioned the international prototype of the
kilogram, made of platinum-iridium, and declared: This prototype shall henceforth
be considered to be the unit of mass.

HomeUncategorizedChapter 1: Introduction to Electronic Communications by Wayne


Tomasi � Review Notes
Chapter 1: Introduction to Electronic Communications by Wayne Tomasi � Review Notes
Engr 4 Years Ago
FACEBOOK PREV ARTICLE NEXT ARTICLE

(Last Updated On: December 8, 2017)


Chapter 1: Introduction to Electronic Communications

This is the summary notes of the important concepts in Chapter 1 of the book
�Introduction to Electronics Communications� by Wayne Tomasi. The notes are
properly synchronized and concise for better understanding of the book. Make sure
to familiarize this review notes to increase the chance of passing the ECE Board
Exam.

CHAPTER 1
INTRODUCTION TO
ELECTRONIC COMMUNICATIONS

Items
Definitions
Terms

1
Its fundamental purpose is to transfer information from one
place to another.
Electronic Communication System

2
The transmission, reception, and processing of information
between two or more locations using electronic circuits.
Electronic Communication

3
Electronic Communications Time Line
1830: American Scientist and professor Joseph
Henry transmitted the first practical electrical signal.
1837: Samuel Finley Breese Morse invented the
telegraph.
1843: Alexander Bain invented the facsimile.
1861: Johann Phillip Reis completed the first
nonworking telephone.
1864: James Clerk Maxwell released his
paper �Dynamic Theory of the Electromagnetic Field�, which concluded that
light electricity, and magnetism were related.
1865: Dr. Mahlon Loomis became the first person
to communicate wireless through the Earth�s atmosphere.
1866: First transatlantic telegraph cable was
installed
1876: Alexander Graham Bell and Thomas Watson
Invented the telephone.
1877: Thomas Alva Edison invents the
phonograph.
1880: Heinrich Hertz discovers electromagnetic
waves.
1887: Heinrich Hertz discovers radio waves.
Marchese Guglielmo Marconi demonstrates wireless radio wave propagation.
1888: Heinrich Hertz detects and produces radio
waves. Heinrich Hertz conclusively proved Maxwell�s prediction that
electricity can travel in waves through the Earth�s atmosphere.
1894: Marchese Guglielmo Marconi builds his
first radio equipment, a device that rings a bell from 30 ft. away.
1895: Marchese Guglielmo Marconi discovered
ground wave propagation.
1898: Marchese Guglielmo Marconi established
the first radio link between England and France.
1900: American Scientist Reginald A. Fessenden
the world�s first radio broadcast using continuous waves.
1901: Marchese Guglielmo Marconi transmits
telegraphic radio messages from Cornwall, to Newfoundland. Reginald A.
Fessenden transmits the World�s first radio broadcast using continuous waves.
First successful transatlantic transmission of radio signal.
1903: Valdemar Poulsen patents an arc
transmission that generates continuous wave transmission 100-kHz signal that
is receivable 150 miles away.
1904: First radio transmission of music at
Graz, Austria.
1905: Marchese Guglielmo Marconi invents the
directional radio antenna.
1906: Reginald A. Fessenden invents amplitude
modulation (AM). First radio program of voice and music broadcasted in the
United States by Reginald Fessenden. Lee DeFrorest invents triode
(three-electrode) vacuum tube.
1907: Reginald Fessenden invents a high-
frequency Electric generator that produces radio waves with a frequency of
100 kHz.
1908: General Electric develops a 100-kHz, 2-kW
alternator for radio communications.
1910: The Radio Act of 1910 is the first
concurrence of government regulation of radio technology and services.
1912: The Radio Act of 1912 in the United
States brought order to the radio bands by requiring station and operator�s
licenses and assigning blocks of the frequency spectrum to the existing
users.
1913: The cascade-tuning radio receiver and the
heterodyne receiver are introduced.
1914: Major Edwin Armstrong develops the
superheterodyne radio receiver.
1915: Vacuum-tube radio transmitters
introduced.
1919: Shortwave radio is developed.
1920: Radio Station KDKA broadcasts the first
regular licensed radio transmission out of Pittsburgh, Pennsylvania.
1921: Radio Corporation of America (RCA) begins
operating Radio Central on Long Island. The American Radio League establishes
contact via shortwave radio with Paul Godley in Scotland, proving that
shortwave radio can be used for long distance communications.
1923: Vladimir Zworykin invents and
demonstrates television.
1927: A temporary five- member Federal Radio
Commission agency was created in the United States.
1928: Radio station WRNY in New York City
begins broadcasting television shows.
1931: Major Edwin Armstrong patents wide- band
frequency modulation (FM).
1934: Federal Communications Commission (FCC)
created to regulate telephone, radio, and television broadcasting.
1935: Commercial FM radio broadcasting begins
with monophonic transmission.
1937: Alec H. Reeves invents binary coded
pulse-code modulation. (PCM)
1939: National Broadcasting Company (NBC)
demonstrates television broadcasting. First use of two-way radio
communications using walkie-talkies.
1941: Columbia University Radio Club opens the
first regularly scheduled FM radio station.
1945: Television is born. FM moved from its
original home of 42 MHz to 50 MHz to 88 MHz to 108 MHz to make room.
1946: The American Telephone and Telegraph
Company (AT&T) inaugurated the first mobile telephone system for the
public called MTS (Mobile Telephone System).
1948: John Von Neumann created the first store
program electronic digital computer. Bell Telephone Laboratories unveiled the
transistor, a joint venture of scientist William Shockley, John Bardeen and
Walter Brattain.
1951: First transcontinental microwave system
began operation.
1952: Sony Corporation offers a miniature
transistor radio, one of the first mass produced consumer AM/FM radios.
1953: RCA and MBC broadcast first color
television transmission.
1954: The number of radio stations in the world
exceeds the number of newspapers printed daily.
1954: Texas Instruments becomes the first
company to commercially produce silicon transistors.
1956: First transatlantic telephone cable
systems began carrying calls.
1957: Russia launches the world�s first
satellite. (Sputnik)
1958: Kilby and Noyce develop first integrated
circuits. NASA launched the United States first satellite.
1961: FCC approves FM stereo broadcasting,
which spurs the development of FM. Citizens band (CB) radio first used.
1962: U.S. radio stations begin broadcasting
stereophonic sound.
1963: T1 (transmission 1) digital carrier
systems introduced.
1965: First commercial communications satellite
launched.
1970: High-definition television (HDTV) introduced
in Japan.
1977: First commercial use of optical fiber
cables.
1983: Cellular telephone networks introduced in
the United States.
1999: HDTV standards implemented in the United
States.
1999: Digital Television (DTV) transmission
began in the United States.

4
Are time-varying voltages or currents that are continuously
changing such as sine and cosine waves.
analog signals

5
Is sometimes referred to as a power loss.
Attenuation
6
Is sometimes referred to as a ____________ , If Pout = Pin,
the absolute power gain is 1, and the dB power gain is 0 dB.
Unity Power Gain

7
Are voltages or currents that change in discrete steps or
levels.
digital signals

8
In 1876, Alexander Graham Bell and Thomas A. Watson were the
first to successfully transfer human conversation over a crude metallic- wire
communications systems using this device.
Telephone

9
The first commercial radio broadcasting station in 1920 that
broadcasted amplitude modulated signals in Pittsburgh.
KDKA

10
Is a logarithmic unit that can be used to measure ratio.
Decibel ( dB )

11
Is a unit of measurement used to indicate the ratio of a power
level with respect to a fixed reference level (1mW).
dBm

12
One-tenth of a decibel.
Bel

13
A collection of one or more electronic devices or circuits
that converts the original source information to a form more suitable for
transmission over a particular transmission medium.
Transmitter

14
Provides a means of transporting signals between a transmitter
and a receiver.
Transmission Medium

15
A collection of electronic devices and circuits that accepts
the transmitted signals for the transmission medium and then converts those
signals back to their original form.
Receiver

16
Is any unwanted electrical signals that interfere with the
information signal.
System Noise

17
Because it is often impractical to propagate information
signals over standard transmission media, it is often necessary to modulate
the source information onto a higher-frequency analog signal called a ______.
Carrier

18
The process of changing one or more properties of the analog
carrier in proportion with the information signal.
Modulation

19
A system in which energy is transmitted and received in analog
form (a continuously varying signals such as a sine wave).
Analog Communication System

20
A true digital system where digital pulses (discrete levels
such as +5V and ground) are transferred between two or more points in a
communications system.
Digital Transmission

21
The transmittal of digitally modulated analog carriers between
two or more points in a communications system.
digital radio

22
A modulation technique where the information signal is analog
and the amplitude (V) of the carrier is varied proportional to the
information signal.
Amplitude Modulation ( AM )

23
A modulation technique where the information signal is analog
and the frequency (f) of the carrier is varied proportional to the
information signal.
Frequency Modulation ( FM )

24
A modulation technique where the information signal is analog
and the phase (q) of the carrier is varied proportional to the information
signal.
Phase Modulation

25
A modulation technique where the information signal is digital
and that amplitude (V) of the carrier is varied proportional to the
information signal.
Amplitude Shift Keying ( ASK )

26
A modulation technique where the information signal is digital
and the frequency (f) of the carrier is varied proportional to the
information signal.
Frequency Shift Keying ( FSK )

27
A modulation technique where the information signal is digital
and the phase (q) of the carrier is varied proportional to the information
signal.
Phase Shift Keying
( PSK )

28
A modulation technique where both the amplitude and the phase
of the carrier are varied proportional to the information signal.
Quadrature Amplitude Modulation
( QAM )

29
Modulation is performed in a transmitter by a circuit called
________.
Modulator

30
The reverse process of modulation and converts the modulated
carrier back to the original information.
Demodulation

31
Demodulation is performed in a receiver by a circuit called
_______.
Demodulator

32
2 Reasons why modulation is necessary in
electronic communications :
1. It is extremely difficult to radiate low-frequency signals
from an antenna in the form of electromagnetic energy.
2. Information signals often occupy the same frequency band
and, if signals from two or more sources are transmitted at the same time,
they would interfere with each other.

33
A specific band of frequencies allocated a particular service.
Channel

34
Process of converting a frequency or band of frequencies to
another location in the total frequency spectrum.
Frequency Translation

35
The purpose of an electronic communications system is to
communicate information between two or more locations commonly called
_____________ .
Stations

36
The number of times a periodic motion, such as a sine wave of
voltage or current, occurs in a given period of time.
Frequency

37
Each complete alternation of the waveform.
Cycle

38
Is an international agency in control of allocating
frequencies and services within the overall frequency spectrum.
International Telecommunications Union (
ITU)

39
In the United States, assigns frequencies and communications
services for free-space radio propagation.
Federal Communications Commission ( FCC )

40
Chapter 1: Introduction to Electronic Communications by Wayne Tomasi - Review Notes

41
Are signals in the 30Hz to 300Hz range and include ac power
distribution signals (60Hz) and low frequency telemetry signals.
Extremely Low
Frequencies ( ELF )

42
Are signals in the 300Hz to 3000Hz range and include
frequencies generally associated with human speech.
Voice Frequencies
( VF )

43
Are signals in the 3kHz to 30kHz range which include the upper
end of the human hearing range.
Very Low Frequencies
( VLF )

44
Are signals in the 30kHz to 300kHz range and are used
primarily for marine and aeronautical navigation.
Low Frequencies
( LF )

45
Are signals in the 300kHz to 3MHz range and are used primarily
for commercial AM radio broadcasting (535kHz-1605kHz).
Medium Frequencies
( MF )

46
Are signals in the 3MHz to 30MHz range and are often referred
to as short waves. Used for most two-way radio communications.
High Frequencies
( HF )

47
Are signals in the 30MHz to 300MHz range and are used for
mobile radio, marine and aeronautical communications, commercial FM
broadcasting (88 to 108 MHz) and commercial TV broadcasting of Ch 2 to 13
(54MHz to 216MHz).
Very High Frequencies
( VHF )

48
Are signals in the 300MHz to 3GHz range and are used by
commercial television broadcasting of channels 14 to 83, land mobile
communications services, cellular telephones, certain radar and navigation
systems, and microwave and satellite radio systems.
Ultrahigh Frequencies
( UHF )

49
Are signals in the 3GHz to 30GHz range and include the
majority of the frequencies used for microwave and satellite radio
communications systems.
Super High Frequencies
( SHF )

50
Are signals in the 30GHz to 300GHz range and are seldom used
for radio communications except in very sophisticated, expensive, and
specialized applications.
Extremely High Frequencies
( EHF )

51
Are signals in the 0.3THz to 300THz range and are not
generally referred to as radio waves. Used in heat seeking guidance systems,
electronic photography, and astronomy.
Infrared

52
Includes electromagnetic frequencies that fall within the
visible range of humans (0.3PHz to 3PHz).
Visible Light

53
Used for optical fiber systems.
Light-wave Communications

54
The length that one cycle of an electromagnetic wave occupies
in space (i.e., the distance between similar points in a repetitive wave).
Wavelength

55
Chapter 1: Introduction to Electronic Communications by Wayne Tomasi - Review Notes

56
Radio transmitter classifications according to bandwidth,
modulation scheme, and type of information.
Emission Classifications

57
Chapter 1: Introduction to Electronic Communications by Wayne Tomasi - Review Notes
� The first symbol is a letter that designates the type of
modulation of the main carrier.
� The second symbol is a number that identifies the type of
emission.
� The third symbol is another letter that describes the type
of information being transmitted.

58
The two most significant limitations on the performance of a
communications system are ________and ________.
Noise and Bandwidth

59
The difference between the highest and lowest frequencies
contained in the information.
Bandwidth

60
The bandwidth of a communications channel is the difference
between the highest and lowest frequencies that the channel will allow to
pass through it.
Passband

61
A highly theoretical study of the efficient use of bandwidth
to propagate information through electronic communications systems.
Information Theory

62
The measure of how much information can be propagated through
a communications system and is a function of bandwidth and transmission time.
Information Capacity

63
The most basic digital symbol used to represent information.
Binary Digit / Bit

64
The number of bits transmitted during one second and is
expressed in bits per second (bps).
Bit Rate

65
In 1928, R. Hartley of Bell Telephone Laboratories developed a
useful relationship among bandwidth, transmission time, and information
capacity.
Hartley�s Law
I � B x t

66
In 1948, mathematician Claude E. Shannon published a paper in
the Bell System Technical Journal relating the information capacity of a
communications channel to bandwidth and signal-to-noise ratio.
Shannon limit for information capacity
Chapter 1: Introduction to Electronic Communications by Wayne Tomasi - Review Notes

67
Any undesirable electrical energy that falls within the
passband of the signal.
Electrical Noise

68
Noise present regardless of whether there is a signal present
or not.
Uncorrelated Noise

69
Noise that is generated outside the device or circuit.
External Noise

70
Noise that is naturally occurring electrical disturbances that
originate within Earth�s atmosphere.
Atmospheric Noise

71
Atmospheric noise is commonly called ____________.
Static Electricity

72
Noise consists of electrical signals that originate from
outside Earth�s atmosphere and is sometimes called deep-space noise.
Extraterrestrial Noise

73
Extraterrestrial noise is sometimes called ____________.
Deep-Space Noise

74
Noise generated directly from the sun�s heat.
Solar Noise

75
Noise sources that are continuously distributed throughout the
galaxies.
Cosmic Noise

76
Noise that is produced by mankind.
Man-made Noise

77
Electrical interference generated within a device or circuit.
Internal Noise

78
Noise caused by the random arrival of carriers (holes and
electrons) at the output element of an electronic device.
Shot Noise

79
Any modification to a stream of carriers as they pass from the
input to the output of a device produces an irregular, random variations.
Transit-time Noise

80
Associated with the rapid and random movement of electrons
within a conductor due to thermal agitation.
Thermal Noise

81
THERMAL AGITATION HAS SEVERAL NAMES,
INCLUDING :
� Thermal Noise, because it is temperature dependent;
� Brownian Noise, after its discoverer;
� Johnson Noise, after the man who related Brownian particle
movement of electron movement;
� White Noise, because the random movement is at all
frequencies;

82
Johnson proved that thermal noise power is proportional to the
product of bandwidth and temperature.
Noise Power
N = KTB

83
A form of internal noise that is correlated (mutually related)
to the signal and cannot be present in a circuit unless there is a signal. �
no signal, no noise! �
Correlated Noise

84
Occurs when unwanted harmonics of a signal are produced
through nonlinear amplification (nonlinear mixing).
Harmonic Distortion

85
The generation of unwanted sum and difference frequencies
produced when two or more signals mix in a nonlinear device.
Inter-modulation Distortion

86
The original signal and also called the fundamental frequency.
First Harmonic

87
A frequency two times the original signal frequency.
Second Harmonic

88
A frequency three times the original signal frequency.
Third Harmonic

89
Another name for harmonic distortion.
Amplitude Distortion

90
Characterized by high-amplitude peaks of short duration in the
total noise spectrum.
Impulse Noise

91
Chapter 1: Introduction to Electronic Communications by Wayne Tomasi - Review Notes

92
A form of external noise and as the name implies it means to
disturb or detract form.
Interference

93
Noise produced when information signals from one source
produce frequencies that fall outside their allocated bandwidth and interfere
with information signals from another source.
Electrical interference

94
The ratio of the signal power level to the noise power level.
Signal-to-Noise Power Ratio ( S/N )
Chapter 1: Introduction to Electronic Communications by Wayne Tomasi - Review Notes

95
Figures of merit used to indicate how much the signal �
to-noise ratio deteriorates as a signal passes through a circuit or series of
circuits
Noise Factor ( F )
and
Noise Figure ( NF )

96
Chapter 1: Introduction to Electronic Communications by Wayne Tomasi - Review Notes

97
FORMULA FOR NOISE FIGURE
NF ( dB ) = 10 log F

98
A convenient parameter often used rather than noise figure in
low noise, sophisticated VHF, UHF, microwave, and satellite radio receivers.
It indicates the reduction in the signal-to-noise ratio a signal undergoes as
it propagates through a receiver.
Equivalent Noise Temperature
( Te )
Te = T ( F � 1 )
Complete List of Reviewers in Electronic Communications System per Chapter
Reviewer in Electronic Communications System by Wayne Tomasi
Important List of Communications Engineering Materials
Communications Engineering Coaching Materials
Series of Communications Engineering Exams: ECE Pre-Board
Series of Questions and Answers in Communications Engineering
Multiple Choice Questions in Data Communications and Networking
5 (100%) 1 vote

Custom Search

FACEBOOK PREV ARTICLE NEXT ARTICLE


ADD COMMENT

Comment Text*

Name*

Email*
Notify me of follow-up comments by email. Notify me of new posts by email.

Custom Search
CONNECT WITH ME:

GET YOUR FREE REVIEW COURSE


Subscribe to our mailing list and get reviewers and updates to your email inbox.
transmission, reception, and processing of information
between two or more locations using electronic circuits.
Electronic Communication

3
Electronic Communications Time Line
1830: American Scientist and professor Joseph
Henry transmitted the first practical electrical signal.
1837: Samuel Finley Breese Morse invented the
telegraph.
1843: Alexander Bain invented the facsimile.
1861: Johann Phillip Reis completed

Enter your best email here


we respect your privacy and take protecting it seriously

RECENT POSTS
?? Complete List of Reviewers to Pass Engineering Board Exam
MCQ in Electrical Circuit Part 18 | ECE Board Exam
MCQ in Electrical Circuit Part 17 | ECE Board Exam
MCQ in Power Generators (Cells and Batteries) Part 10 | �
MCQ in Power Generators (Cells and Batteries) Part 9 | �
MCQ in Electrical Circuit Part 16 | ECE Board Exam

Powered by Google TranslateTranslate


PinoyBIX Engineering Copyright � 2019. Theme by MyThemeShop
About Me Copyright Terms of Use & Privacy Policy Advertise with Us
� 2014 PinoyBIX� Engineering. � 2018 All Rights Reserved | How to Donate?
1.3.3 Harmonically Related Complex Exponentials, 19
A n alo g -to -D ig ita l an d D ig ital-to -A n alo g C o n v e rsio n 21
1.4.1 Sampling of Analog Signals, 23
1.4.2 The Sampling Theorem , 29
1.4.3 Quantization of Continuous-Amplitude Silassification o f Signals 6
1.2.1 Multichannel and Multidimensional Signals. 7
1.2.2 Continuous-Time Versus Discrete-Time Signals. 8
1.2.3 Continuous-Valued Versus Discrete-Valued Signals. 10
1.2.4 Deterministic Versus Random Signals, 11
D isc rete-T im e Signals 14
1.3.1 Continuous-Time Sinusoidal Signals, 14
1.3.2 Discrete-Time Sinusoidal Signals. 16
1.3.3 Harmonically Related Complex Exponentials, 19
A n alo g -to -D ig ita l an d D ig ital-to -A n alo g C o n v e rsio n 21
1.4.1 Sampling of Analog Signals, 23
1.4.2 The Sampling Theorem , 29
1.4.3 Quantization of Continuous-Amplitude Si

and d allows for leading power factor operation and null


regulation. The leading power factor operation is shown in the
phasor diagram of Fig. 12.54.
The control scheme of the voltage source load-controlled
rectifier is characterized by the following: i) there are neither
input current sensors nor dc voltage sensor; ii) it works with a
fixed and predefined PWM pattern; iii) it presents very good
stability; iv) its stability does not depend on the size of the dc
capacitor; v) it can work at leading power factor for all load
conditions; and vi) it can be adjusted with Eq. (12.70) to work
at zero regulation. The drawback appears when R in Eq. 12.70
becomes negligible, because in such a case the control system
is unable to find an equilibrium point for the dc link voltage.
This is why this control method is not applicable to large
systems.
12.3.5 New Technologies and Applications of
Force-Commutated Rectifiers
The additional advantages of force-commutated rectifiers with
respect to line-commutated rectifiers make them better candidates
for industrial requirements. They permit new applications
such as rectifiers with harmonic elimination capability
(active filters), power factor compensators, machine drives
with four-quadrant operation, frequency links to connect 50-
Hz with 60-Hz systems, and regenerative converters for
traction power supplies. Modulation with very fast valves
such as IGBTs permit almost sinusoidal currents to be
obtained. The dynamics of these rectifiers is so fast that they
can reverse power almost instantaneously. In machine drives,
current source PWM rectifiers, like the one shown in Fig.
12.35a, can be ustransmission, reception, and processing of information
between two or more locations using electronic circuits.
Electronic Communication

3
Electronic Communications Time Line
1830: American Scientist and professor Joseph
Henry transmitted the first practical electrical signal.
1837: Samuel Finley Breese Morse invented the
telegraph.
1843: Alexander Bain invented the facsimile.
1861: Johann Phillip Reis completeded to drive dc machines from the three-phase
supply. Four-quadrant applications, using voltage-source
PWM rectifiers, are extended for induction machines,
synchronous machines with starting control, and special
machines such as brushless-dc motors. Back-to-back systems
are being used in Japan to link power systems of different
frequencies.
12.3.5.1 Active Power Filter
Force-commutated PWM rectifiers can work as active power
filters. The voltage-source current-controlled rectifier has the
capability to eliminate harmonics produced by other poSmallpdf logo
Compress
Convert
Merge
Edit
Sign
Pricing

Translate PDF Files to Any Language


October 9, 2018 by Hung Nguyen

Check out how to instantly translate any PDF file from any language to another
online, for free.

Do you have a PDF file that you wish to translate to your local language? Whether
it's a copy of an eBook, a document from a foreign client, or a secret pen pal,
check out how to translate PDF files to your native tongue.
Google Translate PDF Files for Free

I'm sure you are aware of Google Translate, but did you know that they take in
files too? Follow the steps below to translate PDF files.

Access the Translate a Document tool.

Choose the language to translate from and to. If you are lazy or unsure, you can
also leave the default language to 'Detect language'.

Click 'Choose File' and then click the blue 'Translate' button.

Let Google work its magic.

You will get a pop-up with the PDF file translated.

Translate PDF with Google

How do I save this as a PDF?

As Google translate PDF files, it does not offer the ability to save the converted
version again as a PDF. Luckily, you always use the Print to PDF function, which
works on most browser. All you have to do is:

Print > Choose 'Save as PDF' instead of a PDF > Print your file to PDF format.

If you want to know precisely how to print the result page as PDF on all popular
web browsers, please check out our guide on 'How to Save a Webpage as a PDF'.

What else can I do with this PDF?

That's when Smallpdf comes to play. We have 18 useful tools for you to use to
handle PDF files, all for free, including:

Converter - after you translate PDF files, transform them into other formats.

Protect - encrypt your PDFs with a password.

Edit - annotate or add images, shapes, and drawings onto the translated file.

Delete Pages - get rid of excess pages that came after Google translate PDF files
of yours.

Compress - reduce the size of PDF files.

eSign - is this a contract? Electronically sign it.

Reader - to make reading PDF files as seamless as possible.

It's pretty amazing how accessible and powerful the Google translate has become,
and how smaller it world feels when you can translate PDF files directly from your
computer screen in a split second. Do you need to translate PDF to English,
Japanese or French? It no longer matters.

Don't slack off and let this prevent you from learning another language, though!
Hung Nguyen
Marketing & Customer Satisfaction
You might also like

2017 Year in Review: Jump On the Pile Of Documents We Processed This Year To Tickle
Mount Everest Top!
With a team of 10, we reached every single country in the world, covering over 1%
of the global population. Good things come in small packages!

Hung Nguyen, December 29, 2017

Draw on PDF for Free Online


The most popular online web app to draw on PDF files using your mouse, stylus or
trackpad. No signup or registration is needed.

Hung Nguyen, January 6, 2019


Show me all articles
Pricing
Desktop
Chrome Extension
About
Help
Blog
Developers
Privacy and Terms
� 2019 Smallpdf GmbH
-
Made with ? for the people of the internet.
1. MATHEMATICAL MODELING
Real world problem = Mathematical Model - Assumptions, Apprd.

Vous aimerez peut-être aussi