تعمیرات طرح مبلمان

چگونه می توان یک ربات را در آردوینو انجام داد: ربات خانگی Arduino در خانه. ربات Arduino با دستان خود را بررسی قطب و اتصال صحیح ماژول ها

سلام همه این مقاله یک داستان کوچک در مورد چگونگی است انجام دادن ربات شیطان دست ها. چرا دقیقا داستان، شما می پرسید؟ همه به خاطر این واقعیت است که برای ساخت چنین صنایع دستی لازم است از چمدان قابل توجهی از دانش استفاده کنید، که در یک مقاله بسیار دشوار است. ما روند مونتاژ را می گذرانیم، به یک چشم در کد برنامه نگاه می کنیم و در نهایت "دره سیلیکون" را احیا می کنیم. من به شما توصیه می کنم ویدیو را تماشا کنید تا ایده ای داشته باشید که در نهایت باید کار کند.

قبل از حرکت، لطفا توجه داشته باشید که در ساخت صنایع دستی یک برش لیزر استفاده شد. از برش لیزر شما می توانید خودداری کنید، داشتن تجربه کافی با دستان خود را. دقت نشان می دهد که کلید کمک به تکمیل پروژه با موفقیت!

مرحله 1: چگونه کار می کند؟

ربات دارای 4 پا، با 3 درایو سروو در هر یک از آنها، که اجازه می دهد آن را به حرکت اندام در 3 درجه آزادی. او "قدم زدن خزنده" را حرکت می دهد. اجازه دهید آن را آهسته، اما یکی از کوچکترین.

ابتدا باید روبات را به جلو، عقب، چپ و راست آموزش دهید، سپس یک سنسور اولتراسونیک را اضافه کنید، که به شناسایی موانع / موانع و سپس ماژول بلوتوث کمک می کند، به این ترتیب که مدیریت ربات آزاد خواهد شد.

مرحله 2: جزئیات مورد نیاز

اسکلت این از پلکسی گلاس با ضخامت 2 میلیمتر ساخته شده است.

بخش الکترونیکی خانگی از:

  • 12 درایو سروو؛
  • arduino نانو (می تواند توسط هر صندلی Arduino دیگر جایگزین شود)؛

  • Shilde برای مدیریت سروو؛
  • منبع تغذیه (در پروژه استفاده شده BP 5V 4A)؛

  • سنسور اولتراسونیک؛
  • hC 05 ماژول بلوتوث؛

به منظور ایجاد سپر شما نیاز دارید:

  • نصب هیئت مدیره (ترجیحا با خطوط مشترک (لاستیک) تغذیه و زمین)؛
  • اتصالات پین بینایی - 30 عدد؛
  • سوکت های هیئت مدیره - 36 عدد؛

  • سیم ها.

ابزار:

  • برش لیزری (یا دست مهارت های ماهرانه)؛
  • چسب فوق العاده؛
  • Termocles

مرحله 3: اسکلت

ما از برنامه گرافیکی برای ساخت قطعات کامپوزیتی اسکلت استفاده می کنیم.

پس از آن، در هر صورت موجود، 30 جزئیات ربات آینده را قطع کنید.

مرحله 4: مجمع

پس از برش، پوشش کاغذ حفاظتی را از پلکسی گلاس حذف می کنیم.

بعد، به مجمع پاها بروید. اتصال دهنده ها به قطعات اسکلت ساخته شده اند. همه چیزهایی که باید انجام شود این است که جزئیات را با هم متصل کنید. اتصال کاملا متراکم است، اما برای قابلیت اطمینان بیشتر، شما می توانید یک قطره Superclone را بر روی اتصال دهنده ها قرار دهید.

سپس شما باید درایوهای سروو را نهایی کنید (در کنار پیچ در مقابل شفت Servos قرار دهید).

این بهبود ما یک ربات را پایدار تر خواهیم کرد. بهبود باید فقط برای 8 درایو سروو انجام شود، 4 باقی مانده به طور مستقیم به بدن متصل می شود.

پاها را به عنصر باند (مورد منحنی) وصل کنید، و به نوبه خود به سروو بر روی بدن.

مرحله 5: ما سپر می کنیم

تولید هیئت مدیره بسیار ساده است، اگر شما عکس های ارائه شده در مرحله را دنبال کنید.

