Monday 29 October 2012

Embedded Abstract


2012 IEEE Papers

  1. Design of Intelligent Home Appliance Control System Based on ARM and ZigBee
This paper introduces the intelligent home appliance control system, the system is developed through ARM microprocessor, embedded Linux operating system, ZigBee wireless communication technology and network technology. It gives the overall framework of hardware and software design, and describes ways to implement the system. User can control appliances through hand-held mobile terminal.


  1. Solar power wireless monitoring system based on ARM7
In order to solve the problem of data monitoring in solar power system, the paper discussed the data acquisition of ARM7 and principle of serial communication .And the design scheme combined GPRS wireless communication and the highly effective energy conservation chip LPC2114 was presented, the system not only made the data information transmit to the monitoring center real-time and effectively,but also realized unmanned watching .In the system composition, this paper proposed modular design,which adopted RS485 communication between communication module .The design makes the data reliable transmission the system structure is simple, and the performance is stable, which also provides conditions for the system upgrading in the future.


  1. Zigbee wireless sensor network for better interactive industrial Automation
This paper deals with the design of a Modbus Enabled Zigbee Wireless Sensor Network “WSN” for better Interactive Industrial Automation. The Modbus protocol is embedded into Zigbee stack, providing a friendly interface to observe the information in the wireless network efficiently and to provide the On Demand Response to the requests. It consists of a Coordinator and the sensor nodes. The coordinator is a centralized unit which is attached to the monitoring PC. It collects the information from all other nodes on demand and provides to the end user through TCP/IP network. The sensor nodes are made intelligent for controlling the plant. These nodes are attached with the Zigbee for remote controlling in case of changing the preset values and handling any issues. The coordinator is implemented using the ARM9 controller and the Sensor Nodes are implemented using the ARM7 microcontroller. RTLinux is used at the coordinator for real time operations and the Sensor nodes are programmed using the Embedded C. The experimental results obtained demonstrate the usefulness of the proposed system in terms of the low power consumption, low cost, targeted towards automation and remote control applications.

  1. Attitude estimation and control of a quadrocopter
The research interest in unmanned aerial vehicles (UAV) has grown rapidly over the past decade. UAV applications
range from purely scientific over civil to military. Technical advances in sensor and signal processing technologies enable the design of light weight and economic airborne platforms. This paper presents a complete mechatronic design process of a quadrotor UAV, including mechanical design, modeling of quadrotor and actuator dynamics and attitude stabilization control. Robust attitude estimation is achieved by fusion of lowcost MEMS accelerometer and gyroscope signals with a Kalman filter. Experiments with a gimbal mounted quadrotor testbed allow a quantitative analysis and comparision of the PID and Integral-Backstepping (IB) controller design for attitude stabilization
with respect to reference signal tracking,disturbance rejection and robustness.

  1. Full Control of a Quadcopter
The research on autonomous miniature flying robots has intensified considerably thanks to the recent growth
of civil and military interest in Unmanned Aerial Vehicles (UAV). This paper summarizes the final results of the modeling and control parts of OS4 project, which focused on design and control of a quadrotor. It introduces a simulation model which takes into account the variation of the aerodynamical coefficients due to vehicle motion. The control parameters found with this model are successfully used on the helicopter without re-tuning. The last part of this paper describes the control approach (Integral Backstepping) and the scheme we propose for full control of quadrotors (attitude, altitude and position). Finally, the results of autonomous take-off, hover, landing and
collision avoidance are presented.

  1. Development of an UAV for Search & Rescue Applications
In the event of a disaster, there is an impending need for robotic assistance in order to conduct an effective search and rescue operation, due to their immediate permissible deployment. In this paper, the development of an unmanned aerial vehicle (UAV) intended for search and rescue applications is presented. The platform for the UAV is a quad-rotor type helicopter, simply referred to as a quadrotor. A plan for the mechatronic system integration was devised to combine the mechanical, electronic and software elements of the research. Once the system was modelled mathematically, a control strategy was implemented to achieve stability. This was investigated by creating a MATLAB® Simulink® numerical model, which was used to run simulations of the system.


  1. The Hardware Construction and Algorithm Design of Control System in Small Unmanned
Gyroplane
The flight control system is the core of small unmanned gyroplane, in this paper, micro controller
AT91M55800A chosen from ARM7 series is used to construct the control platform. In order to improve the
stability and robustness of small unmanned gyroplane, this paper puts forward a kind of PID controller which based on improved Differential Evolution Algorithm so that the gyroplane can finally achieve the optimal control.


  1. A Design of Self-service Speech Explaining System Based on RFID
With the development of tourism, intelligent electronic tourism guides are welcomed widely. In this paper, a self-service tourism guide system based on RFID was designed. The system consists of RFID tags and handheld terminals. Handheld terminal includes ZLG500BTG + module, VS1003 audio decoder module, SD card data storage module. It implants FAT32 file system, and can use data redirection function to deal with data, which makes the microcontroller complete the main control function of the whole system with less hardware resources. The system is suitable for the museums, exhibitions, and other intensive places.


  1. Remote management and control system for LED based plant factory using ZigBee and Internet
Recently, intelligent systems for agricultural production are being developed for safe and low cost food production. Plant factory provide high yield by growing multiple crops and making efficient use of land and resources. Plant growth is facilitated by maintaining humidity, temperature, CO2 concentration and light intensity and these factors need to be monitored and maintained for an automated system. In this paper, we have proposed a control system for a LED based plant factory consisting of ZigBee wireless mesh network, and remote monitoring via Internet. Field sensors are installed for monitoring environmental conditions and power metering and ZigBee mesh network has been deployed for data acquisition from these sensors. ZigBee nodes transfer the field data to the coordinator node which also serves as a gateway node providing interoperability between TCP/IP network and ZigBee Wireless Sensor Network (WSN). A major novelty of the system is the use of LED lighting instead of fluorescent lighting due to its low power consumption, long life and useful narrow band. LED lighting system provides an efficient and economical lighting system that facilitates plant growth by varying light intensity and frequency according to light conditions and growing requirements and also helps in reducing production costs and speeding growth. Prototype of the proposed system has been installed in a small part of greenhouse. Data acquisition and remote management of the system has shown very satisfactory performance.
  1. A Reliable Transmission Protocol for ZigBee-Based Wireless Patient Monitoring

Patient monitoring systems are gaining their importance as the fast-growing global elderly population increases demands for caretaking. These systems use wireless technologies to transmit vital signs for medical evaluation. In a multihop ZigBee network, the existing systems usually use broadcast or multicast schemes to increase the reliability of signals transmission; however, both the schemes lead to significantly higher network traffic and end-to-end transmission delay. In this paper, we present a reliable transmission protocol based on anycast routing for wireless patient monitoring. Our scheme automatically selects the closest data receiver in an anycast group as a destination to reduce the transmission latency as well as the control overhead. The new protocol also shortens the latency of path recovery by initiating route recovery from the intermediate routers of the original path. On the basis of a reliable transmission scheme, we implement a ZigBee device for fall monitoring, which integrates fall detection, indoor positioning, and ECG monitoring. When the triaxial accelerometer of the device detects a fall, the current position of the patient is transmitted to an emergency center through a ZigBee network. In order to clarify the situation of the fallen patient, 4-s ECG signals are also transmitted. Our transmission scheme ensures the successful transmission of these critical messages. The experimental results show that our scheme is fast and reliable. We also demonstrate that our devices can seamlessly integrate with the next generation technology of wireless wide area network, worldwide interoperability for microwave access, to achieve real-time patient monitoring.

  1. ZigBee based energy efficient outdoor lighting control system

This paper presents user-centric energy efficient lighting control architecture for street lamps. The system utilizes ZigBee technology to implement wireless mesh network of street lamps. The coordinator, serving as gateway between ZigBee nodes , relays information of interests to remote user. The proposed system comprises of LED lamps, gateway node, and management software that offer remote monitoring and control of the lamps. Each LED lamp is integrated with ZigBee node, sensors and the Controller module along with ballast actuator. To realize effectiveness of proposed system, prototype has been installed inside University.

