Arduino – ஓர் அறிமுகம்

Arduino – ஓர் அறிமுகம்

வணக்கம். இந்த உலகம் நமக்கு மென்பொருள்களை திறவு மூலத்தில் (open source) வழங்குவது போல, வன்பொருள்களையும் திறமூலமாக வழங்குகிறது. அட ! அது எப்படி வன்பொருள்களுக்குத் திறவு மூலம் கொடுக்க முடியும் என்று கேட்கிறீர்களா ! ஆம், முடியும் என்பதே உண்மை.

நுண்கட்டுப்படுத்தி (Micro Controller) முதல் கணினி வரை, தானியங்கிக் காசாளம் (ATM) முதல் துணிதுவைக்கும் இயந்திரம் (Washing Machine) வரை வன்பொருள்கள் முக்கிய பங்கு வகிக்கிறது. அதில் சுற்றுப் பலகை (circuit board) தான் மற்ற எல்லாவற்றையும் கட்டுப்படுத்துகிறது.

நமது கணினியில் உள்ள வன்பொருள்களுக்கெல்லாம் தாயாக இருப்பது தாய்ப்பலகை (Mother Board) தான். இந்த தாய்ப்பலகையில் எல்லா விதமான உள்ளீடு/வெளியீடு கருவிகளும் இணைக்கப்பட்டிருக்கும். இன்னும் தெளிவாகச் சொன்னால் சமிக்ஞைகளை (சைகை; signal) ஓரிடத்தலிருந்து மற்றோர் இடத்திற்குக் கடத்தவும் அவற்றை இருமமாக மாற்றவும் தாய்ப்பலகையில் இணைக்கப்பட்டுள்ள சின்ன சின்ன சில்லுகளும் (chips) கட்டுப்படுத்திகளுமே (controller) முக்கிய பங்கு வகிக்கிறது.

இப்படிப்பட்ட நுண்கட்டுப்படுத்திப் பலகைகள் (micro controller board) நமக்குத் திறமூலமாகக் கிடைத்தால் நாம் என்னவெல்லாம் செய்யலாம். சாதாரண மின்தூக்கி முதல் பறக்கும் ரோபோ வரை உருவாக்க முடியும் அல்லவா!

அப்படிப்பட்ட திறமூல வன்பொருள்தான் அர்டுயினோ பலகை (Arduino Board) ஆகும்.

சரி! நமக்கு திறமூல வன்பொருள் கிடைத்துவிட்டது. நாம் எப்படி மற்ற கட்டுப்படுத்திகள் (controller), உணரிகள் (sensors), இயக்கிகளுடன் (motors) இணைத்து ஓர் இயந்திரத்தை உருவாக்குவது எப்படி?

அதற்கு கட்டளைகள் (Instructions) தேவையல்லவா! நாம் அர்டுயினோவுக்கு எப்படி கட்டளை கொடுப்பது ?

இதற்கு அர்டுயினோவே பதிலைத் தருகிறது. அர்டுயினோவுக்கு குழு நமக்கு arduino IDEஎன்ற மென்பொருளைத் தருகிறது. இந்த மென்பொருளைப் பதிவிறக்கம் செய்து நமது கணிணியில் நிறுவி, அதில் நிரல்கள் எழுதலாம். அப்படி எழுதிய கட்டளைகளை arduino பலகைக்குள் செலுத்தி அதை தனித்தே இயங்கும் ரோபோவாக மாற்ற இயலும்.

சரி, அறிமுகம் போதும் ! கொஞ்சம் உட்சென்று arduino-வை எப்படிப் பயன்படுத்துவது என்று விரிவாகப் பார்போமா?!!

“Hello World” நிரல் Arduino

நாம் எந்த ஒரு நிரல் மொழி கற்றுக்கொள்வதானாலும் முதலில் நாம் கற்பது ‘Hello World’ ஐக் கணினி திரையில் எப்படி print செய்வது என்பது தான். அது போல arduino board (hardware) ல் எப்படி hello world என்று அச்சிடுவது? இது அப்படி இல்லை. இதைப் பொறுத்தவரை ஒளி உமிழ் இருமுனையத்தை (LED) ஒளிர வைப்பதே arduino வின் hello world ஆகும்.

என்ன, arduino வின் hello world கற்றுக் கொள்ள நீங்கள் தயாரா ?

தேவையான வன்பொருள்கள்

1. Arduino Board 2. LED

தேவையான மென்பொருள்கள்

  • Arduino Software

நீங்கள் எந்த விதமான இயங்கு தளம் வேண்டுமானாலும் உபயோகிக்கலாம். எல்லா வகையான (Linux, Mac, Windows) OS க்கும், தனித்தனியான arduino மென்பொருள்களை arduino.cc/ என்ற தளத்திலிருந்துப் பதிவிறக்கம் செய்து, நிறுவிக் கொள்ளலாம். இதோ கீழே உள்ள படி தான் arduino software இருக்கும்.

உபுண்டுவில் நிறுவ, $ sudo apt-get install arduino

செய்முறை:

Arduino board ல் 13 வது pin connector ல் 220 ஓம் (ohm) மின்தடையை (resister) இணைக்கவும்.

பிறகு LED யின் positive leg (கொஞ்சம் நீண்டு இருக்கும் கம்பி) ஐ resister உடன் இணைக்கவும். LED யின் negative leg (சிறிய கம்பி) ஐ arduino board யின் ground (GND) connector உடன் இணைக்கவும்.

இப்போது இந்த arduino board kit ஐ கணிணியுடன் இணைக்கவும். எப்படி ?

