সুচিপত্র:

প্রোগ্রামিং Arduino ওভার দ্য এয়ার (OTA) - Ameba Arduino: 4 ধাপ
প্রোগ্রামিং Arduino ওভার দ্য এয়ার (OTA) - Ameba Arduino: 4 ধাপ

ভিডিও: প্রোগ্রামিং Arduino ওভার দ্য এয়ার (OTA) - Ameba Arduino: 4 ধাপ

ভিডিও: প্রোগ্রামিং Arduino ওভার দ্য এয়ার (OTA) - Ameba Arduino: 4 ধাপ
ভিডিও: CS50 2015 - Week 4 2024, ডিসেম্বর
Anonim
প্রোগ্রামিং Arduino ওভার দ্য এয়ার (OTA) - Ameba Arduino
প্রোগ্রামিং Arduino ওভার দ্য এয়ার (OTA) - Ameba Arduino

বাজারে অনেক ওয়াই-ফাই মাইক্রোকন্ট্রোলার আছে, অনেক নির্মাতারা তাদের ওয়াই-ফাই মাইক্রোকন্ট্রোলার Arduino IDE ব্যবহার করে প্রোগ্রামিং উপভোগ করে। যাইহোক, একটি ওয়াই-ফাই মাইক্রোকন্ট্রোলার যে শীতল বৈশিষ্ট্যগুলি অফার করে তা উপেক্ষা করার প্রবণতাগুলির মধ্যে একটি, এটি ওটিএ (ওভার-দ্য-এয়ার) ফাংশন ব্যবহার করে দূরবর্তী এবং ওয়্যারলেসভাবে আপনার কোডটি প্রোগ্রামিং এবং আপলোড করা।

এই নির্দেশাবলীতে, আমি আপনাকে দেখাবো কিভাবে আপনার ওয়াই-ফাই মাইক্রোকন্ট্রোলারে ওটিএ সেট আপ করবেন আমেবা আরডুইনো ওয়াই-ফাই মাইক্রোকন্ট্রোলারে সর্বব্যাপী আরডুইনো আইডিই ব্যবহার করে!

সরবরাহ

Ameba Arduino x 1

ধাপ 1: ওটিএ

ওটিএ
ওটিএ

ওটিএ (ওভার-দ্য-এয়ার) ইন্টারনেটের মাধ্যমে অনলাইন আপগ্রেড প্রক্রিয়াকে বোঝায়।

Arduino IDE ওটিএ বৈশিষ্ট্য প্রদান করে, যা উপরের চিত্রে কর্মপ্রবাহ অনুসরণ করে।

(i) Arduino IDE স্থানীয় নেটওয়ার্কে Arduino IDEOTA পরিষেবা সহ ডিভাইসগুলির জন্য mDNS এর মাধ্যমে অনুসন্ধান করে।

(ii) যেহেতু এমডিএনএস পরিষেবা আমেবাতে চলছে, আমেবা এমডিএনএস অনুসন্ধানে সাড়া দেয় এবং সংযোগের জন্য নির্দিষ্ট টিসিপি পোর্ট খুলে দেয়।

(iii) ব্যবহারকারী Arduino IDE তে প্রোগ্রাম তৈরি করে। সম্পূর্ণ হলে, নেটওয়ার্ক পোর্ট নির্বাচন করুন।

(iv) আপলোড ক্লিক করুন। তারপর Arduino IDE TCP এর মাধ্যমে OTA ইমেজটি আমেবাকে পাঠায়, Ameba ছবিটি নির্দিষ্ট ঠিকানায় সেভ করে এবং পরের বার এই ইমেজ থেকে বুট করার জন্য বুট অপশন সেট করে।

ওয়ার্কফ্লো তিনটি অংশ নিয়ে গঠিত: mDNS, TCP এবং OTA ইমেজ প্রসেস। MDNS সম্পর্কিত বিস্তারিত বিবরণ mDNS টিউটোরিয়ালে বর্ণিত হয়েছে। টিসিপি সকেট প্রোগ্রামিং ইমেজ ট্রান্সফারে ব্যবহৃত হয় এবং ইতিমধ্যেই ওটিএ এপিআই -তে দেওয়া আছে।

পরের অংশে, আমরা কিভাবে OTA ইমেজ প্রসেস করতে হয় তা নিয়ে আলোচনা করব, এবং Ameba ফ্ল্যাশ মেমরি লেআউট এবং বুট ফ্লো সম্পর্কে কিছু প্রাথমিক জ্ঞান প্রবর্তন করব।

ধাপ 2: আমেবা ফ্ল্যাশ মেমরি লেআউট

আমেবা ফ্ল্যাশ মেমরি লেআউট
আমেবা ফ্ল্যাশ মেমরি লেআউট

Ameba RTL8195A এর ফ্ল্যাশ মেমরির আকার 2MB, 0x00000000 থেকে 0x00200000 পর্যন্ত। যাইহোক, Ameba RTL8710 এর ফ্ল্যাশ মেমরির সাইজ 1MB। বিভিন্ন বোর্ডের ব্যবহার ফিট করার জন্য, আমরা অনুমান করি ফ্ল্যাশ মেমরি লেআউট 1MB।

উপরের চিত্রে দেখানো হয়েছে, আমেবা প্রোগ্রাম ফ্ল্যাশ মেমরির তিনটি অংশ দখল করে:

- বুট ইমেজ

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

- ডিফল্ট ছবি 2

এই অংশে ডেভেলপার কোড স্থাপন করা হয়েছে, ঠিকানাটি 0x0000B000 থেকে শুরু হয়। প্রথম 16 বাইট হল ছবির শিরোনাম, 0x0000B008 ~ 0x0000B00F স্বাক্ষর রয়েছে, যা ছবিটি বৈধ কিনা তা যাচাই করতে ব্যবহৃত হয়। স্বাক্ষর ক্ষেত্রের পুরাতন চিত্র থেকে নতুন চিত্রকে আলাদা করার জন্য দুটি বৈধ মান রয়েছে।

- ওটিএ ইমেজ

এই অংশের ডেটাও ডেভেলপার কোড। ডিফল্টরূপে, মেমরির এই অংশটি 0x00080000 থেকে শুরু হয় (পরিবর্তন করা যায়)। OTA ইমেজ এবং ডিফল্ট ইমেজ 2 এর মধ্যে প্রধান পার্থক্য হল ফ্ল্যাশ মেমরি ঠিকানা এবং স্বাক্ষর মান।

কোড ছাড়াও, কিছু ডেটা ব্লক রয়েছে:

- সিস্টেম ডেটা

সিস্টেম ডেটা ব্লক 0x00009000 থেকে শুরু হয়। দুটি OTA- সম্পর্কিত তথ্য রয়েছে:

1. OTA ঠিকানা : 4 বাইট ডেটা 0x00009000 থেকে শুরু। এটি OTA ইমেজ ঠিকানা বলে। যদি OTA ঠিকানা মান অবৈধ হয় (যেমন, 0xFFFFFFFF), ফ্ল্যাশ মেমরিতে OTA ইমেজ সঠিকভাবে লোড করা যাবে না।

2. রিকভারি পিন : 4 বাইট ডেটা 0x00009008 থেকে শুরু করে, রিকভারি পিন কোন ইমেজ (ডিফল্ট ইমেজ 2 বা ওটিএ ইমেজ) চালানোর জন্য ব্যবহার করা হয় যখন উভয় ইমেজই বৈধ। যদি পুনরুদ্ধারের পিনের মান অবৈধ হয় (যেমন, 0xFFFFFFFF), নতুন ছবিটি ডিফল্টরূপে কার্যকর করা হবে।

সিস্টেম ডেটা মুছে ফেলা হবে যখন আমরা DAP এর মাধ্যমে Ameba তে প্রোগ্রাম আপলোড করব। অর্থাৎ, ওটিএ ঠিকানা সরানো হবে এবং আমেবা নির্ধারণ করবে যে ওটিএ ইমেজ নেই।

- ক্রমাঙ্কন ডেটা : পেরিফেরাল ক্রমাঙ্কন তথ্য এই ব্লকে স্থাপন করা হয়। সাধারণত এই ডেটা মুছে ফেলা উচিত নয়।

ধাপ 3: বুট ফ্লো

বুট ফ্লো
বুট ফ্লো

উপরের ছবি থেকে, আমরা নিম্নলিখিত পরিস্থিতি নিয়ে আলোচনা করি: (i) OTA ব্যবহার করা হয় না, প্রোগ্রাম আপলোড করতে DAP ব্যবহার করুন:

এই অবস্থায়, বুটলোডার ডিফল্ট ইমেজ 2 এবং ওটিএ ঠিকানার স্বাক্ষর পরীক্ষা করে। যেহেতু OTA ঠিকানাটি সরানো হয়েছে, চালানোর জন্য ডিফল্ট ইমেজ 2 নির্বাচন করা হবে।

