طراحی سخت افزار ربات

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

1. دانلود و نصب کتابخانه ها

کتابخانه آلتیوم دیزاینر Farhan.intlib دانلود
کتابخانه آلتیوم دیزاینر Aryalib.IntLib دانلود
کتابخانه آلتیوم دیزاینر Altium.IntLib دانلود
کتابخانه آلتیوم دیزاینر AMINLIB.IntLib دانلود

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

2. انتخاب قطعات

پیش از شروع طراحی باید لیست قطعات مورد استفاده و وضعیت موجودی آنها در بازار را چک کنیم تا بعد از چاپ بورد بتوانیم قطعات را تامین کنیم. لیست زیر یک لیست پیشنهادی از قطعات مورد استفاده در PCB ربات فوتبالیست وزن آزاد است. در طراحی PCB به این لیست Bill Of Material یا BOM گفته می‌شود.

Description Part / Value Qty
Capacitor SMD 1206 CAP1206 8
Capacitor Electrolit SMD CAP Electrolit SMD 4
CAP DIP Cap Electrolyte 5
DIODE Diode 4
LED SMD 1206 LED SMD 1206 2
IDC BOX 5x2 IDC BOX 5x2 1
Header 3 pin Header 3 pin 2
XT60 Power Connector XT60 1
XH Connector 4pins XH 4PIN 6
XH Connector 3pins XH 3PIN 12
XH Connector 2pins XH 2PIN 7
XH Connector 7pins XH 7Pin 2
molex connector H2 MOLEX 1
Inductor 1206 Inductor 1206 1
RESISTOR SMD RES1206 3
RESISTOR SMD RES1206 14
SELF INDUCTOR inductor 1
RESISTOR SMD RES1206 3
RESISTOR SMD RES1206 2
DIP Switch 2 pin DIP SW 2 1
Switch SMD Tact pushbutton 3
SPDT Power Switch SPDT Switch 2
IRF-540 MOSFET N-Chanel IRF540S 1
FDD6690A MOSFET N-Chanel FDD6690A 2
STM32F103C8T6 LQFP48 STM32F103C8T6 1
Gyroscpoe Sensor TDAxis12 1
BL DC MOTOR DRIVER SN65LB 1
OLED SH1106 1.3inch OLED SH1106 1
Bluetooth HC05 Module HC05 1
OpenMV Camera H7 R2 OpenMV 1
RELAY Relay 5V 10A 1
Crystal Oscilator 8MHz Crystal 1
5v Regulator 7805 (SOT-252) 1
3.3v Regulator AMS1117 1
3.3v Regulator (Switching) LM2596 1

3. طراحی شماتیک مدار

برای طراحی شماتیک ابتدا یک پروژه در نرم افزار آلتیوم بسازید و یک فایل شماتیک جدید در آن باز کنید.

3.1. مدار تغذیه:

در مدار تغذیه، ابتدا کانکتور های ورودی باتری را اضافه میکنیم.بهتر است دو نوع کانکتور XH و XT60 را استفاده کنیم. سپس پایه منفی هر دو کانکتور به GND و پایه مثبت آنها به یکدیگر متصل می‌شود. برای جلوگیری از جریان معکوس یک دیود 1n4007 اضافه کرده و پایه مثبت کانکتورهای باتری را به آن وصل می‌کنیم. سپس دو کلید SPDT برای روشن و خاموش کردن موتورها و مدار اضافه می‌کنیم و خروجی دیود را به ورودی هر دو کلید وصل می‌کنیم. در ادامه یک LED به همراه مقاومت برای نمایش روشن یا خاموش بودن موتورها به کلید 12 ولت اضافه می‌کنیم. کلید دیگر باید ولتاژ را به رگولاتورهای 5 ولت و 3.3 ولت برساند. برای اینکار از یک رگولاتور 7805 به همراه AMS1117 استفاده می‌کنیم. یک رگولاتور LM2596 هم به عنوان Backup اضافه می‌کنیم که طبق دیتاشیت این قطعه باید از یک سلف و یک دیود در مدار آن استفاده کرد. همچنین خازن ها نقش مهمی در تثبیت مدار تغذیه دارند و توصیه می‌شود در قسمت های مختلف برای ولتاژ های مختلف از خازن های الکترولیتی 100 میکرو یا 470 میکروفاراد استفاده شود.

3.2. میکروکنترلر و کلیدها:

در این مدار از یک میکروکنترلر STM32F103C8T6 به عنوان پردازنده اصلی استفاده شده. تمام قطعات و کانکتورها به این میکروکنترلر متصل خواهند شد. در محیط شماتیک نرم افزار آلتیوم ابتدا میکروکنترلر STM32F103C8T6 را به نقشه اضافه کرده و سپس با استفاده از ابزار Net Label پایه های مشخص شده در شکل زیر را نام‌گذاری کنید. سپس یک کریستال 8 مگاهرتز برای ساخت کلاک میکروکنترلر اضافه کنید و با استفاده از Net Label آن را به پایه های OSC_IN و OSC_OUT وصل کنید. کلید های BOOT و RESET را نیز مطابق نقشه طراحی کنید. پایه ID در میکروکنترلر به دو مقاومت وصل می‌شود. از آنجایی که دو روبات خواهیم داشت در یکی از ربات ها مقاومت بالا و در ربات دیگر مقاومت پایین را لحیم می‌کنیم تا در برنامه بتوانیم شماره ربات را داشته باشیم.

3.3. کانکتور سنسورهای فاصله و LDR:

سنسورهای فاصله خروجی آنالوگ دارند. به همین علت باید از ADCهای میکروکنترلر برای خواندن مقدار آن‌ها استفاده کنیم. برای اینکار 8 کانکتور 2 پین از نوع XH به مدار اضافه می‌کنیم. پایه های مثبت را با VCC و پایه های منفی را با علامت GND مشخص می‌کنیم. سپس با استفاده از Net Label نام پایه های باقی مانده را از ADC0 تا ADC7 تغییر می‌دهیم.

3.4. نمایشگر OLED و سنسور زاویه:

نمایشگر OLED یا همان SH1106 با استفاده از پروتکل i2c به میکروکنترلر متصل می‌شود. سنسور زاویه نیز از همین پروتکل استفاده می‌کند و پایه هایی که در این نوع ارتباط استفاده می‌شوند SCL و SDA هستند. همچنین دو کانکتور چهار پین هم قرار می‌دهیم تا اگر ماژول دیگری با پروتکل i2c خواستیم راه اندازی کنیم به آن وصل کنیم. کانکتور پروگرامر میکرو هم به پایه های SWDIO و SWCLK متصل می‌شود و برای جلوگیری از جریان معکوس از یک دیود در تغذیه استفاده می‌کنیم.

3.5. ماژول دوربین و بلوتوث:

ماژول دوربین OpenMV H7 Pluse با استفاده از پروتکل i2c یعنی سیم های SDA و SCL به میکروکنترلر متصل می‌شود. دقت داشته باشید که تغذیه این ماژول 3.3 ولت بوده و نباید ولتاژ بیشتری به آن داده شود. در این مدار VCC ولتاژ 3.3v می‌باشد. ماژول بلوتوث HC05 از پروتکل USART استفاده می‌کند. سیم های مربوط به این پروتکل RX و TX می‌باشند.

3.6. مدار کنترل اسپین (دریبلر):

برای کنترل اسپین یا همان دریبلر کافی است از یک ماسفت FDD6690A برای کنترل جریان استفاده کنیم.

3.7. درایور موتور های GTD35:

موتورهای براشلس GTD35 از پرتکل ارتباطی RS485 استفاده می‌کنند. اما میکروکنترلر STM32F103C8T6 از این پروتکل پشتیبانی نمی‌کند. بدین منظور از یک آی سی مبدل USART به RS485 استفاده می‌کنیم. هر موتور یک کانکتور دو پین تغذیه و یک کانکتور 3 پین دیتا دارد و در مجموع برای اتصال 4 موتور به 8 کانکتور احتیاج داریم که در سمت چپ تصویر قرار دارد. برای مدار شوت و ماژول RCJ Communication نیز کانکتورهای 4 پین استفاده می‌شود که در سمت راست تصویر قرار دارند. یک کانکتور IDC Box 2x5 نیز جهت اتصال دوربین Pixy CMU CAM5 استفاده می‌شود. در صورتی که بخواهیم از موتورهای سروو نیز استفاده کنیم می‌توانیم هدر های 3 پین برای اینکار قرار دهیم.

دیدگاه کاربران

1000 دیدگاه
4.7 (میانگین امتیاز کاربران)