سامانه پایه؛ ورودی ۲۰۱۶
بدنه اصلی شامل دو مفصل دورانی در صفحه XY و یک محور خطی Z بود. استپر موتورها، تابلو فرمان و مکانیزم اصلی حفظ شدند؛ پروژه از نقطه صفر ساخته نشد و مبنای کار، بازمهندسی سامانه موجود بود.
این پروژه ساخت یک ربات جدید نبود. مکانیزم متعلق به ورودی ۲۰۱۶ حفظ شد و تیم ورودی ۲۰۲۵، لایههای مکانیک، کنترل، ارتباط و شبیهسازی آن را بازطراحی کرد.
J1J2Z هر مرحله یک مسئله واقعی از سامانه ۲۰۱۶ را حل میکند؛ نه یک تغییر ظاهری.
01 02 03 بدنه اصلی شامل دو مفصل دورانی در صفحه XY و یک محور خطی Z بود. استپر موتورها، تابلو فرمان و مکانیزم اصلی حفظ شدند؛ پروژه از نقطه صفر ساخته نشد و مبنای کار، بازمهندسی سامانه موجود بود.
وزن اهرم آبی روی محور اول باعث افتادگی، ناهممحوری و خطای مکانیکی میشد. اتصال و تکیهگاه محور بازبینی شد تا پیش از هر تنظیم نرمافزاری، خطای ناشی از مکانیک کاهش پیدا کند.
دو سنسور القایی زیر Joint 2 نصب شد. STM32 بازو را تا سنسور اول حرکت میدهد، جهت را معکوس میکند و با رسیدن به سنسور دوم، محدوده مرجع را تشخیص میدهد. در پایان، موقعیت صفر مکانیکی ثبت میشود.
مسیر کابلهای قدرت، سیگنال و سنسورها از هم تفکیک شد. ترمینالها و دستهبندی سیمها مرتب شدند تا عیبیابی، نگهداری و کنترل نویز در تابلو فرمان سادهتر باشد.
هر نقطه هدف در فضای کاری با مختصات X، Y و Z تعریف میشود. سینماتیک معکوس، این مقصد را به θ₁، θ₂ و d₃ تبدیل میکند. سینماتیک مستقیم نیز موقعیت ابزار را از روی وضعیت مفصلها دوباره محاسبه میکند تا نمایش و کنترل اعتبار مسیر ممکن باشد.
x = L₁ cos θ₁ + L₂ cos(θ₁ + θ₂) y = L₁ sin θ₁ + L₂ sin(θ₁ + θ₂) z = d₃وظایف بین دو لایه تقسیم شد: STM32 برای زمانواقعی و ESP8266 برای وب، ذخیره پروژه و ارتباط.
تولید پالس استپر، اجرای پروفایل حرکت، هومینگ محورها و مدیریت تنظیمات پایه در کنترلر STM32 انجام میشود. کنترلر فرمانهای سطح بالا را به حرکت زمانبندیشده محورهای ربات تبدیل میکند.
ESP8266 درخواستهای رابط وب را دریافت میکند، فرمانها و موقعیتها را اعتبارسنجی کرده و از طریق UART برای STM32 میفرستد. پاسخ وضعیت نیز از کنترلر خوانده و دوباره به صفحه وب ارسال میشود.
موقعیتها، ترتیب اجرا، زمان توقف و تنظیمات پروژه در حافظه ذخیره میشوند. کاربر میتواند یک الگوی حرکتی را دوباره بارگذاری کند، Loop تعریف کند و بدون واردکردن مجدد نقاط آن را اجرا کند.
// Browser ↔ ESP8266 ↔ STM32 void loop() { webServer.handleClient(); processIncomingSerialData(); } if (command == "Run") sendCodeToController(activeProject); if (command == "Pause") sendPause(); saveToEEPROM(projectData);
سرعت پالس، نوع سینماتیک، تعداد پالس در دور و پارامترهای هر موتور از رابط تنظیم میشوند و برای کنترلر ارسال میگردند.





مدل، مفصل، جرم، برخورد و کنترل باید با ربات واقعی هممعنا باشند.
هندسه ربات در Isaac Sim به یک Articulation تبدیل شد. محورهای J1 و J2 بهصورت دورانی و محور Z بهصورت خطی تعریف شدند و جهت مثبت هر محور با ربات واقعی یکسانسازی شد.
جرم، مرکز جرم، اینرسی، محدوده حرکت و برخورد اجزا تنظیم شد تا مدل فقط یک انیمیشن نباشد و رفتار آن از قیود فیزیکی تبعیت کند.
موقعیت هدف مفصلها به Driveهای شبیهساز داده میشود. ضرایب کنترل برای رسیدن نرم به هدف، کاهش نوسان و جلوگیری از حرکت جهشی تنظیم شدند.
هر پروژه با ترتیب نقاط و زمان مشترک در رابط، ربات واقعی و دوقلوی دیجیتال اجرا میشود. وضعیت اجرا و شماره نقطه فعال برای حفظ همزمانی بین سه لایه مبادله میشود.
با ادامه اسکرول، تمرکز از عضو اول به عضو دوم منتقل میشود و وظایف هر نفر نمایش داده میشود.
مسئول توسعه بخش کنترل زمانواقعی و اصلاحات مرتبط با سنسورها و حرکت محورها.
مسئول رابط کاربری، ارتباط ESP8266 و توسعه مدل دوقلوی دیجیتال و لایه همگامسازی.
مکانیک ربات، کنترلر STM32، کد ESP8266، سینماتیک، پروفایلهای حرکت و رابط وب در فایل پایاننامه مستند شدهاند.