ss_blog_claim=726e70d7c87c20ae33aa7a61f06eb8aa

Sunday, May 30, 2010

Introduction to Random Access Mode of APR 9600

Hi readers, so we are on track looking into my EMAS - Wi Tech project. In our last post we were looking into APR9600 in brief. Now let us look into its usage in our project. The APR9600 has various modes of operation of which we have selected the 'Random Access 8 fixed duration messages' mode, where we could record 8 voice signals and play them back. The below is the table for different modes of operation of APR9600,

Let us look into the Random Access Mode functionality of APR9600 in my next post

Thursday, April 29, 2010

Introduction to APR9600

In our last post we discussed on how to monitor Saline level using an LDR, now let us move to the APR module. Before going to the interface part of APR 9600 with the microcontroller, lets look about APR9600 in brief.



The APR 9600 is a 28 pin device used to record and playback maximum of 8 messages. The APR9600 device offers true single-chip voice recording, non-volatile storage, and playback capability for 40 to 60 seconds. The device supports both random and sequential access of multiple messages. Sample rates are user-selectable, allowing designers to customize their design for unique quality and storage time needs. Integrated output amplifier, microphone amplifier, and AGC circuits greatly simplify system design. The device is ideal for use in portable voice recorders, toys, and many other consumer and industrial applications.

Tuesday, April 13, 2010

Saline Level monitoring using LDR

Hi folks, we are looking into one of my project "EMAS - Wi Tech", In our previous post we saw some introduction about it. Now we are going to dig further on the different sensor circuits used. The first one which we would see is how we monitored the saline level using an LDR, Just go through the below para for detials on the circuit what we used.


The LDR sensor circuit consists of a comparator, an LDR and a pair of multi-turn preset resistor (10k ohm). The LDR is connected in series with a preset resistor forms a voltage divider configuration. When no laser beam falls on the LDR its resistance will be very high compared to 10k ohm. So by voltage divider rule small voltage will be available across the preset resistor. But when laser beam falls on the LDR its resistance becomes almost zero. So voltage across the preset will become nearly 5V. This change in voltage across the preset can be detected using a comparator. Comparator is constructed using UA741.
The threshold voltage can set using another 10k ohm preset connected to the inverting input of the opamp.
In normal condition output of comparator remains at logic zero because the laser beam is distracted by the saline present in the bottle, but when saline level reduces, the distraction is lost and the laser beam falls on the LDR, because of this comparator output changes to logic one. This change is used by microcontroller to detect the quantity in the saline bottle.

Sunday, April 4, 2010

Introduction to EMAS-Wi Tech

Hi guys last week we were looking on brief into one of my project "Emergency Announcement System In Hospital Using Wireless Technology" which I have abbreviated as "EMAS-Wi Tech". It is now time to look into it in detail. This post will explain the outline of the project and the components used. Just look at the below block diagram which describes the outline of our project.



In the Transmitter side, The Output from the sensors are continuously monitored by the microcontroller, when the microcontroller senses any abnormal values, it transmits corresponding data through wireless medium with the help of the ZigBee module. On the Receiver side, the wireless data obtained by the ZigBee module is sent to the Microcontroller, The microcontroller then analyses the data obtained from the ZigBee module and triggers corresponding messages signals to the APR module. The APR module playbacks corresponding voice recorded signals according to the message signals obtained from the microcontroller.

P89V51RD2, an 8051 Microcontroller is the Main component at the Transmitter side, which is used to sense the output from the Sensors. The Saline Level is sensed using an LDR sensor unit. XBee PRO is used in the ZigBee module at the Transmitter and Receiver sides. PIC16F877A is used at the Receiver side, which senses the output from the ZigBee module. APR9600 is used to playback recorded voice signals based on the input from the Microcontroller.

Sunday, March 28, 2010

Emergency Announcement System In Hospital Using Wireless Technology

The above topic is the name of our project which we did for AU PERS center. Here is a brief detail on our project "Emergency Announcement System In Hospital Using Wireless Technology"

The advancement in technology had favored many fields. The Emergency announcement systems present in the hospitals nowadays, are not implemented real time and any crucial data is transmitted through wired means. There is a probability for the crucial data to get lost, by not reaching the right person at the right time. Our system is designed to overcome these drawbacks by transmitting the data obtained from sensors to the respected persons through wireless means. Sensors are provided to measure the physical values e.g. Saline level, heart beat, etc. The outputs from these sensors are fed to the microcontroller which is monitoring continuously. When abnormal input conditions were sensed by the microcontroller, it transmits respective message to the intended person immediately through wireless medium. The entire system is designed to provide a cost effective solution to save the life of people in need.

More details on my next post.....

NOTE: AU PERS center has been shutted down last year

Friday, November 28, 2008

The usage of ‘gets’ statement in C Programming

Well we have already discussed about the usage of ‘fflush’ statement, let us now discuss about the usage of ‘gets’ statement. String is an array of characters and we use the format specifier ‘%s’ to directly get these array of characters, which is not possible in the case of array of integers. In the case of array of integers we use the ‘for’ loop to get the values since we don't have any format specifier for array of integers.

To get array of characters we use the format specifier ‘%s’ as shown below

puts(“Enter the string”);
scanf(“%s”,ex_str);
puts(ex_str);

Output:

Enter a string
sample text
sample

What is wrong in the output?? We know that ‘Space’ and ‘Enter’ key act as a delimiter. So if you execute this program and give input as ‘sample text’ the value stored in ‘ex_str’ is ‘sample’ and not ‘sample text’ this is because the space in between the words ‘sample’ and ‘text’ acts as a delimiter thus storing only ‘sample’ in the character array (string). To overcome this problem we use the ‘gets’ statement. The ‘gets’ statement takes only the ‘Enter’ key as delimiter. The below part of the code shows how to use ‘gets’ statement.

puts(“Enter a string”);
gets(ex_str);
puts(ex_str);

Output:

Enter a string
sample text

sample text

Just think of getting a name of a person which contains first name, last name and middle name so this ‘gets’ statement is much useful in those situations. Happy Programming!!

Saturday, November 15, 2008

The usage of ‘fflush’ statement in C programming

The keyboard has an input buffer in it and every time you read data from the keyboard the value stored in the input buffer is read. For every key press there will be a value loaded into the input buffer which means that the ‘Enter’ key, ‘Tab’ key also has a value being stored in the buffer when pressed.


We know that the ‘Enter’ key and the ‘Tab’ key acts as a delimiter while accepting data. Consider the below C Program

void main()
{
int num;
char ch;
clrscr();
printf(“Enter a number\n”);
scanf(“%d”,&num);
printf(“Enter a character\n”);
scanf(“%c”,&ch);
printf(“The value of num is %d and ch is %c”,num,ch);
getch();
}

The output of the program is shown below

Enter a number
12
Enter a character
The value of num is 12 and ch is

Wonder why this happens? Well let us look at the problem. When you type the number 12 and press ‘Enter’ key, the value corresponding to key press ‘1’ and ‘2’ is read from the input buffer and gets assigned to the variable ‘num’ once you press the ‘Enter’ key(delimiter). Now the value of the ‘Enter’ key is stored in the input buffer. So when you want to read a character, the value of the ‘Enter’ key which is stored in the input buffer is assigned to the character variable ‘ch’. This results in giving a wrong output. This is where the ‘fflush’ command comes into picture. The ‘fflush’ clears the specified buffer, so after getting the integer value we need to clear the input buffer (which stores the ‘Enter’ key value) before getting the character value. So the C program is changed as shown below.

printf(“Enter a number\n”);
scanf(“%d”,&num);
fflush(stdin);
printf(“Enter a character\n”);
scanf(“%c”,&ch);

Hope you know understood the importance of ‘ffush’ statement

Monday, November 10, 2008

Types of ROM's

We have been hearing the terms volatile memory and non-volatile memory from our 1st year of college. Here is a brush up of what we have heard so far.
The OTP (one time programmable) are used for firmware applications.
The ROM is also known as the program memory or code memory and RAM is also known as the data memory.
The EEPROM are electrically erasable PROM and needs electrical supply to clear the data.
The UVPROM requires UV light to pass through the window to clear the data.
The FLASH ROM are the advanced ones where data is loaded and retrieved in blocks, where each block is greater than 2 bytes, so the operation is faster in the case of FLASH ROM, whereas in the case of EEPROM data is loaded and retrieved byte by byte so it would take much time to access data when compared to FLASH ROM.

Saturday, November 1, 2008

Hectic week approaching...

The rain was troubling me much last month, because of it I had to delay every jobs of mine. I even failed to attend two of my classes at AU PERS center. Those two classes covered array of pointers and structures, It was bad that I missed the classes on array of pointers which was an interesting and tough topic. However I hope I could get my doubts cleared on it. The upcoming week I have one week practicals and I have to complete twenty programs within this week and get it signed from the lab incharge. The twenty programs seems to be pretty tough and time consuming I tried to complete only three and it took me two hours and I spent most of my brain work there, now trying to get some relaxation. Hope that I could complete the programs on time and I also have to prepare for the test after this week on C module. I hope that this week is a hectic one and I have to plan well to face it.

Wednesday, October 22, 2008

Code snippet for working with an ADC

We have already seen the need for an analog to digital converter and also how the conversion takes place, the below code is used to work with an ADC in my PIC development board where the PIC16F877A senses the input from an ADC through RA0 pin and displays the digital value in the LCD which is connected to PORTD and also send the converted data to PORTB.

#include<16f877a.h>
#use delay(clock=4000000)
#include

#byte portb=0x06
#byte porta=0x05
#byte portd=0x08
int16 temp;

main( )
{
lcd_init( ); //INITIALISE THE LCD ;
set_tris_b(0x00); //PORTB IS CONFIGURED AS A O/P;
set_tris_a(0x01); //PORTA IS CONFIGURED AS A I/P;
set_tris_d(0x00); //PORTD IS CONFIGURED AS A O/P;
setup_adc_ports(ra0_analog);
setup_adc(adc_clock_internal);
set_adc_channel(0);
while(1)
{
temp=read_adc(); //OUTPUT IS STORED IN TEMP;
portb=temp;
lcd_gotoxy(1,1);
printf(lcd_putc,"ADC:%4lx",temp); //DISPLAY ON LCD;
delay_ms(500);
}
}
Here you can see in the code that while configuring the pins of PORTA since we are going to sense the analog input from RA0 we hace configured it as an input (set_tris_a(0x01)).

Tuesday, October 14, 2008

Analog to digital converter module

We have already seen about the need for analog to digital converters in my previous post. Now let us look into how the analog to digital converter module actually works. The below figure represents the analog to digital converter module.


You can see the input pins where the analog data comes from, which are connected to the inputs of an analog multiplexer. The function of the analog multiplexer is to connect the selected input channel to the holding capacitor. The holding capacitor is connected to the output of the analog multiplexer and when a conversion is initiated, the analog multiplexer disconnects all inputs from the holding capacitor, and the successive approximation converter performs the conversion on the voltage stored on the holding capacitor thus providing a digital value at the output.

Sunday, October 12, 2008

The need for Analog to Digital Converters

We have seen the advantages of digital signals over the analog signals in transmission of signals. Microcontrollers are very efficient at processing digital numbers, but they cannot handle analog signals directly. An analog-to-digital converter, converts an analog voltage level to a digital number. The microcontroller can then efficiently process the digital representation of the original analog voltage. By definition, digital numbers are non-fractional whole numbers.
In this example, an input voltage of 2.343 volts is converted to 87. The user’s software can use the value 87 as the representation of the original input voltage. The analog input voltage must be within the valid input range of the A/D for accurate conversion. Hope you would have heard about the quantization process of rounding off and the quantization error. The A/D converter which is having higher resolution gives less quantization errors. Hence a 12-bit converter which has 4096 states is much efficient than a 10-bit converter that has 1024 states.

Wednesday, October 8, 2008

About 8085 simulator's

If you are a college student in your third year then you can realize how important 'Microprocessor and its Applications' subject is. If you attend any technical HR interview then there is sure questions from this subject. For this subject practical knowledge is much more important than theory knowledge. Learning 8085 microprocessor well forms a good base for learning other microprocessors and microcontrollers. So you should try to learn the instruction set and work with Assembly Language Programming of 8085. Even though you may not have a 8085 kit with you but you can download free 8085 simulators that are available in Internet and go on with writing ALP and executing them. These simulators will surely help you to gain good knowledge in 8085 microprocessor. If you get microprocessor book of Goankar then you will be getting free CD with simulator and you can even get the simulator if you get Bhakshi. Well you can have a good knowledge only if you have interest towards learning it. So create your interest towards microprocessor 8085 and it will surely help you in future while attending interviews.

Day 3 at AU PERS center

The government holidays are affecting my embedded system course at Anna University. I think that this October month is having a lot of government holidays that any other month. Even though I had joined the course at September, but because of these holidays I have completed only 3 classes at Anna University. Well the classes are going on well and my staff is concentrating much on practical knowledge apart from teaching theory well. He has completed till arrays and still there are pointers, functions, structures and unions, files and lots more to go. On day 3 he completed with single dimensional array but when he started with pre increment and post increment operators the classes deviated from arrays and he started to fully explain about those operators with practical examples. Then we came back and the class and it took additionally 20 minutes to get over but it was an interesting session. All the programs were like puzzles and I was wrong with most of my answers but at last understood to an extent. Hope when you take up any C programming classes you can be sure of getting into situations like these so don’t miss any classes.

Hurray got into Visteon!!

Hi guys I have already posted about my experience in Visteon interview process. Well I told you that I am waiting for my results and I got my results last week. I was happy to hear that I have been selected for Visteon. Now I am happy since I have got into my core field-electronics which I like the most and all my hard work has been credited. I can now quit my IT job and get into my core field and work with full satisfaction. However I am going to miss my friends. I have to miss my NIIT classes, loose my SCJP voucher. Anyway if we want to get something better we have to loose another one that's become true in my case. Hope that I will enjoy my work at Visteon.

Sunday, October 5, 2008

Get Together

It was a long time after my college days, So we planned for a get together at marina beach while chatting online. One among my friends took the responsibility of deciding the timing and told us that he would message me. Later after two days I got a call from my friend and he asked me to come to marina beach on saturday at 5PM. I was ready on that day and was at marina beach at 4.45PM itself but I couldn't find out the exact meeting place, So It took me some time to reach the correct place. I was hoping to see all of my friends when I was near to the spot, but unfortunately one nine persons were there. I thought that our friendship circle was too strong but only some think like me and they came for the get together. Others just told that they had some work with their jobs and so they can't come but all these seems to be blank reasons. I never thought even my close friends in my college would tell me the same reasons. Anyway I realized that everything would change as days passes by.

Wednesday, October 1, 2008

SimBot at NIT Trichy


SimBot is a competition for Line Follower robot. The rule is that we must build a line follower robot that must have the obstacle detection mechanism. The obstacle will be a white box of specified height and width. There will be three parallel tracks, the line follower must begin from one end that we can choose. If the Line Follower faces any white obstacles on its way then it should take the parallel path. The below picture shows three parallel tracks with obstacles.


The robot which reaches the finish line first wins the game. We used DC motors with 150 RPM but those who came for the competition used 300 RPM twice the speed of us, so we lost in timing but anyway we had a good experience out there. I couldn't take a video at the time of the race but here is the sample video where our line follower tracks the line.

The best book for C Programming

C Programming is a strong high level language invented by Dennis Ritche. It forms the base for many programming languages. Where ever you go for an interview they will test your C Programming skills and if you are strong in C then you get a job for sure. Because C being the base to learn other programming languages. Learning C is basic like learning ABC in your primary classes. Well C is that much powerful and the best book for learning C language is Let Us C by Yashvant Kanethkar. There are also other books on C written by the same author and you can get it to have a through knowledge in C Programming. The book is simple and easy to learn and there is lot of practical examples. If you are mastering the book Let Us C then you can be sure in clearing the written test for any interview which has C language. In Embedded systems also C Language forms a basic part, because most of us use Embedded C language to program the microcontrollers and ALP and BASIC are out of use. Even if you join in any Embedded Training Centers then the first module will be C Programming, so if you are a beginner please concentrate in C Programming well. Practical knowledge matters more than theoretical one.

My WaterBot drowned in Water

It was during my third year I participated in the 'Water Loo' event at Saveetha Engineering College. I and my team mate had controversy over the design of our robot because he designed a large one using Wood as shown below.


This was the first robot which we completed before time which was quite unusual to us. Then we went to the college, the day before the event for practice. But our robot started to get drown as the wood absorbed water. So the design was an entire flop and all our hard work went in vain. But we never wanted to give up, and then we designed a robot with thermocole basement so that it can float well in water. We worked the whole day without sleeping and finally completed our design. The day came for the event and we didn't even have a practice match. Who ever pushes maximum number of balls into the goal post wins the game, but unfortunately because of latch up problem our robot got drowned and all the circuits got collapsed. Our team got totally frustrated and didn't no what to do. Then finally with the help of a long stick we got our robot back, but the entire circuit got short circuited. It was the worst day and we came back sad. Here is the photo of our drowned robot.You can also see the video of the robot which took the first prize, the robot had a good simple design and turned perfectly in every directions.



Tuesday, September 30, 2008

C Programming class at AU PERS center

Today was the second class for me at AU PERS center. We reached the place by 6PM, but our staff who has to take the class was late by 20 minutes, so the classes started only at 6.30PM. Today we were taught on conditional statements and loop statements in C Programming. The class went well and our staff asked us all to write programs after teaching every concept. It was a good approach as we can understand well every syntax and there usage. He concentrated much to build up our practical knowledge apart from mugging up. Well I had a fine day today. On the way back to my home I had a nice chat with my old friend who is working in scope e in temple tower. We had a nice chat today and then I reached my home by 10PM.