সুচিপত্র:

কিভাবে একটি AVR (arduino) অন্য Arduino এর সাথে প্রোগ্রাম করতে হয়: 7 টি ধাপ
কিভাবে একটি AVR (arduino) অন্য Arduino এর সাথে প্রোগ্রাম করতে হয়: 7 টি ধাপ

ভিডিও: কিভাবে একটি AVR (arduino) অন্য Arduino এর সাথে প্রোগ্রাম করতে হয়: 7 টি ধাপ

ভিডিও: কিভাবে একটি AVR (arduino) অন্য Arduino এর সাথে প্রোগ্রাম করতে হয়: 7 টি ধাপ
ভিডিও: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, নভেম্বর
Anonim
কিভাবে আরেকটি Arduino এর সাথে AVR (arduino) প্রোগ্রাম করা যায়
কিভাবে আরেকটি Arduino এর সাথে AVR (arduino) প্রোগ্রাম করা যায়
কিভাবে আরেকটি Arduino এর সাথে AVR (arduino) প্রোগ্রাম করা যায়
কিভাবে আরেকটি Arduino এর সাথে AVR (arduino) প্রোগ্রাম করা যায়
কিভাবে আরেকটি Arduino এর সাথে AVR (arduino) প্রোগ্রাম করা যায়
কিভাবে আরেকটি Arduino এর সাথে AVR (arduino) প্রোগ্রাম করা যায়

এই নির্দেশাবলী দরকারী যদি:

* আপনি আপনার arduino atmega168 দিয়ে পেয়েছেন এবং আপনি আপনার স্থানীয় ইলেকট্রনিক্স দোকানে একটি atmega328 কিনেছেন। এটিতে একটি arduino বুটলোডার নেই * আপনি এমন একটি প্রকল্প তৈরি করতে চান যা arduino ব্যবহার করে না - শুধু একটি নিয়মিত AVR চিপ (যেমন USBTinyISP) - আপনার একটি পরিষ্কার attiny2313/attiny48 ইত্যাদি আছে যা আপনি ফার্মওয়্যার বার্ন করতে চান। সাধারণত আপনার নতুন চিপ প্রোগ্রাম করার জন্য USBTinyISP এর মত একটি ISP (ইন সিস্টেম প্রোগ্রামার) থাকতে হবে। আরডুইনো থাকার ফলে আপনি এটি একটি প্রোগ্রামার হতে শেখাতে পারেন র্যান্ডাল বনের একটি দুর্দান্ত কাজের জন্য ধন্যবাদ। তিনি মেগা -আইএসপি তৈরি করেছেন - একটি আরডুইনো স্কেচ যা প্রোগ্রামারের মতো কাজ করে।

ধাপ 1: আপনার কি দরকার?

তোমার কি দরকার?
তোমার কি দরকার?

* একটি কার্যকরী Arduino (অথবা একটি ক্লোন - আমি BBB ব্যবহার করছি - BareBonesBoard এবং একটি RBBB - RealBareBonesBoard by ModernDevices) * একটি চিপ যা আপনি প্রোগ্রাম করতে চান (atmega8, atmega168, atmega368, attiny2313, attiny13) * একটি ব্রেডবোর্ড বা আইএসপি হেডার সহ একটি বোর্ড * 3 এলইডি + 3 প্রতিরোধক * ব্রেডবোর্ডের তার

ধাপ 2: একটি ব্রেডবোর্ডে মেগা-আইএসপি প্রোগ্রামার তৈরি করা

একটি ব্রেডবোর্ডে মেগা-আইএসপি প্রোগ্রামার তৈরি করা
একটি ব্রেডবোর্ডে মেগা-আইএসপি প্রোগ্রামার তৈরি করা
একটি ব্রেডবোর্ডে মেগা-আইএসপি প্রোগ্রামার তৈরি করা
একটি ব্রেডবোর্ডে মেগা-আইএসপি প্রোগ্রামার তৈরি করা
একটি ব্রেডবোর্ডে মেগা-আইএসপি প্রোগ্রামার তৈরি করা
একটি ব্রেডবোর্ডে মেগা-আইএসপি প্রোগ্রামার তৈরি করা

একটি চিপ প্রোগ্রাম করার জন্য আপনার Arduino সংযোগ করার দুটি উপায় আছে।

আপনি আপনার এভিআর চিপটি একটি রুটিবোর্ডে প্লাগ করতে পারেন এবং 5v এবং GND কে সংশ্লিষ্ট পিনগুলিতে সংযুক্ত করতে পারেন (ডেটশীটটি পরীক্ষা করুন!) + একটি পুলআপ রেসিস্টর রিসেট করতে এবং আপনার arduino থেকে চিপে তারের পিনগুলি সংযুক্ত করতে পারেন। এগুলি হল Arduino এবং তাদের ফাংশন 13 - SCK 12 - MISO 11 - MOSI 10 - RST (রিসেট) অথবা আপনি একটি 2x3pin ISP হেডার তৈরি করতে পারেন যা আপনি একটি বোর্ডে প্লাগ করতে পারেন যা একটি (অন্য arduino বোর্ড) প্রদান করে। আইএসপি হেডারের জন্য পিনআউট হল তৃতীয় ছবিতে প্রোগ্রামারের অবস্থা নির্দেশ করার জন্য 3 টি এলইডি আছে। পিন 9 - নীল নেতৃত্বাধীন - এটি প্রোগ্রামারের শ্রবণশক্তি। পিন 8 - লাল নেতৃত্ব - একটি ত্রুটি নির্দেশ করে পিন 7 - সবুজ নেতৃত্ব - নির্দেশ করে যে প্রোগ্রামিং হচ্ছে মেগা-আইএসপি ieldাল। ইয়ারোস্লাভ ওসাদচি agগলে ieldাল ডিজাইন করেছিলেন। আপনি তার সাইটে agগল ফাইল পেতে পারেন:

ধাপ 3: স্কেচ আপলোড করা

স্কেচ আপলোড করা হচ্ছে
স্কেচ আপলোড করা হচ্ছে

মেগা-আইএসপি গুগল কোড থেকে স্কেচ ডাউনলোড করুন। (লেখার সময় avrisp.03.zip)। এটি আনপ্যাক করুন এবং arduino ide চালান এবং avrisp.pde খুলুন। এটি আপনার arduino বোর্ডে আপলোড করুন। হৃদস্পন্দনের নেতৃত্ব দেওয়া শুরু করা উচিত।

ধাপ 4: Avrdude দিয়ে ব্যবহার করা

Avrdude দিয়ে ব্যবহার করা
Avrdude দিয়ে ব্যবহার করা

Avrdude (এবং এটি ব্যবহার করে এমন সমস্ত GUIs) ব্যবহার করার জন্য আপনাকে 'avrisp' প্রোগ্রামার নির্বাচন করতে হবে। সবচেয়ে নিরাপদ বিটরেট হল 19200।

কমান্ডলাইন থেকে আপনার নতুন atmega168 পরীক্ষা করার জন্য চেষ্টা করুন: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 হল পোর্ট যা arduino আমার লিনাক্স বক্সের সাথে সংযুক্ত (আপনার com5 হতে পারে)। এটি সরঞ্জাম -> সিরিয়াল পোর্টে arduino IDE তে চেক করা যেতে পারে। আপনার পাওয়া উচিত: [kabturek@hal -9000 ~]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: AVR ডিভাইসটি আরম্ভ করা হয়েছে এবং নির্দেশ গ্রহণ করার জন্য প্রস্তুত পড়া | ############################################ | 100% 0.13s avrdude: ডিভাইসের স্বাক্ষর = 0x1e9406 avrdude: safemode: Fuses OK avrdude সম্পন্ন। ধন্যবাদ. তার মানে সবকিছু ঠিক আছে। যদি আপনি ত্রুটি পান - শেষ ধাপটি পরীক্ষা করুন।

ধাপ 5: একটি Attiny2313 এ USBtinyISP ফার্মওয়্যার বার্ন করা

একটি Attiny2313 এ USBtinyISP ফার্মওয়্যার বার্ন করা
একটি Attiny2313 এ USBtinyISP ফার্মওয়্যার বার্ন করা
একটি Attiny2313 এ USBtinyISP ফার্মওয়্যার বার্ন করা
একটি Attiny2313 এ USBtinyISP ফার্মওয়্যার বার্ন করা
একটি Attiny2313 এ USBtinyISP ফার্মওয়্যার বার্ন করা
একটি Attiny2313 এ USBtinyISP ফার্মওয়্যার বার্ন করা

ইউএসবিটিনিআইএসপি লেডিএডা থেকে একটি দুর্দান্ত প্রোগ্রামার যা সত্যিই সস্তা - 22 $। আমি একটি অতিরিক্ত attiny2313 এবং কিছু অংশ ছিল তাই আমি নিজেই একটি তৈরি করার সিদ্ধান্ত নিয়েছে। যদি আপনার পিসিবি তৈরির কোন অভিজ্ঞতা না থাকে তবে আমি আপনাকে কিটটি কেনার পরামর্শ দিচ্ছি কারণ এটি আপনার নিজের তৈরি করার চেয়ে উচ্চমানের:)। কমপক্ষে পিসিবি কিনুন যদি আপনি এটি তৈরি করতে চান। আপনি এটি Adafruit থেকে পেতে পারেন। ATTiny2313 সংযুক্ত করুন শেষ ছবিতে আপনি লাল রঙে ISP- এর জন্য ব্যবহৃত পিনের সাথে attiny2313 দেখতে পারেন। ছবিটি লেডিএডা এভিআর টিউটোরিয়াল থেকে। ফার্মওয়্যার বার্ন করা: USBTinyISP ফার্মওয়্যার আনপ্যাক করুন। Spi dir এ যান এবং $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200 চালান যাতে চিপ দিয়ে সবকিছু ঠিক আছে কিনা। এখন ফিউজ সেট করুন: । এবং ফার্মওয়্যার বার্ন করুন: $ avrdude -B 1 -pt2313 -U ফ্ল্যাশ: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila। আপনার attiny2313- এ USBTinyISP ফার্মওয়্যার আছে।

ধাপ 6: Arduino বুটলোডার বার্ন করা

আরডুইনো বুটলোডার জ্বালানো
আরডুইনো বুটলোডার জ্বালানো
আরডুইনো বুটলোডার জ্বালানো
আরডুইনো বুটলোডার জ্বালানো
আরডুইনো বুটলোডার জ্বালানো
আরডুইনো বুটলোডার জ্বালানো

সংযোগগুলি সহজ করার জন্য আমি একটি RBBB ব্যবহার করেছি বলে আমি কিছুটা প্রতারণা করেছি। স্কিমা ছবি #2 এ রয়েছে। যদি আপনি 2 টি arduinos ব্যবহার করেন তবে ছবি #3 ব্যবহার করুন এবং ISP পিনটি ICSP 2x3header এর সাথে দ্বিতীয় (স্লেভ) arduino তে সংযুক্ত করুন শুধুমাত্র প্রথম বোর্ডের সাথে USB পাওয়ার সংযোগ করুন। GUI উপায় এটি একটি সামান্য চতুর কারণ আপনি শুধু Tools-> Burn Bootloader-> w/ AVR ISP ব্যবহার করতে পারবেন না কারণ ডিফল্ট গতি মেগা-আইএসপি-র জন্য অনেক বড়। Avrdude.conf খুঁজুন যা arduino IDE (arduino/হার্ডওয়্যার/সরঞ্জাম/avrdude.conf তে) এর সাথে আসে এবং 115200 থেকে 19200 পর্যন্ত avrisp প্রোগ্রামারের সীমানা পরিবর্তন করুন (312 লাইনের কাছাকাছি) avrdude.conf প্রোগ্রামার আইডি = "avrisp" খুঁজুন; desc = "Atmel AVR ISP"; baudrate = 115200; # ডিফল্ট হল 115200 টাইপ = stk500;; থেকে: প্রোগ্রামার আইডি = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # ডিফল্ট হল 115200 টাইপ = stk500;; এখন আপনি টুলস ব্যবহার করতে পারেন -> বার্ন বুটলোডার -> w/AVR ISP (টুলস মেনু থেকে সঠিক বোর্ড নির্বাচন করার পরে) কমলাইন আপনি কমান্ডলাইনটিও ব্যবহার করতে পারেন: arduino/হার্ডওয়্যার/বুটলোডার/atmega/Makefile সম্পাদনা করুন এবং ISPTOOL/PORT পরিবর্তন করুন /SPEED to: # avrdude isp টুল ISPTOOL = avrisp ISPPORT = /dev /ttyUSB0 ISPSPEED = -b 19200 না প্যারামিটার লিখুন না আপনি $ make diecimila_isp ফিউজ এবং বুটলোডার বার্ন করতে লিখতে পারেন। জ্বলন্ত জ্বলুন!

ধাপ 7: সমস্যা সমাধান

সমস্যা সমাধান
সমস্যা সমাধান

Avrdude ত্রুটি: avrdude: ser_open (): ডিভাইস খুলতে পারে না "/dev/ttyUSB0": এমন কোন ফাইল বা ডিরেক্টরি নেই আপনার ভুল পোর্ট (-P) নির্দিষ্ট আছে অথবা আপনার arduino সংযুক্ত নয়। সংযোগ পরীক্ষা করুন avrdude: ডিভাইসের স্বাক্ষর = 0x000000 avrdude: হ্যাঁ! অবৈধ ডিভাইসের স্বাক্ষর। ডাবল চেক কানেকশন এবং আবার চেষ্টা করুন, অথবা এই চেকটি ওভাররাইড করতে -F ব্যবহার করুন। এটি একটি সাধারণ ত্রুটি। আপনার চিপটি স্বীকৃত নয়। বোর্ডে কানেকশন চেক করুন (GND/5V পিনের সাথে সংযুক্ত?) আপনি এই ত্রুটিটি পাবেন যখন আপনার চিপ একটি বহিরাগত দোলক ব্যবহার করার জন্য কনফিগার করা হয় এবং এটি কাজ করছে না (একটি নেই বা এটি সঠিকভাবে দোলনা নয় - 22pf ক্যাপ অনুপস্থিত?)

প্রস্তাবিত: