সুচিপত্র:

ঘোরানো ফোন মাউন্ট: 7 টি ধাপ
ঘোরানো ফোন মাউন্ট: 7 টি ধাপ

ভিডিও: ঘোরানো ফোন মাউন্ট: 7 টি ধাপ

ভিডিও: ঘোরানো ফোন মাউন্ট: 7 টি ধাপ
ভিডিও: ঘুমানোর সময় ঘাড়ে উকুন উঠে গেলো #cartoon 2024, জুলাই
Anonim
ঘোরানো ফোন মাউন্ট
ঘোরানো ফোন মাউন্ট

এই নির্দেশনাটি সাউথ ফ্লোরিডা ইউনিভার্সিটি (www.makecourse.com) এ মেককোর্সের প্রকল্পের প্রয়োজনীয়তা পূরণের জন্য তৈরি করা হয়েছিল।

একটি ঘোরানো ফোন মাউন্ট করতে চান যাতে আপনি আপনার ফোনের বিষয়বস্তু পোর্ট্রেট বা ল্যান্ডস্কেপ ওরিয়েন্টেশনে দেখতে না পেরে এটি ধরে রাখুন? তারপর, আর তাকান না।

এই প্রকল্পটি তৈরি করতে আপনার প্রয়োজন হবে:

- আরডুইনো মাইক্রোকন্ট্রোলার এবং আইডিই

- ইউএসবি কেবল কোড আপলোড করতে

- ব্রেডবোর্ড

- জাম্পার তার

- LCD প্রদর্শন

- সার্ভো

- কলাম যা সার্ভোতে সংযুক্ত করতে পারে

- আইআর রিমোট

- আইআর রিসিভার

- 10k ওহম প্রতিরোধক

- কেনু এয়ারফ্রেম+ ফোন ক্লিপ (বা ফোনটি জায়গায় রাখার কিছু)

- পোর্টেবল পাওয়ারের জন্য 9 ভি ব্যাটারি বা শুধু ইউএসবি চালিত আরডুইনো

ধাপ 1: IR রিসিভার সার্কিট তৈরি করুন

আইআর রিসিভার সার্কিট তৈরি করুন
আইআর রিসিভার সার্কিট তৈরি করুন
আইআর রিসিভার সার্কিট তৈরি করুন
আইআর রিসিভার সার্কিট তৈরি করুন

প্রথমে, আপনার রুটিবোর্ডে পাওয়ার রেলগুলিতে Arduino থেকে GND এবং +5V ঝাঁপ দিন। তারপরে, আপনার 10k ওহম প্রতিরোধককে +5V পাওয়ার রেল থেকে আপনার IR রিসিভার ফোটোট্রান্সিস্টরের আউটপুট পিনে ঝাঁপ দিন। পরবর্তীতে, আইআর রিসিভারের আউটপুট পিন থেকে Arduino এ 11 পিন সংযোগ করতে একটি জাম্পার তার ব্যবহার করুন। তারপর, আইআর রিসিভারে সংশ্লিষ্ট পিনগুলিতে গ্রাউন্ড এবং +5V পাঠাতে দুটি জাম্পার তার ব্যবহার করুন। উপরের পরিকল্পনায় চিত্রিত আরসি ফিল্টারটি প্রয়োজনীয় নয়। পরিশেষে, আমি এই ধাপে দেখানো পরিকল্পিত করিনি, এবং এর জন্য উৎস ছবিতে উপস্থিত।

ধাপ 2: Servo, কলাম, এবং ফোন হোল্ডার সংযোগ করুন

Servo, কলাম, এবং ফোন হোল্ডার সংযোগ করুন
Servo, কলাম, এবং ফোন হোল্ডার সংযোগ করুন
Servo, কলাম, এবং ফোন হোল্ডার সংযোগ করুন
Servo, কলাম, এবং ফোন হোল্ডার সংযোগ করুন
Servo, কলাম, এবং ফোন ধারক সংযোগ করুন
Servo, কলাম, এবং ফোন ধারক সংযোগ করুন

এখন, মাটি থেকে লাফানোর জন্য দুটি জাম্পার তার ব্যবহার করুন এবং রুটিবোর্ড পাওয়ার রেলের যথাক্রমে সার্ভোর বাদামী এবং লাল তারের মধ্যে +5V ব্যবহার করুন। তারপর, একটি জাম্পার তার ব্যবহার করুন Arduino- এ পিন 9 সংযুক্ত করার জন্য সার্ভের কমলা তারের সাথে।

তারপরে, দ্বিতীয় ছবিতে দেখানো সার্ভোর মাথায় একটি কলাম সংযুক্ত করুন।

অবশেষে, তৃতীয় ছবিতে দেখানো হিসাবে কেনু এয়ারফ্রেম+এর মতো কলামের সাথে ফোনটি ধরে রাখার জন্য কিছু সংযুক্ত করুন।

ধাপ 3: সার্ভো রিডআউটের জন্য এলসিডি ডিসপ্লে সংযুক্ত করুন

সার্ভো রিডআউটের জন্য এলসিডি ডিসপ্লে সংযুক্ত করুন
সার্ভো রিডআউটের জন্য এলসিডি ডিসপ্লে সংযুক্ত করুন

আপনার ব্রেডবোর্ড পাওয়ার রেল থেকে LCD ডিসপ্লেতে সংশ্লিষ্ট পিনগুলিতে মাটিতে ঝাঁপ দাও এবং +5V। এছাড়াও, এলসিডি থেকে এসডিএ এবং এসসিএল পিনগুলি আরডিউনোতে ঝাঁপ দিন। Arduino এর এসডিএ এবং এসসিএল পিনগুলি Arduino বোর্ডের পিছন থেকে সনাক্ত করা যায় এবং AREF এর উপরে দুটি পিন এবং 13 পিনের উপরে স্থল। এসসিএল পিন সর্বোচ্চ এক। এটি এলসিডি ডিসপ্লেকে বর্তমান সার্ভো অবস্থানটি পড়তে দেয়।

ধাপ 4: Arduino প্রোগ্রামে সংযুক্ত কোড এবং লাইব্রেরি ব্যবহার করুন

Arduino প্রোগ্রামে সংযুক্ত কোড এবং লাইব্রেরি ব্যবহার করুন
Arduino প্রোগ্রামে সংযুক্ত কোড এবং লাইব্রেরি ব্যবহার করুন

RotatingMountCode.zip ফাইলটি ডাউনলোড করুন। আরডুইনো আইডিই ইনস্টল করুন এবং ডাউনলোড করা ফাইলটি ডকুমেন্টস -আরডুইনোতে আনজিপ করুন। নিশ্চিত করুন যে আপনি আমার স্কেচ এবং লাইব্রেরি ফোল্ডারের বিষয়বস্তু আপনার স্কেচ এবং লাইব্রেরি ফোল্ডারে অনুলিপি করেছেন। ServoIRandLCD স্কেচ খুলুন এবং আপনার Arduino এ আপলোড করুন।

কোড ব্যাখ্যার জন্য পরবর্তী ধাপগুলি দেখুন।

ধাপ 5: আরডুইনোতে আকাঙ্ক্ষিত শক্তির উৎস সংযুক্ত করুন এবং মাউন্টটি ঘোরানোর জন্য রিমোট ব্যবহার করুন

আরডুইনোতে আকাঙ্ক্ষিত শক্তির উৎস সংযুক্ত করুন এবং মাউন্টটি ঘোরানোর জন্য রিমোট ব্যবহার করুন!
আরডুইনোতে আকাঙ্ক্ষিত শক্তির উৎস সংযুক্ত করুন এবং মাউন্টটি ঘোরানোর জন্য রিমোট ব্যবহার করুন!
আরডুইনোতে আকাঙ্ক্ষিত শক্তির উৎস সংযুক্ত করুন এবং মাউন্টটি ঘোরানোর জন্য রিমোট ব্যবহার করুন!
আরডুইনোতে আকাঙ্ক্ষিত শক্তির উৎস সংযুক্ত করুন এবং মাউন্টটি ঘোরানোর জন্য রিমোট ব্যবহার করুন!

হয় আপনার কম্পিউটারে আরডুইনো প্লাগ করা ছেড়ে দিন অথবা আপনার কম্পিউটার থেকে এটি আনপ্লাগ করুন এবং আরডুইনোকে ডিসি পাওয়ার প্রদানের জন্য একটি 9V ব্যাটারি ব্যবহার করুন। পরিশেষে, servo নিয়ন্ত্রণ করার জন্য একটি সস্তা IR রিমোট ব্যবহার করুন এবং সেইজন্য ফোন মাউন্ট এর অভিযোজন!

রিমোটের 1 নম্বরটি সার্ভো অবস্থান 0 ডিগ্রী, 2 থেকে 90 ডিগ্রী এবং 3 থেকে 180 ডিগ্রী পর্যন্ত সেট করা উচিত। এদিকে রিমোটের + এবং - বোতামগুলি যথাক্রমে 1 ডিগ্রী দ্বারা সার্ভোর কোণ বৃদ্ধি বা হ্রাস করা উচিত।

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

ধাপ 6: সোর্স কোড ব্যাখ্যার জন্য এটি পড়ুন

সোর্স কোড ব্যাখ্যার জন্য এটি পড়ুন
সোর্স কোড ব্যাখ্যার জন্য এটি পড়ুন
সোর্স কোড ব্যাখ্যার জন্য এটি পড়ুন
সোর্স কোড ব্যাখ্যার জন্য এটি পড়ুন

Arduino স্কেচের সোর্স কোড নিচে অথবা পূর্বে সংযুক্ত.zip ফাইলে পাওয়া যাবে। প্রয়োজনীয় লাইব্রেরিগুলি শুধুমাত্র ধাপ 4 এ পূর্বে সংযুক্ত.zip ফাইলে পাওয়া যাবে।

কোডটি প্রথম জিনিসটি হল স্কেচে সমস্ত ফাংশন চালানোর জন্য প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত। এর পরে, এটি Arduino- এ পিন 9 কে সার্ভার জন্য PWM- সক্ষম সিগন্যাল পিন হিসাবে ঘোষণা করে। এটি আইআর রিসিভারের জন্য ব্যবহৃত পিনটি আরডুইনোতে পিন 11 তৈরি করে। পরবর্তী, এটি একটি পূর্ণসংখ্যা পরিবর্তনশীল ঘোষণা করে যা ডিগ্রিতে সার্ভোর অবস্থানের ট্র্যাক রাখতে ব্যবহৃত হয় এবং প্রাথমিকভাবে এটি 0 ডিগ্রীতে সেট করে। তারপর, এটি একটি IRrecv অবজেক্ট, একটি সার্ভো অবজেক্ট, এবং myDisplay LCD অবজেক্ট (যা একই লাইনে কনফিগার করা আছে) এর জন্য প্রয়োজনীয় বস্তুগুলি তাত্ক্ষণিক করে তোলে যাতে এই বস্তুগুলি পরে ব্যবহার করা যায়।

পরবর্তীতে, সেটআপ ফাংশনে, সিরিয়াল পোর্টটি 9600 বিট/সেকেন্ডে শুরু হয় যাতে সিরিয়াল মনিটরটি ইচ্ছে করলে সার্ভোর অবস্থানের উপর নজর রাখতে ব্যবহার করা যায়। এটি myservo অবজেক্টকে পিন 9 এর সাথে সংযুক্ত করে, IR রিসিভার শুরু করে এবং LCD ডিসপ্লে শুরু করে।

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

অবশেষে, servo এর বর্তমান কোণটি myservo.read () ফাংশন ব্যবহার করে সিরিয়াল মনিটর এবং LCD ডিসপ্লেতে পাঠানো হয় এবং প্রধান লুপগুলি অনির্দিষ্টকালের জন্য পুনরাবৃত্তি করে।

সোর্স কোড:

#অন্তর্ভুক্ত // Arduino স্ট্যান্ডার্ড লাইব্রেরি #অন্তর্ভুক্ত // আইআর লাইব্রেরি #এলসিডি জন্য "Wire.h" //Wire.h অন্তর্ভুক্ত (কখনও কখনও প্রয়োজন) #অন্তর্ভুক্ত "LiquidCrystal_I2C.h" // LCD লাইব্রেরি

#ডিভাইন সার্ভপিন 9 // এটি পিন 9 কে সার্ভো কন্ট্রোল সীসা (কমলা) এর জন্য ব্যবহৃত পিন হিসাবে সংজ্ঞায়িত করে

int RECV_PIN = 11; // IR ফটো-ট্রানজিস্টার 11 পিনে আউটপুট পাঠায়

int currentAngle = 0; // currentAngle পূর্ণসংখ্যা পরিবর্তনশীল ঘোষণা করুন এবং 0 এ সেট করুন

IRrecv irrecv (RECV_PIN); // একটি IR রিসিভার অবজেক্ট decode_results ফলাফল তাত্ক্ষণিক; // একটি decode_results অবজেক্ট ইনস্ট্যান্ট। এই বস্তুটি IR রিসিভার থেকে আলাদা।

Servo myservo; // 'myservo' নামে একটি Servo অবজেক্ট ইনস্ট্যান্ট করুন // সর্বাধিক আটটি servo অবজেক্ট তৈরি করা যায়

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // এলসিডি অবজেক্ট তাত্ক্ষণিক করুন এবং কনফিগার সেট করুন

অকার্যকর সেটআপ() {

Serial.begin (9600); // সিরিয়াল পোর্ট শুরু করুন

myservo.attach (servopin); // সার্ভো অবজেক্টে পিন 9 এ সার্ভো সংযুক্ত করে

irrecv.enableIRIn (); // রিসিভার শুরু করুন

myDisplay.init (); // এলসিডি শুরু করুন

myDisplay.backlight (); // এলসিডি ব্যাকলাইট চালু করুন

}

অকার্যকর লুপ () {

if (irrecv.decode (& results)) // যদি ট্রান্সমিশন পাওয়া যায়…

{সিরিয়াল.প্রিন্ট ("IR মান পেয়েছে:");

Serial.println (results.value); // ডিসপ্লে মান পাওয়া গেছে

// প্রাপ্ত কমান্ডগুলি ব্যাখ্যা করুন … যদি (results.value == 16724175) // 1 {// left myservo.write (0); }

যদি (results.value == 16718055) // 2 {// middle myservo.write (90); }

যদি (results.value == 16743045) // 3 {// right myservo.write (180); }

যদি (results.value == 16754775) //+ {// ইনক্রিমেন্ট currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) //- {// হ্রাস currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

irrecv.resume (); // পরবর্তী মান গ্রহণ করুন

// সিরিয়াল মনিটর মুদ্রণ Serial.print ("বর্তমান সার্ভো অবস্থান:");

Serial.println (myservo.read ()); // এটি সার্ভো অবস্থান পুনরুদ্ধার করে এবং সিরিয়াল মনিটরে পাঠায়

// এলসিডি প্রিন্ট myDisplay.clear ();

myDisplay.print ("Servo deg.:");

myDisplay.print (myservo.read ());

বিলম্ব (200); // servo actuation স্থিতিশীল করতে বিলম্ব

}

পদক্ষেপ 7: সাহায্যের জন্য আমার ইউটিউব ভিডিও দেখুন

আমার তালিকাভুক্ত নয় এমন ইউটিউব ভিডিও দেখুন যা সম্পূর্ণরূপে আলোচনা করে এবং প্রকল্পটি প্রদর্শন করে যদি আপনার কোন প্রশ্ন থাকে!

প্রস্তাবিত: