ATtiny85 একটি আট পিনের এভিআর মাইক্রোকন্ট্রোলার। মাইক্রোকন্ট্রোলারভিত্তিক ছোট প্রজেক্টের জন্য খুবই সুবিধাজনক। শুধু তা-ই নয়। এই মাইক্রোকন্ট্রোলারটিকে চাইলে একটি ছোট্ট আরডুইনো হিসেবেও ব্যবহার করা যায়। ATtiny85 breakout board এ রয়েছে একটি অন বোর্ড ATtiny85 মাইক্রোকন্ট্রোলার। বোর্ডটিতে মাইক্রোকন্ট্রোলারটির সবগুলো পিন যে শুধু বের করেই দেওয়া আছে তা নয়, প্রতিটি পিনের নামও লিখে দেওয়া আছে। আইএসপি পিনগুলোও চিহ্নিত করা আছে স্পষ্টভাবেই। তাই ডেটেশিটে পিনআউট দেখে দেখে কানেকশন দেবার কষ্টটুকুও করতে হচ্ছে না। বোর্ডে পাওয়ার দেবার জন্য রয়েছে একটি মিনি ইউএসবি কানেকটর। এই টিউটোরিয়ালে আমরা দেখব কিভাবে ATtiny85 breakout board কে প্রোগ্রাম করা যায়। এই টিউটোরিয়ালে দুটি পদ্ধতিতে একে প্রোগ্রাম করা হবে।
পদ্ধতি ১ : Mini USBASP’র সাহায্যে।
এই পদ্ধতিতে ATtiny85 breakout board কে প্রোগ্রাম করার জন্য বেছে নেওয়া হয়েছে Mini USBASP । বলে রাখি, এই পদ্ধতি অনুসরন করে আমাদের যেকোনো AVR programmer এর ISP পিনআউট ব্যবহার করে ATtiny85 breakout board কে প্রোগ্রাম করা যাবে।
প্রয়োজনীয় যন্ত্রপাতি | পরিমান | প্রোডাক্ট লিংক |
ATtiny85 breakout board | 1 | এখানে ক্লিক করুন |
Mini USBASP | 1 | এখানে ক্লিক করুন |
Female to female jumpers | 6 | এখানে ক্লিক করুন |
USB A to mini B cable | 1 | এখানে ক্লিক করুন |
ATtiny85 breakout board | Mini USBASP |
VCC | VCC |
GND | GND |
SCK | SCK |
MISO | MISO |
MOSI | MOSI |
RST | RST |
এবার মিনি USB A to mini B cable এর সাহায্যে Mini USBASP কে কম্পিউটারের সাথে যুক্ত করুন। তারপর AVRpal অথবা AVRdude এর মাধ্যমে যেকোনো প্রোগ্রামের হেক্স ফাইল আপলোড করুন। এখন ATtiny85 breakout board আপনার প্রোগ্রাম অনুসারে কাজ করবে। Mini USBASP ব্যবহার করতে হলে অবশ্যই আপনার কম্পিউটারে USBASP ড্রাইভার সফটওয়্যার ইন্সটল করা থাকতে হবে।
প্রোগ্রামঃ
উদাহরনস্বরুপ আমরা ছোট্ট একটি প্রোগ্রাম লিখেছিলাম। প্রোগ্রামটি লিখতে ব্যবহার করা হয়েছে Atmel studio 6.1. প্রোগ্রামটি বিল্ড করে এর হেক্স ফাইল উপরোল্লিখিত নিয়মে আপলোড করলে ATtiny85 breakout board এর কমলা রঙয়ের এলইডি জ্বলানেভা করবে। উল্লেখ্য কমলা এলইডিটা ATtiny85 এর PB0 পিনের সাথে কানেক্টেড।
/* * attiny85.c * * Created: 11/18/2018 2:48:17 PM * Author: Techshop */ #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> void main() { int flag=0; DDRB|=(1<<PB0); PORTB=0x00; while(1) { if(flag==0) { PORTB|=(1<<PB0); _delay_ms(50); flag=1; } else if(flag==1) { PORTB&=~(1<<PB0); _delay_ms(50); flag=0; } } }পদ্ধতি ২: বানিয়ে ফেলি ছোট্ট একটি আরডুইনো।
শুরুতেই বলেছিলাম ATtiny85 breakout বোর্ডকে একটি আরডুইনো হিসেবে ব্যবহার করা যাবে। টিউটোরিয়ালের এই ধাপে আমরা ব্রেকআউট বোর্ডটিকে একটি আরডুইনো বোর্ডের মত করেই প্রোগ্রাম এবং ব্যবহার করব। যেসব ছোট ছোট প্রজেক্টে আরডুইনোর সবগুলো পিনের প্রয়োজন নেই, ইউজার্ট কমিউনিকেশনেরও দরকার নেই; সেইসব প্রজেক্টের সার্কিটের আকার ছোট করে আনার জন্য এই পদ্ধতিটি খুবই সাশ্রয়ী ও কার্যকর। এই পদ্ধতিতে ATtiny85 breakout কে প্রোগ্রাম করতে আমাদের প্রয়োজন হবে একটি আরডুইনো উনো এবং আরও কিছু কম্পোনেন্টস।
প্রয়োজনীয় যন্ত্রপাতি | পরিমান | প্রোডাক্ট লিংক |
ATtiny85 breakout board | 1 | এখানে ক্লিক করুন |
Arduino UNO-R3 | 1 | এখানে ক্লিক করুন |
Male to female jumpers | 6 | এখানে ক্লিক করুন |
Male to male jumpers | 3 | এখানে ক্লিক করুন |
10uf capacitor | 1 | এখানে ক্লিক করুন |
10K ¼ w resistor | 1 | এখানে ক্লিক করুন |
Push switch | 1 | এখানে ক্লিক করুন |
Mini breadboard | 1 | এখানে ক্লিক করুন |
USB A to mini B cable | 1 | এখানে ক্লিক করুন |
Additional board manager URLs এ এই লিংকটি https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json পেস্ট করুন এবং OK বাটনে ক্লিক করুন।
এবার Board manager এ যান। নিচের লিস্ট থেকে ATtiny খুঁজে বের করে Install এ ক্লিক করুন। বোর্ডের লিস্টে ATTiny যুক্ত হবে।খ) আরডুইনোকে প্রোগ্রামার হিসেবে কনফিগার করাঃ
লক্ষ্য করুন, এই এক্সপেরিমেন্টে আরডুইনো উনোর ভূমিকা হবে একটি সাধারন এভিআর প্রোগ্রামারের মতন। প্রথমে আরডুইনোকে কম্পিউটারের সাথে কানেক্ট করুন। তারপর নিচের ছবিতে দেখানো পথ অনুযায়ী ArduinoISP নামক কোডটি ওপেন করুন এবং আরডুইনোতে আপলোড করুন।
আরডুইনো বোর্ডটি এখন ATtiny85 breakout board কে প্রোগ্রাম করার জন্য প্রস্তুত। সার্কিট কানেকশনঃ আরডুইনো উনো এবং ATtiny85 breakout board এর মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।ATtiny85 breakout board | Arduino UNO-R3 |
VCC | 5V |
GND | GND |
SCK | SCK(13) |
MISO | MISO(12) |
MOSI | MOSI(11) |
RST | RST(10) |
const int buttonPin = 2; // the number of the pushbutton pin const int ledPin = 0; // the number of the LED pin int flag=0; // variables will change: int buttonState = 0; // variable for reading the pushbutton status void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); } void loop() { // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. If it is, the buttonState is HIGH: if (buttonState == HIGH) { // turn LED on: if(flag==0) { delay(100); digitalWrite(ledPin, HIGH); flag=1; } else if(flag==1) { delay(100); digitalWrite(ledPin, LOW); flag=0; } } }
আরডুইনোর মাধ্যমে ATtiny85 breakout board এ প্রোগ্রামটি লোড হয়ে যাবে। এটি একটি টোগল সুইচের প্রোগ্রাম। ATtiny85 breakout board এর PB2 এর সাথে সংযুক্ত সুইচটি একটি টোগল সুইচ হিসেবে কাজ করবে। সুইচটি প্রতিবার প্রেস করার সাথে সাথে ATtiny85 breakout board এর PB0 পিনের সাথে সংযুক্ত এলইডি অন থেকে অফ হবে কিংবা অফ থেকে অন হবে। ব্যাস, তৈরী হয়ে গেল একটি ছোট্ট আরডুইনো বোর্ড। প্রোগ্রামার আরডুইনো থেকে একে সম্পূর্ণরুপে বিচ্ছিন্ন করে মিনি ইউএসবি পোর্টের মাধ্যমে পাওয়ার দিয়ে একে সচল রাখা যাবে।
এই দুটি পদ্ধতি ছাড়াও ATtiny prog shield দিয়েও ATtiny85 breakout board কে প্রোগ্রাম করা যাবে।]]>