ইনপুট এবং আউটপুট উভয় ব্যবহার করে
আগের অধ্যায়ে আমরা শিখেছি কীভাবে একটি রাস্পবেরি পাই এবং এর জিপিআইও ব্যবহার করে একটি এলইডি জ্বালাতে হয়।
এর জন্য আমরা "আউটপুট" হিসাবে একটি GPIO পিন ব্যবহার করেছি।
এই অধ্যায়ে আমরা "ইনপুট" হিসাবে আরেকটি GPIO পিন ব্যবহার করব।
5 সেকেন্ডের জন্য ফ্ল্যাশ করার পরিবর্তে, আপনি যখন ব্রেডবোর্ডের সাথে সংযুক্ত একটি বোতাম টিপবেন তখন LED আলোকিত হওয়া উচিত।
আমাদের কি দরকার?
এই অধ্যায়ে আমরা একটি পুশ বোতামের সাহায্যে একটি LED নিয়ন্ত্রণ করার একটি সহজ উদাহরণ তৈরি করব।
এর জন্য আপনার প্রয়োজন:
- A Raspberry Pi with Raspian, internet, SSH, with Node.js installed
- The onoff module for Node.js
- 1 x Breadboard
- 1 x 68 Ohm resistor
- 1 x 1k Ohm resistor
- 1 x Through Hole LED
- 1 x Push Button
- 4 x Female to male jumper wires
- 1 x Male to Male jumper wires
বিভিন্ন উপাদানের বর্ণনার জন্য উপরের তালিকার লিঙ্কগুলিতে ক্লিক করুন।
দ্রষ্টব্য:
LED এর প্রকারের উপর নির্ভর করে আপনি যে প্রতিরোধকটি ব্যবহার করছেন তা আমরা যা ব্যবহার করি তার থেকে আলাদা হতে পারে। বেশিরভাগ ছোট LED-এর জন্য শুধুমাত্র একটি ছোট রোধের প্রয়োজন হয়, প্রায় 200-500 ওহম। আপনি যে সঠিক মানটি ব্যবহার করেন তা সাধারণত গুরুত্বপূর্ণ নয়, তবে প্রতিরোধকের মান যত ছোট হবে, LED তত উজ্জ্বল হবে।
এই অধ্যায়ে আমরা শেষ অধ্যায়ে আমরা যে সার্কিটগুলি তৈরি করেছি তা তৈরি করব, যাতে আপনি উপরে তালিকাভুক্ত কিছু অংশের সাথে পরিচিত হবেন।
সার্কিট নির্মাণ
এখন আমাদের ব্রেডবোর্ডে সার্কিট তৈরি করার সময়। শেষ অধ্যায়ে আমরা যে সার্কিটটি তৈরি করেছি তা শুরুর পয়েন্ট হিসেবে ব্যবহার করি।
আপনি যদি ইলেকট্রনিক্সে নতুন হন, আমরা রাস্পবেরি পাই এর জন্য পাওয়ার সাপ্লাই বন্ধ করার পরামর্শ দিই। এছাড়াও এটির ক্ষতি এড়াতে একটি অ্যান্টি-স্ট্যাটিক ম্যাট বা গ্রাউন্ডিং স্ট্র্যাপ ব্যবহার করুন।
রাস্পবেরি পাই সঠিকভাবে বন্ধ করতে কমান্ডটি ব্যবহার করুন:
pi@jassifteam:~ $ sudo shutdown -h now
রাস্পবেরি পাই-তে এলইডি ফ্ল্যাশিং বন্ধ করার পরে, রাস্পবেরি পাই থেকে পাওয়ার প্লাগটি টানুন (বা এটির সাথে সংযুক্ত পাওয়ার স্ট্রিপটি বন্ধ করুন)।
প্লাগটি সঠিকভাবে বন্ধ না করে টানলে মেমরি কার্ডের ক্ষতি হতে পারে।
Raspberry Pi 3 with Breadboard. LED and Button circuit
উপরের সার্কিট ডায়াগ্রামটি দেখুন।
শেষ অধ্যায়ে আমরা যে সার্কিট তৈরি করেছি তা দিয়ে শুরু করা যাক:
আপনার সার্কিট এখন সম্পূর্ণ হওয়া উচিত এবং আপনার সংযোগগুলি উপরের চিত্রের মতো হওয়া উচিত।
এখন রাস্পবেরি পাই শুরু করার এবং এটির সাথে যোগাযোগ করার জন্য একটি Node.js স্ক্রিপ্ট লেখার সময়।
রাস্পবেরি পাই এবং Node.js LED এবং বোতাম স্ক্রিপ্ট
"nodetest" ডিরেক্টরিতে যান এবং "buttonled.js" নামে একটি নতুন ফাইল তৈরি করুন:
pi@jassifteam:~ $ nano buttonled.js
ফাইলটি এখন বিল্ট-ইন ন্যানো এডিটর দিয়ে খোলা এবং সম্পাদনা করা যেতে পারে।
নিম্নলিখিত লিখুন বা পেস্ট করুন:
buttonled.js
var Gpio = require('onoff').Gpio; //include onoff to interact with the GPIO
let LED = new Gpio(4, 'out'); //use GPIO pin 4 as output
let pushButton = new Gpio(17, 'in', 'both'); //use GPIO pin 17 as input, and 'both' button presses, and releases should be handled
pushButton.watch(function (err, value) { //Watch for hardware interrupts on pushButton GPIO, specify callback function
if (err) { //if an error
console.error('There was an error', err); //output error message to console
return;
}
LED.writeSync(value); //turn LED on or off depending on the button state (0 or 1)
});
function unexportOnClose() { //function to run when exiting program
LED.writeSync(0); // Turn LED off
LED.unexport(); // Unexport LED GPIO to free resources
pushButton.unexport(); // Unexport Button GPIO to free resources
};
process.on('SIGINT', unexportOnClose); //function to run when user closes using ctrl+c
কোড সংরক্ষণ করতে "Ctrl+x" টিপুন। "y" দিয়ে নিশ্চিত করুন এবং "Enter" দিয়ে নাম দিন।
কোড চালান:
pi@jassifteam:~ $ node buttonled.js
এখন আপনি যখন বোতাম টিপবেন তখন LED আলোকিত হওয়া উচিত এবং আপনি এটি ছেড়ে দিলে বন্ধ হয়ে যাবে।
Ctrl+c দিয়ে প্রোগ্রাম শেষ করুন।