12.    Bus Monitoring System Based on ZigBee and GPRS

Presently, public traffic system mainly depends on driver's manual operation, which will inevitably encounter many problems such as punctuality of the bus's arrival on bus station. Paper proposes an supervisory system based on GPRS and ZigBee technology, to improve the operation efficiency of bus monitoring system and realize intelligent transportation system. Paper introduces the bus monitoring system from the aspect of both hardware design and software design. System takes it into accounts for the respective advantages and disadvantages of GPRS and ZigBee, and designs a feasible solution successfully, of practically significant.


Friday 19 October 2012

Career In Embedded Sytem


Career in Embedded System
Embedded Systems are becoming more and more pervasive, touching virtually all aspects of daily life. From mobile phones to automobiles, industrial equipment, to high end medical devices, home appliances etc. Embedded software today sits at the intersection of all the technologies. The growth of different industry sectors like automotive, telecommunications, aerospace, energy, industrial units, biomedical equipment, consumer goods is highly contributed by the development in the field of Embedded Systems.

According to a survey by Frost and Sullivan, an analyst firm, the embedded systems opportunity is expected to touch $360 billion ( in terms of the devices) and $36 billion in terms of the semiconductors by 2015. Another survey by NASSCOM and McKinsey predicts that the jobs in embedded space will increase ten-fold from the current 60,000 professionals to over 6 lakh people by 2015. Companies like TCS, Wipro, L&T, TATA Elexsi, Infosys, Zensar, Tech Mahindra, Patni, VOLVO, NIIT Tech, KPIT Cummins, Airbus etc. are investing heavily in their embedded systems operations in India. With that expectation, in the near future embedded computing will overtake traditional computing and that there may be more engineers working on embedded systems and related services , then on traditional IT. Experts say what IT was in 90's is where embedded systems stands now and is ready to explode. The future is bright for India with it being pegged to be the next embedded systems hub in the world.

A recent study by NASSCOM talks about the Indian Embedded Ecosystem. This ecosystem consists of all the stakeholders in embedded domain namely, the education institutions, end user industries and entrepreneurial organizations. NASSCOM suggests that there is a need to nurture this ecosystem that would catalyze innovation in the Indian embedded industry.


Which Companies Work in Embedded Systems

Segments
Example Companies
All consumer electronics companies
Samsung, LG, Philips, GE, Apple, Sony, Fujitsu, Panasonic, Nokia
Automotive and Aircraft manufacturers
Toyota, GM, Ford, BMW, Boeing, Airbus
Semiconductor companies offering hardware and software
Texas Instruments, ARM, Microchip, Intel, Freescale, ST Microelectronics, NXP, Infineon, CISCO
Companies providing embedded software
Google (android), Samsung
Electronic design automation companies providing software tools
Synopsys, Cadence, Mentor Graphics
Defense companies
ISRO, DRDO, HAL, BEL
Indian companies
Wipro, HCL, TCS, Tejas Networks
Other embedded application development companies
Sourcebits



What are the Components of Embedded Systems

Embedded system design has the following components.

Architecture

A typical embedded system is designed around embedded processors. These processors could be 8 bit microcontrollers or 16 and 32 bit embedded processors. Prominent 8 bit microcontroller manufactures are Microchip, Atmel, SiliconLabs etc.and prominent 16 and 32 bit embedded processors companies are ARM, MIPS, Freescale, Infineon, Fujitsu etc. As part of system architecture, many decisions have to be taken. Examples of these decisions are what and how many processors to be used, how to interact with the user interface, how to perform communication among various components and so on. Since these systems could be complex such as the one for a mobile phone, designers have to rely on extensive simulation and analysis to ensure correctness of the system before it comes down to board level design. Typical job functions at this level are creating the simulation platform, creating meaningful testcases, automating tests and regressions, analysis, performance and power benchmarking, visualizing benchmark results etc.


Board level design and testing

Once the architecture is decided, it must be implemented in a board. This involves designing printed circuit boards, mounting physical components such as processors, memories and peripherals on the board followed by the testing of the board for correctness.

Software development

Depending on whether the system is doing single task or multiple tasks, an operating system (OS) may or may not be required. For example, in a washing machine controller, no OS is required as it is doing just one task driven by some 8 bit microcontroller. On the other hand, in a mobile phone, multiple services around voice, data and other applications are provided. Hence an embedded operating system such as Android, Symbian etc. are required. Typically writing or customizing OS is done by a small set of experienced developers.

Since the system will be interacting through a set of peripherals such as USB port, HDMI port, touchscreens, very specific programs need to written to send instructions to these devices and read data from it. These programs are called device drivers. As there are a number of variations of peripherals, more developers will be needed to write, enhance and test the drivers. Further, device drivers may have to be integrated in the OS, strong knowledge of the OS is a must.


The bulk of the software are developed in the form of applications or apps in short. These applications can be utilities like calculator, alarm clock, notes or games or client for mails, social networking sites etc. Possibilities in the area of applications are endless and that is where the most of the job opportunities exist.


Various entry level and advanced positions are outlined as follows. These are the most common ones. There are obviously many more opportunities.

What are the Entry Level Positions

Typical entry level positions involve the following job functions.
  • Device testing
  • Board bring-up
  • Simple device drivers and testing
  • Embedded application testing
What are the skills needed for entry level jobs

At the least the following skills are needed for entry level jobs in embedded systems.
  • Bachelors in engineering/technology in computer science, electronics or similar areas
  • Sound knowledge of basics of digital systems and computer architecture
  • C Programming Language
  • Experience on working on Linux or other embedded OS
  • Problem solving
What are the advanced positions

Typical advanced level position may involve one or more of the following.
  • Design and verification of embedded processor architecture
  • Design and verification of system on chip
  • Application parallelization
  • Implementation and integration of software stack
What are the skills needed for advanced jobs

Apart from basic skills, the following may also be needed for advanced level positions.
  • Advanced C
  • Low level programming in C and analysis
  • C++
  • Linux device drivers
  • Open source models and flows
  • Board level debug and analysis
  • Interface/protocol understanding e.g. PCI, USB etc.
  • Strong domain knowledge

Friday 5 October 2012

How to interface 16x2 LCD with 8051 microcontroller

How to interface 16x2 LCD with 8051 microcontroller


A 16x2 LCD means it can display 16 characters per line and there are 2 such lines. In this LCD each character is displayed in 5x7 pixel matrix. This LCD has two registers.



1.      Command/Instruction Register- stores the command instructions given to the LCD. A command is an instruction given to LCD to do a predefined task like initializing, clearing the screen, setting the cursor position, controlling display etc.

 2.      Data Register- stores the data to be displayed on the LCD. The data is the ASCII value of the character to be displayed on the LCD.


Programming the LCD:

1.      Data pin8 (DB7) of the LCD is busy flag and is read when R/W = 1 & RS = 0. When busy flag=1, it means that LCD is not ready to accept data since it is busy with the internal operations. Therefore before passing any data to LCD, its command register should be read and busy flag should be checked.

2.      To send data on the LCD, data is first written to the data pins with R/W = 0 (to specify the write operation) and RS = 1 (to select the data register). A high to low pulse is given at EN pin when data is sent. Each write operation is performed on the positive edge of the Enable signal.

3.      To send a command on the LCD, a particular command is first specified to the data pins with R/W = 0 (to specify the write operation) and RS = 0 (to select the command register). A high to low pulse is given at EN pin when data is sent.


Displaying single character ‘A’ on LCD

 This program uses the above concepts of interfacing the LCD with controller by displaying the character ‘A’ on it.


#include <REGX51.H>
#define data P3
sbit rs=P2^0;
sbit rw=P2^1;
sbit e=P2^2;

void delay(int d);
void lcommand(unsigned char x);
void ldata(unsigned char x);

void main()
{
lcommand(0x38);
delay(50);
lcommand(0x01);
delay(50);
lcommand(0x06);
delay(50);
lcommand(0x0e);
delay(50);
 lcommand(0x86);
delay(50);

ldata('A');
delay(50);

while(1);
}
void delay(int d)
{

int i,j;
for(i=0;i<d;i++)
for(j=0;j<1000;j++);
}
void lcommand(unsigned char x)
{
data=x;
rs=0;
rw=0;
e=1;
delay(1);
e=0;

}
void ldata(unsigned char x)
{
data=x;
rs=1;
rw=0;
e=1;
delay(1);
e=0;

}

Proteus Simulation:










Thursday 4 October 2012

DC motor interfacing with 8051

 DC motor:


CODE:

#include <REGX52.H>
sbit s1=P1^0;
sbit s2=P1^1;

sbit m1=P2^0;
sbit m2=P2^1;
sbit m3=P2^2;
sbit m4=P2^3;

void main()
{
   P1=0x00;
   P2=0x00;
   while(1)
   {
    if(s1==0 && s2==0)
{
  m1=0;
  m2=0;
  m3=0;
  m4=0;
}
    if(s1==0 && s2==1)
{
  m1=0;
  m2=1;
  m3=0;
  m4=1;
}
if(s1==1 && s2==0)
{
  m1=1;
  m2=0;
  m3=1;
  m4=0;
}
if(s1==1 && s2==1)
{
  m1=0;
  m2=0;
  m3=0;
  m4=0;
}
 
   }
}

PROTEUS:




Thursday 27 September 2012

Multiplexing seven segment


Proteus Simulation on four seven segment multiplexing

























Code: upcounter on seven segments


#include <REGX51.H>

#define seg_data P2

sbit seg1=P3^3;
sbit seg2=P3^2;
sbit seg3=P3^1;
sbit seg4=P3^0;

int num=0;
int  ones=0,tens=0,hundreds=0,thousands=0;
void display_digit(unsigned char c);

void delay(int x);
void display(int);



void main()
{
  int num,j;
 
  while(1)
  {
  for(num=0;num<10000;num++)
  {
  for(j=0;j<60;j++)

  display(num);


  }
  }
 }

void delay(int x)
{
int i;
for(i=0;i<x;i++);
}

void display(int num)
{
ones=num%10;
tens=(num/10)%10;
hundreds=(num/100)%10;
thousands=(num/1000);

display_digit(ones);
seg1=0;
delay(50);
seg1=1;

display_digit(tens);
seg2=0;
delay(50);
seg2=1;

display_digit(hundreds);
seg3=0;
delay(50);
seg3=1;

display_digit(thousands);
seg4=0;
delay(50);
seg4=1;
}

void display_digit(unsigned char c)
{
switch(c)
{
case 0:
seg_data=0x3f;
break;

case 1:
seg_data=0x06;
break;

case 2:
seg_data=0x5b;
break;

case 3:
seg_data=0x4f;
break;

case 4:
seg_data=0x66;
break;

case 5:
seg_data=0x6d;
break;

case 6:
seg_data=0x7d;
break;

case 7:
seg_data=0x07;
break;

case 8:
seg_data=0x7f;
break;

case 9:
seg_data=0x6f;
break;
}
}


Sunday 23 September 2012

Learn how to create project in Keil uvision IDE

Step1:
Goto project -> new uvision project

















Step2:
Create project space make a new  folder for project
















Step3:
write name of your project
















Step4:
Select device for target
















Step5:
Click No for 8051 startup code
















Step6:
Click file -> New
















Step7:
Write source code for project in text window
















Step8:
Save your project with .c extension
































Step9:
Add file to source group
































Step10:
Build target
















Step11:
Set frequency and click on create Hex file option
































Now you can see hex file created by keil uvision in project folder
















Proteus simulation


















Saturday 22 September 2012

Temperature sensor interfacing with 8051

Theory:


Temperature Measuring
A temperature sensor LM35 is interfaced to the 8051 by an ADC0804
The output voltage from the LM35 is linearly proportional to the measuring temperature
The ADC0804 converts the output voltages from the LM35 into digital signals, which correspond to the measured temperature. Handled by the 8051.

LM35 temperature sensor

The LM35 series are precision integrated-circuit temperature sensor, whose output voltage is linearly proportional to the Celsius (Centigrade) temperature. The LM35 thus has an advantage over linear temperature sensorscalibrated in ° Kelvin, as the user is not required to subtract a large constant voltage from its output to obtain convenient Centigrade scaling. The LM35 does not require any external calibration or trimming to provide typical accuracies of ±¼°C at room temperature and ±¾°C over a full -55 to +150°C temperature range. Low cost is assured by trimming and calibration at the wafer level. The LM35's low output impedance, linear output, and precise inherent calibration make interfacing to readout or control circuitry especially easy. It can be used with single power supplies, or with plus and minus supplies. As it draws only 60 µA from its supply, it has very low self-heating, less than 0.1°C in still air. The LM35 is rated to operate over a -55° to +150°C temperature range. 
LM35 Pin Outs: 

Mainly the LM35 has 3 pins, which are: 
Pin 1: VDD - Supply voltage
Pin 2: Vout - Output analogue voltage, Linear + 10.0 mV/°C scale factor
Pin 3: GND - Ground


ADC0804 with 8051:


Circuit Diagram:
Code:

//Program to make a digital thermometer with display in centigrade scale

#include<reg51.h>
#define port P3
#define adc_input P1
#define dataport P0
#define sec 100
sbit rs = port^0;
sbit rw = port^1;
sbit e = port^2;

sbit wr= port^3;
sbit rd= port^4;
sbit intr= port^5;

int test_intermediate3=0, test_final=0,test_intermediate1[10],test_intermediate2[3]={0,0,0};

void delay(unsigned int msec )
{
int i ,j ;
for(i=0;i<msec;i++)
  for(j=0; j<1275; j++);
}

void lcd_cmd(unsigned char item)  //Function to send command to LCD
{
dataport = item;
rs= 0;
rw=0;
e=1;
delay(1);
e=0;
return;
}

void lcd_data(unsigned char item) //Function to send data to LCD
{
dataport = item;
rs= 1;
rw=0;
e=1;
delay(1);
e=0;
//delay(100);
return;
}

void lcd_data_string(unsigned char *str)  // Function to send string to LCD
{
int i=0;
while(str[i]!='\0')
{
  lcd_data(str[i]);
  i++;
  delay(10);
}
return;
}

void shape()     // Function to create the shape of degree
{
lcd_cmd(64);
lcd_data(2);
lcd_data(5);
lcd_data(2);
lcd_data(0);
lcd_data(0);
lcd_data(0);
lcd_data(0);
lcd_data(0);
}
   
void convert()    // Function to convert the values of ADC into numeric value to be sent to LCD
{
int s;
test_final=test_intermediate3;
lcd_cmd(0xc1);
delay(2);
lcd_data_string("TEMP:");
s=test_final/100;
test_final=test_final%100;
lcd_cmd(0xc8);
if(s!=0)
lcd_data(s+48);
else
lcd_cmd(0x06);
s=test_final/10;
test_final=test_final%10;
lcd_data(s+48);
lcd_data(test_final+48);
lcd_data(0);
lcd_data('c');
lcd_data(' ');
delay(2);
}

void main()
{
int i,j;
adc_input=0xff;
lcd_cmd(0x38);
lcd_cmd(0x0c);  //Display On, Cursor  Blinking
delay(2);
lcd_cmd(0x01);  // Clear Screen
delay(2);

while(1)
{
  for(j=0;j<3;j++)
  {
   for(i=0;i<10;i++)
   {
    delay(1);
    rd=1;
    wr=0;
    delay(1);
    wr=1;
    while(intr==1);
    rd=0;
    lcd_cmd(0x88);
    test_intermediate1[i]=adc_input/10;
    delay(1);
    intr=1;
   }
   for(i=0;i<10;i++)
   test_intermediate2[j]=test_intermediate1[i]+test_intermediate2[j];
  }

test_intermediate2[0]=test_intermediate2[0]/3;
test_intermediate2[1]=test_intermediate2[1]/3;
test_intermediate2[2]=test_intermediate2[2]/3;
test_intermediate3=test_intermediate2[0]+test_intermediate2[1]+test_intermediate2[2];
shape();
convert();
}
}