مرحله 6: الکترونیک

نتیجه گیری بیل سروو در هیئت مدیره آردوینو. نتیجه گیری باید در توالی صحیح متصل شود، در غیر این صورت هیچ کاری کار نخواهد کرد!

مرحله 7: برنامه نویسی

وقت آن رسیده است که فرانکنشتاین را احیا کنی. اول، برنامه legs_init را دانلود کنید و اطمینان حاصل کنید که ربات در چنین موقعیتی قرار دارد. بعد، دانلود quattro_test را بررسی کنید تا بررسی کنید که آیا ربات به حرکات اساسی واکنش نشان می دهد، مانند حرکت به جلو، عقب، چپ و راست.

مهم: شما باید یک کتابخانه اختیاری را به محیط نرم افزار Arduino IDE اضافه کنید. پیوند به کتابخانه زیر ارائه شده است:

ربات باید 5 مرحله به جلو برود، 5 مرحله برگشت، به سمت چپ 90 درجه تبدیل شود، 90 درجه را به سمت راست برگردانید. اگر Frankenstein همه چیز را درست انجام دهد، ما در جهت درست حرکت می کنیم.

پ.. S.: ربات را بر روی یک فنجان نصب کنید، به عنوان ایستاده، به منظور حفظ آن در نقطه اولیه هر بار. به محض این که آزمایشات عملکرد طبیعی ربات را نشان داد، می توانیم با قرار دادن آن بر روی زمین / کف ادامه دهیم.

مرحله 8: سینماتیک معکوس

معکوس (معکوس) سینماتیک - این واقعیت است و ربات را مدیریت می کند (اگر شما به سمت ریاضی این پروژه علاقه مند نیستید و شما عجله دارید تا پروژه را به پایان برسانید، اما می دانید که ربات حرکت می کند همیشه مفید باشد)

کلمات ساده، سینماتیک معکوس یا اختصار IR "بخشی از معادلات مثلثاتی است که موقعیت انتهای حاد پا، زاویه هر سروو و غیره را تعیین می کند که در نهایت چند پارامتر نصب اولیه را تعیین می کند. به عنوان مثال، طول هر مرحله از ربات یا ارتفاع آن بدن در طول حرکت / استراحت قرار می گیرد. با استفاده از این پارامترهای از پیش تعریف شده، این سیستم مقدار را استخراج می کند تا هر سروو را برای کنترل ربات با استفاده از دستورات پرسید.

بیایید در مورد چگونگی استفاده از Arduino برای ایجاد یک ربات که به عنوان یک Sigway استفاده می کنیم صحبت کنیم.

Sigway از انگلیسی Segway - یک وسیله نقلیه دو چرخ شده، مجهز به درایو الکتریکی است. آنها همچنین Gyros یا اسکوتر الکتریکی نامیده می شوند.

آیا تا به حال فکر کرده اید که چگونه Sigway کار می کند؟ در این درس، ما سعی خواهیم کرد که به شما نشان دهیم چگونگی ساخت ربات Arduino، که خود را درست مثل Segway متعادل می کند.

برای تعادل ربات، موتورها باید سقوط ربات را مقابله کنند. این عمل نیاز به بازخورد و عناصر اصلاحی دارد. عنصر بازخورد - که هر دو شتاب و چرخش را در هر سه محور فراهم می کند (). Arduino از آن استفاده می کند تا جهت گیری فعلی ربات را بداند. عنصر اصلاحی ترکیبی از موتور و چرخ ها است.

در نتیجه، باید تقریبا چنین دوستی باشد:

طرح ربات

موتور راننده موتور L298N:

موتور دنده DC با چرخ:

ربات خود متعادل اساسا یک آونگ معکوس است. اگر مرکز جرم نسبت به محورهای چرخ دار بالاتر باشد، می تواند بهتر باشد. بالاترین مرکز جرم به معنای یک لحظه بالاتر از جرم inertia است که مربوط به شتاب زاویه ای پایین تر (قطره کندتر) است. به همین دلیل ما بسته باتری را در بالای صفحه قرار می دهیم. با این حال، ارتفاع ربات بر اساس حضور مواد 🙂 انتخاب شد

نسخه تکمیل شده از یک ربات مستقل متعادل می تواند در شکل بالا مشاهده شود. در بالای صفحه، شش باتری Ni-CD برای فشار دادن یک تخته مدار چاپی وجود دارد. در فواصل بین موتورها، یک باتری 9 ولت برای راننده موتور استفاده می شود.

تئوری

در تئوری مدیریت، نگه داشتن برخی از متغیرها (در این مورد، موقعیت ربات)، یک کنترل کننده ویژه مورد نیاز است، به نام PID (مشتقات انتگرال متناسب). هر یک از این پارامترها "افزایش"، معمولا KP، KI و KD نامیده می شود. PID اصلاح بین مقدار مورد نظر (یا ورودی) و مقدار واقعی (یا خروجی) را اصلاح می کند. تفاوت بین ورودی و خروجی یک "خطا" نامیده می شود.

کنترل کننده PID خطا را به کوچکترین مقدار ممکن، به طور مداوم تنظیم خروجی را کاهش می دهد. در ورودی خودآزمایی ربات Arduino ورودی (که شیب مورد نظر در درجه است) توسط نرم افزار نصب شده است. MPU6050 شیب فعلی ربات را می خواند و آن را به الگوریتم PID عرضه می کند که محاسبات را برای کنترل موتور انجام می دهد و ربات را در یک موقعیت عمودی نگه می دارد.

PID مستلزم آن است که مقادیر KP، KI و KD به مقادیر بهینه پیکربندی شوند. مهندسان از نرم افزار مانند MATLAB استفاده می کنند تا به طور خودکار این مقادیر را محاسبه کنند. متأسفانه ما نمیتوانیم از MATLAB در مورد ما استفاده کنیم، زیرا این پروژه را حتی بیشتر پیچیده خواهد کرد. در عوض، ما مقادیر PID را سفارشی خواهیم کرد. در اینجا چگونگی انجام این کار است:

  1. KP، Ki و KD برابر صفر است.
  2. تنظیم KP KP بیش از حد کوچک یک ربات را مجبور می کند تا سقوط کند، زیرا اصلاحات کافی نیست. بیش از حد KP باعث می شود ربات به وحشی و عقب برود. یک KP خوب می کند که ربات به طور کامل به عقب برگردد و به جلو برود (یا کمی نوسانات).
  3. به محض نصب KP، KD را تنظیم کنید. مقدار خوب KD نوسانات را کاهش می دهد تا ربات تقریبا پایدار شود. علاوه بر این، KD درست ربات را نگه می دارد، حتی اگر آن را خراب کند.
  4. در نهایت، Ki را نصب کنید. هنگامی که شما ربات را روشن می کنید، حتی اگر KP و KD نصب شوند، متفاوت خواهد بود، اما در زمان تثبیت می شود. مقدار صحیح KI زمان مورد نیاز برای تثبیت ربات را کاهش می دهد.

رفتار ربات را می توان در زیر ویدئو مشاهده کرد:

ربات متعادل کننده خود را به دست آورید

ما نیاز به چهار کتابخانه خارجی برای ایجاد ربات ما داشتیم. کتابخانه PID محاسبه مقادیر مقادیر P، I و D. lmotorcontroller را برای کنترل دو موتور با ماژول L298N استفاده می کند. کتابخانه I2CDEV و کتابخانه MPU6050_6_axis_MotionApps20 برای خواندن داده ها با MPU6050 طراحی شده اند. شما می توانید کد را از جمله کتابخانه ها در این مخزن دانلود کنید.

#عبارتند از. #عبارتند از. #include "i2cdev.h" #include "mpu6050_6Axis_MotionApps20.h" #IF i2CDev_Implementation \u003d\u003d i2CDev_Arduino_Wire #include "wire.h" #endif #define min_abs_speed 20 mpu6050 mpu؛ // MPU کنترل / وضعیت vars bool dmpready \u003d false؛ // تنظیم درست اگر DMP init موفق شد uint8_t mpuintstatus؛ // نگه داشتن بایت وضعیت وقفه واقعی از MPU Uint8_T Devstatus؛ // وضعیت بازگشت پس از هر عملیات دستگاه (0 \u003d موفقیت، 0 \u003d خطا) uint16_t بسته بندی؛ // انتظار می رود اندازه بسته DMP (پیش فرض 42 بایت) uint16_t FifoCount؛ // شمارش تمام بایت ها در حال حاضر در Fifo Uint8_t FifoBuffer؛ // Fifo ذخیره سازی بافر // جهت / حرکت vars quaternion q؛ // گرانش Vectorfloat کانتینر Quaternion؛ // vector جاذبه شناور YPR؛ // Yaw / Pitch / Roll Container و Vector Gravity // PID Double Originalsetpoint \u003d 173؛ دو نقطه Setpoint \u003d OriginalStoint؛ دو حرکت متحرک \u003d 0.1؛ دو ورودی، خروجی؛ // تنظیم این مقادیر را به تناسب طراحی خود را دو kp \u003d 50؛ دو KD \u003d 1.4؛ دو کی \u003d 60؛ PID PID (و ورودی، و خروجی، و SetPoint، KP، KI، KD، Direct)؛ double motorspeadfeedleft \u003d 0.6؛ دو طرفه Motorspeedfeedforright \u003d 0.5؛ // کنترل کننده موتور int e ena \u003d 5؛ int in1 \u003d 6؛ int in2 \u003d 7؛ int in3 \u003d 8؛ int in4 \u003d 9؛ int enb \u003d 10؛ LMOTORCONTROLLER MOTORCONTROLLER (ENA، In1، In2، Enb، IN3، IN4، MOTORSPEEDFEADFECTORTLEFT، MOTORSPEEDFEEDFECTORRIGHT)؛ Voltile Bool MpuinterRupt \u003d False؛ // نشان می دهد که آیا پین وقفه MPU بالا رفته است dmpdataready () (mpuintersprupt \u003d true؛) void setup () (/ / پیوستن به اتوبوس I2C (I2CDev Library آیا این کار را به صورت خودکار انجام می دهد) #IF I2CDEV_IMPLEMENTATION \u003d\u003d I2CDEV_ARDUINO_WIRE WIRE.BEGIN ( )؛ TWBR \u003d 24؛ // 400KHZ I2C CLOCK (200kHz اگر CPU 8MHz باشد) #ELIF I2CDEV_IMPLEMPLEMPLEMPLEMENTATION \u003d\u003d I2CDEV_BUILTIN_FIFTWIRE FASTWIRE :: راه اندازی (400، درست)؛ #endif mpu.initialize ()؛ devstatus \u003d mpu.dmpinitialize ()؛ devstatus \u003d mpu.dmpinitialize؛ // عرضه جایرو های خود را در اینجا عرضه کنید، برای Min حساسیت MPU.SetxGyperoffset (220)؛ mpu.setygyroOffset (76)؛ mpu.setzgyrooffset (-85)؛ mpu.setzacceloffset (1788)؛ ////1688 به طور پیش فرض کارخانه برای آزمایش من تراشه // اطمینان حاصل کنید که آن کار می کرد (بازگشت 0 اگر چنین است) اگر (devstatus \u003d\u003d 0) (// DMP را روشن کنید، در حال حاضر آن را آماده mpu.setdmpenabled (TRUE)؛ / / فعال کردن تشخیص وقفه Arduino interupt (0 ، dmpdataready، افزایش)؛ mpuintstatus \u003d mpu.getintstatus ()؛ // پرچم آماده DMP ما را تنظیم کنید تا عملکرد اصلی حلقه () عملکرد آن را بداند که از آن استفاده کنید DMPready \u003d true؛ // دریافت DM انتظار می رود اندازه بسته P برای مقایسه بعدی packetsize \u003d mpu.dmpgetfipaketsize ()؛ // راه اندازی PID PID.SETMODE (خودکار)؛ pid.setsampletime (10)؛ پودر SetPutputputitits (-255، 255)؛ ) دیگر شکست خورده (کد "))؛ serial.print (devstatus)؛ serial.println (f (" f (")"))؛)) void loop () ) بازگشت؛ // منتظر وقفه MPU یا بسته های اضافی (ها) در دسترس است در حالی که (! mpuinterrupt && fifount< packetSize) { //no mpu data - performing PID calculations and output to motors pid.Compute(); motorController.move(output, MIN_ABS_SPEED); } // reset interrupt flag and get INT_STATUS byte mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus(); // get current FIFO count fifoCount = mpu.getFIFOCount(); // check for overflow (this should never happen unless our code is too inefficient) if ((mpuIntStatus & 0x10) || fifoCount == 1024) { // reset so we can continue cleanly mpu.resetFIFO(); Serial.println(F("FIFO overflow!")); // otherwise, check for DMP data ready interrupt (this should happen frequently) } else if (mpuIntStatus & 0x02) { // wait for correct available data length, should be a VERY short wait while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount(); // read a packet from FIFO mpu.getFIFOBytes(fifoBuffer, packetSize); // track FIFO count here in case there is > 1 بسته در دسترس // (این به ما اجازه می دهد بلافاصله بدون انتظار برای وقفه) fifoCount - \u003d بسته بندی؛ mpu.dmpgetquaternion (& q، fifobuffer)؛ mpu.dmpgetGravity (و گرانش، & Q)؛ mpu.dmpgetyawpitchRoll (YPR، & Q، & Gravity)؛ ورودی \u003d YPR * 180 / M_PI + 180؛ )

KP، KI، ارزش KD می تواند کار کند یا کار کند. اگر آنها این کار را انجام ندهند، مراحل ذکر شده در بالا را دنبال کنید. لطفا توجه داشته باشید که گرایش در کد به 173 درجه تنظیم شده است. اگر می خواهید این مقدار را تغییر دهید، اما توجه داشته باشید که این یک زاویه تمایل است که باید توسط یک ربات پشتیبانی شود. علاوه بر این، اگر موتورهای شما خیلی سریع باشند، می توانید مقادیر motorspeadfeedfeatleft و motorspeedfeactorright را تنظیم کنید.

این همه است به امید دیدار.

اما با خرید یک ربات کامل کامل ساخته شده بر اساس این هزینه. برای کودکان مدرسه ابتدایی یا سن پیش دبستانی، چنین پروژه های آماده آردوینو حتی ترجیح داده می شود، زیرا هزینه "Exneblus" به نظر می رسد خسته کننده است. چنین راهی مناسب برای کسانی که طرح های الکتریکی به ویژه جذب نمی شوند.

با خرید مدل کاری ربات، I.E. در واقع، اسباب بازی های پیشرفته را آماده می کند، شما می توانید علاقه مند به طراحی مستقل و ایجاد روبات ها بیدار شوید. پس از بازی در چنین اسباب بازی و رها کردن در مورد چگونگی کار، شما می توانید به بهبود مدل ادامه دهید، همه چیز را به قطعات تقسیم کنید و شروع به جمع آوری پروژه های جدید در Arduino، با استفاده از یک پلت فرم منتشر شده، درایو ها و سنسورها. باز بودن پلت فرم Arduino به شما اجازه می دهد تا اسباب بازی های جدیدی را از همان قطعات جزء ایجاد کنید.

ما یک بررسی کوچک از روبات های به پایان رسید در هیئت مدیره Arduino ارائه می دهیم.

ماشین در Arduino، کنترل از طریق بلوتوث

ماشین از طریق بلوتوث کنترل می شود، ارزش کمی کمتر از 100 دلار است. می آید در فرم جدا شده علاوه بر مسکن، موتور، چرخ ها، باتری های لیتیوم و شارژر، ما هیئت مدیره Arduino UNO328، یک کنترل کننده موتور، یک آداپتور بلوتوث، کنترل از راه دور و غیره دریافت می کنیم.

ویدیو با این و یک ربات دیگر:

شرح مفصلی بیشتر از اسباب بازی و فرصت خرید در وب سایت فروشگاه آنلاین Deablextreme.

لاک پشت ربات Arduino

کیت برای مونتاژ لاک پشت ربات ارزش 90 دلار دارد پوسته کافی نیست، هر چیز دیگری برای زندگی این قهرمان ضروری نیست، کامل: Arduino Uno، Drives Servo، سنسورها، ماژول های ردیابی، گیرنده IR و کنترل از راه دور، باتری.

یک لاک پشت را می توان در Deablextreme، یک ربات ارزان تر در AliExpress خریداری کرد.

ماشین خزنده در Arduino، مدیریت شده از تلفن همراه

Crawler، کنترل شده توسط بلوتوث با تلفن همراه، ارزش 94 دلار. علاوه بر پایگاه داده Caterpillar، ما هیئت مدیره Uno Arduino و هیئت مدیره، هزینه بلوتوث، باتری و شارژر دریافت می کنیم.

ماشین ردیابی نیز می تواند بر روی وب سایت DeaLextreme خریداری شود، شرح مفصلی وجود دارد. شاید آهن جالب تر باشد مخزن Arduino در AliExpress

Arduino ماشین عبور مزس

گذراندن ماشین عبور، به ارزش 83 دلار. علاوه بر موتورها، کارت های Uno Arduino و دیگر ماژول های تناسب اندام ضروری و ماژول های اتصال مانع.

ربات آماده یا قاب ربات

علاوه بر استفاده از کیت های آماده شده برای ایجاد روبات های Arduino، شما می توانید یک قاب جداگانه (بدن) ربات را خریداری کنید - این می تواند یک پلت فرم بر روی چرخ یا کاترپل، انسان، عنکبوت و دیگر مدل ها باشد. در این مورد، پر کردن ربات باید این کار را انجام دهد. یک مرور کلی از چنین ساختمان ها در ما داده می شود.

جایی که دیگر برای خرید روبات های به پایان رسید

در این بررسی، ارزان ترین و جالب را در نظر ما به نظر ما آماده Arduino-Robots از فروشگاه های آنلاین چینی انتخاب کردیم. اگر زمان برای صبر کردن برای بسته از چین وجود ندارد - انتخاب بزرگ از روبات های آماده در فروشگاه های آنلاین Amperka و Dessy. قیمت پایین و تحویل سریع ارائه می دهد فروشگاه اینترنتی Robstore. فهرست مغازه های توصیه شده.

شاید شما همچنین به بررسی پروژه ما در Arduino علاقه مند خواهید شد:


آموزش Arduino.

نمی دانید کجا شروع به یادگیری Arduino؟ فکر کنید که شما نزدیک تر هستید - مونتاژ مدل های ساده خود و به تدریج عوارض و یا آشنایی خود را با پیچیده تر، اما آماده راه حل های ساخته شده؟

کمی در مورد ربات. اول از همه، این پروژه ارزان ترین بود. سپاه بدون هیچ محاسبات و متعادل سازی ایجاد شده، نیاز اصلی بدن برای بدن حداقل ابعاد است. بنابراین اجازه دهید شروع به جمع آوری این ربات کنیم.

فهرست قطعات:
1. مجموعه ای از اجزای مسکن و یک پا از پلکسی گلاس 1.5 میلی متر.
2. Arduino Mega یا Uno (استفاده از مگا) - 1 کامپیوتر.
3. Micro Servos (استفاده از TowerPro SG90) - 8 عدد.
4. اولتراسونیک یاب HC-SR04 - 1 PC.
5. اندازه باتری 18560، 3.7V (استفاده از TrustFire 2400 MAH) - 2 عدد.
6. نگهدارنده باتری اندازه 18560 (کانتینر منتقل شده استفاده می شود - بسته بندی) - 1 کامپیوتر.
7. قفسه برای یک مدار چاپی 25 میلیمتر. (این قفسه ها استفاده می شود) - 4 عدد.
8. بخشی از هیئت مدیره
9. سیم-بلوز.
10. پیچ DIN 7985 M2، 8 میلی متر. - 18 عدد
11. مهره DIN 934 M2 - 18 عدد

Z-Robodog مونتاژ ربات:

1. هال ربات از پلکسی گلاس شفاف با ضخامت 1.5 میلی متر ساخته شده است. تمام قطعات توسط یک لیزر با طراحی ساخته شده در برنامه CorelDraw برش داده می شوند:

2. بستن مورد چسب دوم. قدرت پوسته پوسته شدن کاملا کافی خواهد بود. هنگامی که مونتاژ، موقعیت حفره ها را در قسمت پایین قرار دهید (عکس ها را ببینید)، و بهتر است هزینه را ضمیمه کنید و اطمینان حاصل کنید که همه چیز هماهنگ است. دیوارهای جانبی متصل می شوند به طوری که سوراخ برای سیم ها به دیوار عقب نزدیک تر است. باز کردن گسترده تر روی دیوار پشتی برای سیم های USB در نظر گرفته شده است، زمانی که مونتاژ کنید، این را در نظر بگیرید.


3. علامت گذاری و حفاری حفاری (مته 2 میلی متر). درایوهای سروو را در صورت استفاده از پیچ و مهره ها و آجیل ها (موارد 10، 11 از لیست) محافظت کنید. شفت های درایوهای سروو جلو باید به دیوار جلو نزدیک شوند. شفت Servo عقب نزدیک به دیوار پشتی نزدیک است.




4.1. جمع آوری پا قسمت های بالای پا را (با دو سوراخ) ببرید. ارسال وسط قسمت. جایگزینی Servos، مکان های اتصال را با پیچ ها و سوراخ های حفاری (مته 1.5 میلی متر) علامت گذاری کنید. چیزهای تکان دهنده را به طوری که پیچ های پیچ از زمین های فرود بود. کفش های تکان دهنده از طرف های مختلف و صندلی های مختلف برای شفت ها در جهت مخالف قرار می گیرند.


4.2. علامت گذاری و سوراخ سوراخ برای نصب درایوهای سروو (مته 2 میلی متر). شفت از درایوهای سروو ثابت باید به لبه باریک پا نزدیک شود.


4.3. به طوری که پنجه ها به عنوان مثال لاستیک نزدیک تر نمی شوند. اما جلوی پا ها نباید گیر کرده، با مراحل، سگ می تواند وارد و چوب شود. من نوارهای فرش لیپوت ساخته شده از ماشین را ترک کردم.

5. علامت گذاری و حفاری حفاری برای اتصال لنفاوی اولتراسونیک (مته 2 میلی متر). نصب RangeFinder، پاها مخاطبین باید به سمت بالا هدایت شوند.

6. نگهدارنده باتری را نصب کنید تا در مورد آن در وسط قرار دارد. هیئت مدیره Arduino را امن کنید و تمام اجزای را متصل کنید. برای شاخه های قدرت، بخشی از هزینه تخلیه استفاده شد.

پیکربندی و راه اندازی ربات z-robodog:

در این مرحله شما باید به طور مستقل نصب پا را به طوری که شما می توانید مراحل را کالیبراسیون کنید. مشکل اصلی در Rockingages، که به شفت ها تنها در موقعیت های خاصی متصل می شوند. و همچنین درایوهای سروو ممکن است درجه های مختلفی را متفاوت کنند.

در اینجا این است که چگونه سگ های سگ من به نقاط افراطی زاویه های سروو نگاه می کنند (متغیرهای ZS1، ZS2، ZS3، و غیره). سعی کنید پا را به عنوان عکس قرار دهید. Paws های بصری باید در همان موقعیت باشند.

در قفسه اصلی، شما همچنین می توانید پا را تنظیم کنید. پس از آن، فراموش نکنید که صندلی های تکان دهنده را به سروو از درایوهای سروو وصل کنید.


بخش نرم افزار Z-Robodog:

کد بسیار ساده است، نظرات در همه جا اضافه شده است. تمام حرکات در آرایه قرار دارند، به طوری که در اعداد من از متغیرها برای هر سروو استفاده نمی شود. به عنوان مثال، S1 - Servo 1، S2 - Servo 2 و غیره. برای ساده سازی درک، ارائه این طرح شما.

در نمودار، PAW ها شماره گذاری می شوند، هر بخشی از PAW همراه با سروو که آن را حرکت می دهد. همچنین، برای هر پا، جهت حرکت نشان داده شده است، نشانه ها به علاوه و منهای نشان می دهد که در آن PAW با افزایش یا کاهش زاویه حرکت می کند. زاویه های اولیه گوشه های قفسه اصلی (S1، S2، S3، و غیره) انتخاب شده اند. به عنوان مثال، اگر شما نیاز به خروج از پنجه دوم، شما باید زاویه S3 و S4 را افزایش دهید، در آرایه آن را به نظر می رسد مانند این (S1، S2، S3 + 100، S4 + 50، S5، S6، S7، S8 ) در اینجا یک طرح کامل است. کد به دلیل دانش من نوشته شده است، به من اطلاع دهید که آیا من راه اشتباه را برای پیاده سازی انتخاب کردم.

ویدئو:


طرح در بایگانی: شما دسترسی به فایل های دانلود از سرور ما ندارید.