সুচিপত্র:

ওয়ার্কিং আরসি কার স্পিডোমিটার: 4 টি ধাপ (ছবি সহ)
ওয়ার্কিং আরসি কার স্পিডোমিটার: 4 টি ধাপ (ছবি সহ)

ভিডিও: ওয়ার্কিং আরসি কার স্পিডোমিটার: 4 টি ধাপ (ছবি সহ)

ভিডিও: ওয়ার্কিং আরসি কার স্পিডোমিটার: 4 টি ধাপ (ছবি সহ)
ভিডিও: 🇵🇹পর্তুগালের TRC কার্ড দিয়ে ইউরোপের কোন দেশে Job করা যাবে?? 2024, সেপ্টেম্বর
Anonim
ওয়ার্কিং আরসি কার স্পিডোমিটার
ওয়ার্কিং আরসি কার স্পিডোমিটার

এটি একটি ছোট প্রকল্প যা আমি লাইটওয়েট ল্যান্ড রোভারের বৃহত্তর আরসি নির্মাণের অংশ হিসাবে তৈরি করেছি। আমি সিদ্ধান্ত নিয়েছিলাম যে আমি ড্যাশবোর্ডে একটি কার্যকরী স্পিডোমিটার থাকার কল্পনা করেছি, কিন্তু আমি জানতাম যে একটি সার্ভো এটি কাটবে না। শুধুমাত্র একটি যুক্তিসঙ্গত বিকল্প ছিল: আরডুইনো স্থাপন করুন!

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

অংশ তালিকা:

মাইক্রোকন্ট্রোলার: আমি একটি ATTiny85 চিপ ব্যবহার করেছি, যার দাম প্রায় £ 1।

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

learn.sparkfun.com/tutorials/tiny-avr-prog…

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

8 পিন চিপ সকেট: আপনি যদি চিপটি সরাসরি সোল্ডার করার পরিবর্তে সকেটে রাখেন, তাহলে আপনি সমাবেশে কিছু ভুল সহ্য করতে পারেন। অভিজ্ঞতা থেকে বলা হয়েছে - কেউই চিপগুলিকে পুনরায় প্রোগ্রাম করতে চায় না।

ক্যাপাসিটর: 100nF (কোড 104) এর ডিকপলিং ক্যাপাসিটর ব্যবহার করা হয়। আমি ঠিক বুঝতে পারছি না কেন, কিন্তু আমি পড়েছি যে ডিকপলিং ক্যাপাসিটারগুলি ইন্টারনেটে গুরুত্বপূর্ণ, তাই এটি অবশ্যই সত্য …

রোধকারী: একটি 10kΩ প্রতিরোধক ব্যবহার করা হয় arduino মধ্যে লাইন নিচে টান। আবার, ইলেকট্রনিক্সের আরেকটি রহস্য।

পারফবোর্ড/স্ট্রিপবোর্ড: কিছু বেসবোর্ড যার উপর আপনার সার্কিট একত্রিত করতে হবে।

ওয়াইন্ডিং ওয়্যার: রেগুলার শ্যাটেড ওয়্যার মোটরটিতে সোল্ডারের জন্য খুব পুরু। সূক্ষ্ম enamelled তারের ব্যবহার মোটর টার্মিনাল উপর চাপ কমাতে এবং আপনার জীবন অনেক সহজ করা হবে।

Servo Wire: একটি 3-পিন JR মহিলা প্লাগের মধ্যে শেষ হওয়া তিনটি তারের ফিতা। আমি একটি পোড়া আউট সার্ভো থেকে আমার পেয়েছিলাম যে আমি 'পরিবর্তন' করছিলাম।

স্টেপার মোটর: আমি একটি 6 মিমি বাইপোলার নিডেক স্টেপার মোটর ব্যবহার করেছি। যে কোনও ছোট স্টেপারকে কাজ করা উচিত, যদিও সেগুলি ছোট রাখা উচিত, কারণ স্টেপারটি সরাসরি আরডুইনো থেকে চালিত হচ্ছে।

হেডার পিন: অপরিহার্য নয়, কিন্তু যদি আপনি আপনার স্টেপারটিকে 4 টি হেডার পিনে সংযুক্ত করেন এবং আপনার সার্কিটে একটি সকেট লাগান, তাহলে আপনি সহজেই ইনস্টলেশনের সুবিধার জন্য আপনার ড্যাশবোর্ডটি আনপ্লাগ করতে পারেন।

কম্পিউটার: আপনার বোর্ড প্রোগ্রাম করার জন্য, আপনার একটি কম্পিউটার লাগবে। সম্ভবত Arduino IDE এর সাথে। এবং সম্ভবত একটি USB তারের। যদি এটিতে একটি পাওয়ার ক্যাবল থাকে তবে আরও ভাল।

ধাপ 1: সিস্টেম

আমার তৈরি করা সিস্টেমের মৌলিক রূপরেখা ছিল একটি পদ্ধতি যার মাধ্যমে RC রিসিভার থেকে আসা পালস প্রস্থ মডুলেশন (PWM) সিগন্যালটি ATTiny 85 মাইক্রোকন্ট্রোলার (uC) এর মাধ্যমে স্টেপার মোটর সুইপে রূপান্তরিত হয়।

এখানে পিডব্লিউএম সিগন্যাল এবং আরসির একটি রিসোর্স আছে, কিন্তু এটি প্রতিলিপি করার জন্য আপনাকে এটি কঠোরভাবে বুঝতে হবে না।

en.wikipedia.org/wiki/Servo_control

ATTiny Arduino এর আমার প্রিয় স্বাদ কারণ এটি মৌলিক জিনিসগুলি করার জন্য যথেষ্ট I/O পিনের সাথে ছোট, তাই ছোট মডেল এবং RC প্রকল্পে পুরোপুরি ফিট করে। ATTiny এর প্রধান নেতিবাচক দিক হল যে এটি একটি প্রোগ্রাম করার জন্য একটু বেশি সেটআপ প্রয়োজন, কিন্তু একবার আপনি এটি সেট আপ করার পরে সেগুলি এত সস্তা যে আপনি সব ধরণের প্রকল্পের জন্য তাদের স্ট্যাক কিনতে পারেন।

স্পীডোমিটার ডায়ালের সাইজ খুব ছোট যাতে ফিডব্যাক সহ একটি গিয়ারযুক্ত মোটর থাকে, তাই আনুপাতিক সাড়া পেতে স্টেপার মোটর ব্যবহার করতে হয়। স্টেপার মোটর হল এমন একটি মোটর যা বিচ্ছিন্ন পরিমাণে (বা ধাপে …!) সরানো হয়, যা এটিকে নো-ফিডব্যাক সিস্টেমের জন্য আদর্শ করে তোলে। একমাত্র সতর্কতা হল যে 'পদক্ষেপগুলি' ফলে মসৃণতার বিপরীতে আন্দোলনকে ঝাঁকুনি দেবে। যদি আপনি প্রতি ঘূর্ণনে পর্যাপ্ত ধাপের সাথে একটি স্টেপার পান, এটি লক্ষণীয় নয়, কিন্তু এই প্রকল্পে আমি যে স্টেপারটি ব্যবহার করেছি তার সাথে সম্পূর্ণ ঘূর্ণনের মাত্র 20 বা তারও বেশি ধাপ রয়েছে, কোণ লাফ বেশ খারাপ।

সিস্টেম, পাওয়ার-আপে, দুটি বিপ্লবের জন্য স্টেপার পিছন দিকে চালাবে, যাতে সুই শূন্য হয়। স্পিডোমিটারের একটি বিশ্রাম পিন দরকার যেখানে আপনি শূন্য চিহ্ন থাকতে চান, অন্যথায় এটি চিরকাল ঘুরবে। তারপরে এটি ফরওয়ার্ড ম্যাপ করে এবং PWM সিগন্যালগুলিকে মোটরের একটি নির্দিষ্ট সংখ্যক ধাপে বিপরীত করে। সহজ, ঠিক আছে …?

ধাপ 2: সফটওয়্যার

অস্বীকৃতি: আমি একজন প্রোগ্রামার নই। এই প্রকল্পের জন্য আমি ডা Fran ফ্রাঙ্কেনস্টাইনের ডিজিটাল সমতুল্য, কোডের বিভিন্ন পাওয়া বিট থেকে কাজ করে এমন কিছু একত্রিত করছি।

সুতরাং, আমার আন্তরিক ধন্যবাদ ডুয়ান বি কে, যিনি আরসি সংকেত ব্যাখ্যা করার জন্য কোডটি তৈরি করেছিলেন:

rcarduino.blogspot.com/

এবং অর্ডনাউটের কাছে, যিনি অ্যানালগ গেজ হিসাবে স্টেপার চালানোর জন্য কোড তৈরি করেছিলেন:

arduining.com/2012/04/22/arduino-driving-a…

এবং উভয়ের কাছে, আমি আপনার কোডের জন্য যা করেছি তার জন্য আমার আন্তরিক ক্ষমা।

এখন যে পথের বাইরে, ATTiny এ কি আপলোড করতে হবে তা এখানে:

#ডিফাইন THROTTLE_SIGNAL_IN 0 // INTERRUPT 0 = ডিজিটাল পিন 2 - সংযুক্তির মধ্যে ইন্টারাপ্ট নাম্বার ব্যবহার করুন একটি বৈদ্যুতিক আরসি কারে নিরপেক্ষ থ্রোটল DEADZONE 50 // এটি থ্রোটল ডেডজোন। মোট ডেডজোন এর দ্বিগুণ। #অন্তর্ভুক্ত #সংজ্ঞায়িত ধাপ 21 // বিপ্লব প্রতি পদক্ষেপ (315 to সীমাবদ্ধ) স্পিডোমিটারের সর্বাধিক ভ্রমণ সামঞ্জস্য করতে এটি পরিবর্তন করুন। #সংজ্ঞায়িত COIL1 3 // কুণ্ডলী পিন। ATTiny স্টেপারের জন্য 0, 1, 3, 4 পিন ব্যবহার করে। পিন 2 হল একমাত্র পিন যা বাধাগুলি পরিচালনা করতে পারে তাই এটি ইনপুট হতে হবে। #ডিফাইন COIL2 4 // স্টেপার মোটর সঠিকভাবে না চললে এগুলি পরিবর্তন করার চেষ্টা করুন। #ডিফাইন COIL3 0 #ডিফাইন COIL4 1 // স্টেপার ক্লাসের একটি উদাহরণ তৈরি করুন: স্টেপার স্টেপার (STEPS, COIL1, COIL2, COIL3, COIL4); int pos = 0; // ধাপে অবস্থান (0-630) = (0 ° -315 °) int SPEED = 0; ভাসমান ThrottleInAvg = 0; int পরিমাপ ToAverage = 60; ফ্লোট রিসেটকাউন্টার = 10; // নিষ্ক্রিয় থ্রোটলে থাকা অবস্থায় পুনরায় সেট করার সময় int Resetval = 0; উদ্বায়ী int ThrottleIn = LOWER_THROTTLE; উদ্বায়ী স্বাক্ষরবিহীন দীর্ঘ StartPeriod = 0; // ইন্টারাপ্টে সেট // আমরা একটি পৃথক ভেরিয়েবলের পরিবর্তে nThrottleIn = 0 লুপ ব্যবহার করতে পারতাম, কিন্তু bNewThrottleSignal ব্যবহার করে আমাদের একটি নতুন সংকেত আছে // এই প্রথম উদাহরণ অকার্যকর সেটআপের জন্য পরিষ্কার () {// Arduino কে বলুন আমরা ফাংশন calcInput বলতে চাই যখনই INT0 (ডিজিটাল পিন 2) HIGH থেকে LOW বা LOW থেকে HIGH // এই পরিবর্তনগুলি ধরা আমাদের ইনপুট পালস কতক্ষণ সংযুক্ত থাকে তা গণনা করতে দেবে (THROTTLE_SIGNAL_IN, calcInput, CHANGE); stepper.setSpeed (50); // মোটরের গতি 30 RPM (360 PPS aprox) এ সেট করুন। stepper.step (পদক্ষেপ * 2); // রিসেট পজিশন (X ধাপ ঘড়ির কাঁটার দিকে)। } অকার্যকর লুপ () {রিসেটভাল = মিলিস; জন্য রিসেটভাল = 0; } // বিপরীত ম্যাপিং অন্যথায় যদি (ThrottleInAvg LOWER_THROTTLE) {SPEED = map (ThrottleInAvg, LOWER_THROTTLE, (NEUTRAL_THROTTLE - DEADZONE), 255, 0); রিসেটভাল = 0; } // সীমার বাইরে অন্যটি যদি (ThrottleInAvg> UPPER_THROTTLE) {SPEED = 255; রিসেটভাল = 0; } // সীমার বাইরে অন্যথায় যদি (ThrottleInAvg Resetcounter) {stepper.step (4); // আমি স্টেপারকে বলার চেষ্টা করছি যে যদি আরসি সিগন্যালটি দীর্ঘ সময়ের জন্য ডেডজোনে থাকে তবে নিজেকে পুনরায় সেট করুন। কোডের এই অংশটি আসলে কাজ করে কিনা তা নিশ্চিত নই। }} int val = গতি; // potentiometer মান পান (পরিসর 0-1023) val = মানচিত্র (val, 0, 255, 0, STEPS * 0.75); // স্টেপার রেঞ্জে ম্যাপ পট রেঞ্জ। if (abs (val - pos)> 2) {// যদি পার্থক্য 2 টি ধাপের চেয়ে বড় হয়। যদি ((val - pos)> 0) {stepper.step (-1); // বাম দিকে এক ধাপ সরান। অবস্থান ++; } যদি ((val - pos) <0) {stepper.step (1); // এক ধাপ ডান দিকে সরান। অবস্থান-; }} // বিলম্ব (10); } অকার্যকর calcInput () {// যদি পিন বেশি হয়, এটি একটি বাধা শুরু যদি (digitalRead (THROTTLE_SIGNAL_IN_PIN) == উচ্চ) {// মাইক্রো ব্যবহার করে সময় পান - যখন আমাদের কোড সত্যিই ব্যস্ত হয়ে যায় তখন এটি ভুল হয়ে যাবে, কিন্তু বর্তমান অ্যাপ্লিকেশনের জন্য এটি // বোঝা সহজ এবং খুব ভাল কাজ করে StartPeriod = micros (); } অন্য {// যদি পিন কম হয়, এটি নাড়ির প্রান্তিক প্রান্ত তাই এখন আমরা মাইক্রো () যদি (StartPeriod) {ThrottleIn = (int) (মাইক্রো () - StartPeriod); StartPeriod = 0; }}}

একটি ATTiny85 প্রোগ্রামিং সম্পর্কে আরও তথ্যের জন্য এটি পড়ুন:

learn.sparkfun.com/tutorials/tiny-avr-prog…

ধাপ 3: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার

সার্কিট নির্মাণের জন্য সার্কিট ডায়াগ্রাম দেখুন। আপনি কীভাবে এটি একত্রিত করবেন তা আপনার উপর নির্ভর করে, তবে আমি সার্কিট বোর্ড প্রোটোটাইপিংয়ের জন্য ব্যবহৃত একটি স্ট্রিপবোর্ড/পারফোর্ড ব্যবহার করার পরামর্শ দেব এবং একটি সকেটে চিপটি মাউন্ট করব।

C1 = 100nF

R1 = 10kΩ

ক্যাপাসিটরটি যতটা সম্ভব চিপের কাছাকাছি মাউন্ট করা উচিত সবচেয়ে কার্যকর হতে।

মোটরটিতে এনামেলযুক্ত তারগুলি সোল্ডার করার সময়, অত্যন্ত সতর্কতা অবলম্বন করুন, কারণ মোটরগুলির টার্মিনালগুলি স্ন্যাপ করা এবং মোটরের কুণ্ডলী বিচ্ছিন্ন করা পছন্দ করে। এর প্রতিকারের জন্য, একটি ভাল সমাধান হল তারের ঝালাই করা, এবং তারপরে জয়েন্টের উপরে 2-অংশ ইপক্সির একটি বড় ব্লব লাগান, এটি নিরাময় করা যাক, তারপরে তারগুলিকে একত্রিত করুন। এটি পৃথক টার্মিনাল জয়েন্টগুলির উপর চাপ হ্রাস করে এবং সেগুলি বন্ধ করা বন্ধ করা উচিত। যদি আপনি এটি না করেন, তাহলে তারা অন্তত সুবিধাজনক সময়ে স্ন্যাপ করবে, গ্যারান্টিযুক্ত।

যদি আপনি হেডার পিন সংযোগকারী তৈরি করেন এবং পিনগুলি সেট আপ করেন: [Ca1, Cb1, Ca2, Cb2] সঙ্গে Ca1 দাঁড়িয়ে থাকে কয়েল A, ওয়্যার 1 ইত্যাদির জন্য। কাছাকাছি.

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

ধাপ 4: উপাখ্যান

আশা করি আপনি এই সংক্ষিপ্ত নির্দেশযোগ্য উপভোগ করেছেন, এবং এটি দরকারী পেয়েছেন। আপনি যদি এর মধ্যে একটি তৈরি করেন, তাহলে আমাকে জানান!

শুভকামনা!

প্রস্তাবিত: