Dr. Sajid Muhaimin Choudhury

>

image
Hello,

I'm Dr. Sajid Muhaimin Choudhruy

I am currently working in the Department of Electrical and Electronic Engineering of Bangladesh University of Engineering and Technology, Dhaka-1205. My official website is located at sajid.buet.ac.bd. I previously maintained various personal blogs and websites (sajidmc.net). I decided to move to a permanent web solution to host all my previous blogposts.

Blog

Beginner's Microcontroller Programming-IV: Absolute minimalisticapproach to the modified SIProg

Ok, before I startered this project, I tried to construct the USBasp and USBtiny, and was not successful with bread board. I am planning to make a better version of the USBasp in PCB, but at the moment I tried to make a really small  SI Prog. It will be so small that the entire veroboard will fit into a standard serial port connector casing. I just bought one from Patuatuli:


To fit the veroboard into the small casing, you can maximum fit a 6x6 hole veroboard piece into it, by properly polishing the sides, the central piece could be two hole longer. As the header is inserted into the box, the backside of the header blocks the first row. With only five holes, I thought, at first it would be impossible to fit my circuit (http://sajiduc.blogspot.com/2008/04/beginners-microcontroller-programming.html) here.

Then it occured to me, if I used the extra holes in the middle row to connect the densedly connected ground line, and use the ends of resistors to get connection from the MOSI, SCK, and RESET lines, it will be possible to accomodate the circuit in the header box. And so, here it is, I present you the smallest possible (with non-SMT components) SI Prog. It supports most popular microcontrollers like ATmega16, ATmega32, ATmega8, ATtiny2313, but you probably already know that from my third blog. Circuit diagram is available there:

Microcontroller Based Automatic Object Sorting by Length

I'll give you the circuit description and codes later.





External Crystals and Ponyprog

We are now working on a project that requires external crystal. I borrowed a microcontroller from my friend today. We were using external crystal for our project, and I thought that was no big deal. I brought the microcontroller home, and tried to program it. Ponyprog said it is an unknown device. I was quite anguished and thought that it the microcontroller was fried. Suddenly just for curisity, I plugged in a 12MHz crystal. And wow, ponyprog started working again!

Moral (!!!!) : When you have programmed fusebits for external crystals, you MUST use one (crystal) to program the microcontroller.

USBasp: The USB based AVR programmer

Update: My Programmer is working now. Read Here.

My laptop does not have serial port. And ponyprog, up until now, have not provided support for any USB programmers. Today, I constructed my first USB programmer on a breadboard. I had a old USB extenstion cable which was out of order as the header was slack due to wear. I cut of that part and soldered breadboard wires.

My first goal was to make a ponyprog compatible programmer that emulates parallel port. I started with: USB2LPT

Afterwards, I realized that the emulation makes programming too slow. Thus I had to move to a dedicated programmer. But I really like a GUI for inputting, especially the fusebits. AVRdude is a command prompt based programmer. A wrong fusebit setting can lock the microcontroller irrepairable by a Serial Programmer.

Then I found AVR8 Burn-O-Mat: GUI for avrdude . The interface is even better than pony prog for fuses. It actually has small comments beside fusebits. AVRdude even supports my simplified SIProg. So I proceeded to make the famous USB ASP (http://www.fischl.de/usbasp/) I forgot to connect the ICP and INT0 at first, and kept getting "Unknown USB device". I reflashed 4 times. Finally the programmer was operational and the driver was installed successfully.

I'll give details of my schematics later. Here is a picture of the circuit.




Update: My Programmer is working now. Read Here.

(Really) Beginners Microcontroller Guide (Part-II) Configuring Ponyprogproperly and writing program to uC

(A Continuation from (Really) Beginners Microcontroller Guide (Part-I) Compiling the first program)

(alpha version. Very unstable, still editing)

Writing program to Microcontroller

We will be using ponyprog from lancos. Although it is possible to program directly from winavr, I like the interface of the program very much.

Construct the simplified SI Prog. You'll need:
1. A serial port DB9 Female Connector,
2. 5V1 Zener Diodes x3
3. Resistors: 15K, 10k, 4k7 x 3
4. Bread board wires




Connect the circuit on veroboard. To see how it looks go to my blog http://sajiduc.blogspot.com/2008/04/beginners-microcontroller-programming.html






To connect the programmer always consult the datasheet of the microcontroller. Connect the Mosi, MISO, SCK, Reset lines of the programmer to the corresponding pins of microcontroller, and connect GND to 0V. Connect the serial connector to the serial port of your mother board. Please do not use a usb-serial converter, and connect only to true serial port.


Goto http://www.lancos.com/prog.html and download ponyprog from there. Install ponyprog, and open ponyprog from startmenu.


After the annoying neigh sound, click ok. Pony prog will say

Click ok again

Now do the bus timing calibration:




Afterwards, it is important. Click Setup>Interface Setup. Select Serial radio button. From drop down select SI Prog API / SI Prog IO. Select the COM port in which the programmer is connected. It is COM1 if you have only one serial port, but for multiple ports, you have to select the appropriate one. Please note that 90% cases, the SIProg does not work because of not proper configuration in this dialog. So if the SI Prog does not work, try to change the COM port, or switch between SI Prog API and IO


Select the appropriate device name


Now to test if the programmer is working, Click Command>Read All. From my experience 70% cases, people don't get a smooth read operation at the first try. See below for common problems


If every thing is ok, (Which actually did in my first experimental SIProg) Then reading will start.



Now click File>Open, and open the testprog.hex file generated by the compiler.



Now select write all




And then the write will be successful!

Then play with your microcontroller circuit:





Ofcource the write may not be successful.
This might be due to
1. Circuit connection error (Check if you have connected power to micr
ocontroller, check if the breadboard connections are loose, if the programmer are connected to the proper pins, if the programmer is soldered properly.)

2. Check if the BC547 transistor is working by testing if 0.7 V drop occus between Emitter and Base.

3. Check if your serial port is working and you are not using a USB-serial converter

4. Play around with the interface setup (in ponyprog) to find another suitable setting for you. (Try SIprog API, SIProg IO, Check if you have selected correct serial port)

5. This is very common for me:- the microcontroller is dead!!!!

Well, no 5 can result from 2 cases, a) a heart attack of the microcontroller (Fry out, like connecting Vcc of microcontroller to ground and ground to Vcc, microcontroller, at 90% cases just fry) b) Accidental programming of the fusebits of the microcontroller can result the SPI interface to be locked out. This can be overcome by a universal programmer. If you happen to have access to one, ask some one clear the lock bits.

6. You forgot to select the right device (I also sometimes forget to do that)

(Really) Beginners Microcontroller Guide (Part-I) Compiling the firstprogram



This tutorial will show you how to:
1. Write and compile your first program in WinAVR environment
2. Construct necessary hardware for the program execution
3. Load the program into Microcontroller using the Simplified SI Prog

The tutorial assumes that you have some knowledge of C/C++ programming. If you are looking for a good book to start AVR series C Programming for Microcontrollers Featuring ATMEL's AVR Butterfly and the free WinAVR Compiler is a great option.

Compiling the program

My program is quite simple. It will input from a port of a microcontroller checking if the pins are high or low. If the pin is high, the output will flash, other wise, the output will remain low.


Now to compile the code, we need the free winavr compiler. Download it from http://winavr.sourceforge.net/download.html

Install WinAVR.

Now go to Start>Programs>WinAVR>Programmer's Notepad (XP) or Orb>All Programs>WinAVR>Programmer's Notepad (Vista)

The main window pops up:


Select the coding scheme to C/C++ to better visualize the programming


Now type / copy paste the program:

#include <avr/io.h>

int main (void) {
char c;
int delay=10000;
int i=0;
DDRC = 0xFF;
DDRD = 0x00;
while (1) {
c = PIND;
PORTC = c;
while (++i < delay);
PORTC = 0x00;
while (--i > 0);
}
}
Save the program firstprog.c



Now in order to compile the program using winavr, we need a MAKEFILE. The WinAVR comes with a make file creator called "Mfile[WinAVR]". Go to it by using start menu.


In the MFile Edit window, you have only two menu: File and Makefile. Click on Makefile, and change MCU Type to ATmega8,



Change main program name to firstprog.c


Now Click File>Save As, and provide filename MAKEFILE with no extensions, in the same directory where you created the firstprog.c



Now go back to programmers notepad, and select, Tools>[WinAVR] Make All



If there is no typo or other problems, the output window (Viewed by pressing F8) will show like this.


Congratulations, you have successfully compiled your first program. (Well, hopefully :-| )

Your compiled files are in the folder:


Cont.. (Really) Beginners Microcontroller Guide (Part-II) Configuring Ponyprog properly and writing program to uC

A Voice Calling Bell

This one was a group project of mine. The goal was to make a bangla voice calling bell, i.e. when a switch is pressed, the calling bell would actually play back some pre recorded voice. The project was done about 3 months back. It was quite childish, but was assigned to us, we didn't quite choose it.



My group consisted of Sabih Omar (omar-sabih.blogspot.com), Mohammad Asif Zaman, and Atif Iqbal.

The concept of the project is quite simple. The Voice is first recorded into a PC. Then a matlab code is used to generate 8-bit PCM wave. This code is converted by MATLAB to some C-compatible code that can be readily pasted into the main coding part as a data array. When an interrupt occurs, the PCM is output via a port at a certain interval based on sampling rate (we did on 8kHz). This output is passed to an 8-bit DAC (Digital to Analogue Converter) and filtering and amplification is applied to the signal.

We didn't have to submit any formal reports in the project, just a CD containing videos. So I don't have it well documented.

• Sleep Mode in main routine to save power
• A pulled down switch as the bell’s push button used to drive interrupt and thus playback voice.
• Intelligently chosen response based on recurrent key presses.

If switch is pressed successively, the response changed automatically.

The responses were (remember this was a door-bell)
•অনুগ্রহ পূর্বক দরজা খুলুন (Please open the door)
•দয়া করে দরজাটা খুলুন (Kindly open the door)
•দোহাই আপনার দরজাটা খুলুন (I just beg you to open the door)
•আরে এতোবার টিপেন কেন? ভাগেন! (Why are you pressing so many times? Just get lost!)

This nice but utterly useless diagram was presented by me in my presentation:


Unfortunately, the project cannot be run by the Proteus VSM. The DAC there can synthesize a sine wave, but cannot synthesize human voice.

Another thing to note is that AVR microcontrollers keep variables in RAM and code in ROM like any Harvard Architecture device. The voice data are large (typically 8kb for 2 secs) so it is wise to keep them in Program memory.

Please remember to use the command pgm_read_byte to read from flash. We forgot this, and thought our microcontroller has gone crazy.

This is the report that we submitted to our teacher. Unfortunately it is not dubbed and is in Bengali Language.




Finally I have decided to host all project files in EDA Board and AVR Freaks, (unless they decide to unhost them.) Please download if you must, and donate me some points there if you like my projects or find them useful.

http://www.edaboard.com/viewtopic.php?p=1084268

http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=1630&item_type=project
This one was a group project of mine. The goal was to make a bangla voice calling bell, i.e. when a switch is pressed, the calling bell would actually play back some pre recorded voice. The project was done about 3 months back. It was quite childish, but was assigned to us, we didn't quite choose it.



My group consisted of Sabih Omar (omar-sabih.blogspot.com), Mohammad Asif Zaman, and Atif Iqbal.

The concept of the project is quite simple. The Voice is first recorded into a PC. Then a matlab code is used to generate 8-bit PCM wave. This code is converted by MATLAB to some C-compatible code that can be readily pasted into the main coding part as a data array. When an interrupt occurs, the PCM is output via a port at a certain interval based on sampling rate (we did on 8kHz). This output is passed to an 8-bit DAC (Digital to Analogue Converter) and filtering and amplification is applied to the signal.

We didn't have to submit any formal reports in the project, just a CD containing videos. So I don't have it well documented.

• Sleep Mode in main routine to save power
• A pulled down switch as the bell’s push button used to drive interrupt and thus playback voice.
• Intelligently chosen response based on recurrent key presses.

If switch is pressed successively, the response changed automatically.

The responses were (remember this was a door-bell)
•অনুগ্রহ পূর্বক দরজা খুলুন (Please open the door)
•দয়া করে দরজাটা খুলুন (Kindly open the door)
•দোহাই আপনার দরজাটা খুলুন (I just beg you to open the door)
•আরে এতোবার টিপেন কেন? ভাগেন! (Why are you pressing so many times? Just get lost!)

This nice but utterly useless diagram was presented by me in my presentation:


Unfortunately, the project cannot be run by the Proteus VSM. The DAC there can synthesize a sine wave, but cannot synthesize human voice.

Another thing to note is that AVR microcontrollers keep variables in RAM and code in ROM like any Harvard Architecture device. The voice data are large (typically 8kb for 2 secs) so it is wise to keep them in Program memory.

Please remember to use the command pgm_read_byte to read from flash. We forgot this, and thought our microcontroller has gone crazy.

This is the report that we submitted to our teacher. Unfortunately it is not dubbed and is in Bengali Language.



Finally I have decided to host all project files in EDA Board and AVR Freaks, (unless they decide to unhost them.) Please download if you must, and donate me some points there if you like my projects or find them useful.

http://www.edaboard.com/viewtopic.php?p=1084268

http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=1630&item_type=project

বাংলা যুক্তাক্ষর তালিকা: বিভিন্ন ফন্টে

বাংলা যুক্তাক্ষর বিভিন্ন ফন্টে কেমন দেখায় তা এই ফাইলে সহজে পাওয়া যাবে।

প্রিভিউ:


ডাউনলোডhttp://www.mediafire.com/?zmmwhb9wdjj

বাংলা যুক্তাক্ষর বিভিন্ন ফন্টে কেমন দেখায় তা এই ফাইলে সহজে পাওয়া যাবে।

প্রিভিউ:


ডাউনলোডhttp://www.mediafire.com/?zmmwhb9wdjj


উবুন্টু ৮.০৪ (Ubuntu 8.04) ইন্সটল করলাম

অবশেষে উবুন্টু ৮.০৪ (Ubuntu 8.04) এর সিডি টা যুক্তরাজ্য থেকে ডাক যোগে পৌছুল। ইন্সটল করলাম। এরপর শুরু হোল গ্রাফিক্স ড্রাইভারের পেছনে ছোটা। ATI থেকে (ati-driver-installer-8-6-x86.x86_64.run) ডাউনলোড করলাম। ইন্সটল করে যেইমাত্র রিস্টার্ট দিলাম, লগ-ইন করা মাত্র সাদা স্ক্রীন। একদম হোয়াইট প্লাস টুথপেস্টের মতোন। কিচ্ছু দেখা যায় না। মেজাজ খারাপ হোল। দুই তিন বার রিস্টার্ট দিলাম। কিচ্ছু হোল না। রিইন্সটল। দুইবার। এরপর ফোরাম ঘাটা শুরু। একটা ভালো জিনিস পেলাম যেটা আগে পেলে রিইন্সটল করতে হোত না। সাদা স্ক্রীনে Alt + F2 দিয়ে চোখ বন্ধ করে (আচ্ছা ঠিক আছে, চোখখোলা রেখে) টাইপ করলাম

metacity --replace

কুয়াশা সরে গেল। তারপর রিস্টার্ট করবার পর স্ক্রীন সাইজ ১২৮০×১০২৪ থেকে কমে ৬৪০×৪৮০ হয়ে গেল! আবার রিইন্সটল। আবার ফোরাম ঘাটো!

Alt+F2 >> gconf-editor

gconf-editor এ (উইন্ডোজ রেজিস্ট্রি এডিটর এর মতো) desktop>gnome>applications>window_manager

/usr/bin/compiz গুলোকে /usr/bin/metacity দিয়ে বদলালাম

এবার টার্মিনালে:
sudo apt-get update
sudo apt-get install build-essential fakeroot dh-make debhelper debconf libstdc++5 dkms linux-headers-$(uname -r)
sudo sh /media/DocumetsI/LinuxSoft/ati-driver-installer-8-6-x86.x86_64.run
sudo aticonfig --initial -f

রিস্টার্ট করবার পর ঠিক স্ক্রীন আসলো। এরপর Appearance এ visual settings এ সবচেয়ে ভালোটা দিলাম। থ্রি. ডি. ড্রাইভার চাইল। রিস্টার্ট করার পর সাদা স্ক্রীন!!!! এবার ATI এর ড্রাইভারটা আবার ইন্সটল করলাম। রিস্টার্ট করবারপর ঠিক রেজুলেশনে আসল। Full 3D Support!!! না আসা ঠিক করার ওষুধ হোল:
sudo /etc/init.d/gdm stop এক্স সার্ভার বন্ধ
sudo dpkg-reconfigure xserver-xorg
sudo /etc/init.d/gdm start এক্স সার্ভার আরম্ভ

এবার গাধার মতো Beryl খুঁজতে লাগলাম। আসলে উবুন্টুর নিজস্ব যে compiz তা Berylএর অনুরূপ। এটা আরো পরে বুঝলাম।

আমার মূখ্য উদ্দেশ্য ছিল ত্রিমাত্রিক ঘনকটা (3d desktop cube) ব্যবহার। ওমা! বকাসটা দেখি চ্যাপ্টা! ডেস্কটপের কলাম সংখ্যা ৪ এবং রো বা সারি সংখ্যা ১ না করলে ওটা ত্রিমাত্রিক হয় না। এরপর হলো সেটা ত্রিমাত্রিক।

অমি আজাদের ব্লগ থেকে শিখলাম কিভাবে ইউনিজয় কীবোর্ড ব্যবহার করা যায়। (রিস্টার্ট করতে হয়েছিল, উবুন্টু আবার উইন্ডোজের মতো বলে দেয় না যে রিস্টার্ট করুন)

কয়েকটা শর্টকাট:
Ctrl+Alt+F1 -----> Command Prompt (Like exit to MS Dos)
Ctrl+Alt+Backspace -----> Xserver Restart

এবার আমার প্রিয় ফন্টগুলো কপি করার পালা। কমান্ডটি হলো:
sudo cp -R /media// /usr/share/fonts/truetype/

হয়ে গেল। এবার অটোমেটিক আপডেট দিয়ে ঘুমুতে যান।

সতর্কীকরনঃ ভুলেও ব্রডব্যান্ড কানেকশন ছাড়া উবুন্টু তে যাবেন না। প্রায় প্রতিটি সফটওয়্যার ইন্সটল করতে, এমনকি mp3, mp4, wma, avi ফাইল পড়তেও dependency ডাউনলোড করতে হয়। আমার প্রয় 150 Mega লেগেছে। আর একবার রিইন্সটল মানে . . . (বুঝতেই পারছেন)

aptoncd প্লাগইন দিয়ে ডিপেনডেন্সি গুলো CD তে রেখে দেওয়া যায়। এখন ব্যবহার করি নাই।

সবশেষে compiz tips:
System>Preference>Advanced Display Options (এধরনের কিছু একটা) নিয়ে সেটিংস পরিবর্তন করা যায়। এখানে অবশ্যই Rotate Cube প্লাগইনটা চালু করতে হবে।

Win Key কে লিনাক্সে super key বলে। আমার প্রিয় গুলো দিলাম

+ + left/right ঘনকটি ডানে বামে ঘোরানো
+ + down ঘনকটি থেকে দূরে যাওয়া
+ + drag ঘনকটি ঘুরানো
+

left click আগুন ছেটানো
c আগুন বন্ধ

http://wiki.compiz-fusion.org/CommonKeyboardShortcuts এ আরো আছে এসব।

পকিউবের প্রত্যেক পাশে আলাদা wallpaper নিতে এটা পেলাম
অবশেষে উবুন্টু ৮.০৪ (Ubuntu 8.04) এর সিডি টা যুক্তরাজ্য থেকে ডাক যোগে পৌছুল। ইন্সটল করলাম। এরপর শুরু হোল গ্রাফিক্স ড্রাইভারের পেছনে ছোটা। ATI থেকে (ati-driver-installer-8-6-x86.x86_64.run) ডাউনলোড করলাম। ইন্সটল করে যেইমাত্র রিস্টার্ট দিলাম, লগ-ইন করা মাত্র সাদা স্ক্রীন। একদম হোয়াইট প্লাস টুথপেস্টের মতোন। কিচ্ছু দেখা যায় না। মেজাজ খারাপ হোল। দুই তিন বার রিস্টার্ট দিলাম। কিচ্ছু হোল না। রিইন্সটল। দুইবার। এরপর ফোরাম ঘাটা শুরু। একটা ভালো জিনিস পেলাম যেটা আগে পেলে রিইন্সটল করতে হোত না। সাদা স্ক্রীনে Alt + F2 দিয়ে চোখ বন্ধ করে (আচ্ছা ঠিক আছে, চোখখোলা রেখে) টাইপ করলাম

metacity --replace

কুয়াশা সরে গেল। তারপর রিস্টার্ট করবার পর স্ক্রীন সাইজ ১২৮০×১০২৪ থেকে কমে ৬৪০×৪৮০ হয়ে গেল! আবার রিইন্সটল। আবার ফোরাম ঘাটো!

Alt+F2 >> gconf-editor

gconf-editor এ (উইন্ডোজ রেজিস্ট্রি এডিটর এর মতো) desktop>gnome>applications>window_manager

/usr/bin/compiz গুলোকে /usr/bin/metacity দিয়ে বদলালাম

এবার টার্মিনালে:
sudo apt-get update
sudo apt-get install build-essential fakeroot dh-make debhelper debconf libstdc++5 dkms linux-headers-$(uname -r)
sudo sh /media/DocumetsI/LinuxSoft/ati-driver-installer-8-6-x86.x86_64.run
sudo aticonfig --initial -f

রিস্টার্ট করবার পর ঠিক স্ক্রীন আসলো। এরপর Appearance এ visual settings এ সবচেয়ে ভালোটা দিলাম। থ্রি. ডি. ড্রাইভার চাইল। রিস্টার্ট করার পর সাদা স্ক্রীন!!!! এবার ATI এর ড্রাইভারটা আবার ইন্সটল করলাম। রিস্টার্ট করবারপর ঠিক রেজুলেশনে আসল। Full 3D Support!!! না আসা ঠিক করার ওষুধ হোল:
sudo /etc/init.d/gdm stop এক্স সার্ভার বন্ধ
sudo dpkg-reconfigure xserver-xorg
sudo /etc/init.d/gdm start এক্স সার্ভার আরম্ভ

এবার গাধার মতো Beryl খুঁজতে লাগলাম। আসলে উবুন্টুর নিজস্ব যে compiz তা Berylএর অনুরূপ। এটা আরো পরে বুঝলাম।

আমার মূখ্য উদ্দেশ্য ছিল ত্রিমাত্রিক ঘনকটা (3d desktop cube) ব্যবহার। ওমা! বকাসটা দেখি চ্যাপ্টা! ডেস্কটপের কলাম সংখ্যা ৪ এবং রো বা সারি সংখ্যা ১ না করলে ওটা ত্রিমাত্রিক হয় না। এরপর হলো সেটা ত্রিমাত্রিক।

অমি আজাদের ব্লগ থেকে শিখলাম কিভাবে ইউনিজয় কীবোর্ড ব্যবহার করা যায়। (রিস্টার্ট করতে হয়েছিল, উবুন্টু আবার উইন্ডোজের মতো বলে দেয় না যে রিস্টার্ট করুন)

কয়েকটা শর্টকাট:
Ctrl+Alt+F1 -----> Command Prompt (Like exit to MS Dos)
Ctrl+Alt+Backspace -----> Xserver Restart

এবার আমার প্রিয় ফন্টগুলো কপি করার পালা। কমান্ডটি হলো:
sudo cp -R /media// /usr/share/fonts/truetype/

হয়ে গেল। এবার অটোমেটিক আপডেট দিয়ে ঘুমুতে যান।

সতর্কীকরনঃ ভুলেও ব্রডব্যান্ড কানেকশন ছাড়া উবুন্টু তে যাবেন না। প্রায় প্রতিটি সফটওয়্যার ইন্সটল করতে, এমনকি mp3, mp4, wma, avi ফাইল পড়তেও dependency ডাউনলোড করতে হয়। আমার প্রয় 150 Mega লেগেছে। আর একবার রিইন্সটল মানে . . . (বুঝতেই পারছেন)

aptoncd প্লাগইন দিয়ে ডিপেনডেন্সি গুলো CD তে রেখে দেওয়া যায়। এখন ব্যবহার করি নাই।

সবশেষে compiz tips:
System>Preference>Advanced Display Options (এধরনের কিছু একটা) নিয়ে সেটিংস পরিবর্তন করা যায়। এখানে অবশ্যই Rotate Cube প্লাগইনটা চালু করতে হবে।

Win Key কে লিনাক্সে super key বলে। আমার প্রিয় গুলো দিলাম

+ + left/right ঘনকটি ডানে বামে ঘোরানো
+ + down ঘনকটি থেকে দূরে যাওয়া
+ + drag ঘনকটি ঘুরানো
+

left click আগুন ছেটানো
c আগুন বন্ধ

http://wiki.compiz-fusion.org/CommonKeyboardShortcuts এ আরো আছে এসব।

পকিউবের প্রত্যেক পাশে আলাদা wallpaper নিতে এটা পেলাম

একুশ ও আমাদের চেতনা

স্যার ‘একুশে ফেব্রুয়ারি’ নিয়ে একটি প্রবন্ধ রচনা করতে দিয়েছেন। নোট বই নিয়ে হিমশিম খাচ্ছি। এদিকে আবার কারেন্ট নেই। মোমবাতির টিমটিমে আলোয় কাজ চালাচ্ছি। হঠাত্‌ বাজখাঁই গলার কার যেন কণ্ঠস্বর শুনতে পেলাম, “ওটা কি লিখছ?” অতি সাধারণ প্রশ্ন। তাছাড়া আমি বেআইনী কিছু করছিলাম না। কিন্তু বাড়িতে কেউ ছিল না - মা বাবা বাইরে দাওয়াত খেতে গিয়েছিলেন। অন্ধকার আর আলো-ছায়ার প্রভাব আর সেসাথে নিস্তব্ধতা আমাকে এমন আচ্ছন্ন করে ফেলেছিল যে ঘটনার আকস্মিকতায় চমকে ওঠায় হাতের ধাক্কা লেগে মোমবাতিটাও নিভে গেল।



“ওটা কি লিখছিলে?” - কণ্ঠস্বর আবার শোনা গেল।



“ভা-ভা-ভাষা আন্দোলন” (ভয়ে আমার জিহ্বা আড়ষ্ঠ হয়ে গিয়েছিল)। “কিন্তু আপনি কে?”



“আমি?” হাসির শব্দ শোনা গেল। “ভাষা শহীদদের প্রতিনিধিত্বকারী কণ্ঠস্বর বলতে পার। নাম বললে হয়তো চিনতে পারতে, কিন্তু ওটা থাক।”



“আপনি হাসছেন কেন?” সভয়ে প্রশ্ন করলাম।



“বা:! হাসব না? হাসির কাজ করলে হাসব না? ”



“ভাষা আন্দোলনের রচনা লেখাটা কি হাসির কাজ?”



কণ্ঠস্বর প্রশ্নের জবাব না দিয়ে পাল্টা প্রশ্ন করলেন, “তোমার বই এর তাকের উপর কি বলতে পারো?”



আলো না থাকলেও উত্তরটা আমার জানা ছিল। ওখানে আমার বহুমূল্যবান হিন্দি ও ইংরেজি গানের ক্যাসেটের কালেকশন। প্রশ্নকর্তা জবাবের অপেক্ষা না করেই বললেন, “তোমার প্রিয় গান, সিনেমা সবই হিন্দি ও ইংরেজি তাই না? যে দেশী ভাষা, সংস্কৃতিকে ভালবাসে না, সে একুশের রচনা লিখবে ব্যাপারটা হাস্যকর বৈকি।”



এবার বক্তব্যের শ্লেষটা ধরতে পারলাম। প্রতিবাদে বললাম, “সব সময় যে হিন্দি-ইংরেজি নিয়ে পড়ে থাকি তা তো নয়? তাছাড়া সামনে একুশে ফেব্রুয়ারি আসছে, খালি পায়ে শহীদ মিনারে গিয়ে আমরা আপনাদের শ্রদ্ধা নিবেদনে ফুল দেব . . .।”



আমার বক্তব্য শেষ হতে না হতেই শুনতে পেলাম, “সে তো খুব ভালো কথা, ফুল দেবে। কিন্তু সে বছরের একদিন। বছরের অন্যদিন গুলোতে সেই খালি পায়ের শোক ঢাকতে হিন্দি-ইংরেজির বুট পড়ে লাথি মারবে। তোমরা বছরের একদিন বাঙ্গালী থাক, অবশিষ্ঠ দিন গুলোতে বাঙ্গালীও থাক না, ইংরেজও থাক না। শহীদ মিনারের ফুল যদি শ্রদ্ধা ভক্তির নিদর্শন হয় তবে Full Volume এ ছাড়া ইংরেজি-হিন্দি গান গুলো কিসের নিদর্শন?”



