Академический Документы
Профессиональный Документы
Культура Документы
MICROCONTROLLER
BACHELOR OF ENGINEERING
In
By
CERTIFICATE
This is a bonafide work done by them under our guidance and supervision and
the results embodied in this project report have not been submitted to any other
university or institute for the award of any degree or diploma or fellowship.
CERTIFICATE
This is a bonafide work done by them under our guidance and supervision and
the results embodied in this project report have not been submitted to any other
university or institute for the award of any degree or diploma or fellowship.
Associate Professor
ACKNOWLEDGEMENT
With a deep sense of gratitude, we acknowledge the guidance, help and active
cooperation rendered by the following people whose guidance has sustained the effort
and led to the initiation of this project.
We are grateful to our Project guide, Mr. Md. Umair Quadri, Associate Professor
Electrical Engineering Department, Muffakham Jah College of Engineering and
Technology, his constant encouragement, genuine inspiration, and sagacious guidance
at every stage of the work.
We are also thankful to our Course Coordinator, Mr. Mohd Abdul Muqeet,
Associate Professor, Project Coordinator, Electrical Engineering Department,
Muffakham Jah College of Engineering and Technology, for their significant
contribution towards this project.
Our sincere thanks to Dr. Mohammed Haseeb Khan, Head of the Department,
Electrical Engineering Department, Muffakham Jah College of Engineering and
Technology, Hyderabad.
Contents Page no.
List Of Figures i
List Of Tables ii
Abstract iii
1. Introduction
1.1 Introduction
LIST OF FIGURES
Block diagram
Schematic diagram
LIST OF TABLES
In today's world be it offices, laboratories, school or home the first thing which concern
is the security. In order to make your data, money, premises and personal belonging
safe and secured from unauthorized person. This project represents a finger print
recognition biometrics system based on real time embedded system which will provides
a complete security solution and making unable to access for the unauthorized people.
In comparison to the other methods authentication through RFID, passwords security
this method has proven to be most efficient and reliable. Unauthorized access will be
strictly prohibited by designing this system. The system stores the finger print of
authorized people and only giving access to them. Fingerprint recognition is done by a
sensor which can be connected with Raspberry Pi Kit to validate for authentication. If
the user's fingerprint has a positive match the door will open otherwise the email is sent
and the registered user gets a message and the buzzer connected will be initiated to alert
the people or the security official in the surroundings.
Since the embedded system is dedicated to specific tasks, design engineers can
optimize it, reducing the size and cost of the product, or increasing the reliability and
performance. Some embedded systems are mass-produced, benefiting from economies
of scale.
Certain operating systems or language platforms are tailored for the embedded
market, such as Embedded Java and Windows XP Embedded. However, some low-end
consumer products use very inexpensive microprocessors and limited storage, with the
application and operating system both part of a single program. The program is written
permanently into the system's memory in this case, rather than being loaded into RAM
(random access memory), as programs on a personal computer are.
Debugging tools are another issue. Since you can't always run general
programs on your embedded processor, you can't always run a debugger on it. This
makes fixing your program difficult. Special hardware such as JTAG ports can
overcome this issue in part. However, if you stop on a breakpoint when your system is
controlling real world hardware (such as a motor), permanent equipment damage can
occur. As a result, people doing embedded programming quickly become masters at
using serial IO channels and error message style debugging.
2.1.3 Resources:
To save costs, embedded systems frequently have the cheapest
processors that can do the job. This means your programs need to be written as
efficiently as possible. When dealing with large data sets, issues like memory cache
misses that never matter in PC programming can hurt you. Luckily, this won't happen
too often- use reasonably efficient algorithms to start, and optimize only when
necessary. Of course, normal profilers won't work well, due to the same reason
debuggers don't work well.
Memory is also an issue. For the same cost savings reasons, embedded
systems usually have the least memory they can get away with. That means their
algorithms must be memory efficient (unlike in PC programs, you will frequently
sacrifice processor time for memory, rather than the reverse). It also means you can't
afford to leak memory. Embedded applications generally use deterministic memory
techniques and avoid the default "new" and "malloc" functions, so that leaks can be
found and eliminated more easily. Other resources programmers expect may not even
exist. For example, most embedded processors do not have hardware FPUs (Floating-
Point Processing Unit). These resources either need to be emulated in software, or
avoided altogether.
2.2.1 Debugging:
Embedded debugging may be performed at different levels, depending
on the facilities available. From simplest to most sophisticate they can be roughly
grouped into the following areas:
Interactive resident debugging, using the simple shell provided by the embedded
operating system (e.g. Forth and Basic)
External debugging using logging or serial port output to trace operation using
either a monitor in flash or using a debug server like the Remedy Debugger which even
works for heterogeneous multi core systems.
An in-circuit debugger (ICD), a hardware device that connects to the
microprocessor via a JTAG or Nexus interface. This allows the operation of the
microprocessor to be controlled externally, but is typically restricted to specific
debugging capabilities in the processor.
An in-circuit emulator replaces the microprocessor with a simulated equivalent,
providing full control over all aspects of the microprocessor.
A complete emulator provides a simulation of all aspects of the hardware,
allowing all of it to be controlled and modified and allowing debugging on a normal
PC.
Unless restricted to external debugging, the programmer can typically load and
run software through the tools, view the code running in the processor, and start or stop
its operation. The view of the code may be as assembly code or source-code.
2.2.2 Reliability:
Embedded systems often reside in machines that are expected to run
continuously for years without errors and in some cases recover by them if an error
occurs. Therefore the software is usually developed and tested more carefully than that
for personal computers, and unreliable mechanical moving parts such as disk drives,
switches or buttons are avoided.
Specific reliability issues may include:
The system cannot safely be shut down for repair, or it is too inaccessible to
repair. Examples include space systems, undersea cables, navigational beacons, bore-
hole systems, and automobiles.
The system must be kept running for safety reasons. "Limp modes" are less
tolerable. Often backup s are selected by an operator. Examples include aircraft
navigation, reactor control systems, safety-critical chemical factory controls, train
signals, engines on single-engine aircraft.
The system will lose large amounts of money when shut down: Telephone
switches, factory controls, bridge and elevator controls, funds transfer and market
making, automated sales and service.
We are living in the Embedded World. You are surrounded with many
embedded products and your daily life largely depends on the proper functioning of
these gadgets. Television, Radio, CD player of your living room, Washing Machine or
Microwave Oven in your kitchen, Card readers, Access Controllers, Palm devices of
your work space enable you to do many of your tasks very effectively. Apart from all
these, many controllers embedded in your car take care of car operations between the
bumpers and most of the times you tend to ignore all these controllers.
In recent days, you are showered with variety of information about these
embedded controllers in many places. All kinds of magazines and journals regularly
dish out details about latest technologies, new devices; fast applications which make
you believe that your basic survival is controlled by these embedded products. Now
you can agree to the fact that these embedded products have successfully invaded into
our world. You must be wondering about these embedded controllers or systems. What
is this Embedded System?
The computer you use to compose your mails, or create a document or analyze
the database is known as the standard desktop computer. These desktop computers are
manufactured to serve many purposes and applications.
You need to install the relevant software to get the required processing facility.
So, these desktop computers can do many things. In contrast, embedded controllers
carryout a specific work for which they are designed. Most of the time, engineers design
these embedded controllers with a specific goal in mind. So these controllers cannot be
used in any other place.
In the 8 bit segment, the most popular and used architecture is Intel's 8031. Market
acceptance of this particular family has driven many semiconductor manufacturers to
develop something new based on this particular architecture. Even after 25 years of
existence, semiconductor manufacturers still come out with some kind of device using
this 8031 core.
The LynxOS-178 RTOS for software certification, based on the RTCA DO-178B
standard, assists developers in gaining certification for their mission- and safety-critical
systems. Real-time systems programmers get a boost with LynuxWorks' DO-178B
RTOS training courses.
The Lynx Certifiable Stack (LCS) is a secure TCP/IP protocol stack designed
especially for applications where standards certification is required.
For makers of low-cost consumer electronic devices who wish to integrate the
LynxOS real-time operating system into their products, we offer special MSRP-based
pricing to reduce royalty fees to a negligible portion of the device's MSRP.
Designers of industrial and process control systems know from experience that
LynuxWorks operating systems provide the security and reliability that their industrial
applications require.
In many applications, for example a TV remote control, there is no need for the
computing power of a 486 or even an 8086 microprocessor. These applications most
often require some I/O operations to read signals and turn on and off certain bits.
Introduction
ARM is a 32-bit RISC processor architecture developed by the ARM
Corporation. ARM processors possess a unique combination of features that makes
ARM the most popular embedded architecture today. First, ARM cores are very simple
compared to most other general-purpose processors, which means that they can be
manufactured using a comparatively small number of transistors, leaving plenty of
space on the chip for application specific macro cells. A typical ARM chip can contain
several peripheral controllers, a digital signal processor, and some amount of on-chip
memory, along with an ARM core. Second, both ARM ISA and pipeline design are
aimed at minimizing energy consumption — a critical requirement in mobile embedded
systems. Third, the ARM architecture is highly modular: the only mandatory
component of an ARM processor is the integer pipeline; all other components,
including caches, MMU, floating point and other co-processors are optional, which
gives a lot of flexibility in building application-specific ARM-based processors.
Finally, while being small and low-power, ARM processors provide high performance
for embedded applications.
For example, the PXA255 XScale processor running at 400MHz provides
performance comparable to Pentium 2 at 300MHz, while using fifty times less energy.
BOARD FEATURES
BCM2837 features
The ARM cores run at 1.2GHz, making the device about 50% faster than the Raspberry
Pi 2. The VideocoreIV runs at 400Mhz.
The Raspberry Pi 3 Model B builds upon the features of its predecessors with a new,
faster processor on board to increase its speed. It also features WiFi and Bluetooth Low
Energy capabilities to enhance the functionality and the ability to power more powerful
devices over the USB ports.
1. Interoperability between the Raspberry Pi and USB3.0 hubs. There is an issue with
USB3.0 hubs in conjunction with the use of Full- or Low-speed devices (most mice,
most keyboards) and the Raspberry Pi. A bug in most USB3.0 hub hardware means that
the Raspberry Pi cannot talk to Full- or Low-speed devices connected to a USB3.0 hub.
USB2.0 high-speed devices, including USB2.0 hubs, operate correctly when connected
via a USB3.0 hub. Avoid connecting Low- or Full-speed devices into a USB3.0 hub.
As a workaround, plug a USB2.0 hub into the downstream port of the USB3.0 hub and
connect the low-speed device, or use a USB2.0 hub between the Pi and the USB3.0
hub, then plug low-speed devices into the USB2.0 hub.
2. USB1.1webcams
Old webcams may be Full-speed devices. Because these devices transfer a lot of data
and incur additional software overhead, reliable operation is not guaranteed. As a
workaround, try to use the camera at a lower resolution.
Expensive "audiophile" sound cards typically use far more bandwidth than is
necessary to stream audio playback. Reliable operation with 96kHz/192kHz DACs is
not guaranteed.As a workaround, forcing the output stream to be CD quality
(44.1kHz/48kHz 16-bit) will reduce the stream bandwidth to reliable levels.
USB2.0 and 3.0 hubs have a mechanism for talking to Full- or Low-speed
devices connected to their downstream ports called a Transaction Translator. This
device buffers high-speed requests from the host (i.e. the Pi) and transmits them at Full-
or Low-speed to the downstream device. Two configurations of hub are allowed by the
USB specification: Single-TT (one TT for all ports) and Multi-TT (one TT per port).
Because of the OTG hardware limitations, if too many Full- or Low-speed devices are
plugged into a single-TT hub, unreliable operation of the devices may occur. It is
recommended to use a Multi-TT hub to interface with multiple lower-speed devices.
As a workaround, spread lower-speed devices out between the Pi's own USB port and
the single-TT hub.
High-Definition Multimedia Interface (HDMI):
HDTVs, on the other hand, are digital. They use information in the
form of ones and zeros. This information travels through cables as distinct
electrical pulses. HDTVs have an aspect ratio of 16:9, so the picture is
rectangular. They also have a higher resolution -- current HDTV standards
allow for resolutions of up to 1920 x 1080 pixels. HDTV signals can also
be progressive, meaning that the each frame of the moving image is a
whole picture rather than half of one.
Fig HDMI converter
Block diagram:
Regulated
power supply
Fingerprint Display
module unit(monitor
)
LED
Keyboard Raspberry pi 3 indication
(Password) board
WiFi
Mouse
Email/Web
streaming
This type of regulation is ideal for having a simple variable bench power
supply. Actually this is quite important because one of the first projects a
hobbyist should undertake is the construction of a variable regulated power
supply. While a dedicated supply is quite handy ,it's much handier to have a
variable supply on hand, especially for testing.
Mainly the microcontroller needs 5 volt power supply. To use these parts
we need to build a regulated 5 volt source. Usually you start with an unregulated
power To make a 5 volt power supply, we use a 7805 voltage regulator IC
(Integrated Circuit).
Circuit Features:-
Block Diagram
Power supply:
Every electrical and electronic device that we use in our day-to-day life will
require a power supply. In general, we use an AC supply of 230V 50Hz, but this power
has to be changed into the required form with required values or voltage range for
providing power supply to different types of devices. There are various types of power
electronic converters such as step-down converter, step-up converter, voltage stabilizer,
AC to DC converter, DC to DC converter, DC to AC converter, and so on. For example,
consider the microcontrollers that are used frequently for developing many embedded
systems’ based projects and kits used in real-time applications. These microcontrollers
require a 5V DC supply, so the AC 230V needs to be converted into 5V DC using the
step-down converter in their power supply circuit.
Power supply circuit, the name itself indicates that this circuit is used to supply
the power to other electrical and electronic circuits or devices. There are different types
of power supply circuits based on the power they are used to provide for devices. For
example, the micro-controller based circuits, usually the 5V DC regulated power supply
circuits, are used, which can be designed using different techniques for converting the
available 230V AC power to 5V DC power. Generally the converters with output
voltage less than the input voltage are called as step-down converters.
Step-down Transformer
Convert AC to DC
230V AC power is converted into 12V AC (12V RMS value wherein the peak
value is around 17V), but the required power is 5V DC; for this purpose, 17V AC power
must be primarily converted into DC power then it can be stepped down to the 5V DC.
But first and foremost, we must know how to convert AC to DC? AC power can be
converted into DC using one of the power electronic converters called as Rectifier.
There are different types of rectifiers, such as half-wave rectifier, full-wave rectifier
and bridge rectifier. Due to the advantages of the bridge rectifier over the half and full
wave rectifier, the bridge rectifier is frequently used for converting AC to DC.
Bridge rectifier consists of four diodes which are connected in the form a bridge.
We know that the diode is an uncontrolled rectifier which will conduct only forward
bias and will not conduct during the reverse bias. If the diode anode voltage is greater
than the cathode voltage then the diode is said to be in forward bias. During positive
half cycle, diodes D2 and D4 will conduct and during negative half cycle diodes D1
and D3 will conduct. Thus, AC is converted into DC; here the obtained is not a pure
DC as it consists of pulses. Hence, it is called as pulsating DC power. But voltage drop
across the diodes is (2*0.7V) 1.4V; therefore, the peak voltage at the output of this
retifier circuit is 15V (17-1.4) approx.
Filter
We know that a capacitor is an energy storing element. In the circuit, capacitor
stores energy while the input increases from zero to a peak value and, while the supply
voltage decreases from peak value to zero, capacitor starts discharging. This charging
and discharging of the capacitor will make the pulsating DC into pure DC, as shown in
figure.
The block diagram of IC7805 voltage regulator is shown in the figure consists of
an operating amplifier acting as error amplifier, zener diode used for providing voltage
reference, as shown in the figure.
Buzzer:
Buzzer is an electronic device commonly used to produce sound. Light weight, simple
construction and low price make it usable in various applications like car/truck
reversing indicator, computers, call bells etc. Piezo buzzer is based on the inverse
principle of piezo electricity discovered in 1880 by Jacques and Pierre Curie. It is the
phenomena of generating electricity when mechanical pressure is applied to certain
materials and the vice versa is also true. Such materials are called piezo electric
materials. Piezo electric materials are either naturally available or manmade.
Piezoceramic is class of manmade material, which poses piezo electric effect and is
widely used to make disc, the heart of piezo buzzer. When subjected to an alternating
electric field they stretch or compress, in accordance with the frequency of the signal
thereby producing sound.
A webcam is a video camera that feeds or streams its image in real time to or through
a computer to a computer network. When "captured" by the computer, the video stream
may be saved, viewed or sent on to other networks via systems such as the internet, and
emailed as an attachment. When sent to a remote location, the video stream may be
saved, viewed or on sent there. Unlike an IP camera (which connects
using Ethernet or Wi-Fi), a webcam is generally connected by a USB cable, or similar
cable, or built into computer hardware, such as laptops.
The term "webcam" (a clipped compound) may also be used in its original sense of
a video camera connected to the Web continuously for an indefinite time, rather than
for a particular session, generally supplying a view for anyone who visits its web
page over the Internet. Some of them, for example, those used as online traffic cameras,
are expensive, rugged professional video cameras.
This is a finger print sensor module with TTL UART interface. The user can store the
finger print data in the module and can configure it in 1:1 or 1: N mode for identifying
the person. The finger print module can directly interface with 3v3 or 5v
Microcontroller. A level converter (like MAX232) is required for interfacing with PC.
Features:
Power DC : 3.6V-6.0V
Interface : UART (TTL logical level)/ USB 1.1
Working current : 100mA
Peak Current : 150mA
Matching Mode: 1:1 and 1:N
Baud rate (9600*N)bps, N=1-12 (default N=6 57600bps)
Character file size: 256 bytes
Image acquiring time : <0.5s
Template size : 512 bytes
Storage capacity: 256
Security level : 5 (1, 2, 3, 4, 5(highest))
FAR : <0.001%
FRR: <0.1%
Average searching time: < 0.8s (1:880)
Window dimension : 18mm*22mm
Working environment:
Temp: -10?- +40?
Storage environment Temp: -40?- +85?
RH: 40%-85% RH: <85%
Pinout:
Dimensions:
Relay:
A relay is an electrically operated switch. Many relays use an electromagnet to
mechanically operate a switch, but other operating principles are also used, such
as solid-state relays. Relays are used where it is necessary to control a circuit by a
separate low-power signal, or where several circuits must be controlled by one signal.
The first relays were used in long distance telegraph circuits as amplifiers: they
repeated the signal coming in from one circuit and re-transmitted it on another circuit.
Relays were used extensively in telephone exchanges and early computers to perform
logical operations.
The heart of a relay is an electromagnet (a coil of wire that becomes a
temporary magnet when electricity flows through it). You can think of a relay as a kind
of electric lever: switch it on with a tiny current and it switches on ("leverages") another
appliance using a much bigger current. Why is that useful? As the name suggests, many
sensors are incredibly sensitive pieces of electronic equipment and produce only small
electric currents. But often we need them to drive bigger pieces of apparatus that use
bigger currents. Relays bridge the gap, making it possible for small currents to activate
larger ones. That means relays can work either as switches (turning things on and off)
or as amplifiers (converting small currents into larger ones).
Here are two simple animations illustrating how relays use one circuit to switch
on a second circuit.
When power flows through the first circuit (1), it activates the electromagnet
(brown), generating a magnetic field (blue) that attracts a contact (red) and activates the
second circuit (2). When the power is switched off, a spring pulls the contact back up
to its original position, switching the second circuit off again.
This is an example of a "normally open" (NO) relay: the contacts in the second
circuit are not connected by default, and switch on only when a current flows through
the magnet. Other relays are "normally closed" (NC; the contacts are connected so a
current flows through them by default) and switch off only when the magnet is
activated, pulling or pushing the contacts apart. Normally open relays are the most
common.
Here's another animation showing how a relay links two circuits together. It's
essentially the same thing drawn in a slightly different way. On the left side, there's an
input circuit powered by a switch or a sensor of some kind. When this circuit is
activated, it feeds current to an electromagnet that pulls a metal switch closed and
activates the second, output circuit (on the right side). The relatively small current in
the input circuit thus activates the larger current in the output circuit:
The input circuit (black loop) is switched off and no current flows through it
until something (either a sensor or a switch closing) turns it on. The output circuit (blue
loop) is also switched off.
When a small current flows in the input circuit, it activates the electromagnet
(shown here as a red coil), which produces a magnetic field all around it.
The energized electromagnet pulls the metal bar in the output circuit toward it,
closing the switch and allowing a much bigger current to flow through the output
circuit.
The output circuit operates a high-current appliance such as a lamp or
an electric motor.
A type of relay that can handle the high power required to directly control an
electric motor or other loads is called a contactor. Solid-state relays control power
circuits with no moving parts, instead using a semiconductor device to perform
switching. Relays with calibrated operating characteristics and sometimes multiple
operating coils are used to protect electrical circuits from overload or faults; in modern
electric power systems these functions are performed by digital instruments still called
"protective relays".
Magnetic latching relays require one pulse of coil power to move their contacts
in one direction, and another, redirected pulse to move them back. Repeated pulses from
the same input have no effect. Magnetic latching relays are useful in applications where
interrupted power should not be able to transition the contacts.
Magnetic latching relays can have either single or dual coils. On a single coil
device, the relay will operate in one direction when power is applied with one polarity,
and will reset when the polarity is reversed. On a dual coil device, when polarized
voltage is applied to the reset coil the contacts will transition. AC controlled magnetic
latch relays have single coils that employ steering diodes to differentiate between
operate and reset commands.
OPERATING SYSTEM
LINUX:
Linux or GNU/Linux is a free and open source software operating system for
computers. The operating system is a collection of the basic instructions that tell the
electronic parts of the computer what to do and how to work. Free and open source
software (FOSS) means that everyone has the freedom to use it, see how it works, and
changes it.
There is a lot of software for Linux, and since Linux is free software it means
that none of the software will put any license restrictions on users. This is one of the
reasons why many people like to use Linux.
Separate projects that interface with the kernel provide much of the system's
higher-level functionality. The GNU user land is an important part of most Linux-based
systems, providing the most common implementation of the C library, a popular shell,
and many of the common Unix tools which carry out many basic operating system
tasks. The graphical user interface (or GUI) used by most Linux systems is built on top
of an implementation of the X Window System. Some components of an installed Linux
system are:
A boot loader, for example GNU GRUB or LILO. This is a program which is
executed by the computer when it is first turned on, and loads the Linux kernel into
memory.
An init program. This is the first process launched by the Linux kernel, and is
at the root of the process tree: in other terms, all processes are launched through
init. It starts processes such as system services and login prompts (whether
graphical or in terminal mode).
Software libraries which contain code which can be used by running processes.
On Linux systems using ELF-format executable files, the dynamic linker which
manages use of dynamic libraries is "ld-linux.so". The most commonly used
software library on Linux systems is the GNU C Library. If the system is set up
for the user to compile software themselves, header files will also be included
to describe the interface of installed libraries.
User interface programs such as command shells or windowing environments.
User interface
The user interface, also known as the shell, is either a command-line interface
(CLI), a graphical user interface (GUI), or through controls attached to the associated
hardware, which is common for embedded systems. For desktop systems, the default
mode is usually a graphical user interface, although the CLI is available through
terminal emulator windows or on a separate virtual console. Most low-level Linux
components, including the GNU userland, use the CLI exclusively. The CLI is
particularly suited for automation of repetitive or delayed tasks, and provides very
simple inter-process communication.
On desktop systems, the most popular user interfaces are the extensive desktop
environments KDE Plasma Desktop, GNOME, Cinnamon, Unity, LXDE, Pantheon and
Xfce, though a variety of additional user interfaces exist. Most popular user interfaces
are based on the X Window System, often simply called "X". It provides network
transparency and permits a graphical application running on one system to be displayed
on another where a user may interact with the application.
Raspbian OS
Qt uses standard C++ but makes extensive use of a special code generator (called
the Meta Object Compiler, or moc) together with several macros to enrich the language.
Qt can also be used in several other programming languages via language bindings. It
runs on the major desktop platforms and some of the mobile platforms. It has
extensive internationalization support. Non-GUI features include SQL database
access, XML parsing; thread management, network support, and a unified cross-
platform application programming interface (API) for file handling.
Qt is available under 3 different licensing, the GNU LGPL v 2.1, GUN GPL v.3.0, and
the Qt Commercial Developer License. The Qt framework is used by other widely used
softwares, such as VLC media player, Virtualbox, KDE, etc. As users today uses a
variety of different platforms, it is important that developers can have a GUI front that
can be run in most OS environment and it is easy to implement, and it interfaces well
with the existing language they are using to build the back end of the software without
or with little overhead. This is where the Qt framework comes into play.
Because it has a wide range of language bindings, including but not limited to C++, C#
and .NET, Java, Perl, PHP, and Python, you can use the Qt framework with most
common programming and scripting languages. The most noticeable ones are the KDE
desktop environment, and the Nokia N900 interface. Since Nokia purchased the
company that developed Qt, their recent product (came out in Dec 2009) N900's user
interface is built using the Qt Creator, which is the IDE for Qt framework. Though the
sell of N900 is not as high as expected, and the touch screen feature was not as smooth
as Apple products, its multi-tasking feature was more advanced compared to the iOS at
that time and since it is open source, there is no “development fee” which makes it
accessible to every programmer. The KDE desktop environment have been around
since 1996, and the founder Matthias Ettrich chose Qt from the start, and still using Qt
to this date.
Technology of Qt framework
As Qt is build on C++, it inherited most of the features of C++, like Objective Oriented
Concepts, Modeling etc, but it also used special code generator, QML which is an easy
to use declarative language. And with integration of the open source WebKit rendering
engine into Qt, it is easier to create web-enabled applications.
Implementation
Design:
Modules
QtCore – contains core non-GUI classes, including the event loop and
Qt's signal and slot mechanism, platform independent abstractions
for Unicode, threads, mapped files, shared memory, regular
expressions, and user and application settings
QtGui – contains most GUI classes; including many table, tree and list
classes based on model–view–controller design pattern; also provides
sophisticated 2D canvas widget able to store thousands of items
including ordinary widgets
QtMultimedia – implements low-level multimedia functionality
QtNetwork – contains classes for writing UDP and TCP clients and
servers; implementing FTP and HTTP clients, supportingDNS lookups;
network events are integrated with the event loop making it very easy to
develop networked applications
QtUiTools
QtHelp
QtTest
GCC COMPILER
GCC, formerly for "GNU C Compiler", has grown over times to support many
languages such as C++, Objective-C, Java, Fortran and Ada. It is now referred to as
"GNU Compiler Collection". The mother site for GCC is http://gcc.gnu.org/.
GNU Binutils: a suit of binary utility tools, including linker and assembler.
GCC is portable and run in many operating platforms. GCC (and GNU
Toolchain) is currently available on all Unixes. They are also ported to Windows by
MinGW and Cygwin. GCC is also a cross-compiler, for producing executables on
different platform.
PROTOCOLS
GET
HEAD
The HEAD method asks for a response identical to that of a GET request, but
without the response body. This is useful for retrieving meta-information written in
response headers, without having to transport the entire content.
POST
The POST method requests that the server accept the entity enclosed in the
request as a new subordinate of the web resource identified by the URI. The data Posted
might be, for example, an annotation for existing resources; a message for a bulletin
board, newsgroup, mailing list, or comment thread; a block of data that is the result of
submitting a web form to a data-handling process; or an item to add to a database.
PUT
The PUT method requests that the enclosed entity be stored under the supplied
URI. If the URI refers to an already existing resource, it is modified; if the URI does
not point to an existing resource, then the server can create the resource with that
URI.[15]
DELETE
TRACE
The TRACE method echoes the received request so that a client can see what
(if any) changes or additions have been made by intermediate servers.
OPTIONS
The OPTIONS method returns the HTTP methods that the server supports for
the specified URL. This can be used to check the functionality of a web server by
requesting '*' instead of a specific resource.
CONNECT
PATCH
All general-purpose HTTP servers are required to implement at least the GET
and HEAD methods, and, whenever possible, also the OPTIONS method.
Safe methods
Some of the methods (for example, HEAD, GET, OPTIONS and TRACE) are,
by convention, defined as safe, which means they are intended only for information
retrieval and should not change the state of the server. In other words, they should not
have side effects, beyond relatively harmless effects such as logging, caching, the
serving of banner advertisements or incrementing a web counter. Making arbitrary GET
requests without regard to the context of the application's state should therefore be
considered safe. However, this is not mandated by the standard, and it is explicitly
acknowledged that it cannot be guaranteed.
By contrast, methods such as POST, PUT, DELETE and PATCH are intended
for actions that may cause side effects either on the server, or external side effects such
as financial transactions or transmission of email. Such methods are therefore not
usually used by conforming web robots or web crawlers; some that do not conform tend
to make requests without regard to context or consequences.
Despite the prescribed safety of GET requests, in practice their handling by the
server is not technically limited in any way. Therefore, careless or deliberate
programming can cause non-trivial changes on the server. This is discouraged, because
it can cause problems for web caching, search engines and other automated agents,
which can make unintended changes on the server.
Idempotent methods and web applications
Note that whether a method is idempotent is not enforced by the protocol or web
server. It is perfectly possible to write a web application in which (for example) a
database insert or other non-idempotent action is triggered by a GET or other request.
Ignoring this recommendation, however, may result in undesirable consequences, if a
user agent assumes that repeating the same request is safe when it isn't.
Security
The TRACE method can be used as part of a class of attacks known as cross-
site tracing; for that reason, common security advice is for it to be disabled in the server
configuration. Microsoft IIS supports a proprietary "TRACK" method, which behaves
similarly, and which is likewise recommended to be disabled.
Figure 10.2HyperText Transfer Protocol
HTTP is a stateless protocol. In other words, the current request does not know
what has been done in the previous requests.
Browser :
Whenever you issue a URL from your browser to get a web resource using
HTTP, e.g. http://www.test101.com/index.html, the browser turns the URL into a
request message and sends it to the HTTP server. The HTTP server interprets the
request message, and returns you an appropriate response message, which is either the
resource you requested or an error message. This process is illustrated below:
Figure .10.3 Browser
A URL is the most common type of Uniform Resource Identifier (URI). URIs
are strings of characters used to identify a resource over a network.
The resource is to be retrieved using the HTTP protocol (which powers the web)
via a web browser;
The resource is reached through the domain name system (DNS) name, which
could be a single server, a load-balanced cluster of servers or a service running on a
system with a different name); and The path to the specific resource is /rfc/rfc2396.htm.
In the following example, the URL would retrieve the file at the point marked
with the named anchor "index": http://www.ietf.org/rfc/rfc2396.htm#index
1. Protocol: The application-level protocol used by the client and server, e.g.,
HTTP, FTP, and telnet.
2. Hostname: The DNS domain name (e.g., www.test101.com) or IP address (e.g.,
192.128.1.2) of the server.
3. Port: The TCP port number that the server is listening for incoming requests
from the clients.
10.1 HTML :
HTML elements are the building blocks of HTML pages. With HTML
constructs, images and other objects, such as interactive forms may be embedded into
the rendered page. It provides a means to create structured documents by denoting
structural semantics for text such as headings, paragraphs, lists, links, quotes and other
items. HTML elements are delineated by tags, written using angle brackets. Tags such
as <img /> and <input /> introduce content into the page directly. Others such
as <p>...</p> surround and provide information about document text and may include
other tags as sub-elements. Browsers do not display the HTML tags, but use them to
interpret the content of the page.
<!DOCTYPE html>
<html>
<head>
<title>This is a title</title>
</head>
<body>
<p>Hello world!</p>
</body>
</html>
The text between <html> and </html> describes the web page, and the text
between <body> and </body> is the visible page content. The markup text "<title>This
is a title</title>" defines the browser page title.)
<head>
<title>The Title</title>
</head>
Headings: HTML headings are defined with the <h1> to <h6> tags:
<h1>Heading level 1</h1>
Paragraphs:
Line breaks:<br>. The difference between <br> and <p> is that "br" breaks a
line without altering the semantic structure of the page, whereas "p" sections the page
intoparagraphs. Note also that "br" is an empty element in that, although it may have
attributes, it can take no content and it may not have an end tag.
This is a link in HTML. To create a link the <a> tag is used. The href= attribute
holds the URL address of the link.
“OS” INSTALLATION
In order to use your Raspberry Pi, you will need to install an Operating System (OS)
onto an SD card. An Operating System is the set of basic programs and utilities that
allow your computer to run; Examples include Windows on a PC or OSX on a Mac.
These instructions will guide you through installing a recovery program on your SD
card that will allow you to easily install different OS’s and to recover your card if you
break it.
1. Insert an SD card that is 4GB or greater in size into your computer
2. Format the SD card so that the Pi can read it
a. Windows
i. Download the SD Association's Formatting Tool1 from
https://www.sdcard.org/downloads/formatter_4/eula_windows/
ii. Install and run the Formatting Tool on your machine
iii. Set "FORMAT SIZE ADJUSTMENT" option to "ON" in the "Options" menu
iv. Check that the SD card you inserted matches the one selected by the Tool
v. Click the “Format” button
b. Mac
i. Download the SD Association's Formatting Tool from
https://www.sdcard.org/downloads/formatter_4/eula_mac/
ii. Install and run the Formatting Tool on your machine
iii. Select “Overwrite Format”
iv. Check that the SD card you inserted matches the one selected by the Tool
v. Click the “Format” button
c. Linux
i. We recommend using gparted (or the command line version parted)
ii. Format the entire disk as FAT
3. Download the New out Of Box Software (NOOBS) from:
downloads.raspberrypi.org/noobs
4. Unzip the downloaded file
a. Windows Right clicks on the file and choose “Extract all”
b. Mac Double taps on the file
c. Linux Run unzip [downloaded filename]
5. Copy the extracted files onto the SD card that you just formatted
6. Insert the SD card into your Pi and connect the power supply Your Pi will now boot
into NOOBS and should display a list of operating systems that you can choose to
install. If your display remains blank, you should select the correct output mode for
your display by pressing one of the following number keys on your keyboard;
1. HDMI mode this is the default display mode.
2. HDMI safe mode selects this mode if you are using the HDMI connector and cannot
see anything on screen when the Pi has booted.
3. Composite PAL mode selects either this mode or composite NTSC mode if you are
using the composite RCA video connector
4. Composite NTSC mode
CONCLUSION