Serial port மூலமாகவோ (அ) USB port மூலமாகவோ இணைக்கலாம்.

[குறிப்பு : arduino board வாங்கும் போது, USB port இருக்குமாறு பார்த்து வாங்கினால், பெருமளவு உதவியாய் இருக்கும்.]

இப்போது கணிணியில் arduino software ஐ இயக்கி, அதில் பின்வரும் program ஐ type செய்யவும்.

// LED Blink Program Begins

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
*/
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(13, OUTPUT);
}

void loop() {
digitalWrite(13, HIGH);   // set the LED on
delay(1000);               // wait for a second
digitalWrite(13, LOW);   // set the LED off
delay(1000);               // wait for a second
}

// LED Blink Program Ends

இந்த நிரலை பார்க்கும் போதே தெரிகிறது, இது C program மொழியில் எழுதப்பட்டது.

Code விளக்கம் :

pinMode(13, OUTPUT); என்ற கட்டளையில் 13 வது pin ஐ output pin ஆகinitiate செய்கிறோம்.

digitalWrite(13, HIGH); என்ற கட்டளையில் 5 volt ஐ 13 வது pin க்கு அனுப்புகிறது. இதனால் LED யின் முனைகளுக்கு இடையே voltage difference உண்டாவதால் LED ஆனது ஒளிர்கிறது.

digitalWrite(13, LOW); என்ற கட்டளையில் 0 volt ஐ 13 வது pin க்கு அனுப்பவதால், LED ஒளிர்வது நிறத்தப்படுகிறது.

நம்முடைய கண்களால் இதன் அதிவேகத்தை (LED On/Off) உணரமுடியாது.

அதனால், delay() கட்டளையை பயன்படுத்து கிறோம். இங்கு 1000 millisecond (ஒரு வினாடி) இடைவெளியை கொடுத்துள்ளோம்.

void setup() function ல் initialization கட்டளைகளையும், void loop() function ல் தொடர்ந்து நடக்க வேண்டிய செயலுக்கான கட்டளைகளையும் தர வேண்டும்.

இப்போது இந்த code ஐ arduino software ல் உள்ள verify button ஐ இயக்கி compile செய்யலாம். ஏதாவது error இருந்தால், அங்குள்ளwindow வில் காட்டப்படும். Error எதும் இல்லாவிட்டால், upload button ஐ இயக்கி byte களாக மாற்றப்பட்ட கட்டளைகள் arduino வில் உள்ளEEPROM memory chip ல் சேமிக்கப்படுகிறது.

Arduino Kit ல் power supply இணைக்கப்பட்டிருத்தல் அவசியம். (USB Port உபயோகித்தால், power supply அவசியமில்லாதது.)

கட்டளைகளை upload செய்த பிறகு, arduino board ல் உள்ள RESET button ஐ அழுத்தினால், LED விட்டு விட்டு ஒளிர்வதை பார்க்களாம். இப்போது நீங்கள் கணிணியுடன் தொடர்புள்ள serial port / usb port இணைப்பை துண்டித்து விடலாம். Arduino kit தனித்தே இயங்குவதை காணலாம் (power supply அவசியம்).

எவ்வளவு சுலபமாக இருக்கிறது, arduino ஐ உபயோகிப்பது ! ! !

Multi Programming Language Support :

Arduino வில் C, C++, Java, Python, Ruby ஆகிய உயர்மட்ட program மொழிகளின் மூலமும் உங்களது கட்டளைகளை எழுதலாம். இதில் Ruby Arduino Development (RAD) ஐ உபயோகிப்பது மிகவும் சுலபம்.

Project Ideas :

சரி, நாம் என்னவெல்லாம் Projects Arduino Kit மூலம் செய்யலாம் ?

  • Stepper motors ஐ Wifi/Bluetooth/IR controller board உடன் இணைத்து, Remote Control Car/Helicopter/Boat Robot ஐ உருவாக்க முடியும்.

  • Heat Sensors உடன் இணைத்து, analog வெப்பத்தை digital வெப்ப குறியீட்டாக (Celsius) மாற்ற முடியும்.

  • IR sensors, Speakers உடன் இணைத்து வீட்டின் கதவிற்கு மேலும் பாதுகாப்பு தரலாம்.

  • GPS Receiver Device உடன் இணைத்து நாம் இருக்கும் இடத்தின் latitude, longitude ஐ digital ஆக பெற முடியும்.

  • Ethernet cable உடன் இணைத்து data ஐ எங்கோ இருக்கும் server க்கு அனுப்பலாம்.

    உருப்படியாக/ படிப்படியாக Arduino வில் projects செய்ய வேண்டுமானால் இந்த லிங்க்கிற்கு arduino.cc/playground/Projects/Ideas செல்லவும்.

எங்கே வாங்குவது ?

நமது இந்தியாவில் www.bhashatech.com/ website ல் order கொடுத்து பெற்றக் கொள்ளலாம்.

அல்லது நீங்களே arduino board ஐ உருவாக்கலாம். அதற்கான Circuit Diagram ஐ arduino.cc/ கண்டறியலாம்.

மடல் குழு :

Arduino developer mailing list, Arduino users mailing list என்று தனித்தனியாக உள்ளது. நீங்கள் அதில் இணைந்து உங்கள் சந்தேகங்களை கேட்களாம்.

arduino.cc/mailman/listinfo/developers_arduino.cc

. அருளாளன்

நான் ஐ.ஐ.டி. டெல்லியில் Python Programmer ஆக பணியாற்றி வருகிறேன்.

வலை பதிவு : tuxcoder.wordpress.com மின்னஞ்சல் : arulalant@gmail.com

%d bloggers like this: