کنترل ربات با ساختار تانکی از طریق پردازنده nRF24L01 + STM32
در سراسر کشور
در وبسایت پونیشا(چند ساعت پیش)
دورکاری
اطلاعات شغل:
امکان دورکاری و کار در منزل: دارد
نوع همکاری: پروژهای
مهارتهای مورد نیاز:
برنامه نویسی سی (C)
متن کامل آگهی:
1- پردازنده مورد استفاده
STM32F103C8T6
2- هدف فاز اول پروژه
پیادهسازی کنترل پایه ربات تانکی با دو موتور حرکت و یک موتور برس از طریق جویاستیک و nRF24L01 به صورت بیسیم.
در این فاز، تمرکز بر خواندن جویاستیک، ارسال داده، دریافت داده در گیرنده و راهاندازی موتورها است.
3- سختافزار فاز اول
فرستنده:
STM32F103C8T6
جویاستیک آنالوگ دو محور (X/Y)
ماژول nRF24L01
منبع تغذیه 3.3 یا 5 ولت برای MCU و ماژول
گیرنده:
STM32F103C8T6
دو درایور H-Bridge برای موتورهای حرکت ربات
ماژول nRF24L01
منبع تغذیه جداگانه برای موتورها و MCU
4- الگوریتم نرمافزاری
فرستنده (STM32):
خواندن مقادیر X و Y جویاستیک از ADC.
ساخت بسته 7 بایتی دیتا و محاسبه Checksum.
ارسال بسته از طریق nRF24L01 با فرکانس مناسب (مثلاً 20–50Hz).
گیرنده (STM32):
دریافت بسته 7 بایتی از nRF24L01.
بررسی Header و Checksum.
نگاشت X و Y به سرعت و جهت دو موتور حرکت ربات (تانکی).
بروزرسانی موتورهای حرکت به صورت همزمان.
نکته مهم
این پروژه شامل چند فاز توسعهای است (نمایشگر OLED، مانیتور باتری، شناسایی خطا و ارتباط دو طرفه)، در این مرحله تنها فاز اول اجرا خواهد شد و فازهای بعدی در مراحل بعدی پیادهسازی خواهند شد.
نکات مهم در تحویل گیری:
1. خوانایی و ساختار کد
استفاده از نامهای معنادار برای متغیرها و توابع:
مثال: readJoystickX(), sendNRFData(), driveLeftMotor().
ساختار ماژولار:
توابع و بخشهای مختلف پروژه (خواندن جویاستیک، ارسال/دریافت nRF، کنترل موتور) باید جدا از هم باشند.
بهتر است برای هر بخش یک فایل جداگانه یا حداقل یک بلوک مشخص در کد داشته باشید.
توابع عمومی و قابل استفاده مجدد:
مثلاً calculateChecksum(uint8_t* data, uint8_t length) یا mapJoystickToMotorSpeed().
2. کامنتگذاری و مستندسازی
توضیح هر بخش کد: چه عملی انجام میدهد و چرا.
توضیح فرمت بسته nRF24L01: هر بایت چه معنایی دارد.
توضیح الگوریتم نگاشت X/Y به سرعت و جهت موتورها.
توضیح مقادیر ثابت یا تنظیمات سختافزاری:
پینهای STM32 متصل به nRF24L01، موتور، شاسی و ADC.
3. استفاده از لایبرری یا فایلهای جداگانه برای بخشهای مهم
nRF24L01: یک ماژول جداگانه nRF24L.h برای ارسال/دریافت با توابع استاندارد (nrfInit(), nrfSend(), nrfReceive())
موتورها (H-Bridge): یک ماژول MotorControl.h با توابع driveMotorLeft(speed, direction) و driveMotorRight(speed, direction)
جویاستیک: ماژول Joystick.h برای خواندن مقادیر و نگاشت آنها
این کار باعث میشود در آینده تغییر در یک بخش، کل پروژه را خراب نکند.
4. تست و اعتبارسنجی
تست جداگانه هر بخش:
تست خواندن ADC جویاستیک
تست ارسال/دریافت nRF24L01
تست موتورهای حرکت با مقادیر ثابت
تست بسته کامل: اطمینان از هماهنگی X/Y با حرکت ربات و فرمان برسها.
ثبت محدودیتها و مشکلات احتمالی که فریلنسر یا تیم باید بدانند.
5. استانداردهای کدنویسی
استفاده از فرمت ثابت برای توابع و بلوکها (indentation، فاصلهها، خطوط خالی)
تعریف کنستانتها و ماکروها به جای اعداد خام:
مثال: #define MOTOR_STOP 0, #define MOTOR_CW 1
فعال کردن کامنت برای بیتهای Status و Reserved
6. تحویل نهایی
کد کامل، کامپایل شده و آماده فلش روی STM32
تمام کتابخانهها یا لینک دانلود آنها
نمونه خروجی یا ویدیو کوتاه از کد.
این آگهی از وبسایت پونیشا پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت پونیشا برین و از اونجا برای این شغل اقدام کنین.
هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک، با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.