সুচিপত্র:
- ধাপ 1: হার্ডওয়্যার ডিজাইন
- ধাপ 2: সমাবেশ
- ধাপ 3: ফার্মওয়্যার: বুটলোডার প্রোগ্রামিং
- ধাপ 4: ফার্মওয়্যার: প্ল্যাটফর্ম আইও দিয়ে ফ্ল্যাশিং কোড
- ধাপ 5: ফার্মওয়্যার: নোঙ্গর ঝলকানো
- ধাপ 6: আরও এগিয়ে যাওয়া
ভিডিও: UWB স্থানীয়করণ পালক: 6 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
আল্ট্রা-ওয়াইডব্যান্ড পালক ডিকাওয়েভ DWM1000 মডিউল এবং একটি ATSAMD21 এআরএম কর্টেক্স এম 0 অ্যাডাফ্রুট পালক ফর্ম-ফ্যাক্টরের অন্তর্ভুক্ত করে। DWM1000 মডিউল হল একটি IEEE802.15.4-2011 UWB অনুকূল ওয়্যারলেস মডিউল যা নির্ভুলভাবে ইনডোর পজিশনিং এবং উচ্চ ডেটা রেট সক্ষম, যা এই বোর্ডকে রোবটিক্স প্রকল্পের জন্য উপযুক্ত করে তোলে যেখানে স্থানীয়করণের প্রয়োজন হয়।
বৈশিষ্ট্য:-স্পষ্টতা ট্র্যাকিংয়ের জন্য ডিকাওয়েভ DWM1000- দ্রুত এবং শক্তিশালী অ্যাপ্লিকেশনের জন্য এআরএম কর্টেক্স M0– বিস্তৃত বিদ্যমান ইকোসিস্টেমের সাথে একীভূত করার জন্য অ্যাডাফ্রুট পালক সামঞ্জস্যপূর্ণ program প্রোগ্রামিং এবং ডিবাগিং অ্যাপ্লিকেশনের জন্য SWD ইন্টারফেস– ইউএসবি-সি সংযোগকারী– ইন্টিগ্রেটেড লিপো ব্যাটারি চার্জার
সম্পূর্ণ প্রজেক্ট রাইট-আপ এবং আপডেটের জন্য আমার সাইটে প্রোটোটাইপিং কর্নারে এই প্রকল্পটি দেখুন prototypingcorner.io/projects/uwb-feather
এই প্রকল্পের জন্য উৎস হার্ডওয়্যার এবং সফ্টওয়্যার GitHub সংগ্রহস্থল থেকে পাওয়া যায়।
ধাপ 1: হার্ডওয়্যার ডিজাইন
ভূমিকাতে উল্লিখিত হিসাবে, UWB পালক মস্তিষ্কের জন্য একটি ATSAMD21 ARM Cortext M0+ এবং অতি-বিস্তৃত ব্যান্ড ওয়্যারলেসের জন্য একটি Decawave DWM1000 মডিউল, পালক ফর্ম-ফ্যাক্টর দ্বারা গঠিত। 2 স্তরের PCB- তে 20 টি BoM আইটেম নিয়ে নকশা তুলনামূলকভাবে সহজ। Pinout Adafruit M0 পালক সামঞ্জস্যপূর্ণ
LiPo চার্জিং MCP73831 সিঙ্গেল-সেল দ্বারা পরিচালিত হয়, সম্পূর্ণরূপে সমন্বিত চার্জ ম্যানেজমেন্ট কন্ট্রোলার। ব্যাটারি ভোল্টেজ D9 তে পর্যবেক্ষণ করা যেতে পারে, তবে সমস্ত IO- এর অ্যাক্সেস প্রয়োজন, JP1 এই পিন মুক্ত করার জন্য কাটা যাবে। 3.3 ভোল্ট রেগুলেশন AP2112K-3.3 কম ড্রপআউট লিনিয়ার রেগুলেটর দ্বারা প্রস্তুত করা হয়, যা 600mA পর্যন্ত সরবরাহ করে।
সহজ কোড বহনযোগ্যতার জন্য পিনআউট অ্যাডাফ্রুট এম 0 ফেদার লাইনের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ। DWM1000 IO লাইনগুলি SPI বাস এবং ডিজিটাল পিন 2, 3 এবং 4 এর সাথে RST, IRQ এবং SPI_CS সম্মানজনকভাবে (যা হেডারের মাধ্যমে প্রকাশ করা হয় না) সংযুক্ত থাকে। D13 এছাড়াও অনবোর্ড LED এর সাথে সংযুক্ত, যেমন অনেক Arduino- সামঞ্জস্যপূর্ণ বোর্ডের মধ্যে মান।
মাইক্রোসফট থেকে uf2-samdx1 এর মতো সংশ্লিষ্ট বুটলোডারের সাথে লোড করা হলে প্রোগ্রামিংটি SWD হেডারের উপর বা USB এর মাধ্যমে প্রিফর্ম করা যেতে পারে। আরো জন্য ফার্মওয়্যার দেখুন।
V1.0 এ নোট
এই বোর্ডের সংস্করণ 1-এ USB-C সংযোগকারীর সাথে একটি সমস্যা আছে। আমি যে পদচিহ্ন ব্যবহার করেছি তাতে এই উপাদানটির কাটআউট মাউন্ট পদ্ধতির জন্য প্রয়োজনীয় কাটআউট অন্তর্ভুক্ত ছিল না।
সংস্করণ 1.1 এর জন্য একটি সমাধান অন্তর্ভুক্ত করা হবে এবং সেইসাথে যারা এটি চান তাদের জন্য একটি মাইক্রো-বি সংযোগকারী যুক্ত করা হবে। নীচের সংস্করণ 1.1 বিবেচনা দেখুন।
বিল অফ ম্যাটেরিয়ালস এবং হার্ডওয়্যার ভার্সন ১.১ ডিজাইনের বিবেচনায় প্রজেক্ট রাইটআপ দেখুন।
ধাপ 2: সমাবেশ
শুধুমাত্র 20 BoM আইটেম এবং বেশিরভাগ উপাদান 0603 (2x ক্রিস্টাল ক্যাপাসিটার 0402) এর চেয়ে ছোট ছিল না, এই বোর্ডের হাতের সমাবেশ সহজ ছিল। আমি JLCPCB দ্বারা নির্মিত PCB এবং ঝাল স্টেনসিল ছিল ENIG সারফেস ফিনিস সহ ম্যাট ব্ল্যাক এ।
5 টি বোর্ডের মোট খরচ (যদিও 10 টির কোন দামের পার্থক্য ছিল না) এবং স্টেনসিল ছিল $ 68 AUD, তবে এর মধ্যে $ 42 শিপিং ছিল। JLCPCB এবং বোর্ড থেকে প্রথমবার অর্ডার করা চমৎকার ফিনিশিং সহ খুব উন্নত মানের ছিল।
ধাপ 3: ফার্মওয়্যার: বুটলোডার প্রোগ্রামিং
সেগার থেকে জে-লিংকের মতো প্রোগ্রামার ব্যবহার করে ফার্মওয়্যার SWD সংযোগকারীর উপর লোড করা যায়। উপরে দেখানো হয়েছে J-Link EDU Mini। বোর্ডের প্রোগ্রামিং শুরু করার জন্য, আমাদের বুটলোডার লোড করতে হবে তারপর আমাদের টুল চেইন সেট আপ করতে হবে।
আমি বুটলোডার ফ্ল্যাশ করার জন্য Atmel স্টুডিও ব্যবহার করব। এটি করার জন্য, জে-লিংকে প্লাগ ইন করুন এবং এটমেল স্টুডিও খুলুন। তারপর সরঞ্জাম> ডিভাইস প্রোগ্রামিং নির্বাচন করুন। টুলের অধীনে জে-লিঙ্ক নির্বাচন করুন এবং ডিভাইসটিকে ATSAMD21G18A তে সেট করুন তারপর প্রয়োগ করুন ক্লিক করুন।
জে-লিংককে পালক SWD হেডারের সাথে সংযুক্ত করুন এবং ইউএসবি বা ব্যাটারির মাধ্যমে শক্তি প্রয়োগ করুন। একবার সংযুক্ত হয়ে গেলে, ডিভাইস স্বাক্ষরের অধীনে পড়ুন ক্লিক করুন। ডিভাইস স্বাক্ষর এবং টার্গেট ভোল্টেজ টেক্সট বক্স অনুযায়ী প্রচার করা উচিত। যদি তারা সংযোগগুলি পরীক্ষা না করে আবার চেষ্টা করে।
বুটলোডার ফ্ল্যাশ করার জন্য আমাদের প্রথমে বুটপ্রট ফিউজ নিষ্ক্রিয় করতে হবে। এটি করার জন্য Fuses> USER_WORD_0. NVMCTRL_BOOTPROT নির্বাচন করুন এবং 0 বাইটে পরিবর্তন করুন। পরিবর্তনগুলি আপলোড করতে প্রোগ্রামে ক্লিক করুন।
এখন আমরা স্মৃতি> ফ্ল্যাশ নির্বাচন করে বুটলোডারকে ফ্ল্যাশ করতে পারি এবং বুটলোডারের অবস্থান নির্ধারণ করতে পারি। প্রোগ্রামিং সিলেক্ট করার আগে Erase Flash নিশ্চিত করুন এবং Program এ ক্লিক করুন। সব ঠিক থাকলে বোর্ডে D13 পালস শুরু করা উচিত।
এখন আপনাকে 8kB বুটলোডারের আকারে BOOTPROT ফিউজ সেট করতে হবে। এটি করার জন্য Fuses> USER_WORD_0. NVMCTRL_BOOTPROT নির্বাচন করুন এবং 8192 বাইটে পরিবর্তন করুন। পরিবর্তনগুলি আপলোড করতে প্রোগ্রামে ক্লিক করুন।
এখন যেহেতু বুটলোডারটি ফ্ল্যাশ করা হয়েছে D13 স্পন্দিত হওয়া উচিত এবং যদি USB এর মাধ্যমে প্লাগ ইন করা হয় তবে একটি ভর সঞ্চয় ডিভাইস উপস্থিত হওয়া উচিত। এখানেই বোর্ডের প্রোগ্রামিংয়ের জন্য UF2 ফাইল আপলোড করা যায়।
ধাপ 4: ফার্মওয়্যার: প্ল্যাটফর্ম আইও দিয়ে ফ্ল্যাশিং কোড
ফার্মওয়্যার UF2 প্রোটোকলের মাধ্যমে অথবা সরাসরি SWD ইন্টারফেসের মাধ্যমে আপলোড করা যায়। এখানে আমরা PlatformIO ব্যবহার করব এর সহজ এবং সরলতার জন্য। শুরু করার জন্য একটি নতুন PIO প্রকল্প তৈরি করুন এবং টার্গেট বোর্ড হিসাবে Adafruit Feather M0 নির্বাচন করুন। একটি জে-লিঙ্ক দিয়ে SWD- এ আপলোড করার সময়, আপলোড_প্রোটোকলটি প্ল্যাটফর্মিও.নি-তে সেট করুন।
[env: adafruit_feather_m0] প্ল্যাটফর্ম = atmelsam বোর্ড = adafruit_feather_m0 ফ্রেমওয়ার্ক = arduino upload_protocol = jlink
এখন আপনি Arduino কাঠামোর সরলতার সাথে বোর্ড প্রোগ্রাম করতে পারেন।
ধাপ 5: ফার্মওয়্যার: নোঙ্গর ঝলকানো
DWM1000 মডিউলগুলি নোঙ্গর বা ট্যাগ হিসাবে কনফিগার করা যেতে পারে। সাধারণত নোঙ্গরগুলি পরিচিত স্থির অবস্থানে রাখা হয় এবং ট্যাগগুলি তাদের একটি আপেক্ষিক অবস্থান পেতে নোঙ্গর ব্যবহার করে। DWM1000 মডিউল পরীক্ষা করার জন্য আপনি GitHub সংগ্রহস্থল থেকে DW1000-Anchor উদাহরণ আপলোড করতে পারেন।
PIO হোম থেকে PlatformIO- এর সাথে এই প্রোগ্রামটি ফ্ল্যাশ করার জন্য, Open Project নির্বাচন করুন তারপর GitHub সংগ্রহস্থলে DW1000-Anchor ফোল্ডারের অবস্থান খুঁজুন। তারপরে PIO আপলোড বোতামে ক্লিক করুন এবং এটি স্বয়ংক্রিয়ভাবে সংযুক্ত ডিবাগ প্রোবটি খুঁজে পাবে (এটি সংযুক্ত এবং বোর্ডটি চালিত তা নিশ্চিত করুন)।
ট্যাগ ফার্মওয়্যার অন্য বোর্ডে আপলোড করতে হবে। তারপর ফলাফল একটি সিরিয়াল টার্মিনালে দেখা যাবে।
ধাপ 6: আরও এগিয়ে যাওয়া
এই প্রকল্পের আরও উন্নতিতে একটি নতুন DW1000 লাইব্রেরির উন্নয়ন অন্তর্ভুক্ত করা হবে, V1.1 বোর্ড অন্যান্য প্রকল্প পরিবর্তন করে যা এই পরিসীমা প্রযুক্তি ব্যবহার করে। যদি পর্যাপ্ত আগ্রহ থাকে তবে আমি এই বোর্ডগুলি উত্পাদন এবং বিক্রয় বিবেচনা করব।
পড়ার জন্য ধন্যবাদ. নীচের মন্তব্যগুলিতে কোন চিন্তা বা সমালোচনা ছেড়ে দিন এবং প্রোটোটাইপিং কর্নারে প্রকল্পটি দেখতে ভুলবেন না
প্রস্তাবিত:
Kinect সঙ্গে Mannequin মাথা শব্দ স্থানীয়করণ: 9 ধাপ (ছবি সহ)
Kinect সঙ্গে Mannequin মাথা সাউন্ড লোকালাইজিং: মার্গারেট, একটি ড্রাইভার ক্লান্তি পর্যবেক্ষণ সিস্টেমের জন্য একটি পরীক্ষার ডামি দেখা। তিনি সম্প্রতি তার দায়িত্ব থেকে অবসর নিয়েছেন এবং আমাদের অফিসের জায়গায় তার পথ খুঁজে পেয়েছেন, এবং তখন থেকে যারা তাদের মনে করেন তিনি 'ভয়ঙ্কর' তাদের দৃষ্টি আকর্ষণ করেছেন। ন্যায়বিচারের স্বার্থে, আমি
আমার প্রথম পালক উইং: এনালগ-টু-ডিজিটাল কনভার্টার: 5 টি ধাপ
আমার প্রথম পালক উইং: এনালগ-টু-ডিজিটাল কনভার্টার: হ্যালো, আমার সহকর্মী নির্মাতারা! আজকের নির্দেশনা সত্যিই বিশেষ কিছু সম্পর্কে। এই ডিভাইসটি আমার প্রথম ফেটারওয়িং - অ্যাডাফ্রুট এর ফর্ম -ফ্যাক্টর অনুসরণ করে। এটি আমার প্রথম সারফেস মাউন্ট করা পিসিবি! এই ieldালটির আমার সবচেয়ে উল্লেখযোগ্য ব্যবহার এমন একটি ডিভাইসে যা আমি পাগল
Adafruit পালক NRF52 কাস্টম নিয়ন্ত্রণ, কোন কোডিং প্রয়োজন: 8 টি ধাপ (ছবি সহ)
Adafruit Feather NRF52 কাস্টম কন্ট্রোল, কোন কোডিং আবশ্যক: 23 এপ্রিল 2019 আপডেট করুন - শুধুমাত্র Arduino মিলিস ব্যবহার করে তারিখ/সময় প্লটগুলির জন্য () মিলিস () এবং PfodApp ব্যবহার করে Arduino তারিখ/সময় প্লটিং/লগিং দেখুন সর্বশেষ বিনামূল্যে pfodDesigner V3.0.3610+ তৈরি তারিখ/সময়ের বিপরীতে ডেটা চক্রান্ত করার জন্য আরডুইনো স্কেচ সম্পূর্ণ করুন
Intelligrill®, পালক দ্বারা চালিত।: 7 টি ধাপ (ছবি সহ)
ইন্টেলিজ্রিল®, পালক দ্বারা চালিত ।: " ইন্টেলিজ্রিল &রেগ; একটি ওয়াইফাই সক্ষম দূরবর্তী গ্রিল, ধূমপায়ী এবং ওভেন থার্মোমিটার যখন " প্রধান কোর্স " পরিবেশন করতে প্রস্তুত হবে। প্রতিনিয়ত পর্যবেক্ষণ করে
পর্ব 16: পালক অ্যালার্ম ঘড়ি: 3 ধাপ
পর্ব 16: পালক বিপদাশঙ্কা ঘড়ি: আপনি কি প্রতিদিন সকালে সেই বিরক্তিকর অ্যালার্ম ঘড়ির বাজারের জন্য ঘুম থেকে উঠে ক্লান্ত হয়ে পড়েছেন? আপনি কি জেগে ওঠার জন্য একটি শান্ত এবং আরো নরম উপায় চান? আচ্ছা, আমরা এখানে বোকা আবিষ্কারে জানি কিভাবে অনুভব করা! যে কারণে আমরা ফেদার অ্যালার তৈরি করেছি