آموزش علم رباتیک

در این وبلاگ مطالبی آموزشی در مورد ساخت ربات و اخبار مسابقات رباتیک خواهیم داشت!

آموزش علم رباتیک

در این وبلاگ مطالبی آموزشی در مورد ساخت ربات و اخبار مسابقات رباتیک خواهیم داشت!

آموزش ساخت ربات (موتور پله ای 2)

سلام. کجا بودم؟ آها :

در مورد استپ های ۵ سیمه و ۶ سیمه صحبت می کردم! در مدل ۵ تایی فقط یک سیم مشترک (COM) وجود داره ولی در مدل ۶ تایی ۲ سیم مشترک وجود داره که باید به ولتاز وصل بشن (سیم یا سیمهای مشترک معمولا قرمز هستند ولی بازم از فروشنده بپرسید) یعنی در هر دو در آخر فقط ۴ تا سیم باقی میمونه که کاربردشون رو خواهم گفت. ۱ تفاوت عمده دارن که اون رو به موقعش توضیح میدم.

نحوه تست سالم بودن موتور پله ای: برای اینکار در مرحله اول باید مطمئن بشیم هیچکدوم از سیمها به هم اتصال ندارن (بهم نچسبیدن :)) حالا با دست شفت رو بچرخونید، می بینید که راحت و روان می چرخه! حالا تمام سیم ها رو به هم اتصال بدید و سعی کنید دوباره شفت رو با دست بچرخونید، اگر یه مقاومت یا سفتی نسبت به حالت قبل احساس کردید بدونید حتما استپتون سالمه! (بدون نیاز به هیچ منبع تغذیه)

یافتن ترتیب صحیح سیمها:  پیدا کردن این ترتیب خیلی مهمه و اگر رعایت نشه موتور ما درست نخواهد چرخید و مارو به اشتباه می اندازه. برای اینکار ابتدا سیم (یا سیمهای) مشترک رو به ولتاژ مورد نیاز موتور (روی بدنه موتور می نویسن ولی معمولا ۱۲ ولت) وصل می کنیم. بعد از میون ۴ تا سیم باقیمونده یکی رو انتخاب می کنیم و سر منفی یا زمین منبع رو به اون اتصال می دیم. اینکار باعث یه چرخش کوچیک میشه. یه کاغذ گرد یا یه تیکه چوب به شفت ببندین تا چرخش های ریز معلوم بشه.  این چرخش کوچیک در واقع همون یک پله موتور به اندازه زاویه موتور هستش. حالا سر منفی (از این به بعد میگم GND، یا گراند کردن) رو به یکی از ۳ تا سیم دیگه اتصال بدید. اگر از این ۳ تا سیم، سیم صحیح رو انتخاب کرده باشید یه گردش کوچیک (به اندازه قبلی) در ادامه حرکت قبلی می بینید ولی اگر خطا باشه گردش معکوس یا بیش از حد (۲ یا ۳ پله) خواهید داشت. اگر سیم خطا بود دوباره زمین رو به سیم اول اتصال بدید و همون کار رو با ۲ سیم دیگه تکرار کیند تا زمانی که سیم صحیح پیدا بشه. وقتی سیم صحیح پیدا شد سیم اول رو کنار میگزارید و مراحل رو از اول برای سه سیم باقیمونده انجام میدید تا ترتیب ۴ تا سیم رو پشت سر هم پیدا کنید.

نحوه کنترل موتور پله ای: یادتونه که برای یافتن ترتیب سیمها چکار می کردیم؟ بله سیم (سیمهای) مشترک رو به سر مثبت منبع وصل می کردیم و با اتصال دادن هر سیم به GND باعث چرخش یک پله ای موتور می شدیم. حالا اگر این چهارتا سیم رو به ترتیب صحیح کنار هم قرار بدیم و سر منفی منبع رو به ترتیب هی روی اونها بکشیم، می بینیم که موتور -هرچند دست و پا شکسته- شروع به چرخش می کنه! (البته باید ترتیب سیمها کاملا صحیح باشه)
حالا فرض کنی چهار تا سیم رو به صورت چهار بیت -بیت فقط میتونه ۰ یا ۱ باشه- در نظر بگیریم و ۱ شدن هر کدوم به معنی اتصال اون به GND باشه (البته اینجا شما فقط برای درک بهتر این رو فرض کنید  چون در واقعیت برعکسه یعنی ۰ به معنی گراند شدن هستش). مثلا ۰۰۰۱ یعنی سیم اول  گراند شده و ۰۱۰۰ یعنی سیم سوم گراند شده.

این قسمت فقط پیش زمینه ای بود برای درک نحوه کنترل استپ. پس از دوستان حرفه ای که این مطالب به دردشون نخورد معذرت می خوام(بگو کدومش به درد میخوره !) جلسه بعد نحوه کنترل استپ به چند روش مختلف رو آموزش میدم که یکی از دوست داشتنی ترین مباحثه! 
راستی دارم حس می کنم استقبال کم شده . اگه نظر ندین قهر میشما! . فعلا یا حق.

 

Adapted from E.l.e.B.o.y.s

دانلود ,دانلود و دانلود ...

سلام !

چند تا از دوستان لطف کردن و مارو متهم به دزدی مطلب کردن !! خدا خودش خوب می دونه :D

اینم چند تا مقاله PDF برای دانلود :

این لینک صحفه ی دانلود که نگین دزدیه برین ببینین که اسمم جلوشه :D : http://www.robotic.farsitools.com/articlelearn.php?grp12=50


برای دانلود مستقیم :

آموزش کار با میکروکنترلر : http://www.robotic.farsitools.com/upload/503160251_microcontroller.pdf

موتور بورد : http://www.robotic.farsitools.com/upload/1080399739_motorboard.pdf

سنسور ها ی حساس به نور : http://www.robotic.farsitools.com/upload/1342861321_sensor.pdf



موفق و پیروز باشید !

اخبار مسابقات IranOpen2006


سلام دوستان!

اولین دوره مسابقات رباتیک ایران هم بالاخره به پایان رسید!

خبر خوب برای ما دانش آموزها که بچه های علامه حلی در دو رشته اول شدن : Rescue Simiulation & 2D Simiulation

خبر خوب برای ما کرمانشاهیا اینکه تیم دانشگاه رازی در رشته ی امداد و نجات در کشور با وجود تیمهای خارجی بعد از دانشگاه امیرکبیر و دبیرستان علامه حلی تهران در مقام سوم ایستاد!

و مهمترین خبر اینکه میزبانی مسابقات جهانی در سال 2008 به ایران رسید :RoboCup 2008 Tehran-Iran

از نکات قابل اشاره اینکه ایران چهارمین کشوری هستش که مجوز برگزاری این مسابقات رو از فدراسیون جهانی کسب کرده سه کشور دیگه عبارتند از : آمریکا- زاپن و آلمان
که این خودش باعث افتخاره!

خلاصه سال رباتیکیه امسالم تقریبا به پایان رسید ... به امید یکسال پربار برای همه!!

تا پست بعد خدانگهدار...

آموزش ساخت ربات (موتور پله ای 1)

دوستان گرام سلام .

سوم اینکه امروز می خوام راجع به موتورهای پله ای (Stepper Motor) که بخش مکانیکی و نیروی محرکه ربوت مارو تشکیل خواهد داد، بنویسم. البته مقالات خیلی زیادی تو نت راجع به نحوه عملکرد استپ موتور (تریپ مغناطیس و...) و یا ساختار درونی اون (سیم پیچ و آهنربا و...) وجود داره اما چیزی که من الان می خوام بگم یه توضیح مختصر به زبان عامیانه ست:

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

در واقع واژه پله به معنی چرخش به اندازه درجه تعریف شده موتور هستش. مثلا استپ موتوری با درجه ۱.۸ باید ۲۰۰ پله انجام بده تا ۳۶۰ درجه یا یک دور کامل بچرخه (۱.۸X۲۰۰ = ۳۶۰) و یک استپ با درجه ۱۵ فقط باید ۲۴ پله برای یک دور کامل انجام بده (۲۴X۱۵=۳۶۰ ). این ویژگی فوائد بسیار زیادی داره از جمله امکان کنترل سرعت.

زاویه پله پله در دور
0.72 500
1.8 200
2.0 180
2.5 144
5.0 72
7.5 48
15 24

اما موتور DC چطور؟ وقتی بهش ولتاژ میدیم از یه سرعت آروم شروع می کنه و شتاب می گیره و با قطع کردن ولتاژ تازه می خواد شتاب منفی بگیره و معلوم نیست چند ثانیه بعد از قطع ولتاژ از چرخش بایسته. با این تفاسیر فکر می کنید تو هارددیسک یا دیسکت درایوها ویا ویدئو ها از کدوم موتور استفاده می کنند؟ در رباتیک بسته به نوع شرائط از هر دو نوع موتور استفاده میشه که شرایط ما فعلا با ستپ جوره!

موتورهای پله ای موجود در بازار معمولا دونوع ۵ یا ۶ سیمه دارند که علت تعدد سیمها و نحوه کنترل و راه اندازی این موتور می مونه برای جلسه بعد. راستی بگم این استپ موتورها قیمت بالایی هم دارن اما من یه جفت کوچیک آزمایشگاهیشو که انگار کارخونه ساخته بودشون برا من، پیدا کردم (فقط به قیمت جفتی ۲ تومن!). اگر شما هم خواستسد در خدمتم باهام تماس بگیرید.

 

برگرفته شده از E.l.e.B.o.y.s

آموزش ساخت ربات مسیریاب (سنسور۲)

سلام. همه خوبید؟ خداروشکر. راستی از لطفتون به پست قبلی ممنونم . خوب جلسه پیش مدار سنسورها رو نشون دادم اما توضیحات تکمیلی موندش که حالا میگم.
ببینید کلا هرچقدر تعداد و تنوع سنسورها در یه ربات بیشتر باشه بالطبع عملکرد اون خیلی بهتر و عاقلانه تر (هوشمندانه تر) بنظر خواهد رسید. البته کنترل و ایجاد ارتباط میان این سنسورها در مغز ربات (میکروکنترلر) بسیار مهم هستش و بدون یک برنامه بهینه هیچوقت این ادعا درست نخواهد بود! با این وجود همونطور که در مدل ها و مدارهای مختلف در سایت ها و وبلاگهای متعددی دیدید هرکدوم از هرچندتا سنسور که دوست داشتن استفاده کردن! از حالت مینیمم که دوسنسوره باشه گرفته تا چهارتایی و بیشتر... اما همونطور که گفتم هر چقدر تعداد این سنسورها بیشتر باشه برای بهینه تر کردن کارایی اونها در میکروکنترلر باید برنامه پیچیده تری رو نوشت. این پیچیدگی در کد یجورایی بصورت تصاعدی افزایش پیدا میکنه، ولی خوب تا سه یا چهار سنسور این تصاعد زیاد صعودی نیست و بعد از اون (۵ ۶ ۷ وو...) بیشتر خودشو نشون میده! که البته این به نحوه قرار گرفتن سنسورها هم خیلی ربط داره... با این حال من بخاطر اینکه این مقالات رو از ابتدایی ترین سطح شروع کردم سعی کردم از همون مدل ۲ سنسوره که حالت قرارگیری اون رو هم در شکل نشون دادم، استفاده کنم. بزرگترین مزیت این مدل (۲ سنسوره) این هست که کد میکروی بسیار ساده و کوتاهی داره و آموزش و فهم اون خیلی راحته و بزرگترین عیبش هم اینه که روبوت یه جورایی زیگزالی حرکت میکنه! (البته هرچقدر استانداردها به سمت ایده آل میل کنه این خطا هم کمتر میشه) که البته برای شروع عیب بزرگی نیست! در چیدمان سنسورهاتون اگر از مدل ما (۲ تایی) استفاده می کنید مثل شکل، حتما فاصله بین فرستنده و گیرنده، که معمولا ۲.۵ میلیمتر در نظر گرفته میشه (اما هرچقدر کمتر باشه حساسیت بیشتر میشه) و فاصله بین دو گیرنده (۲ نقطه سیاه) که بستگی به ضخامت خط سیاهتون داره (۱.۵ الی ۲ سانت بیشتر)، را در نظر بگیرید تا از ایجاد نقص های ذکر شده جلوگیری کنید. همچنین فاصله پک سنسورها (مجموعه فرستنده و گیرنده) از زمین نباید زیاد باشه و معمولا اون رو ۱.۵ تا ۳ سانت اختیار میکنن تا حساسیت کم نشه!

 راستی یادتون باشه برای خرید میکروی AVR Atmega32 حتما مدل L اون رو بخرید چون با وجود یکسان بودن قیمت، مل ال اون پروگرمر ساده ای داره درواقع اصلا پروگرمر نیست فقط باید چندتا پایش رو مستیم به پورت موازی وصل کنید (که بعدا شکلشو نشون میدم). پس یادتون باشه مثل من اشتباه نکیند. در مورد کامپایلر Bascom هم که چند وقت پیش برا دانلود گذاشته بودم معذرت می خوام چون متوجه شدم اصلا بدرد نمی خوره!!!. یه نسخه عالی دارم که بوقتش آپلودش می کنم.

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

آموزش ساخت ربات (مدار سنسورها۱)

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

سنسورها: سنسورهای استفاده شده در این مدل رباتها سنسورهای نوری هستن که از یک فرستنده و یک گیرنده نوری تشکیل شده اند. همونطوری که در فیزیک خوندیم سطح سیاه (کلا تیره) نور رو بیشتر جذب می کنه ولی سطح سفید (روشن) نور بیشتری منعکس می کنه! اساس کار این سنسورها هم بر همین مبناست! نور (نامرئی یا مرئی) توسط فرستنده تابونده میشه و اگر سطح زیر اون تیره باشه همه نور رو جذب میکنه و گیرنده چیزی دریافت نمی کنه و اگر روشن باشه به همون صورت گیرنده بازخورد خودشو به نحوی که توضیح خواهم داد در مدار نشون میده!

گیرنده ها دو مدل هستند ترانزیستوری و مقاومتی! گیرنده های ترانزیستوری درست مثل ترانزیستور عمل می کنن و در واقع پایه بیس (B) اونها میزان نور دریافتی هستش و هرچقدر نور بگیرن جریان عبور میدن (اگه نمیدونید ترانزیستور چیه یه نگاه به کار دخترا بندازید). ولی مقاومتی ها برعکس هستند، هرچقدر نور بگیرن مقاومتشون بیشتر میشه و جریان کمتری عبور میدن. چون در ایران به علت پاک بودن قلبها سطح سفید بیشتر از سطح سیاه پیدا میشه ! من از نوع مقاومتی استفاده کردم تا، زمانی که سنسورها روی خط سیاه نرفتن مقاومت زیاد بشه و خروجی صفر به میکرو ارسال بشه.
شما میتونید با قرار دادن یه LED بجای خروجی (مانند شکل) صحت مدار و سنسورهای خودتون رو چک کنید. در حالت عادی LED روشن هست اما وقتی یه کاغد سفید جلو سنسورها بگیرین LED خواموش خواهد شد انگار به میکرو ۰ یا ۱ فرستاده میشه. این خروجی بواسطه یه مقاومت ۲۲۰ به یه پین از (مثلا) پورت B میکرو وصل میشه و محاصبات و عملیات لازم اونجا رویش صورت می گیره. البته باید توجه کنید کنار هم قرار داشتن فرستنده و گیرنده و زاویشون اهمیت داره و گرنه باعث اختلال میشه که با کمی توجه حل شدنیه!  راستی یادم باشه بهتون بگم عوامل متعددی ممکنه در کار این سنسورها اختلال ایجاد کنه مثلا لامپ های رشته ای(همین لامپ رو سقف!) یا نور زیاد خورشید! بخاطر اینکه این نورها دارای فرکانسهای مختلفی هستند که ممکنه با فرکانس سنسورهای شما یکی باشه و.... اگه یکمی پولتون زیاده پیشنهاد می کنم از نوع CNY70 بخرین(دونه ۱۰۰۰ تومن). چون گیرنده و فرستنده به صورت یه پک کوچیک هستند و حساسیت و دقت رو بینهایت افزایش میده و فکر نکنم از این بدبختیا داشته باشه اما اگه مثل من .... هیتید از مدل جفتی ۲۰۰ بخرین و کلی حال کنید......

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

فعلا بای بای.

آموزش ساخت ربات (میکروکنترلر۴)

سلام!

خوب مقدمات ایجاد یه برنامه در Bascom رو گفتم و امروز میخوام دیگه مبحث برنامه نویسی میکرو رو تموم کنم و بقیه توضیحات رو بزارم روی برنامه اصلی کنترل رباتمون (رو خود برنامه توضیح خواهم داد) و از جلسه بعد بریم تو کار سخت افزار، و اما:

پیکربندی پورتها: همونطور که در شکل مقابل می بینید میکروی AVR (مدل ATMEGA32) داری ۴۰ پایه هستش که ۳۲ تا از پایه های اون می تونه برای چهارتا پورت موجود در اون استفاده میشه. این ۴ پورت مانند شکل به صورت PA, PB, PC, PD نامگزاری شده اند که البته هر کدام از این پورتها دارای ۸ پین (۸X۴=۳۲) هستند. که درواقع هر پورت رو باید به صورت یک بایت در نظر گرفت و هر پین رو به صورت یک بیت (حتما می دونید هر بایت، ۸ بیت هستش!) فرض کرد و هر کدوم از این ۳۲ پایه میکرو مربوط به پین خاصی از یک پورت است. در Bascom نماد پورتها به صورت portx که X یکی از حروف A..D هست بکار میره و نماد پین های هر پورت هم به صورت portx.y که در اینجا X مثل بالا هستش و y شماره پین از ۰ تا ۷ میباشه (۰تا۷ میشه ۸تا ). مثال:

 PortB = 10         'set portb to 10
 PortC.0 = 0        'Set pin 0 of portC to 0
 PortC.4 = 1        'Set pin 4 of PortC to 1

نکته دیگه که باید دقت کنید اینه که پورت ها یک بایتی هستند یعنی نهایت عددی که میشه در اونا قرار داد ۲(۱۱۱۱۱۱۱۱) درمبنای باینری یا ۲۵۵ در مبنای دهدهی خودمون هست. وقتی عدد ۲(۱۱۱۱۱۱۱۱) یا ۲۵۶ رو مثلا در پورت سی قرار بدیم تمام پین های این پورت ۱ میشن و اگر باز عدد ۱۷ معادل ۲(۰۰۰۱۰۰۰۱) رو در اون قرار بدیم (PortC=17) انگاه پینهای ۰ و ۴ این پورت یک خواهند شد. فکر کنم فهمیده باشید قضیه از چه قراره :) فقط باید یکم تبدیل باینری به دهدهی و برعکس رو بلد باشید... اما اگر هنوز کار میکروکنترلر رو درک نکردید و اصلا نمیدونید حالا یک شدن هر پین به چه درد می خوره اصلا نگران نباشید چون به موقع توضیح خواهم داد.

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

آموزش ساخت ربات (میکروکنترلر۳)

 

سلام.. بچه ها خیلی عقبیم٬ تازه باید ۱ جلسه جبرانی هم بزاریم گفته باشم . پس بی مقدمه بریم سر درسمون که شروع برنامه نویسی AVR با کامپایلر Bascom بود:

بدنه یک برنامه در محیط Bascom:
(منظور از بدنه حداقل کد یک برنامه هستش بدون هیچ فرمانی)  بدنه یک برنامه در محیط Bascom شامل تعیین نوع میکرو مورد استفاده٬ کریستال٬ پایان و گزینه های اختیاری دیگری است که در زیر معرفی میشن.

معرفی میکرو:
برای شروع یک برنامه در محیط Bascom ابتدا بایستی میکروی مورد نظر تعریف گردد. چون توصیه من در استفاده از مدل ATMEGA16|32|128 بود٬ بنابراین فعلا به علت زیق در همه چی  فقط به تعریف همین ۳ مدل بسنده می کنم:

$REGFILE = VAR       'فرم کلی تعریف٫ "وار" یه رشته معرف مدل خاص میکروی مورد نظر هستش
$REGFILE =  "M16def.dat"       'MEGA 16 MCU این برا مدل
$REGFILE =  "M32def.dat"       'MEGA 32 MCU این برا مدل
$REGFILE =  "M128def.dat"     
'MEGA 128 MCU این برا مدل

کریستال:این یه نمونه کریستاله
برای مشخص کردن فرکانس کریستال (میکرو ها باید به یه قطعه خارجی بنام کریستال وصل بشن) استفاده شده برحسب هرتز از دستور CRYSTAL = X$ استفاده می نماییم X فرکانس کریستال استفاده شده بر حسب هرتز است. خوشبختانه AVR دارای یک کریستال 1MHZ داخلی هستش که واقعا یک نعمته! اما حتی برای استفاده از اون هم باید این دستور رو بکار ببریم. مثال:

$CRYSTAL = 100000        '1MHz internal
$CRYSTAL = 140000        '14MHz external

یاداشت(اختیاری): گاهی نیاز است یاداشتهایی برای اطلاعات بیشتر در برنامه اضافه کنید٬ در Bascom هم مثل بیسیک می تونید با علامت " ' " یا REM اینکارو انجام بدید. درست مثل یادداشت های اضافی که من در مثالهای قسمتهای قبل استفاده کردم! مثال:

Print "Hello World"      'این دستور بعدا معرفی میشه  
REM این هم یه مدل دیگه از یادداشت اختیاریه

همچنین در پایان هر برنامه باید از کلمه END استفاده کنید که مثل یک حلقه بی پایان عمل می کنه (مثلا در سی باید همیشه یه حلقه درست کنی. یه کار تکراری) و دلیل استفادش چه در این کامپایر و برای این میکرو و چه در سایر کامپایلرها و برای میکروهای دیگه٬ اینه که سیستم برنامه میکرو با کامپیوتر فرق فوکوله  و اگه از END یا حلقه بی پایان استفاده نکنیم برنامه همینطور میره پایین و سایر آدرس های حافظه میکرو رو به خیال ادامه برنامه میخونه که این باعث Error میشه دیگه! پس End یادتون نره!

خوب دیگه از گزینه های اجباری بدنه تغریبا چیزی نموند و برای اینجلسه هم کافیه! جلسه بعد آموزش نحوه تعریف شرط و حلقه و ... در Bascom رو داریم پس حتما مطلب رو دنبال کنید. راستی تا یادم نرفته بگم بعضی از مطالب بالا رو از رو کتاب AVR مهندس "علی کاهه" کپ زدم! همین که مرجع رو گفتم خیلی هم دلش بخواد :)). خسته نباشید.

 

منبع :  http://eleboys.blogfa.com/