সুচিপত্র:

ESP32 ক্যামেরা রোবট - FPV: 6 ধাপ
ESP32 ক্যামেরা রোবট - FPV: 6 ধাপ

ভিডিও: ESP32 ক্যামেরা রোবট - FPV: 6 ধাপ

ভিডিও: ESP32 ক্যামেরা রোবট - FPV: 6 ধাপ
ভিডিও: esp32 cam rc robot 2024, নভেম্বর
Anonim
Image
Image
ESP32 ক্যামেরা রোবট - FPV
ESP32 ক্যামেরা রোবট - FPV
ESP32 ক্যামেরা রোবট - FPV
ESP32 ক্যামেরা রোবট - FPV

ইএসপি 32 ক্যামেরা মডিউল একটি সস্তা এবং শক্তিশালী পিএলসি। এমনকি এতে মুখের স্বীকৃতিও রয়েছে!

আসুন একটি ফার্স্ট পার্সন ভিউপয়েন্ট রোবট তৈরি করি যা আপনি অন-বোর্ড ওয়েব ইন্টারফেসের মাধ্যমে চালান!

এই প্রকল্পটি OV2640 ক্যামেরা সহ Geekcreit ESP32 মডিউল ব্যবহার করে। এটি AIThinker মডিউলের উপর ভিত্তি করে।

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

নিম্নরূপ রোবট কাজ করে।

ESP32 আপনার নেটওয়ার্কে একটি ওয়েব URL সম্প্রচার করে যা ক্যামেরার কিছু ফাংশন পরিচালনার জন্য কিছু চেক-বক্স সহ লাইভ ভিডিও স্ট্রিম উপস্থাপন করে। এটি কিবোর্ড থেকে ওয়েব পেজে পাঠানো কী প্রেসগুলিও গ্রহণ করে যা রোবটের জন্য নির্দেশমূলক কমান্ড। আপনি ইউএসবি জয়স্টিক ieldাল তৈরি করতে ইচ্ছুক যাতে আপনি কিবোর্ড কমান্ড টাইপ করার পরিবর্তে জয়স্টিক দিয়ে রোবটটি চালাতে পারেন।

যখন ESP32 কী প্রেস পায়, তখন সেই বাইটগুলিকে Arduino Nano তে ফরওয়ার্ড করে যা তখন মোটরগুলিকে রোবটকে সরানোর জন্য চালিত করে।

এই প্রকল্পটি মাঝারি-উচ্চ অসুবিধার। দয়া করে আপনার সময় নিন।

চল শুরু করি!

সরবরাহ

  • OV2640 ক্যামেরা সহ ESP -32 ক্যামেরা মডিউল - আমি Geekcreit পণ্য সুপারিশ চাই
  • ইএসপি -32 এর জন্য বহিরাগত স্ন্যাপ-অন অ্যান্টেনা সংকেত শক্তি বাড়ানোর জন্য
  • আরডুইনো ন্যানো
  • জয়স্টিক মডিউলের জন্য আরডুইনো লিওনার্দো (আমাদের লিওনার্দো দ্বারা সরবরাহিত ইউএসবি কীবোর্ড এমুলেশন দরকার)
  • জেনেরিক জয়স্টিক মডিউল
  • L293D কোয়াড এইচ-ব্রিজ চিপ
  • ডিসি-ডিসি বাক কভার্টার 5V আউটপুট সহ ESP32 কে পাওয়ার করতে
  • ESP32 প্রোগ্রামিংয়ের জন্য FTDI সিরিয়াল অ্যাডাপ্টার
  • একটি জেনেরিক রোবট চ্যাসিস দুটি গিয়ারযুক্ত মোটর সহ - যে কোনও চ্যাসি কাজ করবে। 3 থেকে 6V মোটর সুপারিশ করা হয়
  • 2 x 7.4V 1300mAh LiPo ব্যাটারি (বা অনুরূপ) ESP32 এবং মোটরগুলিকে শক্তি দিতে
  • আরডুইনো ন্যানোকে পাওয়ার জন্য 1 x 9V ব্যাটারি

ধাপ 1: ESP32 ক্যামেরা প্রোগ্রাম করুন

ESP32 ক্যামেরা প্রোগ্রাম করুন
ESP32 ক্যামেরা প্রোগ্রাম করুন
ESP32 ক্যামেরা প্রোগ্রাম করুন
ESP32 ক্যামেরা প্রোগ্রাম করুন

একটি ব্রেডবোর্ড ব্যবহার করে, আপনার ESP32 ক্যামেরাটিকে FTDI অ্যাডাপ্টারের সাথে নিম্নরূপ সংযুক্ত করুন:

FTDI ESP32

3.3V ----------- 3.3V

GND ----------- GND

TX ----------- U0R

Rx ----------- U0T

অতিরিক্তভাবে, পিন IO0 ("আই-ওহ-জিরো") GND এর সাথে সংযুক্ত করুন। ESP32 কে প্রোগ্রামিং মোডে রাখার জন্য আপনাকে এটি করতে হবে।

Esp32CameraWebRobotforInstructable.zip ফাইলটি আনজিপ করুন।

এই প্রকল্পে 4 টি ফাইল রয়েছে:

esp32CameraWebRobotforInstructable.ino হল Arduino স্কেচ।

ap_httpd.cpp হল সেই কোড যা ওয়েব সার্ভার পরিচালনা করে এবং ওয়েব পেজ থেকে ক্যামেরা ফিচার সেট করা এবং ওয়েব পেজ থেকে কী প্রেস পাওয়ার ব্যাপারে কাজ করে।

camera_index.h- এ ওয়েব অ্যাপ্লিকেশনের জন্য HTML/জাভাস্ক্রিপ্ট কোড আছে বাইট অ্যারে হিসাবে। ওয়েব অ্যাপ্লিকেশন পরিবর্তন করা এই প্রকল্পের সুযোগের বাইরে। আমি কিভাবে HTML/জাভাস্ক্রিপ্ট পরে পরিবর্তন করতে হবে তার জন্য একটি লিঙ্ক অন্তর্ভুক্ত করব।

camera_pins.h হল ESP32 ক্যামেরার পিন কনফিগারেশন সম্পর্কিত হেডার ফাইল।

ESP32 কে প্রোগ্রামিং মোডে রাখতে, আপনাকে অবশ্যই IO0 ("eye-oh-zero") কে গ্রাউন্ডে সংযুক্ত করতে হবে।

আপনার Arduino IDE চালু করুন এবং সরঞ্জাম/বোর্ড/বোর্ড ম্যানেজারে যান। Esp32 অনুসন্ধান করুন এবং esp32 লাইব্রেরি ইনস্টল করুন।

আপনার Arduino IDE এ প্রকল্পটি খুলুন।

উপরের ছবিতে হাইলাইট করা লাইনে আপনার রাউটারের নেটওয়ার্ক আইডি এবং আপনার পাসওয়ার্ড রাখুন। প্রকল্পটি সংরক্ষণ করুন।

টুলস মেনুতে যান এবং উপরের ছবিতে দেখানো মত নির্বাচন করুন।

বোর্ড: ESP32 Wrover

আপলোড গতি: 115200

পার্টিশন স্কিম: "বিশাল অ্যাপ (3 এমবি ওটিএ নেই)"

এবং আপনার FTDI অ্যাডাপ্টারের সাথে সংযুক্ত পোর্টটি নির্বাচন করুন।

"আপলোড" বোতামে ক্লিক করুন।

এখন, কখনও কখনও, ESP32 আপলোড করা শুরু করবে না। সুতরাং যখন আপনি আপলোড করার সময় কনসোলে… ---… অক্ষরগুলি দেখা শুরু করবেন তখন ESP32 এর পিছনে রিসেট বোতাম টিপতে প্রস্তুত থাকুন। তারপর এটি আপলোড শুরু হবে।

যখন আপনি কনসোলে 'প্রেস আরএসটি' দেখতে পান, আপলোড সম্পূর্ণ।

গ্রাউন্ড থেকে IO0 সংযোগ বিচ্ছিন্ন করুন। FTDI অ্যাডাপ্টার এবং ESP32 এর মধ্যে 3.3V লাইন সংযোগ বিচ্ছিন্ন করুন।

ESP32 ক্যামেরায় ভালোভাবে কাজ করার জন্য প্রচুর কারেন্ট প্রয়োজন। ESP32 এ 5V এবং GND পিনের সাথে 5V 2A পাওয়ার অ্যাডাপ্টার সংযুক্ত করুন।

সিরিয়াল মনিটর খুলুন, বড রেট 115200 এ সেট করুন এবং তারপর ESP32 রিবুট হিসাবে দেখুন। অবশেষে, আপনি সার্ভারের URL দেখতে পাবেন।

আপনার ব্রাউজারে যান এবং ইউআরএল দিন। যখন ওয়েব সাইট লোড হয়, 'স্ট্রিমিং শুরু করুন' বোতামে ক্লিক করুন এবং লাইভ ভিডিও স্ট্রিম শুরু হওয়া উচিত। আপনি যদি 'ফ্লডলাইট' চেকবক্সে ক্লিক করেন, তাহলে অন-বোর্ড ফ্ল্যাশ LED জ্বলতে হবে। সতর্ক থেকো! এটা উজ্জ্বল!

ধাপ 2: রোবট তৈরি করুন

রোবট তৈরি করুন
রোবট তৈরি করুন

আপনি একটি দুই চাকার রোবট চ্যাসি প্রয়োজন। যে কেউই করবে। প্রস্তুতকারকের নির্দেশ অনুসারে চ্যাসিগুলি একত্রিত করুন।

তারপরে ডায়াগ্রাম অনুসারে রোবটটি সংযুক্ত করুন আপাতত ব্যাটারি সংযোগগুলি ছেড়ে দিন।

L293D মোটর নিয়ন্ত্রণ করতে ব্যবহৃত হয়। লক্ষ্য করুন যে চিপের অর্ধেকটি ESP32 এর দিকে।

সাধারণত, দুটি মোটর নিয়ন্ত্রণের জন্য আরডুইনোতে 6 টি পিনের প্রয়োজন হয়।

এই রোবটটির শুধুমাত্র 4 টি পিনের প্রয়োজন এবং এখনও পুরোপুরি কাজ করে।

পিন 1 এবং 9 Arduino এর 5V উৎসের সাথে সংযুক্ত তাই তারা স্থায়ীভাবে উচ্চ। রোবটকে এইভাবে ওয়্যারিং করার অর্থ হল মোটর নিয়ন্ত্রণের জন্য আমাদের আরডুইনোতে দুটি কম পিনের প্রয়োজন।

সামনের দিকে, ইনপুট পিনগুলি LOW তে সেট করা হয় এবং মোটর পালস ওয়েভ মড্যুলেশন পিনগুলি 0 থেকে 255 এর মধ্যে 0 মানে অফ এবং 255 মানে সর্বোচ্চ গতিতে সেট করা হয়।

বিপরীত দিকনির্দেশে, INPUT পিনগুলি হাইতে সেট করা হয় এবং PWM মানগুলি বিপরীত হয়। 0 মানে সর্বোচ্চ গতি এবং 255 মানে বন্ধ।

ArduinoMotorControl স্কেচটি আনজিপ করে আপলোড করুন আরডুইনো ন্যানোতে।

ধাপ 3: হেই! এক সেকেন্ড অপেক্ষা কর! আমার কেন একটি আরডুইনো ন্যানো দরকার?

আপনি সম্ভবত ভাবছেন, "আরে! ESP32 ক্যামেরায় কমপক্ষে 4 টি IO পিন পাওয়া যায়। আমি মোটরগুলিকে নিয়ন্ত্রণ করতে কেন এগুলি ব্যবহার করতে পারি না?"

আচ্ছা, এটা সত্য, ESP32 এ নিম্নরূপ পিন রয়েছে:

IO0 - ESP32 প্রোগ্রামিং মোডে রাখার জন্য প্রয়োজন

IO2 - উপলব্ধ

IO4 - ফ্ল্যাশ LED

IO12, IO13, IO14, IO15, IO16 - অতিরিক্ত GPIO পিন।

আপনি যদি PWM কমান্ড দিয়ে পিনগুলি নিয়ন্ত্রণ করতে ESP32- এ একটি মৌলিক স্কেচ লোড করেন, তাহলে তারা কাজ করে।

যাইহোক, একবার আপনি আপনার স্কেচগুলিতে ক্যামেরা লাইব্রেরি সক্রিয় করুন, এই পিনগুলি আর পাওয়া যায় না।

তাই সবচেয়ে সহজ কাজ হল PWM এর মাধ্যমে মোটরগুলিকে নিয়ন্ত্রণ করার জন্য একটি ন্যানো ব্যবহার করা এবং ESP32 থেকে একটি ওয়্যার (ESP32 U0T থেকে Arduino Rx0) এবং GND- এ সিরিয়াল যোগাযোগের মাধ্যমে কমান্ড পাঠানো। খুব সহজ.

ধাপ 4: ইউএসবি জয়স্টিক ওয়্যার আপ (ptionচ্ছিক)

আপনি নিম্নরূপ ওয়েব পেজে কী প্রেস পাঠিয়ে রোবটটি চালাতে পারেন:

8 - এগিয়ে

9 - ফরওয়ার্ড ডান

7 - বাম দিকে এগিয়ে

4 - বাম দিকে ঘোরান

5 - থামুন

1 - বাম বিপরীত

2 - বিপরীত

3 - ডান দিকে বিপরীত।

ইউএসবি জয়স্টিক স্কেচ জয়স্টিক ইনপুটগুলিকে কী প্রেসে অনুবাদ করে এবং ওয়েব ইন্টারফেসে পাঠায় যা রোবট চালানোর জন্য তাদের আরডুইনোতে পাঠায়।

নিম্নরূপ Arduino LEONARDO এর সাথে জয়স্টিক সংযুক্ত করুন:

লিওনার্দো জয়স্টিক

5V ---------- VCC

GND ---------- GND

A0 ---------- VRx

A1 ---------- VRy

UsbJoyStick স্কেচ খুলুন, বোর্ড হিসাবে Arduino Leonardo নির্বাচন করুন এবং লিওনার্দোতে আপলোড করুন।

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

ধাপ 5: চলুন

কিছু সময় নিন এবং নিশ্চিত করুন যে সব ঠিক আছে তা নিশ্চিত করতে আপনার তারের উপর যান।

পরবর্তী, নিম্নরূপ আপনার ব্যাটারি সংযুক্ত করুন।

1. ইএসপি 32 ক্যামেরাটি শক্তিশালী করুন। ওয়েব সার্ভার চালু করতে কয়েক সেকেন্ডের প্রয়োজন।

2. Arduino Nano কে শক্তিশালী করুন।

3. মোটর শক্তি।

আপনার ব্রাউজার চালু করুন এবং ESP32 এর URL- এ যান।

স্ট্রিমিং শুরু বাটনে ক্লিক করুন।

ব্রাউজার স্ক্রিনের কোথাও আপনার মাউস ক্লিক করুন যাতে স্ক্রিনটি এখন ফোকাস হয়।

জয়স্টিক (বা কীবোর্ড) দিয়ে আপনার রোবট চালানো শুরু করুন।

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

এটি একটি চ্যালেঞ্জিং প্রকল্প যা আপনাকে লাইভ ভিডিও স্ট্রিমিং এবং ওয়াইফাই এর মাধ্যমে রোবট চালানোর কাজ শুরু করার সুযোগ দেয়। আমি আশা করি আপনি এটি মজা পেয়েছেন!

এখন যান এবং কিছু অসাধারণ করুন!

জানুয়ারী 2020 আপডেট - শেষ ফটোগুলি রোবটটির চূড়ান্ত সংস্করণ, হার্ড -সোল্ডার এবং নিরাপদে চেসিসে মাউন্ট করা দেখায়।

তিনটি সামনের মাউন্ট করা সুইচ নিম্নরূপ:

বাম - মোটর পাওয়ার ব্যাটারি

কেন্দ্র - Arduino ব্যাটারি

ডান - ESP32 ক্যামেরা ব্যাটারি

আমি কিছু বক-বুস্ট ট্রান্সফরমার দিয়ে একটি বড় ব্যাটারি ব্যবহার করতে পারতাম (আমি ইএসপি 32 এর জন্য একটি ব্যবহার করি-এটি সামনের ভিউ ছবির নীচের ডানদিকে), কিন্তু সরলতার জন্য, আমি কেবল 3 টি ব্যাটারি রাখছি।

রোবট এখন অ্যাক্সেস পয়েন্টে

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

ধাপ 6: ওয়েব সার্ভারের HTML/জাভাস্ক্রিপ্ট কোড কিভাবে পরিবর্তন করতে হয় তার বিবরণ

এটি প্রয়োজনীয় নয়, তবে আমার কিছু অনুরোধ ছিল।

এইচটিএমএল/জাভাস্ক্রিপ্ট এবং ক্যামেরা_ইনডেক্স.এইচ ফাইলে বাইট অ্যারে উপস্থাপনাগুলির মধ্যে পিছনে রূপান্তর করার জন্য কীভাবে সাইবারচেফ ব্যবহার করতে হয় সে সম্পর্কে আমি এই গুগল ডকটি দিয়েছি।

প্রস্তাবিত: