সুচিপত্র:
- সরবরাহ
- ধাপ 1: অপটিক্যাল এনকোডার
- ধাপ 2: 3D মুদ্রিত অংশ
- ধাপ 3: তারের ডায়াগ্রাম
- ধাপ 4: Arduino কোড
- ধাপ 5: প্রথম স্ক্যান
ভিডিও: XYZ পয়েন্ট স্ক্যানার উদ্ধার করা রোটারি এনকোডার ব্যবহার করে: 5 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 07:59
আমার কর্মস্থল থেকে প্রচুর পরিমাণে ফেলে দেওয়া রোটারি অপটিক্যাল এনকোডারগুলি অর্জন করার পরে, আমি অবশেষে তাদের সাথে কিছু মজা/দরকারী করার সিদ্ধান্ত নিয়েছি।
আমি সম্প্রতি আমার বাড়ির জন্য একটি নতুন 3D প্রিন্টার কিনেছি এবং এটি 3D স্ক্যানারের চেয়ে ভাল কি প্রশংসা করতে পারে! এই প্রকল্পটি আমাকে প্রয়োজনীয় যন্ত্রাংশ তৈরির জন্য আমার 3 ডি প্রিন্টার নিয়োগের নিখুঁত সুযোগও দিয়েছে।
সরবরাহ
অপটিক্যাল এনকোডার এবং সংশ্লিষ্ট অপটিক্যাল সেন্সর
আরডুইনো ইউএনও
alচ্ছিক প্রোটোটাইপিং ieldাল
ইস্পাত-বার রেল
একটি 3D প্রিন্টারে অ্যাক্সেস
ধাপ 1: অপটিক্যাল এনকোডার
এই প্রকল্পের জন্য প্রায় যেকোনো ঘূর্ণমান এনকোডার ব্যবহার করা যেতে পারে, যতক্ষণ এটি আপনাকে প্রতি মিমি অপেক্ষাকৃত উচ্চ সংখ্যক 'ক্লিক' প্রদান করে। স্পষ্টতই বিভিন্ন এনকোডারগুলির একটি উপযুক্ত মাউন্ট সমাধানের প্রয়োজন হবে।
আমি ফটো-সেন্সরের জন্য ওয়্যারিং ডায়াগ্রাম খুঁজে বের করতে একটি ধারাবাহিকতা মিটার ব্যবহার করেছি।
ধাপ 2: 3D মুদ্রিত অংশ
এই অংশগুলি ঘূর্ণমান এনকোডারগুলি রাখে এবং রেলের জন্য একটি স্লাইড সরবরাহ করে। একক এনকোডার হাউজিংয়ের পিছনে দুটি গর্ত রয়েছে যাতে ক্রস রেলগুলি মাউন্ট করা যায়। দ্বৈত এনকোডার হাউজিংটি কেবল দুটি একক হাউজিং ডান কোণে একত্রিত হয়।
আমি ফিউশন 360 এ এই মাউন্টগুলি আমার এনকোডার এবং রেলগুলির পছন্দ অনুসারে ডিজাইন করেছি, এনকোডারের শ্যাফ্টে স্লিংশট রাবারের শীটের একটি ছোট টুকরা রয়েছে, যাতে এটি স্টেইনলেস স্টিলের খাদকে আরও ভালভাবে ধরতে সাহায্য করে।
আপনি চান যে খাদটি অবাধে স্লাইড করতে হবে এবং উল্লম্বভাবে ধরে রাখার সময় হাউজিংয়ের মধ্য দিয়ে পড়ে যেতে হবে, তবুও এটি এনকোডারের উপর স্লিপ না করার জন্য যথেষ্ট চাপ প্রয়োগ করতে হবে। আমার জন্য যা কাজ করেছে তা হল শ্যাফটের জন্য স্লাইডকে 0.5 মিমি দ্বারা এনকোডার শ্যাফ্টের সাথে ওভারল্যাপ করার অনুমতি দেওয়া। স্লিংশট রাবার সেই পরিমাণ দ্বারা বিকৃত এবং ভাল ট্র্যাকশন সরবরাহ করার জন্য যথেষ্ট নরম।
ধাপ 3: তারের ডায়াগ্রাম
সার্কিট খুবই সহজ। অপটো-সেন্সরগুলির জন্য আইআর এমিটার ডায়োডের জন্য কিছু স্রোত, ফটো-ডায়োডের জন্য একটি স্থল এবং পুল-আপ প্রতিরোধক প্রয়োজন।
আমি ইন-সিরিজ এমিটার ডায়োডের জন্য 5mA সিদ্ধান্ত নিয়েছি, এই বিশেষ এনকোডারে ডায়োড জুড়ে ভোল্টেজ ড্রপ 3.65V। আমি Arduino থেকে একটি 5V সরবরাহ ব্যবহার করছি, যা প্রতিরোধকের জন্য 1.35V ছেড়ে দেয়, 5mA এ এটি 270 ওহম হতে পারে।
পুল-আপের জন্য 10k ওহম নির্বাচন করা হয়েছিল কারণ ফটো-ডায়োডগুলি কেবল একটি ছোট কারেন্ট ডুবিয়ে দিতে পারে, পুশ বোতামের জন্যও 10k ওহম ব্যবহার করা হয়েছিল। ইতিমধ্যে মাটির সাথে সংযুক্ত প্রোটোটাইপ বোর্ডে ব্যবহারের জন্য একটি বোতাম রয়েছে, এটি কেবল একটি পুল-আপ প্রতিরোধক সরবরাহ করুন এবং এটি পছন্দসই ইনপুট পিনে সংযুক্ত করুন।
ধাপ 4: Arduino কোড
কোডটির একটু ব্যাখ্যা প্রয়োজন কারণ এর অপারেশন অবিলম্বে সুস্পষ্ট নাও হতে পারে, তবুও দ্রুত 3 এনকোডার প্রক্রিয়া করতে সক্ষম হওয়ার জন্য এটিকে অপ্টিমাইজ করতে হয়েছিল।
প্রথমত আমরা কেবলমাত্র নির্দেশের তথ্য প্রক্রিয়া করতে চাই যদি এনকোডার অবস্থানে পরিবর্তন ঘটে।
পরিবর্তন = new_value ^ সংরক্ষিত মান;
আমার এনকোডার থেকে আরো রেজোলিউশন পেতে আমি উভয় উত্থান এবং পতন প্রান্ত প্রক্রিয়া ছিল।
আমার সেটআপে আমার রেজুলেশন হল প্রতি 1 সেমি 24 ক্লিক।
এটি আমাদের কয়েকটি দৃশ্যের সাথে ছেড়ে দেয়।
S1 ধ্রুব 0 এবং S2 0 থেকে 1 পর্যন্ত টগল করে
S1 ধ্রুব 0 এবং S2 1 থেকে 0 পর্যন্ত টগল করে
S1 ধ্রুবক 1 এবং S2 0 থেকে 1 পর্যন্ত টগল করে
S1 ধ্রুবক 1 এবং S2 1 থেকে 0 পর্যন্ত টগল করে
S2 ধ্রুব 0 এবং S1 0 থেকে 1 পর্যন্ত টগল করে
S2 ধ্রুব 0 এবং S1 1 থেকে 0 পর্যন্ত টগল করে
S2 ধ্রুবক 1 এবং S1 0 থেকে 1 পর্যন্ত টগল করে
S2 ধ্রুবক 1 এবং S1 1 থেকে 0 পর্যন্ত টগল করে
এই শর্তগুলি উপরের সত্য-সারণিতে আরও ভালভাবে বোঝা যায়, এছাড়াও প্রতিটি শর্ত একটি 'দিকনির্দেশ' দেয়, যার নাম নির্বিচারে 0 বা 1।
চার্টগুলি আমাদের দুটি গুরুত্বপূর্ণ সূত্র দেয়:
1) একটি চার্ট অন্যটির সম্পূর্ণ বিপরীত, সুতরাং আমাদের যদি একটি থাকে তবে আমরা কেবল আউটপুটটি উল্টে দিয়ে অন্যটিকে সহজেই গণনা করতে পারি। আমরা একটি আউটপুটকে উল্টে দিই যদি একটি পিন পরিবর্তন হয় এবং অন্যটি নয়, আমরা একটি ইচ্ছামতো বেছে নিতে পারি।
2) চার্ট নিজেই কেবল S1 এবং S2 সংকেতের XOR। (অন্য চার্ট এই নয়)।
এখন কোডটি বোঝা সহজ।
// সমান্তরালে পোর্টে পড়ুন // মনে রাখবেন সংলগ্ন জোড়া একই এনকোডার স্টেট = PINB & 0x3f; // কোন diff = hold ^ state থাকলে কি পিন পরিবর্তন হয়েছে; // সত্য সারণী পেতে XOR সংলগ্ন S1 এবং S2 সংকেত // সবচেয়ে সহজ উপায় হল বর্তমান অবস্থার একটি অনুলিপি তৈরি করা // এবং এটি একটি বিট লুক = ডান দিকে স্থানান্তর = রাষ্ট্র >> 1; // এখন XOR dir = lookup ^ state এর জন্য বিটগুলিকে সারিবদ্ধ করা হয়েছে; // মনে রাখবেন, যদি একটি // ইনপুট স্থির থাকে তবে টেবিলটি উল্টানো দরকার, এর জন্য আমাদের একটি IF // বিবৃতির প্রয়োজন নেই। বর্তমানে কাঙ্ক্ষিত দিকনির্দেশনা বিট // 'dir' ভেরিয়েবলের প্রতিটি জোড়ার ডান হাতের বিট // বাম হাতের বিট অর্থহীন // 'ডিফ' ভেরিয়েবলের বিটটি 'সেট' পরিবর্তন করেছে // তাই আমাদের হয় '01' বা '10' // XOR এই 'dir' বাইটের সাথে হয় // উল্টো বা অর্থপূর্ণ বিট নয়। dir ^= diff; // এখন আপডেট হোল পরিবর্তনশীল hold = state; // যদি এই এনকোডারের জন্য বিট পরিবর্তিত হয় যদি (diff & 0x03) {// আপনার হ্যাডওয়্যার এবং তারের উপর ভিত্তি করে দিকনির্দেশ নির্ধারণ করে (dir & 0x01) {// ++ অথবা --z; } অন্যথায় {++ z; }} // বাকিদের জন্য ditto if (diff & 0x0c) {if (dir & 0x04) {++ y; } অন্য {--y; }} if (diff & 0x30) {if (dir & 0x10) {--x; } অন্যথায় {++ x; }}
বোতাম টিপলে আমরা বর্তমান XYZ মান একটি টার্মিনাল প্রোগ্রামে পাঠাই।
সিরিয়াল ডেটা ধীর, কিন্তু স্বাভাবিক ক্রিয়াকলাপের সময় এনকোডারগুলির অবস্থান এই সময়ের মধ্যে যাই হোক না কেন পরিবর্তিত হবে না।
তথ্য কাঁচা গণনা হিসাবে পাঠানো হয়। আপনি গণিত করতে পারেন এবং মিমি বা ইঞ্চিতে ডেটা পাঠাতে পারেন।
ধাপ 5: প্রথম স্ক্যান
পয়েন্ট সংগ্রহ করা একটি ধীর প্রক্রিয়া, আমি উপরের বাম কোণে প্রোবটি ফ্লোর করি এবং আরডুইনো রিসেট করি।
এই শূন্য অবস্থান হিসাবে অবস্থান।
তারপর প্রোবটিকে টার্গেটের জায়গায় নিয়ে যান, এটিকে স্থির রাখুন এবং 'স্ন্যাপশট' বোতাম টিপুন।
এই বরং বড় নমুনা টুকরা জন্য আমি মাত্র ~ 140 পয়েন্ট গ্রহণ, তাই বিস্তারিত চূড়ান্ত পণ্য মহান নয়।
একটি. PCD ফাইলে ডেটা সংরক্ষণ করুন এবং হেডার যোগ করুন
#. PCD v.7 - পয়েন্ট ক্লাউড ডেটা ফাইল ফরম্যাট সংস্করণ.7 ফিল্ড x y z সাইজ 4 4 4 টাইপ F F F COUNT 1 1 1 WIDTH (আপনার পয়েন্ট কাউন্ট) HEIGHT 1 VIEWPOINT 0 0 0 1 0 0 POINTS (your point count)
হেডারে আপনার পয়েন্ট কাউন্ট রাখুন, এটি যে কোন এডিটরে সহজ যে আপনাকে লাইন নম্বর প্রদান করে।
বিন্দুগুলির উপরে ফ্রিক্যাডে দেখা যায়, সেগুলি ফ্রিক্যাড থেকে. PLY ফাইল হিসাবে রপ্তানি করা হয়।
MeshLab এ. PLY খুলুন এবং বস্তুটিকে সারফেস করুন। সম্পন্ন!!
প্রস্তাবিত:
DIY -- কিভাবে একটি মাকড়সা রোবট তৈরি করা যায় যা Arduino Uno ব্যবহার করে স্মার্টফোন ব্যবহার করে নিয়ন্ত্রণ করা যায়: 6 টি ধাপ
DIY || কিভাবে একটি স্পাইডার রোবট তৈরি করা যায় যা Arduino Uno ব্যবহার করে স্মার্টফোন ব্যবহার করে নিয়ন্ত্রণ করা যায়: স্পাইডার রোবট তৈরির সময় কেউ রোবটিক্স সম্পর্কে অনেক কিছু শিখতে পারে। এই ভিডিওতে আমরা আপনাকে দেখাবো কিভাবে একটি স্পাইডার রোবট তৈরি করা যায়, যা আমরা আমাদের স্মার্টফোন ব্যবহার করে পরিচালনা করতে পারি (Androi
রোটারি এনকোডার হিসাবে একটি স্টেপার মোটর ব্যবহার করুন: 9 টি ধাপ (ছবি সহ)
একটি রোটারি এনকোডার হিসাবে একটি স্টেপার মোটর ব্যবহার করুন: একটি ইনপুট ডিভাইস হিসেবে মাইক্রোকন্ট্রোলার প্রকল্পে ব্যবহারের জন্য রোটারি এনকোডারগুলি দারুণ কিন্তু তাদের কর্মক্ষমতা খুব মসৃণ এবং সন্তোষজনক নয়। এছাড়াও, আশেপাশে প্রচুর অতিরিক্ত স্টেপার মোটর থাকার কারণে, আমি তাদের একটি উদ্দেশ্য দেওয়ার সিদ্ধান্ত নিয়েছি। তাই যদি কিছু স্টেপার থাকে
Arduino Nano ব্যবহার করে রোটারি এনকোডার: 4 টি ধাপ
Arduino Nano ব্যবহার করে রোটারি এনকোডার: হাই সবাই, এই আর্টিকেলে আমি Arduino Nano ব্যবহার করে কিভাবে একটি রোটারি এনকোডার ব্যবহার করব তার একটি টিউটোরিয়াল তৈরি করব। এই রোটারি এনকোডার ব্যবহার করার জন্য আপনার বাহ্যিক লাইব্রেরির প্রয়োজন নেই। তাই আমরা প্রথমে লাইব্রেরি যোগ না করে সরাসরি প্রোগ্রাম তৈরি করতে পারি। ঠিক আছে শুরু করা যাক
রোটারি এনকোডার: এটি কিভাবে কাজ করে এবং কিভাবে Arduino এর সাথে ব্যবহার করতে হয়: 7 টি ধাপ
রোটারি এনকোডার: এটি কিভাবে কাজ করে এবং কিভাবে Arduino এর সাথে ব্যবহার করতে হয়: আপনি এই এবং অন্যান্য আশ্চর্যজনক টিউটোরিয়ালগুলি ইলেক্ট্রোপিকের অফিসিয়াল ওয়েবসাইট ওভারভিউ পড়তে পারেন প্রথমে, আপনি ঘূর্ণনশীল এনকোডার সম্পর্কে কিছু তথ্য দেখতে পাবেন এবং তারপরে আপনি কীভাবে শিখবেন
একটি রোটারি এনকোডার ব্যবহার করে নকিয়া 5110 এলসিডিতে আরডুইনো মেনু: 6 টি ধাপ (ছবি সহ)
একটি রোটারি এনকোডার ব্যবহার করে নকিয়া 5110 এলসিডিতে আরডুইনো মেনু: প্রিয় বন্ধুরা অন্য একটি টিউটোরিয়ালে স্বাগতম! এই ভিডিওতে আমরা আমাদের প্রজেক্টগুলিকে আরও ব্যবহারকারী বান্ধব এবং আরও সক্ষম করার জন্য জনপ্রিয় নোকিয়া 5110 এলসিডি ডিসপ্লের জন্য আমাদের নিজস্ব মেনু তৈরি করতে শিখছি। চলুন শুরু করা যাক! এই হল প্রজেক্ট