সুচিপত্র:

রাস্পবেরি পাই দিয়ে AVR/Arduino ঝলকানি: 3 ধাপ (ছবি সহ)
রাস্পবেরি পাই দিয়ে AVR/Arduino ঝলকানি: 3 ধাপ (ছবি সহ)

ভিডিও: রাস্পবেরি পাই দিয়ে AVR/Arduino ঝলকানি: 3 ধাপ (ছবি সহ)

ভিডিও: রাস্পবেরি পাই দিয়ে AVR/Arduino ঝলকানি: 3 ধাপ (ছবি সহ)
ভিডিও: Проектирование компьютера мечты. Часть 1 2024, জুলাই
Anonim
রাস্পবেরি পাই দিয়ে AVR/Arduino ঝলকানি
রাস্পবেরি পাই দিয়ে AVR/Arduino ঝলকানি

একটি ইন-সিস্টেম প্রোগ্রামার (আইএসপি) এমন একটি ডিভাইস যা আপনি অনেক মাইক্রোকন্ট্রোলার প্রোগ্রাম করতে ব্যবহার করতে পারেন, উদাহরণস্বরূপ ATMega328p যা একটি Arduino Uno এর মস্তিষ্ক। আপনি একটি USBtinyISP এর মত কিছু কিনতে পারেন, অথবা আপনি একটি Arduino ব্যবহার করতে পারেন। এই নির্দেশাবলী আপনাকে দেখাবে কিভাবে একটি রাস্পবেরি পাই একটি ISP হিসাবে ব্যবহার করতে হয়।

অ্যাভারডুড প্রোগ্রাম, যা আরডুইনো আইডিই হুডের নীচে চিপস ফ্ল্যাশ ব্যবহার করে, অনেক প্রোগ্রামারের সাথে ব্যবহার করা যেতে পারে। এর একটি বিকল্প হল পাই এর সম্প্রসারণ বন্দরে SPI পিন ব্যবহার করা। আমি ব্যাখ্যা করবো কিভাবে যথাযথ সংযোগ তৈরি করতে হয়, পারফবোর্ডে একটি সাধারণ সার্কিট একত্রিত করতে হবে যাতে প্রতিবার যখন আপনি একটি চিপ ফ্ল্যাশ করতে চান, এবং কিভাবে অ্যাভ্রুডুড ইনস্টল এবং ব্যবহার করবেন তার জন্য আপনাকে তারের পুনর্বিন্যাস করতে হবে না। আমি এই পদ্ধতি ব্যবহার করে একটি AVR চিপ যেমন একটি ATMEGA বা ATTINY তে Arduino IDE ব্যবহার করে কিভাবে কম্পাইল করা প্রোগ্রামগুলি পেতে পারি তাও দেখাবো।

প্রয়োজনীয় জিনিস:

  • সর্বশেষ রাস্পবিয়ান ইনস্টল সহ রাস্পবেরি পাই
  • 40-পিন পুরুষ শিরোলেখ সকেট (অথবা 26-পিন যদি আপনার পুরোনো পাই থাকে)
  • আপনার Pi এর সাথে সংযোগ করার জন্য IDE কেবল
  • 16 মেগাহার্টজ স্ফটিক অনুরণনকারী
  • 22 পিএফ ক্যাপাসিটার (2)
  • LED (1) প্রোগ্রামারের অবস্থা নির্দেশ করে
  • 8, 14, এবং/অথবা 28 পিন আইসি সকেট, চিপের কোন আকৃতির উপর আপনি ফ্ল্যাশ করতে চান তার উপর নির্ভর করে
  • কিছু পারফবোর্ড, তার, ঝাল

ধাপ 1: মুচি সংযুক্তি নির্মাণ

বিল্ডিং মুচি সংযুক্তি
বিল্ডিং মুচি সংযুক্তি
বিল্ডিং মুচি সংযুক্তি
বিল্ডিং মুচি সংযুক্তি
বিল্ডিং মুচি সংযুক্তি
বিল্ডিং মুচি সংযুক্তি

সিরিয়াল পেরিফেরাল ইন্টারফেস (এসপিআই), যাকে চার-তারের সিরিয়ালও বলা হয়, এটি একটি একক মাস্টার ডিভাইস এবং এক বা একাধিক স্লেভ ডিভাইসের মধ্যে যোগাযোগের একটি উপায়। আমরা এটি চিপ ফ্ল্যাশ করার জন্য ব্যবহার করব, পাইকে মাস্টার হিসেবে এবং চিপকে দাস হিসেবে ব্যবহার করব। আপনি Pi এবং আপনার চিপের মধ্যে নিম্নলিখিত সংযোগগুলি তৈরি করবেন (কোন AVRs এবং Pi সম্প্রসারণ পোর্টের জন্য উপরের পিনআউটগুলি দেখুন কোন পিনগুলি হল):

  • MOSI (মাস্টার-আউট-স্লেভ-ইন) পিনগুলি একসাথে সংযুক্ত করুন
  • এসসিএলকে (শেয়ার্ড ক্লক) পিন একসাথে সংযুক্ত করুন
  • MISO (মাস্টার-ইন-স্লেভ-আউট) পিনগুলিকে 220 ওহম প্রতিরোধকের সাথে সংযুক্ত করুন, যাতে চিপ থেকে অপ্রত্যাশিতভাবে উচ্চ ভোল্টেজ থেকে পাইকে রক্ষা করা যায়
  • চিপে রিসেট পিনের সাথে সরাসরি পাই -তে GPIO 25 সংযুক্ত করুন। প্রোগ্রামিং করার সময় Pi এই পিনটি কম টেনে নেয়, তাই আমরা প্রোগ্রামিং না করার সময় এটিকে 10K রেসিস্টর ব্যবহার করে উচ্চ করে রাখি, এবং 1K সুরক্ষা প্রতিরোধক সহ একটি LED ইতিবাচক ভোল্টেজের দিকে চলার জন্য যখন এটি প্রোগ্রামিং হয় তখন আমাদের কিছু সুন্দর ভিজ্যুয়াল ফিডব্যাক দেয়।

আমরা Pi এবং চিপের মধ্যে স্থল এবং শক্তি (3.3V) পিন সংযুক্ত করি যা আমরা প্রোগ্রাম করতে চাই। যদি আপনি ইতিমধ্যে জানেন না, রাস্পবেরি পাই এর পিনগুলি 5V সহনশীল নয় - যদি তাদের উপর 3.3V এর বেশি দেখা যায় তবে সেগুলি ক্ষতিগ্রস্ত হবে। যদি কোন কারণে প্রোগ্রাম করা চিপগুলি 5V পাওয়ারের প্রয়োজন হয়, আমরা Pi এর পিনগুলি রক্ষা করার জন্য একটি লেভেল শিফটার চিপ ব্যবহার করতে পারি, কিন্তু আমি 3.3V ব্যবহার করে কোনো সমস্যায় পড়িনি - তাই আমি এটিকে নিরাপদ এবং উপাদানগুলিতে সংরক্ষণ করার পরামর্শ দিই।

সবশেষে, আমরা চিপে XTAL পিন জুড়ে একটি 16MHz ক্রিস্টাল অসিলেটরকে সংযুক্ত করি, যা আমরা 22pF ক্যাপাসিটরের মাধ্যমে মাটির সাথেও সংযুক্ত করি। AVR চিপগুলি বিভিন্ন ফ্রিকোয়েন্সিগুলিতে চালানোর জন্য সেট করা যেতে পারে, এবং সেই ফ্রিকোয়েন্সি নির্ধারণের জন্য একটি অভ্যন্তরীণ বা বাহ্যিক উৎস ব্যবহার করার জন্য সেট করা যেতে পারে। যদি আপনার চিপটি একটি বহিরাগত স্ফটিককে তার ফ্রিকোয়েন্সি উত্স হিসাবে ব্যবহার করার জন্য সেট করা থাকে তবে আপনি এটি ছাড়া পুনরায় প্রোগ্রাম করতে পারবেন না। নাহলে এটা কোন ব্যাপার না।

আপনি পারফবোর্ডে আপনার মুচি সংযুক্তিকে একত্রিত করার জন্য একটি গাইড হিসাবে শেষ ছবিতে সার্কিট পরিকল্পিত ব্যবহার করতে পারেন। আপনার যতটুকু আইসি সকেট রয়েছে তার যতগুলি বা কয়েকটি ভিন্ন আকার থাকতে পারে, কেবল পাই এবং স্ফটিকের সাথে সমান্তরালভাবে উপযুক্ত পিনগুলি সংযুক্ত করুন। N. B. যদি আপনি আমার প্রোটোটাইপের ছবিটি গাইড হিসাবে ব্যবহার করেন, মনে রাখবেন যে আমি কিছু অতিরিক্ত হেডার পিন এবং সকেট যুক্ত করেছি যাতে আমি অসম্পূর্ণ কারণে পাইতে পিন অ্যাক্সেস করতে পারি।

ধাপ 2: ইনস্টল এবং Avrdude ব্যবহার

Avrdude ইনস্টল করা এবং ব্যবহার করা
Avrdude ইনস্টল করা এবং ব্যবহার করা
Avrdude ইনস্টল এবং ব্যবহার
Avrdude ইনস্টল এবং ব্যবহার
Avrdude ইনস্টল এবং ব্যবহার
Avrdude ইনস্টল এবং ব্যবহার
Avrdude ইনস্টল এবং ব্যবহার
Avrdude ইনস্টল এবং ব্যবহার

আপনার Pi এ avrdude ইনস্টল করতে, শুধু টাইপ করুন

sudo apt-get avrdude ইনস্টল করুন

আপনাকে SPI ইন্টারফেস সক্ষম করতে হবে, যদি এটি ইতিমধ্যেই চালু না করা থাকে। এটি করার জন্য একটি কমান্ড-লাইন উপায় আছে, কিন্তু রাস্পবেরি পাই কনফিগারেশন টুল ব্যবহার করা অনেক সহজ। প্রকার

sudo raspi-config

এবং SPI চালু করতে ইন্টারফেস অপশনে যান।

আপনার চিপটি ফ্ল্যাশ করার জন্য, আপনার পাই থেকে রিবন ক্যাবলটি পারফোর্ড সার্কিটের সংযোগকারীতে প্লাগ করুন এবং উপযুক্ত আইসি সকেটে চিপটি সন্নিবেশ করান (নিশ্চিত করুন যে এটি সঠিক পথে রয়েছে)।

একটি প্রোগ্রাম ফ্ল্যাশ করার সময়, আপনাকে অবশ্যই চিপে ফিউজগুলি সঠিকভাবে সেট করতে হবে। এগুলি আসলেই চিপের মধ্যে বিট যা আপনি সেট করতে বলেছিলেন যে কোন ঘড়ির গতিতে চলতে হবে, চিপ লেখার সময় EEPROM মুছে ফেলতে হবে, ইত্যাদি। engbedded.com/fusecalc এ দেওয়া ফিউজ ক্যালকুলেটর ব্যবহার করা অনেক সহজ। আপনি যে AVR অংশটি ব্যবহার করছেন তা নির্বাচন করুন এবং "বৈশিষ্ট্য নির্বাচন" এলাকায় আপনার পছন্দসই বিকল্পগুলি চয়ন করুন। আমি সাধারণত নিশ্চিত করি যে ঘড়ির সেটিংস ঠিক আছে এবং ডিফল্টভাবে অন্যান্য জিনিসগুলি ছেড়ে দিন। আপনি প্রায় সর্বদা "সিরিয়াল প্রোগ্রামিং সক্ষম" চেক এবং "রিসেট অক্ষম" আনচেকড ছেড়ে যেতে চান - অন্যথায় আপনি চিপটি পুনরায় প্রোগ্রাম করতে পারবেন না। যখন আপনার সঠিক সেটিংস থাকে, আপনি "বর্তমান সেটিংস" এলাকাটি নিচে স্ক্রোল করতে পারেন এবং ছবিতে দেখানো হিসাবে AVRDUDE আর্গুমেন্টগুলি অনুলিপি করতে পারেন।

ফিউজ সেট করতে, কমান্ড লিখুন

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p

যেখানে partname আপনার ব্যবহার করা চিপের সাথে মিলে যায়। আপনি sudo ardude -c linuxspi -p? Type লিখে অংশের নামের তালিকা খুঁজে পেতে পারেন। আপনার প্রোগ্রামটি ফ্ল্যাশ করতে, নিশ্চিত করুন যে এটি আপনার বর্তমান ডিরেক্টরিতে রয়েছে এবং প্রবেশ করুন

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U ফ্ল্যাশ: w:: i

উভয় কমান্ডের পরে, চিপটি পরিবর্তিত হওয়ার সময় LED জ্বলবে।

ধাপ 3: AVR- এ Arduino প্রোগ্রাম পাওয়া

AVR- তে Arduino প্রোগ্রাম পাওয়া
AVR- তে Arduino প্রোগ্রাম পাওয়া
AVR- তে Arduino প্রোগ্রাম পাওয়া
AVR- তে Arduino প্রোগ্রাম পাওয়া
AVR- এ Arduino প্রোগ্রাম পাওয়া
AVR- এ Arduino প্রোগ্রাম পাওয়া

এই নির্দেশনার মূল ফোকাস হল চিপগুলিতে ইতিমধ্যে সংকলিত প্রোগ্রামগুলি ঝলকানো, কীভাবে সেগুলি লিখতে বা সংকলন করা যায় তা নয়। যাইহোক, আমি ব্যাখ্যা করতে চেয়েছিলাম যে আপনি কিভাবে Arduino IDE ব্যবহার করে বাইনারি কম্পাইল করতে পারেন এবং এই পদ্ধতিটি ব্যবহার করে তাদের খালি AVR চিপে পেতে পারেন, যেহেতু Arduino শিখতে তুলনামূলকভাবে সহজ এবং অনেক টিউটোরিয়াল এবং উদাহরণ রয়েছে।

প্রথমে, আপনাকে AVR চিপগুলি সম্পর্কে তথ্য যোগ করতে হবে যা আপনি ঝলকানি দিবেন যাতে IDE তাদের জন্য কীভাবে কম্পাইল করতে হয় তা জানে। জেমস স্লেম্যান খুব সহায়কভাবে কিছু সেটআপ ফাইল একত্রিত করেছেন, যা গিথুব এ উপলব্ধ। সেগুলি ব্যবহার করতে, Arduino IDE- এ "পছন্দ" মেনু খুলুন এবং "অতিরিক্ত বোর্ড ম্যানেজার ইউআরএল" ক্ষেত্রের পাশের বাক্সে ক্লিক করুন। প্রদর্শিত ডায়ালগ বক্সে নিম্নলিখিত ইউআরএলগুলি অনুলিপি করুন এবং আটকান:

তারপরে, "সরঞ্জাম" মেনুতে যান এবং "বোর্ড" সাবমেনুতে "বোর্ড ম্যানেজার …" বিকল্পটি সন্ধান করুন। বোর্ড ম্যানেজার ডায়ালগ বক্সে তালিকার নীচে স্ক্রোল করুন এবং DIY ATmega এবং DIY ATtiny বোর্ড ইনস্টল করুন।