(ii) ওটিএ ইমেজ আমেবাতে স্থানান্তরিত হয়, ওটিএ ঠিকানা সঠিকভাবে সেট করা হয়, পুনরুদ্ধারের পিন সেট করা হয় না

আমেবা ওটিএর মাধ্যমে আপডেট করা ছবি পেয়েছে, ডিফল্ট ইমেজ 2 এর স্বাক্ষর পুরানো স্বাক্ষরে সেট করা হবে।

বুটলোডার ডিফল্ট ইমেজ 2 এবং ওটিএ ঠিকানার স্বাক্ষর পরীক্ষা করে। এটি খুঁজে পাবে OTA ঠিকানায় একটি বৈধ OTA ইমেজ রয়েছে। যেহেতু রিকভারি পিন সেট করা নেই, এটি এক্সিকিউট করার জন্য নতুন ইমেজ (যেমন, ওটিএ ইমেজ) বেছে নেয়।

(iii) ওটিএ ইমেজ আমেবাতে স্থানান্তরিত হয়, ওটিএ ঠিকানা সঠিকভাবে সেট করা হয়, পুনরুদ্ধারের পিন সেট করা হয়

আমেবা ওটিএর মাধ্যমে আপডেট করা ছবি পেয়েছে, ডিফল্ট ইমেজ 2 এর স্বাক্ষর পুরানো স্বাক্ষরে সেট করা হবে।

বুটলোডার ডিফল্ট ইমেজ 2 এবং ওটিএ ঠিকানার স্বাক্ষর পরীক্ষা করে। এটি OTA ঠিকানায় একটি বৈধ OTA ইমেজ খুঁজে পাবে। তারপর পুনরুদ্ধার পিন মান চেক করুন। যদি পুনরুদ্ধারের পিনটি LOW এর সাথে সংযুক্ত থাকে, তবে নতুন চিত্র (যেমন, OTA চিত্র) কার্যকর করা হবে। যদি পুনরুদ্ধারের পিনটি উচ্চতার সাথে সংযুক্ত থাকে, পুরানো চিত্র (যেমন, ডিফল্ট চিত্র 2) কার্যকর করা হবে।

ধাপ 4: উদাহরণ

উদাহরণ
উদাহরণ
উদাহরণ
উদাহরণ
উদাহরণ
উদাহরণ
উদাহরণ
উদাহরণ

OTA ফিচারটি ব্যবহার করতে, অনুগ্রহ করে DAP ফার্মওয়্যারটিকে সংস্করণ> 0.7 এ আপগ্রেড করুন (v0.7 অন্তর্ভুক্ত নয়)। কারখানার ডিফল্ট ডিএপি ফার্মওয়্যার সংস্করণ 0.7। DAP ফার্মওয়্যার আপগ্রেড করার জন্য অনুগ্রহ করে নির্দেশাবলী অনুসরণ করুন:

উদাহরণ খুলুন: "ফাইল" -> "উদাহরণ" -> "অ্যামিবাওটা" -> "ota_basic"

নেটওয়ার্ক সংযোগের জন্য নমুনা কোডে ssid এবং পাসওয়ার্ড তথ্য পূরণ করুন।

ওটিএ সম্পর্কিত কিছু পরামিতি রয়েছে:

§ MY_VERSION_NUMBER first প্রথম সংস্করণে, আমাদের OTA ঠিকানা এবং পুনরুদ্ধারের পিন সেট করতে হবে। যেহেতু এই সময় আমরা ইউএসবি এর মাধ্যমে আপলোড করি এটি প্রথম সংস্করণ, তাই আমাদের এই মান পরিবর্তন করার দরকার নেই।

§ OTA_PORT : Arduino IDE এমডিএনএস এর মাধ্যমে আমেবা খুঁজে পাবে। আমেবা Arduino IDE কে বলবেন যে এটি OTA ইমেজের জন্য অপেক্ষা করার জন্য TCP পোর্ট 5000 খুলবে।

§ RECOVERY_PIN recovery পুনরুদ্ধারের জন্য ব্যবহৃত পিন কনফিগার করুন। আমরা এখানে পিন 18 ব্যবহার করি।

তারপর আমরা ইউএসবি আপলোড প্রোগ্রাম ব্যবহার করি আমেবাতে। সরঞ্জামগুলিতে ক্লিক করুন -> পোর্ট, ব্যবহার করতে সিরিয়াল পোর্ট চেক করুন

অনুগ্রহ করে মনে রাখবেন যে Arduino IDE আপলোড প্রোগ্রাম এবং আউটপুটলগের জন্য একটি পোর্ট ব্যবহার করে। যখন আমরা OTA ব্যবহার করি তখন লগ আউটপুট হতে পারে না এমন পরিস্থিতি এড়াতে, আমরা লগ বার্তা দেখার জন্য সিরিয়াল মনিটরের পরিবর্তে অন্যান্য সিরিয়াল পোর্ট টার্মিনাল (যেমন, টেরা টার্ম বা পুটি) ব্যবহার করি।

তারপর আপলোড ক্লিক করুন এবং রিসেট বোতাম টিপুন।

লগ বার্তায়:

1. "===== চিত্র 1 ====" এবং "চিত্র 2 প্রবেশ করুন ====" এর মধ্যে, আপনি "ফ্ল্যাশ ইমেজ 2: অ্যাডর 0xb000" খুঁজে পেতে পারেন। এর মানে হল Ameba ডিফল্ট ইমেজ 2 থেকে 0xb000 এ বুট করার সিদ্ধান্ত নেয়।

2. "চিত্র 2 প্রবেশ করুন ====" এর পরে, আপনি "এটি সংস্করণ 1" খুঁজে পেতে পারেন। এটি লগ বার্তা যা আমরা স্কেচে যোগ করি।

3. আমেবা AP এর সাথে সংযুক্ত হওয়ার পরে এবং IP ঠিকানা "192.168.1.238" পাওয়ার পর, এটি mDNS সক্রিয় করে এবং ক্লায়েন্টের জন্য অপেক্ষা করে।

পরবর্তী, আমরা "MY_VERSION_NUMBER" কে 2 তে পরিবর্তন করি।

"সরঞ্জাম" -> "পোর্ট" এ ক্লিক করুন, আপনি "নেটওয়ার্ক পোর্ট" এর একটি তালিকা দেখতে পারেন। "MyAmeba at 192.168.1.238 (Ameba RTL8195A)" খুঁজুন, MyAmeba হল mDNS ডিভাইসের নাম যা আমরা নমুনা কোডে সেট করেছি এবং "192.168.1.238" হল Ameba এর IP।

যদি আপনি Ameba এর নেটওয়ার্কপোর্ট খুঁজে না পান, অনুগ্রহ করে নিশ্চিত করুন:

- আপনার কম্পিউটার এবং আমেবা একই স্থানীয় নেটওয়ার্কে আছে কিনা?

- Arduino IDE পুনরায় চালু করার চেষ্টা করুন।

- সিরিয়া মনিটরে লগ মেসেজ চেক করে দেখুন আমেবা সফলভাবে AP এর সাথে সংযুক্ত কিনা।

তারপর আপলোড ক্লিক করুন। এবার TCP এর মাধ্যমে প্রোগ্রামটি আপলোড করা হবে। লগ টার্মিনালে, আপনি ক্লায়েন্ট সংযোগের তথ্য দেখতে পারেন।

যখন ওটিএ ইমেজ সফলভাবে ডাউনলোড করা হয়, আমেবা পুনরায় বুট করবে এবং লগ টার্মিনালে ফলো করা লগ দেখানো হবে।

- "===== চিত্র 1 ====" এবং "চিত্র 2 লিখুন ====" এর মধ্যে, আপনি "ফ্ল্যাশ ইমেজ 2: অ্যাডর 0x80000" একটি লগ বার্তা দেখতে পারেন। এর মানে হল আমেবা 0x80000 এ OTA ইমেজ থেকে বুট করার সিদ্ধান্ত নেয়।

- "চিত্র 2 প্রবেশ করুন ====" এর পরে, লগ "এটি হল সংস্করণ 2" আমরা স্কেচে যোগ করা বার্তা।

আমেবাতে ওটিএ ইমেজ ডাউনলোড হওয়ার পর আগের ছবিটি পুনরুদ্ধার করার জন্য, দয়া করে আমরা স্কেচে (অর্থাৎ পিন 18) সেট করা রিকভারি পিনটি হাই (3.3V) এর সাথে সংযুক্ত করুন এবং রিসেট টিপুন।

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

আমরা নিচের চিত্রে OTA ব্যবহার করে উন্নয়ন প্রবাহের সংক্ষিপ্তসার করেছি।

প্রস্তাবিত: