طراح

طراح

زندگی یعنی پژوهش و فهمیدن چیز جدید ( پروفسور حسابی)
طراح

طراح

زندگی یعنی پژوهش و فهمیدن چیز جدید ( پروفسور حسابی)

برد کنترلر 1

مشخصات:

- میکروکنترلر MEGA64 / MEGA128

-سه خروجی موتور DC با درایور DRV8870

- 5 ورودی اپتوکوپلری

- ارتباط RS485

- ماژول WiFi

- بیزر

- در اختیار قرار داشتن 18 پایه از میکروکنترلر


طراحی شده با EAGLE





سورس شماتیک و PCB تایمر ساده با 555

مدار دو ورودی برای تحریک مثبت یا منفی داره و با پتانیسومتر میتوان میزان روشن بودن خروجی را تنظیم کرد.
هم چنین خازن 100 نانوفاراد قرار داده شده از وصل ماندن خروجی تا زمان وصل بودن ورودی جلوگیری میکند.






انتشار ویدئوهای آموزشی ایگل در سیسوگ

ویدئوهای آموزشی ایگل در سایت خوب سیسوگ منتشر شد.



آموزش 0 تا 100 ایگل

میانبر های محیط EAGLE

با استفاده از کیبرد و تایپ یک یا دو حرف میتوانید سریعتر به ابزار مورد نظر دسترسی داشته باشید.


میابنرهای محیط شماتیک :

با تایپ عبارت های زیر به ابزار مربوطه دسترسی پیدا میکنید


1- برای پیدا کردن یا هایلایت کردن یک قطعه یا مسیر میتوانید عبارت show x را تایپ کنید. x نام قطعه یا مسیر میباشد.

2- برای اضافه کردن قطعه به شماتیک حرف a را تایپ و اینتر بزنید.



میانبرهای محیط PCB :

با تایپ عبارت های زیر به ابزار مربوطه دسترسی پیدا میکنید


1- برای تغییر حالت wire bend از کلید ctrl + کلید راست موس استفاده کنید.


2- زمان rout کردن (رسم مسیر) برای تغییر ضخامت مسیر کافیست، ضخامت مورد نظر را تایپ کنید و اینتر بزنید.


3- زمان rout کردن (رسم مسیر) برای غیرفعال کردن یک سیکنال (نمایش ندادن) ratsnest ! x را تایپ کنید. x نام سیگنالی هست که میخواهید از حالت نمایش خارج شود. برای مثال ratsnest ! GND - برای فعال کردن یا به حالت نمایش در آوردت مجدد کافیست علامت ! را حذف کنید.


4- همانطور که میدانید ripup کردن مسیر چند حالت دارد. در حالت عادی با انتخاب ابزار ripup و کلیک کردن بر روی مسیر رسم شده، اتصال تا اولین مکان تغییر مسیر  جدا میشود. اگر کلید CTRL را نگه دارید تمام مسیر بین دو پین جدا میشود و اگر کلید CTRL + ALT را نگه داید تمام مسیر سیگنال جدا میشود ( UNROUT )

5- از کلید ترکیبی ALT + F2 برای Fit window استفاده کنید.

6- برای zoom in  کردن از کلید F3 استفاده کنید

7- برای zoom out از کلید F4 استفاده کنید.

8- از کلید F5 میتوانید برای جابه جا کردن محیط edito با توجه به قرار گیری موس استفاده کنید.(میانبر جالبی هست)

9- از کلید F6 برای فعال/غیرفعال کردن GRID استفاده کنید.

10- برای قرار دادن وایا و جابه جایی به لایه بعدی از کلید Space استفاده کنید.


11 - برای انتخاب و چیدمان راحت تر قطعات میتونید از ulp به نام pickup استفاده کنید.



از طریق command line با دستور ASSIGN هم میتونید براش میابنر تعریف کنید مثلا:
ASSIGN A+Z 'RUN PickUp.ulp';


12- برای اینکه اتصال به صورت teardrop  باشه میتونید از ULP به همین اسم استفاده کنید.



فایل تعریف میانبر برای محیط ایگل:

دانلود

تمام محتوای فایل را در command line محیط PCB و شماتیک کپی کنید و اینتر بزنید

آموزش ویدئویی نرم افزار ایگل

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







جلسه 8 آموزش ایگل

موضوع: ارتباط ایگل و فیوژن 360


یکم صداهای اضافی تو ویدئو هست که خودتون فیلتر کنید. 


جلسه 8

مدل سه بعدی PCB



مدل سازی سه بعدی PCB در محیط فیوژن 360، برای این کار باید PCB را با استفاده از ایگل طراحی کنید. در نهایت برای برد طراحی شده می‌توان یک قاب مناسب نیز طراحی کرد و یا برد و چیدمان قطعات را به گونه ای در فیوژن تغییر داد که مناسب قاب دستگاه از قبل طراحی شده باشد.

سورس برنامه و PCB ربات مسیریاب + اپلیکیشن اندروید

سلام به دوست داران الکترونیک و دنیای برنامه نویسی.

در این مطلب می خواهم که اطلاعات مربوط به ساخت رباتی که ویدئوی آن را قرار دادم برایتان منتشر کنم.


1 - مدار و شماتیک

لیست قطعات: 

AMS1117 - ,MC34063 - LM324 - ATXMEGA32A4U - SRF05 - ESP8266 - L293

1-1 : واحد تغذیه: برای مدار نیاز به ولتاژ 3.3 ولت و 5 میباشد. رگولاتور 3.3 ولت AMS1117  تغذیه میکرو و ماژول WIFI  را تامین میکند. رگولاتور MC34063 نیز ولتاژ 5 ولت سایر قطعات را تامین میکند. که به دلیل کوچک بودن سایز این رگولاتور و سلفش انتخاب شده است.


1-2 : پردازنده: برای این مورد هم از پردازنده محبوبم یعنی ATXMEGA32A4U استفاده کردم.


1-3: ESP8266: ارزان ترین و در دسترس ترین و کوچکترین و محبوب ترین ماژول وای فای موجود در دنیا میباشند.


1-4: SRF05: ماژول فاصله سنج آلتراسونیک با حداکثر اندازه گیری 5 متر

1-5: LM324: خروجی آنالوگ سنسورهای مادون قرمز TCRT5000 با استفاده از حالت مقایسگر آپ امپ تبدیل به دیجیتال شده و به میکرو منتقل میشود. از سه سنسور برای حالت مسیریاب استفاده شده است. و سنسور چهارمی هم پیش بینی شده که بتوان کنار چرخ نصب کرد و تعداد چرخیدن چرخ را شمرد که فعلا از آن استفاده نشده است.


1-6: L293 : راه اندازی موتورها به عهده درایور L293D  میباشد. که امکان کنترل دو موتور را به صورت چپ-گرد / راست-گرد با جریان خروجی برای هر موتور 600 میلی آمپر را دارد.



شماتیک کل مدار:


2- PCB: برد ربات با استفاده از نرم افزار EAGLE و به صورت یک رو طراحی شده است. آموزش های این نرم افزار را از اینجا میتوانید دانلود کنید.



دانلود سورس PCB


3 -توضیحات برنامه:

برنامه به زبان C و نرم افزار اتمل استودیو نوشته شده است. با فرض بر اینکه دوستان با برنامه نویسی زبان C آشنا هستند، قسمتهایی که بیشتر مربوط به تنظیمات سخت افزاری ATXMEGA میباشد را شرح میدهم. 

3-1: در ابتدای برنامه تابع init فراخوانی شده و فرکانس میکروکنترلر با اجرای تابع osc_extclk_pll_init از کتابخانه osilator config.h در حالت اسیلاتور متصل به کریستال خارجی تنظیم میشود و با استفاده از واحدد PLL فرکانس 8 مگاهرتز ضربدر 4 شده و به 32 مگاهرتز میرسد و با توجه به این که ضرایب Prescaler A و Prescaler B و Prescaler C  بدون تغییر با مقدار پیش فرض 1 میباشند فرکانس کاری CPU هم 32 مگاهرتز خواهد بود.


void osc_extclk_pll_init(void)
{
OSC.XOSCCTRL = OSC_FRQRANGE_12TO16_gc | OSC_XOSCSEL_XTAL_16KCLK_gc;
OSC.CTRL |= OSC_XOSCEN_bm; // enable External Oscillator
while(!(OSC.STATUS & OSC_XOSCRDY_bm)); // wait for oscillator to be ready
OSC.PLLCTRL = OSC_PLLSRC_XOSC_gc | 4;
OSC.CTRL |= OSC_PLLEN_bm;
while(!(OSC.STATUS & OSC_PLLRDY_bm)); // wait for oscillator to be ready
CCP = CCP_IOREG_gc; // disable register security for clock update
CLK.CTRL = CLK_SCLKSEL_PLL_gc; // switch to PLL clock
}









3-2: کنترل دور موتور: برای کنترل دور موتورها تایمر/کانتر 1 از پورت C در حالت Single-slop PWM Generation قرار داده شده و فرکانس خروجی PWM با قرار دادن مقدار 800 در رجیستر پریود تایمر بر روی 156 هرتز تنظیم شده ، خروجی PWM بر روی پایه های OC1A و OC1B فعال و تایمر با Prescaler 256 شروع به کار کرده است.


TCC1.CNT = 0;
TCC1.PER = 800; //FOR FRQ PWM
TCC1.CTRLB = TC_TC1_WGMODE_SINGLESLOPE_gc | TC1_CCAEN_bm | TC1_CCBEN_bm;
TCC1.CTRLA = TC_TC1_CLKSEL_DIV256_gc; //START TIMER WITH PS256
EN_L = motor.l_min; //SET DIUTY CYCLE OC1A
EN_R = motor.r_min; //SET DIUTY CYCLE OC1B





3-3: اندازه گیری فاصله با استفاده از ماژول SRF05: به صورت خلاصه با تحریک کردن پایه Trigger و اندازه گیری مدت زمان تغییر وضعیت پایه echo می توان فاصله تا مانع را بدست آورد. با تحریک پایه تریگر؛ پایه اکو به وضعیت یک تغییر میکند و بعد از دریافت برگشت امواج فراصوت وضعیت پایه به صفر برمی‌گردد. با توجه به اینکه اندازه گیری فاصله با مانع؛ برای جلوگیری از برخورد با مانع؛ باید پشت سر هم تکرار شود در صورتی که اندازه گیری طول پالس را CPU انجام دهد باعث مشغول شدن CPU و کاهش استفاده مفید از آن میشود. به این خاطر اندازه گیری طول پالس به قابلیت  Pulse Width Capture از تایمر صفر پورت C واگذار میشود. برای این کار باید وقفه بر روی پایه میکرو که به خروجی اکو ماژول متصل است در حالت both edges فعال شود و از طریق Event به عنوان ورودی واحد کپچر تایمر متصل شود.  نحوه کار تایمر در حالت اندازه گیری عرض پالس به این شکل است که با لبه بالا رونده پالس، تایمر ریست شده و از مقدار صفر شروع به شمارش میکند و با لبه پایین رونده پالس، مقداری که در شمارنده تایمر قرار دارد در رجیستر کپچر(CCX) ذخیره میشود.

در اینجا کانال صفر ایونت به PIN2 از PORTA متصل و وقفه خارجی پایه در حالت both edges به عنوان تریگر ایونت انتخاب میشود.


EVSYS.CH0MUX = EVSYS_CHMUX_PORTA_PIN2_gc; //ENABLE EVENT CHANEL 0 ON PIN2 FROM PORTA
PORTA.PIN2CTRL = PORT_ISC_BOTHEDGES_gc;//ENABLE Sense both edges ON PORTA2 FOR TRIGER







EVENT CHANEL 0



تنظیم تایمر در حالت کپچر:


TCC0.CNT = 0;
TCC0.CTRLB = TC_TC0_WGMODE_NORMAL_gc | TC0_CCAEN_bm;//ENABLE CAPTURE CHANEL A(CCA)-
TIMER IN NORMAL MODE
TCC0.CTRLD = TC_TC0_EVACT_PW_gc | TC_TC0_EVSEL_CH0_gc;//ENABLE TIMER EVENT FOR Pulse width
capture - CHANEL 0 EVENT
TCC0.INTCTRLB = TC_TC0_CCAINTLVL_LO_gc; //ENABLE LO LEVEL INTERRUPT FOR CAPTURE CHANEL A
TCC0.CTRLA = TC_TC0_CLKSEL_DIV64_gc; //START TIMER WITH PS64





3-4:مدیریت مصرف: با توجه به اینکه تغذیه ربات از باتری تامین میشود بنابراین باید مصرف جریان را به حداقل برسانیم به این منظور از طریق رجیستر کنترلی Power Reduction کلاک قسمتهای سخت افزاری میکرو که استفاده نمیشوند را قطع میکنیم.

PR.PRGEN = PR_USB_bm | PR_AES_bm | PR_RTC_bm | PR_DMA_bm; PR.PRPA = PR_AC_bm | PR_ADC_bm | PR_DAC_bm; PR.PRPB = PR_AC_bm | PR_ADC_bm | PR_DAC_bm; PR.PRPC = PR_TWI_bm | PR_USART1_bm | PR_USART0_bm | PR_SPI_bm; PR.PRPD = PR_TWI_bm | PR_USART1_bm | PR_USART0_bm | PR_SPI_bm;









آموزش ویدئویی ایگل - جلسه 7

معرفی ابزارهای جدید در نرم افزار طراحی PCB؛ ایگل


جلسه 7



ورژن جدید ایگل

نرم افزار طراحی PCB با محیطی یوزر فرندی، دارای کتابخانه بسیار قوی، امکان ساخت قطعات جدید بسیار سریع و آسان، یک از قابلیت های کاربردی جدید که به نرم افزار اضافه شده امکان ذخیره یک شماتیک و pcb از قبل طراحی شده به عنوان یک بلاک دیزاین هست (مشابه کتابخانه قطعات) که به طراح این امکان را میده که مداراتی را که زیاد استفاده میکنه (مثلا مدار تغذیه) یک بار طراحی و ذخیره کنه و در پروژه های بعدی از طرح آماده استفاده کنه.


آموزش eagle - جلسه 6

چیدن قطعات به صورت دایره - نیم دایره - بیضی و ....


جلسه 6

Direct connect & relief connection - آلتیوم دیزاینر

*تعیین نوع اتصال via از نوع direct connect و اتصال pad از نوع relief connect:


1- در محیط آلتیوم دیزاینر کلید d و سپس r را فشار دهید.
2- از پنجره باز شده،  قسمت design Rules گزینه polygon Connect Style سپس Polygon Connect  را انتخاب کنید.
3- در قسمت first object matches گزینه Advanced را انتخاب کنید. روبروی آن در قسمت Full Query عبارت:
"Ispad AND InNet('GND')"

را تایپ کنید.

4- در قسمت second object matches گزینه all را انتخاب کنید.
5- قسمت Connect Style را بر روی Relief Connect قرار دهید.
6- پنجره را با کلیک روی ok ببندید.
7- روی polygon مورد نظر دبل کلیک کنید و با انتخاب ok و تایید پیام پلیگان مجدد رسم میشود و via ها به صورت direct connect و pad ها به صورت Relife Connect به پلیگان متصل خواهند شد.

*برای حالت معکوس از عبارت زیر استفاده کنید:
"IsVia AND InNet('GND')"


Direct connect   &    relief connection:

A thermal relief pad is a printed circuit board (PCB) pad connected to a copper pour using a thermal connection. It looks like a normal pad with copper "spokes" connecting it to the surrounding copper.

A typical pad on a printed circuit board is only connected to a few narrow tracks. A pad directly connected to the copper pour is difficult to solder since the heat quickly leaks away from the pad into the copper pour due to high thermal conductivity of copper. A thermal connection restricts the heat flow, making the pad easier to solder. Via holes that only connect one layer to another, without having soldering wires or pins into the hole, do not normally need thermal restriction. Wire leaded components that are either carrying radio frequency currents, where the additional inductance would be problematic, or where very high current densities are expected, and the spokes of the thermal relief may act as a fuse, may require the thermal relief pattern to be customised or even omitted, in which case the parts may require additional hand soldering during assembly.

برد افزایش رله RS485

نوع ارتباط : RS485

8 رله

افزایش تعداد رله ها از طریق شیفت رجیستر







دانلود فایل PCB

PCB

لایه های EAGLE



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

و یا خروجی را به آلتیوم دیزاینر تبدیل کنید و از FILE--->FABRICATION OUTPUT----->FAINAL از فایل خروجی بگیرید.

هدر برد GSM & AVR

نیاز به یک برد که هم میکروکنترلر و هم ماژول GSM را داشته باشد برای استفاده راحت توسط کسانی که علاقه به طراحی برد و لحیم کاری SMD نداشته باشند حس میشد. بنابراین این برد را طراحی کردم که نیاز یادگیری و همچنین استفاده از برد در پروژه های صنعتی را مرتفع میسازد.


ویژگی ها:

1- FULL SMD

2- MCU: ATMEGA128

3- I2C EEPROM

4- SIM900

5- امکان تغییر فریمور ماژول

6- پروگرم شدن میکرو بدون پروگرمر

7- LCD 2X16

8- FT232RL برای اتصال مستقم پورت سریال میکرو به پورت USB

9- در دسترس بودن تمام پایه های میکروکنترلر

10- POWER LED

11- دارای 3 LED نشانگر








خرید فایل های PCB



شماتیک برد



شماتیک بهینه شده


designer2100@outlook.com

شاکری

؟ulp (آشنایی با تعدادی از فایل های ulp در نرم افزار eagle)




1- bom.ulp : برای گرفتن تعداد و نام و مقدار قطعات - در محیط شماتیک اجرا شود

2- count.ulp : برای شمردن تعداد pad و via و smd و hole و total number of drills - در محیط pcb اجرا شود

3- export-protelpcb.ulp : گرفتن خروجی protel  - در محیط pcb اجرا شود

4- length-freq-ri.ulp : برای گرفتن فرکانس ماکزیمم ، طول ، سطح مقطع و جریان ماکزیمم هر track استفاده میشود - در محیط pcb اجرا شود

5- print-inductor.ulp : برای کشیدن سلف روی pcb - در محیط pcb اجرا شود

6- silk.ulp : اجرا کنید جالبه !!! - در محیط pcb اجرا شود.

7- spiral-coil.ulp : درست کردن سیم پیج روی pcb - در محیط pcb اجرا شود

8- statistic-brd.ulp : گرفتن تمام اطلاعات برد - در محیط pcb اجرا شود


ابوالفضل شاکری