সুচিপত্র:

পাইথন-জিইউআই এবং আরডুইনো সহ সার্ভোড্রাইভার-বোর্ড: 5 টি ধাপ
পাইথন-জিইউআই এবং আরডুইনো সহ সার্ভোড্রাইভার-বোর্ড: 5 টি ধাপ

ভিডিও: পাইথন-জিইউআই এবং আরডুইনো সহ সার্ভোড্রাইভার-বোর্ড: 5 টি ধাপ

ভিডিও: পাইথন-জিইউআই এবং আরডুইনো সহ সার্ভোড্রাইভার-বোর্ড: 5 টি ধাপ
ভিডিও: Tkinter Python GUI tutorial - Introduction | Tkinter in Bangla | Python GUI 2024, নভেম্বর
Anonim
পাইথন-জিইউআই এবং আরডুইনো সহ সার্ভোড্রাইভার-বোর্ড
পাইথন-জিইউআই এবং আরডুইনো সহ সার্ভোড্রাইভার-বোর্ড

প্রোটোটাইপিং বা মডেল এয়ারপ্লেন তৈরির সময়, আপনি প্রায়শই সমস্যার সম্মুখীন হন, যে আপনাকে সার্ভো ট্রাভেল চেক করতে হবে অথবা সার্ভিসগুলিকে মধ্য অবস্থানে সেট করতে হবে।

যদি আপনি আপনার পুরো RC- সিস্টেম বা পরীক্ষা তৈরি করতে না চান, তাহলে আপনি কতদূর সার্ভো বা মিডপজিশন কোথায় ঠেলে দিতে পারেন, তাহলে এই বোর্ডটি আপনার জন্য! এটি আপনাকে নির্দিষ্ট অবস্থানে সার্ভো সরানোর অনুমতি দেয় বা আসুন এবং এদিক ওদিক ভ্রমণ করি।

এটি আশ্চর্যজনকভাবে ভাল কাজ করে, এমনকি 6 টি সার্ভিসের সাথেও যা লুপে এক অবস্থান থেকে অন্য অবস্থানে যায়।

এছাড়াও, সিরিয়াল ব্যবহার করে পাইথন-জিইউআই এবং আরডুইনো এর মধ্যে যোগাযোগ সম্পর্কে জানার জন্য এটি একটি চমৎকার প্রকল্প।

ধাপ 1: আপনার যা প্রয়োজন…

এই প্রকল্পের জন্য, আপনার নিম্নলিখিতগুলির প্রয়োজন হবে:

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

  • তারের সঙ্গে Arduino ন্যানো। আমি একটি ক্লোন ব্যবহার করেছি, এবং পাইথন কোড আসলে একটি ক্লোনের CH340- চিপ আশা করে
  • একটি প্রোটোটাইপিং বোর্ড। 7x5cm যথেষ্ট
  • কিছু 2, 54 মিমি হেডার এবং পিন
  • 1-6 servos
  • সার্ভিসের জন্য পাওয়ার সাপ্লাই (আমি 4 টি ব্যাটারির ব্যাটারি প্যাক ব্যবহার করেছি)

সফটওয়্যার

  • পাইথন 3:
  • CH340-chips এর জন্য একটি USB- ড্রাইভার: CH340 ড্রাইভারের জন্য শুধু চালকদের জন্য গুগল
  • Arduino IDE:

ধাপ 2: বোর্ড সোল্ডারিং

বোর্ড সোল্ডারিং
বোর্ড সোল্ডারিং

ছবিতে ফ্রিজিং অনুযায়ী সোল্ডারিং আসলে সোজা এগিয়ে। শুধু নিশ্চিত করুন, আপনি 3-পিন-সারিতে সহজেই সার্ভিসগুলিকে সংযুক্ত করতে পারেন।

  • আরডুইনো ন্যানোর 3-পিন-সারি ডিজিটাল পিন 3, 5, 6, 9, 10 এবং 11 এর সাথে সংযুক্ত।
  • Arduino এর 5V- পিনের সাথে লাল তার সংযুক্ত
  • কালো তারটি Arduino এর GND- পিনের সাথে সংযুক্ত
  • 3-পিন-সারির নীচে পিনের জোড়াটি একটি সাধারণ আরসি-রিসিভার পাওয়ার সাপ্লাই সংযুক্ত করার জন্য, আপনি আপনার পছন্দ মতো সংযোগকারী যুক্ত করতে পারেন, যেমন স্ক্রু টার্মিনাল, এক্সটি-কানেক্টর, জেএসটি বা … অথবা …

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

অনুগ্রহ করে মনে রাখবেন, সংক্ষিপ্ত মহিলা হেডারগুলি একটি জাম্পার, যা আপনাকে পরীক্ষার উদ্দেশ্যে Arduino এর 5V- উৎস ব্যবহার করে সার্ভো সরবরাহ করতে দেয়। যদি আপনি এটিকে খুব বেশি চাপ দেন, তবে আরডুইনো পুনরায় সেট হবে এবং সঠিক গতি হ্রাস করবে। অন্য পাওয়ার সাপ্লাই সংযুক্ত করার আগে এগুলি অবশ্যই সরানো উচিত।

ধাপ 3: Arduino সেট আপ

Arduino IDE ইনস্টল করুন এবং সংযুক্ত স্কেচ দিয়ে Arduino ন্যানো ফ্ল্যাশ করুন।

ধাপ 4: পাইথন সেট আপ করা

পাইথন সেট আপ করা হচ্ছে
পাইথন সেট আপ করা হচ্ছে

এটি ডাউনলোড করার পরে পাইথন 3 ইনস্টল করুন। একটি "PATH" তৈরি করার বিকল্পটি পরীক্ষা করে দেখুন-পরিবর্তনশীল।

আপনাকে পিপ ব্যবহার করে আরও দুটি প্যাকেজ ইনস্টল করতে হবে। তার জন্য, "উইন্ডোজ" -কি টিপুন, "cmd" টাইপ করুন এবং "এন্টার" টিপুন। কমান্ড প্রম্পটে নিম্নলিখিত কমান্ডগুলি টাইপ করুন:

  • পিপ ইনস্টল সিরিয়াল
  • piip pyserial ইনস্টল করুন
  • পিপ ইনস্টল tkinter

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

আইডিই-তে পাইথন-স্ক্রিপ্ট খুলুন এবং এটি চালান, অথবা টার্মিনাল থেকে সরাসরি চালান।

ড্রপ-ডাউন মেনুতে, আপনি "মো স্ট্রেইট" এবং "পিং পং" দুটি মোডের মধ্যে বেছে নিতে পারেন:

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

ধাপ 5: যেখানে যাদু ঘটে

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

এখন, পাইথন প্রোগ্রামে কি হয়?

প্রথমত, প্রোগ্রামটি যাচাই করে, এই লাইনে COM- পোর্টের সাথে কী সংযুক্ত আছে এবং এটি একটি তালিকায় সংরক্ষণ করে:

self. COMPortsList = list (serial.tools.list_ports.comports ())

তারপর এটি তালিকার মাধ্যমে লুপ করে যতক্ষণ না এটি একটি কুখ্যাত CH340- চিপ খুঁজে পায়, এটি সংরক্ষণ করে এবং তারপর-লুপের পরে একটি সিরিয়াল সংযোগ স্থাপন করে। মনে রাখবেন, প্রথম CH340 পাওয়া মাত্রই লুপটি ভেঙে যায়।

p. self. COMPortsList এ: যদি p [1] এ "CH340" হয়: # একটি Arduino ক্লোন self. COMPort = p [0] বিরতি খুঁজছেন: অন্যদের পাস করুন।

সিরিয়াল সংযোগটি COM- পোর্টের সাথে 57600 বাউড্রেটের সাথে প্রতিষ্ঠিত।

আর Arduino কোড কি করে? আচ্ছা, যেহেতু Arduino এর শুধুমাত্র একটি COM- পোর্ট আছে, সিরিয়াল সংযোগ শুধুমাত্র একটি লাইন:

Serial.begin (57600);

এখন, আমরা যোগাযোগের জন্য উভয় পোর্ট ব্যবহার করতে পারি। এই ক্ষেত্রে, পাইথন থেকে আরডুইনোতে কেবল বার্তা। পাইথন থেকে বার্তাগুলি এখানে পাঠানো হয়। সিরিয়াল সংযোগ একটি ডিফল্ট হিসাবে বাইট প্রেরণ করে। এটি ডেটা পাঠানোর দ্রুততম উপায় এবং যতদূর আমি জানি তা এখনও বেশ বিস্তৃত। সুতরাং servo সংখ্যার জন্য ints (তাই Arduino জানে কোন servo সরানো) এবং মাইক্রোসেকেন্ডে অবস্থান একটি বাইটে পরিণত হয়।

Command = struct.pack ('> B', self. Place) # int- পরিবর্তনশীল "self. Place" একটি বাইটে পরিণত হয়

self. Ser.write (Command) # Serial-Port Command = int (self. ServoPos.get ()) // 10 # ক্ষেত্র থেকে ইনপুট পড়া এবং int command = struct.pack (' > B ', কমান্ড) # একটি বাইটের মধ্যে int চালু করা। Ser.write (কমান্ড) # সিরিয়াল-পোর্টে বাইট লেখা

এছাড়াও, ডেটা বিশ্লেষণ করতে সময় লাগে (উদাহরণস্বরূপ চারটি বাইট "1", "2", "3" এবং "0" কে ইন্টার 1230 হিসাবে ব্যাখ্যা করা, চারটি ভিন্ন অক্ষর হিসাবে নয়) এবং এটি আরডুইনোতে না করাই ভাল।

আরডুইনো-সাইডে, পাঠানো তথ্যগুলি নিম্নলিখিত হিসাবে নেওয়া হয়:

যদি (Serial.available ()> 1) {// যদি সিরিয়াল ডেটা পাওয়া যায়, তাহলে লুপটি প্রবেশ করানো হবে c = Serial.read (); // প্রথম বাইট (সার্ভোর সংখ্যা) একটি পরিবর্তনশীল মাইক্রো = সিরিয়াল.রেড () এ সংরক্ষিত হয়; // servo এর অবস্থান এখানে সংরক্ষিত হয় Micros = Micros * 10; }

প্রস্তাবিত: