Académique Documents
Professionnel Documents
Culture Documents
Raspberry pi
1. INTRODUCTION TO EMBEDDED SYSTEMS
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.
Physically, embedded systems range from portable devices such as digital watches
and MP3 players, to large stationary installations like traffic lights, factory controllers, or the
systems controlling nuclear power plants. Complexity varies from low, with a single
microcontroller chip, to very high with multiple units, peripherals and networks mounted
inside a large chassis or enclosure.
In general, "embedded system" is not an exactly defined term, as many systems have
some element of programmability. For example, Handheld computers share some elements
with embedded systems — such as the operating systems and microprocessors which power
them — but are not truly embedded systems, because they allow different applications to be
loaded and peripherals to be connected.
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.
Fig2.6: Robot
In critical industries where human presence is avoided there we can use
robots which are programmed to do a specific operation.
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.
From in-orbit embedded systems to jumbo jets to vital battlefield networks, designers of
mission-critical aerospace and defense systems requiring real-time performance, scalability,
and high-availability facilities consistently turn to the LynxOS® RTOS and the LynxOS-178
RTOS for software certification to DO-178B.
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.
"Five-nines" availability, CompactPCI hot swap support, and hard real-time response—
LynxOS delivers on these key requirements and more for today's carrier-class systems.
Scalable kernel configurations, distributed computing capabilities, integrated
communications stacks, and fault-management facilities make LynxOS the ideal choice for
companies looking for a single operating system for all embedded telecommunications
applications—from complex central controllers to simple line/trunk cards.
And as the wireless appliance revolution rolls on, web-enabled navigation systems,
radios, personal communication devices, phones and PDAs all benefit from the cost-effective
dependability, proven stability and full product life-cycle support opportunities associated
with BlueCat embedded Linux. BlueCat has teamed up with industry leaders to make it easier
to build Linux mobile phones with Java integration.
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.
In an Embedded system, there is only one application software that is typically burned
into ROM. An x86 PC contains or is connected to various embedded products such as
keyboard, printer, modem, disk controller, sound card, CD-ROM drives, mouse, and so on.
Each one of these peripherals has a Microcontroller inside it that performs only one task. For
example, inside every mouse there is a Microcontroller to perform the task of finding the
mouse position and sending it to the PC. Table 1-1 lists some embedded products.
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.
HARDWARE IMPLEMENTATION
Raspberry Pi Board:
Fig. Raspberry Pi 3 Board
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.
Quad Core 1.2GHz Broadcom BCM2837 64bit CPU
1GB RAM
BCM43143 WiFi and Bluetooth Low Energy (BLE) on board
40-pin Extended GPIO
4x USB 2 ports
4 Pole stereo output and composite video port
Full size HDMI
CSI camera port for connecting a Raspberry Pi camera
DSI display port for connecting a Raspberry Pi touchscreen display
Micro SD port for loading your operating system and storing data
Features:
Broadcom BCM2837 64bit ARM Cortex-A53 Quad Core Processor SoC running
@ 1.2GHz
1 GB RAM
4 x USB2.0 Ports with up to 1.2A output
Expanded 40-pin GPIO Header
Video/Audio Out via 4-pole 3.5mm connector, HDMI, CSI camera, or Raw LCD
(DSI)
Storage: microSD
10/100 Ethernet (RJ45)
BCM43143 WiFi on board 802.11n wireless LAN
Bluetooth Low Energy (BLE) on board (Bluetooth 4.1)
27 x GPIO
UART
I2C bus
SPI bus with two chip selects
+3.3V
+5V
Ground
Power Requirements: 5V @ 2.4 A via microUSB power source
Supports Raspbian, Windows 10 IoT Core, OpenELEC, OSMC, Pidora, Arch
Linux, RISC OS and More.
Complete compatibility with Raspberry Pi 1 and 2
Raspberry Pi Basic Hardware Setup
• Extra Hardware You Will Need
• The Raspberry Pi board contains a processor and graphics chip, program
memory (RAM) and various interfaces and connectors for external devices.
Some of these devices are essential, others are optional. It operates in the same
way as a standard PC, requiring a keyboard for command entry, a display unit
and a power supply.
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.
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
LED
Keypad
indication
(Password) Raspberry pi 3
board
Buzzer
USB Web
Camera
WiFi
Email/Web
streaming
A variable regulated power supply, also called a variable bench power supply, is
one where you can continuously adjust the output voltage to your requirements.
Varying the output of the power supply is the recommended way to test a project after
having double checked parts placement against circuit drawings and the parts
placement guide.
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.
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
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.
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
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
• The initial build of over 35,000 Raspbian packages, optimized for best
performance on the Raspberry Pi, was completed in June of 2012. However,
Raspbian is still under active development with an emphasis on improving the
stability and performance of as many Debian packages as possible.
SOFTWARE TOOLS
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
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
QtOpenGL – contains classes that enable the use of OpenGL in
rendering 3D graphics
QtDesigner
QtUiTools
QtHelp
QtTest
Modules for Unix developers
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 Compiler Collection (GCC): a compiler suit that supports many languages,
such as C/C++, Objective-C and Java.
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
Many applications are running concurrently over the Web, such as web
browsing/surfing, e-mail, file transfer, audio & video streaming, and so on. In order for
proper communication to take place between the client and the server, these
applications must agree on a specific application-level protocol such as HTTP, FTP,
SMTP, POP, and etc.
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.
Methods PUT and DELETE are defined to be idempotent, meaning that multiple
identical requests should have the same effect as a single request (note that idempotence
refers to the state of the system after the request has completed, so while the action the
server takes (e.g. deleting a record) or the response code it returns may be different on
subsequent requests, the system state will be the same every time). Methods GET,
HEAD, OPTIONS and TRACE, being prescribed as safe, should also be idempotent, as
HTTP is a stateless protocol.[1]
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.
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:
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.
URL protocols include HTTP (Hypertext Transfer Protocol) and HTTPS (HTTP
Secure) for web resources, "mailto" for email addresses, "ftp" for files on a File
Transfer Protocol (FTP)server, and telnet for a session to access remote computers.
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.
3. Port: The TCP port number that the server is listening for incoming requests
from the clients.
4. Path-and-file-name: The name and location of the requested resource, under the
server document base directory.
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.)
The Document Type Declaration <!DOCTYPE html> is for HTML5. If a
declaration is not included, various browsers will revert to "quirks mode" for rendering
<head>
<title>The Title</title>
</head>
Headings: HTML headings are defined with the <h1> to <h6> tags:
Paragraphs:
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