“তোমরা একুশের চেতনায় ঋদ্ধ হতে পার নি। একুশ একটা বিরাট ব্যাপার‌। বাঙ্গালি, বাংলাদেশীর রক্তের দামে কেনা এক গৌরবের অলঙ্কার এই একুশ, যা আমাদের মাতৃভাষায় কখা বলার সুযোগ দিয়েছে। পরাধীন যে দেশে শোষকের বিরুদ্ধে এইভাষার দাবীকে সুপ্রতিষ্ঠিত করতে আমরা বুলেটের সামনে বুক পেতে দিয়েছিলাম, আজ স্বাধীন দেশে তোমরা সে অধিকারকে সুলভে পেয়েও তার সদ্ব্যাবহার করছ না। লজ্জার কথা। একুশের চেতনাকে বুকে ধারণ করতে পার না বলেই তোমার এই একুশ নিয়ে লিখতে নোটবই ঘাটতে হয়। তোমার আদর্শ ঘাটতি তুমি নোট বই দিয়ে ঘোচাতে চাও, তাই না? তুমি যদি একুশের চেতনা বুঝতে, তবে বুঝতে পারতে আমাদের আপন ভাষা মাতৃভাষা বাংলাও এক রত্নভাণ্ডার। আমি ভিনজাতীয় ভাষাকে বর্জন করতে বলছি না, কিন্তু মাতৃভাষা ফেলে যো তাদের একেবারে পূজো করতে হবে এটাও তো ঠিক না। ধিক্ তোমাদের! (এক্ষেত্রে গলা আদ্র হয়ে আসে) যারা বাংলাকে ফেলে ভিনদেশীয় গানের তালে উণ্মত্ত হয়, ধিক্ তাদের! যাদের হৃদয়কে মাতৃভাষার আর্তি এতটুকুও ভেজাতে পারে না, ধিক্ ধিক্ ধিক্...!!”



হঠাত্ প্রচণ্ড শব্দে কলিংবেল বাজাতে চমকে উঠলাম। অন্ধকারে রচনা লিখতে লিখতে ঘুমিয়ে পড়েছিলাম, কখন কারেন্ট এসেছে, টেরও পাইনি। মা-বাবা এসে পড়েছে। রাতে ঘুমাতে যাবার সময় স্বপ্নটার কথা আরেকবার মনে পড়ল। এই ধিক্কার, এই লজ্জা কার? এ লজ্জা আমার, এ লজ্জা আমাদের।



(এই ঘটনাটি সম্পূর্ণ কাল্পণিক এবং এর সাথে আমার কোন ব্যক্তিগত অভিজ্ঞতার সম্পর্ক নেই। তবে গল্পটিতে ইংরেজি-হিন্দির চাপে বাংলা ভাষার বর্তমান দুর্দশার চিত্র ফুটিয়ে তোলার চেষ্টা করা হয়েছে। গল্পটি নটরডেম কলেজের প্রকাশনা ঢাকঢোল / Chit Chat এর জানুয়ারী/ফেব্রুয়ারি ২০০০

স্যার ‘একুশে ফেব্রুয়ারি’ নিয়ে একটি প্রবন্ধ রচনা করতে দিয়েছেন। নোট বই নিয়ে হিমশিম খাচ্ছি। এদিকে আবার কারেন্ট নেই। মোমবাতির টিমটিমে আলোয় কাজ চালাচ্ছি। হঠাত্‌ বাজখাঁই গলার কার যেন কণ্ঠস্বর শুনতে পেলাম, “ওটা কি লিখছ?” অতি সাধারণ প্রশ্ন। তাছাড়া আমি বেআইনী কিছু করছিলাম না। কিন্তু বাড়িতে কেউ ছিল না - মা বাবা বাইরে দাওয়াত খেতে গিয়েছিলেন। অন্ধকার আর আলো-ছায়ার প্রভাব আর সেসাথে নিস্তব্ধতা আমাকে এমন আচ্ছন্ন করে ফেলেছিল যে ঘটনার আকস্মিকতায় চমকে ওঠায় হাতের ধাক্কা লেগে মোমবাতিটাও নিভে গেল।



“ওটা কি লিখছিলে?” - কণ্ঠস্বর আবার শোনা গেল।



“ভা-ভা-ভাষা আন্দোলন” (ভয়ে আমার জিহ্বা আড়ষ্ঠ হয়ে গিয়েছিল)। “কিন্তু আপনি কে?”



“আমি?” হাসির শব্দ শোনা গেল। “ভাষা শহীদদের প্রতিনিধিত্বকারী কণ্ঠস্বর বলতে পার। নাম বললে হয়তো চিনতে পারতে, কিন্তু ওটা থাক।”



“আপনি হাসছেন কেন?” সভয়ে প্রশ্ন করলাম।



“বা:! হাসব না? হাসির কাজ করলে হাসব না? ”



“ভাষা আন্দোলনের রচনা লেখাটা কি হাসির কাজ?”



কণ্ঠস্বর প্রশ্নের জবাব না দিয়ে পাল্টা প্রশ্ন করলেন, “তোমার বই এর তাকের উপর কি বলতে পারো?”



আলো না থাকলেও উত্তরটা আমার জানা ছিল। ওখানে আমার বহুমূল্যবান হিন্দি ও ইংরেজি গানের ক্যাসেটের কালেকশন। প্রশ্নকর্তা জবাবের অপেক্ষা না করেই বললেন, “তোমার প্রিয় গান, সিনেমা সবই হিন্দি ও ইংরেজি তাই না? যে দেশী ভাষা, সংস্কৃতিকে ভালবাসে না, সে একুশের রচনা লিখবে ব্যাপারটা হাস্যকর বৈকি।”



এবার বক্তব্যের শ্লেষটা ধরতে পারলাম। প্রতিবাদে বললাম, “সব সময় যে হিন্দি-ইংরেজি নিয়ে পড়ে থাকি তা তো নয়? তাছাড়া সামনে একুশে ফেব্রুয়ারি আসছে, খালি পায়ে শহীদ মিনারে গিয়ে আমরা আপনাদের শ্রদ্ধা নিবেদনে ফুল দেব . . .।”



আমার বক্তব্য শেষ হতে না হতেই শুনতে পেলাম, “সে তো খুব ভালো কথা, ফুল দেবে। কিন্তু সে বছরের একদিন। বছরের অন্যদিন গুলোতে সেই খালি পায়ের শোক ঢাকতে হিন্দি-ইংরেজির বুট পড়ে লাথি মারবে। তোমরা বছরের একদিন বাঙ্গালী থাক, অবশিষ্ঠ দিন গুলোতে বাঙ্গালীও থাক না, ইংরেজও থাক না। শহীদ মিনারের ফুল যদি শ্রদ্ধা ভক্তির নিদর্শন হয় তবে Full Volume এ ছাড়া ইংরেজি-হিন্দি গান গুলো কিসের নিদর্শন?”



“তোমরা একুশের চেতনায় ঋদ্ধ হতে পার নি। একুশ একটা বিরাট ব্যাপার‌। বাঙ্গালি, বাংলাদেশীর রক্তের দামে কেনা এক গৌরবের অলঙ্কার এই একুশ, যা আমাদের মাতৃভাষায় কখা বলার সুযোগ দিয়েছে। পরাধীন যে দেশে শোষকের বিরুদ্ধে এইভাষার দাবীকে সুপ্রতিষ্ঠিত করতে আমরা বুলেটের সামনে বুক পেতে দিয়েছিলাম, আজ স্বাধীন দেশে তোমরা সে অধিকারকে সুলভে পেয়েও তার সদ্ব্যাবহার করছ না। লজ্জার কথা। একুশের চেতনাকে বুকে ধারণ করতে পার না বলেই তোমার এই একুশ নিয়ে লিখতে নোটবই ঘাটতে হয়। তোমার আদর্শ ঘাটতি তুমি নোট বই দিয়ে ঘোচাতে চাও, তাই না? তুমি যদি একুশের চেতনা বুঝতে, তবে বুঝতে পারতে আমাদের আপন ভাষা মাতৃভাষা বাংলাও এক রত্নভাণ্ডার। আমি ভিনজাতীয় ভাষাকে বর্জন করতে বলছি না, কিন্তু মাতৃভাষা ফেলে যো তাদের একেবারে পূজো করতে হবে এটাও তো ঠিক না। ধিক্ তোমাদের! (এক্ষেত্রে গলা আদ্র হয়ে আসে) যারা বাংলাকে ফেলে ভিনদেশীয় গানের তালে উণ্মত্ত হয়, ধিক্ তাদের! যাদের হৃদয়কে মাতৃভাষার আর্তি এতটুকুও ভেজাতে পারে না, ধিক্ ধিক্ ধিক্...!!”



হঠাত্ প্রচণ্ড শব্দে কলিংবেল বাজাতে চমকে উঠলাম। অন্ধকারে রচনা লিখতে লিখতে ঘুমিয়ে পড়েছিলাম, কখন কারেন্ট এসেছে, টেরও পাইনি। মা-বাবা এসে পড়েছে। রাতে ঘুমাতে যাবার সময় স্বপ্নটার কথা আরেকবার মনে পড়ল। এই ধিক্কার, এই লজ্জা কার? এ লজ্জা আমার, এ লজ্জা আমাদের।



(এই ঘটনাটি সম্পূর্ণ কাল্পণিক এবং এর সাথে আমার কোন ব্যক্তিগত অভিজ্ঞতার সম্পর্ক নেই। তবে গল্পটিতে ইংরেজি-হিন্দির চাপে বাংলা ভাষার বর্তমান দুর্দশার চিত্র ফুটিয়ে তোলার চেষ্টা করা হয়েছে। গল্পটি নটরডেম কলেজের প্রকাশনা ঢাকঢোল / Chit Chat এর জানুয়ারী/ফেব্রুয়ারি ২০০০

The IEEE Region 10 Student Congress 2008



THE Institute of Electrical and Electronic Engineers (IEEE) is the formal association of all Electrical, Electronic Engineers around the world. It is the largest professional organization of the world comprising of 370,000 members and 80,000 student member. The IEEE is divided into 10 regions around the world. The region 10 consists of all the countries of Asia Pacific. The region 10 holds a regional student congress in every two years. This year, the congress was held in Chennai, India. As the Chair of IEEE BUET Student Branch, I had the opportunity to attend the congress.


According to the IEEE Bangladesh Section, six of us were selected to attend the Region 10 Student Gold and WIE (Women in Engineering) Congress. They were Imtiaz Bhai, Lecturer of Department of EEE, BUET as the Chair of IEEE Gold Affinity Group of Bangladesh, Jahangir Sir, Assistant Professor of Ahsanullah UST and Student Activity Chair of IEEE Bangladesh Section, Jahangir Sir's wife and the WIE Chair Ismat Zerin , Lecturer of Daffodil University, the Vice Chair of BUET Student Branch Anika, the Chair of AUST Student Branch Rizvi Bhai, and I.

The congress unofficially began on 27th January, as most of the student delegates as well as the respected senior delegates had already arrived. Besides Bangladesh and the host country India, student delegates from Japan, Korea, China, Pakistan, Thailand, Macau, Malaysia, as well as from Australia and New Zealand came to the congress.

The theme of this R10 Student Congress was “IEEE for Youth Leveraging Social Networking for Professional Development”. It was an accurate commemoration of mankind's technical achievements and of IEEE's diverse network of young people. The congress had a common day, 28th January, with the GOLD/WIE congress being held during the same time.

28th January, we went to the Auditorium and registered for the even officially The day's program continued with a leadership presentation, and speeches by the President of IEEE, President Elect 2008 of IEEE John Vig, The Director of R10 Janina and Prof. Mini S. Thomas of IEEE Delhi Section.


In the Afternoon there was an Indian Cultural Program performed exclusively by the IEEE Student volunteers of Madras section with a variety of cultural items & folk dances, was greatly appreciated by all dignitaries and delegates.

The cultural activity was followed by the Student activities award ceremony which conferred awards to the winners of the various contests and new initiatives of the R10 SAC. Prof. Mini S. Thomas particularly mentioned about the BUET Student Branch which received the IEEE Enterprise Award 2006 competing with universities from all over the world.

On 29th January, we all gathered inside the auditorium with excitement and enthusiasm to enjoy the next day. The morning session started with a presentation by Cognizant Technologies, the principal sponsor for the student congress. The presentation was not one of the best events of the student congress, and many of us were nearly asleep when it ended. Then Prijoe Philips, the GOLD mentor for SAC of Region 10 got on to the stage.

The team building activities tested the creativity of the entire team and our ability to excel as a unit. It was amazing to see the way teams gave shape to their ideas. Each team were given 10 pieces of news papers, and asked to build a 'Taj Mahal' with them in 15 minutes. We divided the work in 10 segments and then built the segments and reunited them. Surprisingly each and every team could complete their Taj Mahals.

In the mean time, for the vibrant student branches of R10 Exhibition, the stalls of various student branches, about 19 in all, were set up for exhibition and evaluations. For our branch, I printed and laminated some pictures. Other branches made posters, banners, list of activities, and distributed annual magazines and pamphlets. The enthusiastically put up stalls proved to be tough to judge the winner, and it was only after a lot of discussion that the judges (Lewis Terman, President IEEE, John Vig, President Elect IEEE, and Roberto Marca, R9 Director) could decide the best four student-branches, BUET Bangladesh, NIT, Warangal, RASET, Kerala, and IGIT, Delhi.


In the group discussion session each of the groups was given a question to be discussed for 15 minutes. After that one of the team members had to go to the stage to highlight the main points. The suggestions were well appreciated by the dignitaries, Lew, John and Roberto.

After the exhibition and the group discussion it was time for the Multi Cultural show by the student delegates. There were lively songs and Kungfu from China, the Haka dance from New Zealand and the Kerala section presenting their entire culture in short pieces of dances and songs. Everyone just couldn't get enough of it! Unfortunately in an earlier incident Anika sprained her ankle, and we could not perform on stage.

The last day of the IEEE R10 Congress 2008 was packed with enriching presentations and nostalgic memories. The certificates were distributed among the delegates. The closing ceremony was followed by exchange of gifts amongst delegates as a token of remembrance and affection. The student congress gave the delegates a wonderful opportunity to interact with peers from all over Asia-Pacific.

Following the closing ceremony, a tour to Mahabalipuram a world heritage sight, built in the seventh century by the Kings of the Pallava dynasty was organized for the participants. The Mahabalipuram monuments are rock-cut and monolithic, constituted by cave temples, rathas (chariots), sculpted reliefs and structural temples with beautiful beaches, which caught all of us spell bound.

After the congress, we had to take the same tiring 28 hours journey to Kolkata, stayed overnight there, and took the bus from Salt Lake, Kolkata to Dhaka. The bus journey took 16 hours, with a 2 hours stand still at Aricha Ferry Ghat. The worst part was, I had to attend class from 8:00 AM the next day.

The congress is over now. But I actually made a lot of new friends there, now we keep in contact through facebook and email. There is George from New Zealand, Dipankar and Ankita from Delhi, Zeeshan from Bangalore and many many more. I wish we could organize such an international student congress in Bangladesh so that we could also share the technical as well as the non technical knowledge from engineering students of different countries of the world.


published in the Star Campus:
http://www.thedailystar.net/campus/2008/04/03/feature_IEEE.htm
Chair, IEEE BUET Student Branch
& UG Student, Department of EEE, BUET

THE Institute of Electrical and Electronic Engineers (IEEE) is the formal association of all Electrical, Electronic Engineers around the world. It is the largest professional organization of the world comprising of 370,000 members and 80,000 student member. The IEEE is divided into 10 regions around the world. The region 10 consists of all the countries of Asia Pacific. The region 10 holds a regional student congress in every two years. This year, the congress was held in Chennai, India. As the Chair of IEEE BUET Student Branch, I had the opportunity to attend the congress.


According to the IEEE Bangladesh Section, six of us were selected to attend the Region 10 Student Gold and WIE (Women in Engineering) Congress. They were Imtiaz Bhai, Lecturer of Department of EEE, BUET as the Chair of IEEE Gold Affinity Group of Bangladesh, Jahangir Sir, Assistant Professor of Ahsanullah UST and Student Activity Chair of IEEE Bangladesh Section, Jahangir Sir's wife and the WIE Chair Ismat Zerin , Lecturer of Daffodil University, the Vice Chair of BUET Student Branch Anika, the Chair of AUST Student Branch Rizvi Bhai, and I.

The congress unofficially began on 27th January, as most of the student delegates as well as the respected senior delegates had already arrived. Besides Bangladesh and the host country India, student delegates from Japan, Korea, China, Pakistan, Thailand, Macau, Malaysia, as well as from Australia and New Zealand came to the congress.

The theme of this R10 Student Congress was “IEEE for Youth Leveraging Social Networking for Professional Development”. It was an accurate commemoration of mankind's technical achievements and of IEEE's diverse network of young people. The congress had a common day, 28th January, with the GOLD/WIE congress being held during the same time.

28th January, we went to the Auditorium and registered for the even officially The day's program continued with a leadership presentation, and speeches by the President of IEEE, President Elect 2008 of IEEE John Vig, The Director of R10 Janina and Prof. Mini S. Thomas of IEEE Delhi Section.


In the Afternoon there was an Indian Cultural Program performed exclusively by the IEEE Student volunteers of Madras section with a variety of cultural items & folk dances, was greatly appreciated by all dignitaries and delegates.

The cultural activity was followed by the Student activities award ceremony which conferred awards to the winners of the various contests and new initiatives of the R10 SAC. Prof. Mini S. Thomas particularly mentioned about the BUET Student Branch which received the IEEE Enterprise Award 2006 competing with universities from all over the world.

On 29th January, we all gathered inside the auditorium with excitement and enthusiasm to enjoy the next day. The morning session started with a presentation by Cognizant Technologies, the principal sponsor for the student congress. The presentation was not one of the best events of the student congress, and many of us were nearly asleep when it ended. Then Prijoe Philips, the GOLD mentor for SAC of Region 10 got on to the stage.

The team building activities tested the creativity of the entire team and our ability to excel as a unit. It was amazing to see the way teams gave shape to their ideas. Each team were given 10 pieces of news papers, and asked to build a 'Taj Mahal' with them in 15 minutes. We divided the work in 10 segments and then built the segments and reunited them. Surprisingly each and every team could complete their Taj Mahals.

In the mean time, for the vibrant student branches of R10 Exhibition, the stalls of various student branches, about 19 in all, were set up for exhibition and evaluations. For our branch, I printed and laminated some pictures. Other branches made posters, banners, list of activities, and distributed annual magazines and pamphlets. The enthusiastically put up stalls proved to be tough to judge the winner, and it was only after a lot of discussion that the judges (Lewis Terman, President IEEE, John Vig, President Elect IEEE, and Roberto Marca, R9 Director) could decide the best four student-branches, BUET Bangladesh, NIT, Warangal, RASET, Kerala, and IGIT, Delhi.


In the group discussion session each of the groups was given a question to be discussed for 15 minutes. After that one of the team members had to go to the stage to highlight the main points. The suggestions were well appreciated by the dignitaries, Lew, John and Roberto.

After the exhibition and the group discussion it was time for the Multi Cultural show by the student delegates. There were lively songs and Kungfu from China, the Haka dance from New Zealand and the Kerala section presenting their entire culture in short pieces of dances and songs. Everyone just couldn't get enough of it! Unfortunately in an earlier incident Anika sprained her ankle, and we could not perform on stage.

The last day of the IEEE R10 Congress 2008 was packed with enriching presentations and nostalgic memories. The certificates were distributed among the delegates. The closing ceremony was followed by exchange of gifts amongst delegates as a token of remembrance and affection. The student congress gave the delegates a wonderful opportunity to interact with peers from all over Asia-Pacific.

Following the closing ceremony, a tour to Mahabalipuram a world heritage sight, built in the seventh century by the Kings of the Pallava dynasty was organized for the participants. The Mahabalipuram monuments are rock-cut and monolithic, constituted by cave temples, rathas (chariots), sculpted reliefs and structural temples with beautiful beaches, which caught all of us spell bound.

After the congress, we had to take the same tiring 28 hours journey to Kolkata, stayed overnight there, and took the bus from Salt Lake, Kolkata to Dhaka. The bus journey took 16 hours, with a 2 hours stand still at Aricha Ferry Ghat. The worst part was, I had to attend class from 8:00 AM the next day.

The congress is over now. But I actually made a lot of new friends there, now we keep in contact through facebook and email. There is George from New Zealand, Dipankar and Ankita from Delhi, Zeeshan from Bangalore and many many more. I wish we could organize such an international student congress in Bangladesh so that we could also share the technical as well as the non technical knowledge from engineering students of different countries of the world.

published in the Star Campus:
http://www.thedailystar.net/campus/2008/04/03/feature_IEEE.htm

Chair, IEEE BUET Student Branch
& UG Student, Department of EEE, BUET



A PC to uC IR Messaging system

Here is a term project I did last month. The objective is simple. To transmit a IR message from PC to a receiver module few feet apart and show it on LCD. I created my own protocol for it, while another group used the RS232 protocol, just replacing the copper wire with IR beams.

The project mainly focuses on the development and implementation of a serial communication protocol. There are two parts for this purpose: the Software at the PC, and the firmware of the microcontroller, along with the circuitry. A text is entered at the PC end and a 32 character substring of the text is sent via infrared link to the microcontroller. The modulation technique employed is Pulse Duration Modulation for the data, and the character transmission rate for worst case is 18.18 / sec. The firmware supports to checking device ID. Each character sent must have the same device ID with the microcontroller in order to display it in the LCD.

Components Used:
Atmega32 Microcontroller 4MHz Crystal Shielded IR Receiver (3 pin)IRF840 MOSFET LCD Module (HD17238 Controller) 4081 And Gate 7805 Voltage RegulatorBC547 Transistor (2) 555 timer IC Resistors 10K, 1K, 100R Capacitors 0.01u, 4700uF, 4.7uFBreadboard & Breadboard wire


The text is first converted to a binary data stream. Each character is represented by 17 bits. Each Data frame sends the character, device ID and location of the character:




















































Device ID


ASCII Value of Character


Location of Char.


Parity


1


0


1


1


0


0


1


1


0


1


0


0


0


0


0


1


1





















If the 1, 0 binary data were transmitted directly, it would be difficult to guess where the data stream is started. That is why the binary data were converted into a pulse duration modulated wave.


This data was output from the PC Parallel port. This signal was modulated at 38 kHz using On-Off-Keying (OOK). The IR receiver demodulates 38 kHz



Here a pulse duration modulation is used: A 4 sec high pulse means transmission start. A 2 ms high pulse means 1 A 1 ms high pulse means 0 A 4ms high pulse means the data-frame is starting to transmit The protocol is made from the scratch without any help from built in USART receivers of the microcontrollers. The protocol was implemented using the input capture feature of the microcontroller. A timer inside the microcontroller was configured to count up at 0.5MHz speed once in every 8 clock pulses.


Algorithm

Trigger in each transition of the IR receiver output.

1. Check: Is it rising or falling edge?

a. Falling Edge: Set Couter = 0

b. Rising Edge: pulseduration = counter_value

Is pulseduration = 4ms at 25% tolerance?

Yes: Was transmission going on (set transmissionstart = =true)?

Yes: Discard current packet and set transmissionstart = false

No: set transmissionstart = true; nbit = 0

Was transmission going on (set transmissionstart = =true)?

is pulseduration = 2ms at 25% tolerance?

Yes: nbit th bit is 1,

is pulseduration = 1ms at 25% tolerance?

Yes: nbit th bit is 0,

If none of the above pulsewidth conditions met then discard current packet

Increment nbit

is nbit is equals to 17?

Yes: form deviceID with first 3 bits

Is deviceID equals to programmed deviceID?


No: Discard data pa
cket and exit
Form character with next 8 bits, and locationint with next 5 bits

Calculate parity with XORing the 16 bits

Does Calculated parity match received parity?

No: Discard data packet and exit

Yes: Update the value of text string’s locationintth

Location with the received character.


Circuit Diagram:

Transmitter:


Receiver:


Limitation
1.The PC side software was written with Visual Studio 2008. But the PC used did not meet the minimum requirements to run the software. As a result the PC side software was very slow, and thus the data transfer rate needed to be slowed down.
2. The PC software sends 32 characters regardless of the number of characters in the input stream. The remaining characters are filled up with white space characters. This might be overcome by keeping a command for clearing screen in the firmware of the microcontroller.
3. The PC software was configured to send 32 characters only. It could not send more than that at a time.
P
ictures:






Full Files:

http://www.edaboard.com/viewtopic.php?p=1084270

http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=1630&item_type=project
Here is a term project I did last month. The objective is simple. To transmit a IR message from PC to a receiver module few feet apart and show it on LCD. I created my own protocol for it, while another group used the RS232 protocol, just replacing the copper wire with IR beams.

The project mainly focuses on the development and implementation of a serial communication protocol. There are two parts for this purpose: the Software at the PC, and the firmware of the microcontroller, along with the circuitry. A text is entered at the PC end and a 32 character substring of the text is sent via infrared link to the microcontroller. The modulation technique employed is Pulse Duration Modulation for the data, and the character transmission rate for worst case is 18.18 / sec. The firmware supports to checking device ID. Each character sent must have the same device ID with the microcontroller in order to display it in the LCD.

Components Used:
Atmega32 Microcontroller 4MHz Crystal Shielded IR Receiver (3 pin)IRF840 MOSFET LCD Module (HD17238 Controller) 4081 And Gate 7805 Voltage RegulatorBC547 Transistor (2) 555 timer IC Resistors 10K, 1K, 100R Capacitors 0.01u, 4700uF, 4.7uFBreadboard & Breadboard wire



The text is first converted to a binary data stream. Each character is represented by 17 bits. Each Data frame sends the character, device ID and location of the character:




















































Device ID


ASCII Value of Character


Location of Char.


Parity


1


0


1


1


0


0


1


1


0


1


0


0


0


0


0


1


1




















If the 1, 0 binary data were transmitted directly, it would be difficult to guess where the data stream is started. That is why the binary data were converted into a pulse duration modulated wave.

This data was output from the PC Parallel port. This signal was modulated at 38 kHz using On-Off-Keying (OOK). The IR receiver demodulates 38 kHz



Here a pulse duration modulation is used: A 4 sec high pulse means transmission start. A 2 ms high pulse means 1 A 1 ms high pulse means 0 A 4ms high pulse means the data-frame is starting to transmit The protocol is made from the scratch without any help from built in USART receivers of the microcontrollers. The protocol was implemented using the input capture feature of the microcontroller. A timer inside the microcontroller was configured to count up at 0.5MHz speed once in every 8 clock pulses.


Algorithm

Trigger in each transition of the IR receiver output.

1. Check: Is it rising or falling edge?

a. Falling Edge: Set Couter = 0

b. Rising Edge: pulseduration = counter_value

Is pulseduration = 4ms at 25% tolerance?

Yes: Was transmission going on (set transmissionstart = =true)?

Yes: Discard current packet and set transmissionstart = false

No: set transmissionstart = true; nbit = 0

Was transmission going on (set transmissionstart = =true)?

is pulseduration = 2ms at 25% tolerance?

Yes: nbit th bit is 1,

is pulseduration = 1ms at 25% tolerance?

Yes: nbit th bit is 0,

If none of the above pulsewidth conditions met then discard current packet

Increment nbit

is nbit is equals to 17?

Yes: form deviceID with first 3 bits

Is deviceID equals to programmed deviceID?

No: Discard data pa
cket and exit

Form character with next 8 bits, and locationint with next 5 bits

Calculate parity with XORing the 16 bits

Does Calculated parity match received parity?

No: Discard data packet and exit

Yes: Update the value of text string’s locationintth

Location with the received character.

Circuit Diagram:

Transmitter:


Receiver:


Limitation
1.The PC side software was written with Visual Studio 2008. But the PC used did not meet the minimum requirements to run the software. As a result the PC side software was very slow, and thus the data transfer rate needed to be slowed down.
2. The PC software sends 32 characters regardless of the number of characters in the input stream. The remaining characters are filled up with white space characters. This might be overcome by keeping a command for clearing screen in the firmware of the microcontroller.
3. The PC software was configured to send 32 characters only. It could not send more than that at a time.
P
ictures:






Full Files:

http://www.edaboard.com/viewtopic.php?p=1084270

http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=1630&item_type=project

Visit My Official Website at BUET

Contact Me
Sajid Choudhury
+9665650
Dhaka, Bangladesh