আপনার প্রোগ্রামগুলি কম্পাইল করার জন্য, প্রথমে নিশ্চিত করুন যে আপনি "প্রসেসর" মেনুতে সঠিক চিপ নির্বাচন করেছেন, সেইসাথে সঠিক প্রসেসর গতি। "বুটলোডার ব্যবহার করুন: না" বিকল্পটি নির্বাচন করুন, যেহেতু আমরা সরাসরি Pi দিয়ে আপলোড করব এবং এইভাবে অতিরিক্ত জায়গা ব্যবহার করতে পারি যা সাধারণত Arduino বুটলোডার দ্বারা নেওয়া হবে। এখন, "যাচাই করুন" বোতামটি ক্লিক করুন (চেক চিহ্ন)। এটি আপনার প্রোগ্রামটি আপলোড করার চেষ্টা না করে সংকলন করবে (যেহেতু আপনি নিজেই সেই পদক্ষেপটি করছেন)।

ধরে নিচ্ছি সবকিছু ঠিকঠাক চলছে, এখন আপনার কম্পাইলেড প্রোগ্রামটি আপনার পাইতে পেতে হবে। IDE তাদের একটি অস্থায়ী স্থানে লুকিয়ে রাখে, যেহেতু এটি প্রোগ্রামগুলি নিজেই আপলোড করার জন্য ডিজাইন করা হয়েছে। উইন্ডোজ এ, এটি আপনার ব্যবহারকারীর ডিরেক্টরিতে AppData/Local/Temp- এ, একটি ফোল্ডারে যা 'arduino_build' দিয়ে শুরু হয়।. Hex ফাইলটি দেখুন - এটি আপনার প্রোগ্রাম! এটি FTP এর মাধ্যমে অথবা একটি USB স্টিক দিয়ে আপনার Pi- এ পাঠান এবং আপনি ব্যবসা করছেন।

এটি করার জন্য আপনার প্রোগ্রামগুলি কম্পাইল করার জন্য আপনার একটি উইন্ডোজ পিসি বা ম্যাক থাকা প্রয়োজন, যা আপনি তারপর পাইকে পাঠান। এটি Pi তে এটি করতে সক্ষম হওয়া সত্যিই চতুর হবে, কিন্তু দুর্ভাগ্যবশত রাস্পবিয়ান সংগ্রহস্থলে উপলব্ধ Arduino IDE এর অফিসিয়াল সংস্করণটি পুরানো এবং বোর্ড ম্যানেজার নেই। এটি ছাড়া, খালি AVRs এর জন্য কম্পাইল করার জন্য উপযুক্ত সেটিংস যোগ করা একটু জটিল। আপনার পাইতে আরডুইনো -এর একটি সাম্প্রতিক সংস্করণ সংকলনের জন্য টিউটোরিয়াল রয়েছে - যদি আপনি এটি করতে চান তবে সেগুলি সন্ধান করুন! আমি মনে করি যে আইডিই লিনাক্সপি প্রোগ্রামার ব্যবহার করে আইডিই থেকে একটি চিপ ফ্ল্যাশ করা সম্ভব (যেমন "ডাউনলোড" বোতাম ব্যবহার করে), কিন্তু এটি আমার ধৈর্য এবং দক্ষতার স্তরের বাইরে - যদি আপনি জানেন একটি উপায়, মন্তব্য পোস্ট করুন! সবশেষে, আপনি সরাসরি AVR-C- এ প্রোগ্রামগুলি লিখতে পারেন এবং সেগুলি avr-gcc দিয়ে Pi তে কম্পাইল করতে পারেন, যা আপনাকে রাস্পবেরি পাইতে একটি সম্পূর্ণ AVR ডেভেলপমেন্ট প্ল্যাটফর্ম প্রদান করে। আমি এর একটি ছোট্ট কাজ করেছি, এবং যদি আপনি সেই পথে যেতে চান, আমি আপনাকে সালাম জানাই। ঝলকানি পান!

প্রস্তাবিত: