بیان نظرات
PID Controller
برای دانلود اینجا کلیک کنید
ADC سورس کد
این برنامه با Codevision نوشته شده است.
امیدوارم مفید واقع گردد.
برای دانلود اینجا کلیک کنید
مقدمه ای بر هوش مصنوعی
فکر کنم جواب دادن به این سوال یه مقدار سخت باشه. چون در حال حاضر ما حتی تعریف دقیقی برای هوش نداریم!
واژه ی هوش مصنوعی (Artificial Intelligence) اولین بار توسط شخصی به نام John McCarthy استفاده شد با این تعریف: "علم و مهندسی ساخت ماشین های هوشمند".
اینم یه تعریف دیگه از هوش مصنوعی که تو خیلی از منابع بکار رفته:
" هوش مصنوعی عبارت است از مطالعه ی این که چگونه کامپیوترها را میی توان وادار به کارهایی کرد که در حال حاضر انسانها آنها رابهتر انجام میدهند "
خوب من کلا زیاد از تعریف خوشم نمی یاد، در نتیجه این قسمت رو همینجا خاتمه میدم، با مثال فکر کنم بهتر بشه مفاهیم رو نشون داد! در آخر اگر دوست داشتین تعریفی که خودتون از هوش مصنوعی پیدا کردینو بگید!
معجزه رباتهای میکروسکوپی در بدن شما
پیش بینی شده است تا سال ۲۰۱۰ در حیطه پزشکی،دانشمندان بتوانند پزشک سلولی،نانو رباتهای جراح،نانو داروها و حسگرهای بینایی و شنوایی قابل کاشت در بدن را به کمک فناوری نانو بسازند.نانو رباتها برای حمله و ترمیم ساختار مولکولی سلولهای سرطانی و بی خطر ساختن ویروس ها برنامه ریزی شده اند و می توان آنها را به گونه ای برنامه ریزی کرد که جراحی های بسیار حساس و دقیق را انجام دهند.به این ترتیب قادر خواهیم بود در آینده پزشکی،با تهیه رسانه های تشخیصی که توسط نانو کامپیوترها تفسیر خواهند شد و توسط ذخایر دارویی که در دستگاههای بسیار ریز ساخته می شوند،مصونیت نهایی را در مقابل بیماریها ایجاد کنیم.شاید براتون جالب باشه که داستان شگفت انگیز رباتهای میکروسکوپی در بدن را با هم مرور کنیم...
هم اکنون محققان در حال کار روی رباتهای کوچکی هستند که از طریق یک شکاف وارد بدن شده و مشکلات قلبی را درمان می کند و همانند دیگر رباتها به افزایش مهارتهای پزشکان در اتاق عمل کمک می کند.
این رباتها که از طریق تزریق بسیار کوچکی در سینه بیمار می توانند روی سطح قلب در حال ضربان، بخزند و داروها را تحویل دهند و یا ابزار پزشکی را متصل کنند بصورت کرمی شکل ساخته شده اند.
این وسیله،دو پای پلاستیکی دارد که هرکدام از آنها به یک مکنده مجهز هستند .این وسیله توسط دو ساختار سیستمی انعطاف پذیر که در یک جعبه به موتورها متصل است،حرکت می کند.این ربات می تواند مانند یک کرم کوچک به جلو و عقب و چپ و راست خزیده و راه برود.جراخ توسط یک دسته مکانیکی حرکت این ربات را کنترل می کند .موتورها و پمپهای خلا داخل یک جعبه در بیرون بدن هستند و یک کابل برق مستقیما به جعبه متصل است(بخشی که وارد بدن می شود موتور ندارد بلکه سیمهای کششی نیروی برق را به ان منتقل می کنند)
معالجه و تشخیص بیماریها در درون بدن
برخی از پژوهشگران به جای تکیه بر یک میدان مغناطیسی،در حال تولید میکرو رباتهایی هستند که به وسیله موتورهای بسیار کوچک راه اندازی شود تا بتوانند درون بدن حرکت کرده و به تشخیص و معالجه بیماریهای مشخصی کمک کنند.گروه دیگری از محققان بتازگی موفق شده اند یک موتور بسازند که به اندازه یک دانه کریستال نمک است،در حال حاضر نیز به شدت در حال فعالیت هستند که موتوری تولید کنند که حتی از مورد قبلی نیز کوچکتر و فقط به اندازه دو تار موی انسان ضخامت داشته باشد.مکانیسم نیروی محرکه این موتور شبیه یک باکتری است که به منظور شناور شدن در بدن انسان مورد استفاده قرار می گیرد.یک موتور چرخان دور شاخکی که پیرامون محور آن قرار دارد و شبیه شلاق دسته دار است،پیچ می خورد.هنگامی که این موتور در یک مایع قرار گرفته باشد،مسیر خود را با چرخیدن طی می کند.
نانو رباتها،شناگران اعماق رگها
پزشکان اغلب اوقات برای انجام جراحی های بسیار ظریف،مانند:ترمیم رگهای خونی،پیوند بافتها یا اتصال دوباره اعضای جدا شده از بدن با چالشهای جدی روبرو می شوند.این فرآیندها بسیار پیچیده هستند و غالبا جراحی نمی تواند موثرترین راه حل باشد،زیرا ممکن است مخرب و انجام آن دشوار باشد.بزودی بسیاری از جراحان می توانند به نانو تکنولوژی روی بیاورند و کارهای ظریف پزشکی را به وسیله رباتهای بسیار کوچکی که از دور کنترل می شوند انجام دهند.این رباتها به اندازه دانه برنج هستند و به راحتی می توانند درون بدن انسان حرکت کنند.
محققان ژاپنی پیچهای چرخان کوچکی را طراحی کرده اند که می تواند درون رگهای بدن شنا کند.این پیچها به داخل تومورها نقب می زنند تا آنها را بکشند یا داروهایی را به بافت مشخصی تحویل دهند.
به دلیل آنکه این پیچها بسیار ریز هستند،می توان آنها را با استفاده از یک سوزن زیر پوستی به بدن تزریق کرد.هنگامی که درون بدن قرار گرفتند،می توان به صورت مغناطیسی و با استفاده از یک منبع میدان مغناطیسی سه بعدی و کنترل کننده آن،پیچهای مزبور را در بدن هدایت کرد.
پیوند ماشین ها با بافت های زنده
چند موسسه مشغول فعالیت هستند تا بافت زنده ارگانیک را با اجزای غیر ارگانیک پیوند دهند تا قطعات ترکیبی (هیبرید) به وجود آورند که بخشی از ماشین و بخشی دیگر ارگانیسم باشد.نخستین مورد از این گونه قطعات،رباتهای بسیار کوچکی بودند که نیروی محرکه آنها از ماهیچه های قلب موجود زنده تامین می شد.هر ربات کوچک دارای قوس نازکی از طلاست که به پوشش ماهیچه قلبی(که از سلول های بدن موش گرفته شده و رشد یافته است) وصل می شود.هنگامی که این ربات در بدن رها شود،از گلوکز موجود در خون تغذیه می کند تا انرژی لازم برای حرکت خود را تامین کند.پژوهشگران برای آزمایش این میکرورباتها آنها را در یک محلول شکر و پروتئین که شباهت زیادی با شرایط داخل بدن دارد فرو بردند.هنگامی که ماهیچه قلب منقبض و سپس رها می شد،میکرو ربات می توانست به جلو حرکت کند.
رباتی به اندازه قطر موی انسان
دانشمندان رباتی ساخته اند که،فقط با میکروسکوپ می توان آنرا مشاهده کرد.این میکرو ربات ۶۰ میکرومتر(باریکی موی انسان) عرض و ۲۵۰ میکرومتر طول دارد.این ربات کوچک بدون سیم قابل کنترل است.به گفته یکی از سازندگان این ربات،طول آن دهها مرتبه و حجم آن هزاران مرتبه کوچکتر از میکرورباتهای بدون سیم و قابل کنترل پیشین است.
این ربات روی چرخ حرکت نمی کند و با استفاده از پاهای ۱۰ نانومتری به سرعت گام برمی دارد.
این ربات به دلیل نوع حرکت انحنایی که دارد می تواند در تمام سطوح بدون سیم و ریل که باعث محدودیت حرکت میکرورباتهای قبلی می شد،حرکت کند.
این ربات از دو قطعه مستقل یکی برای حرکت به سمت جلو و دیگری به منظور چرخیدن تشکیل شده و به الکترودهایی برای تامین نیروی لازم حرکت،مجهز است و می تواند در امنیت اطلاعات،بازرسی و تعمیر مدارها،اکتشاف محیطهای خطرناک و حتی اداره کردن سلولها و بافتهای انسان فعالیت کند.(سرعت حرکت ایت ربات که دانشمندان برای ساخت آن از کرم الهام گرفته اند،۱۰ نانومتر در ثانیه است)
مقدمه ای بر ارتباط سریال
ارتباط
سریال برای انتقال داده در مسیری طولانی به کار گرفته می شود . پورت موازی
سیم های زیادی را برای انتقال داده لازم دارد و همین باعث می شود که
ارتباط سریال بیشتر اهمیت پیدا کند . داده های سربال دریافت شده از مودم یا
دگیر وسائل سریال به موازی تبدیل می شود وسپس در اختیار باس داده کامپیوتر
قرار می گیرد.
تجهیزات ارتباطات سریال را می توان به
Half-Duplex-Simplex و full تقسیم بندی کرد در simplex داده فقط از فرستنده
به گیرنده می رود و فقط در یک جهت حرکت می کند مانند ایستگاه رادیو.
درHalf-duplex
داده در هر دو جهت یعنی هم از فرستنده به گیرنده و هم از گیرنده به
فرستنده می تواند فرستاده شود اما در هر لحظه فقط یکی از این ارتباط ها
فعال است.
راه اندازی srf05 با codevison
;DDRA.0=1
;PORTA.0=1
;(delay_us(20
;PORTA.0=0
;DDRA.0=0
دستور فوق باعث میشود تا فاصله سنج امواج را ارسال کند.تایمر 16 بیتی را فعال
میکنیم زیرا تعداد پالسها ممکن است زیاد باشد.پین مربوطه را که خروجی بود به صورت ورودی تعریف میکنیم.
;TCCR1B=0X01
}do
{
while
;(PINA.0==0)
پس از دریافت پالس اکو پین مربوطه1 شده و از حلقه بیرون میا ید.
حال باید تایمر را بخوانیم؛تایمر را غیر فعال کرده و مقدار آنرا در یک متغیر میریزیم و از طریق کلاک مورد استفاده فاصله را به دست می آوریم.
در این مثال کلاک 1MGHZ تعریف شده است.
;TCCR1B=0X00
;TC=TCNT1
330*(destance=((TC*1us)/2
فاصله تا جسم مورد نظر به دست می آید.
سورس کد I2C (کد حالت اول)
برای شروع آسانترین حالت ممکن فرض شده است یعنی master(atmega32 یک عدد 8 بیتی میفرستد و slave آن را میگیرد.
حالت بعدی حالتی است که master میفرستد و slave هم در جواب یک سری دیتای دیگر میفرستد.
توجه داشته باشید ایجاد حالت شروع و پایان در حوزه اختیارات master است و آی سی slave هیچ نقشی در این مورد ندارد.
برای دانلود سورس کد اینجا کلیک کنید
I2C BUSS چیست؟
I2C یک پروتکل ارتباطی است که ۱۲۸ وسیله را از طریق تنها ۲ خط داده با هم ارتباط میدهد.
در هر لحظه از استفاده از این پروتکل همواره یک ماژول master (ماژول مدیر)و ماژولهای دیگر slave(ماژول فرمانبر یا برده) میتوانند استفاده کنند یعنی ما در لحظه فقط یک مدیر داریم .
قطعه Master ( مدیر ) می تواند از نوع میکروکنترلر ، میکرو پروسسور و حتی کامپیوتر باشد. این قطعه باید قابلیت تولید کلاک پالس ( Clock Pulse ) را داشته باشد.
روش کار به این صورت است که به تمام قطعات Slave یک آدرس اختصاص داده می شود این آدرس به صورت یک کد هگز است و آن قسمت از حافظه برای آن Slave در نظر گرفته میشود برای مثال وقتی 0x44را برای یک slaveدر نظر میگیریم هم در master و در slave این آدرس نوشته میشود و هنگامی که master میخواهداطلاعات به slaveبفرستد یا از آن بگیرد ابتدا آن آدرس را داده(0x44)سپس slaveها این آدرس را با آدرس خود چک میکنند هر slaveکه آدرسش با ادرس ارسالی از طرف slaveیکی بود یک پالس به اسم پالسackارسال میکند و master پس از دریافت این پالس می تواند اطلاعات را به slave فرستاده یا از آن ها درخواست اطلاعات کند.
این انتقال تنها با دو خط انتقال انجام می گیرد. یکی SDA ( خط ارسال داده = Serial Data Line ) و دومی SCL ( خط سریال کلاک = Serial Clock Line ).
قطعات Slave بدون اینکه بر Slave های بعدی تاثیر بگذارند روی گذرگاه قرار می گیرند و زمانی که اطلاعات برای یکی از Slave های خاص فرستاده می شود تابع زیر اجرا خواهد شد :
1 - Starting Condition : قطعه Master کلاک را تولید کرده و مقدار خط SCL = 1 می شود. همچنین سطح ولتاژ SDA از High به LOW توسط Master تغییر وضعیت می دهد و در این صورت هر دو خط مشغول می شوند.
2 - Address Transfer : پس از ارسال سیگنال کلاکCLK آدرس Slave مورد نظر توسط Master به تمام Slave ها ارسال می شود.
3 -Acknowledgement From Slave : در این مرحله هر کدام از Slave ها آدرس را چک کرده و این آدرس برای هر کدام که باشد به سمت Master یک تصدیق ارسال می کند.
4 - Data Transfer : هنگامی که تصدیق از سمت Slave رسید Master یک بایت از دیتا را ارسال می کند. ( حتی ممکن است پشت سر هم چند بایت ارسال شود. )
5 - Stop Condition : وقتی عمل ارسال اطلاعات پایان پذیرفت Master دیتایی به جهت اطلاع رسانی پایان انتقال به سمت Slave می فرستد و عمل ارسال پایان می پذیرد.
نکته پر اهمیت این است که در هنگام انتقال باید توجه کرد که اطلاعات از بین نرود و تصادم بین اطلاعات Master و Slave ایجاد نشود.
نکته پر اهمیت دیگر این است که سیگنال کلاک کاملا سنکرون ( Synchronization ) باشد و به طور هم زمان به Slave ها برسد.
در پست بعدی طریقه اتصال دو آی سی (مثلا atmega8)از طریق I2C buss و همچنین source code را برای علاقه مندان ارسال میکنم
avr-bootloader چیست؟
برای مثال فرض کنید برنامه ای که شما نوشته اید فقط تحت شرایط خاصی به درستی انجام وظیفه میکند و هدف شما این است که اگر شرایط تغییر کرد از برنامه دوم یا برنامه سوم استفاده کنید.
یک راه این است که یک کلید وصل کنید و هر دو برنامه را به وسیله ی دستور شرطی وابسته به کلید از هم تفکیک کنید تا به وسیله کلید از برنامه اول به برنامه دوم سوئیچ شود.
این کار معایب خاص خود را دارد که در حجم بالای کد نویسی سرعت کامپایل کاهش یافته همچنین احتمال هنگ میکرو بیشتر میشود.
استفاده از avr-bootloader به شما این امکان را میدهد تا با تقسیم بندی حافظه برای هر برنامه با سوییچ به برنامه ۲ فقط حافظه مربوط به برنامه دوم فعال میباشد و مانند این است که برنامه های دیگری در آن وجود ندارد.
در لینک زیر راهنمایی های مربوط به avr-bootloader آورده شده است.برای دانلود کلیک کنید.
استفاده از مطالب با ذکر منبع آزاد است......
در این مقاله به بررسی طراحی و ساخت یک روبات مسیر یاب می پردازیم.
وظیفه این روبات دنبال کردن خطی در یک صفحه است.حال چون رنگ خط و صفحه و همچنین اندازه خط متغیر است لذا باید برنامهای برای ان نوشت که بتواند شرایط را شناسایی کند.برای نوشتن این برنامه نیاز به طراحی یک مدار منطقی است که بتواند روابطی برای ورودی و خروجی تعیین کند و بتواند تمام شرایط موجود را تشخیص دهد. در این مقاله به معرفی بخشهای تشکیل دهنده روبات از جمله بخش مکانیکی-الکترونیکی و کامپیوتری می پردازیم.البته بحث اصلی ما روی بخش مدار منطقی آن خواهد بود.
برای دانلود روی لینک زیر کلیک کنید
آموزش سریع میکروکنترلر avr
فهرست مطالب به صورت زیر است:
برای دانلود روی لینک زیر کلیک کنید:
دانلودطراحی کلیدهای تبدیل با گیتهای منطقی
این طراحی با proteus 7 طراحی شده است.
برای دانلود کلیک کنید.
http://www.myfileupload.net/download.php?file=bd7a4f53d7d0ada7eaebe1bbf9f2aa8a
SRF08 ULTRASONIC(سنسورهای صوتی)
فرق این سنسورهای صوتی با سنسورهای صوتی دیگر در برد زیاد آنها حدود 8 متر و با توجه به فرکانس های تعریف شده می توان چند خروجی از این سنسور گرفت و برای هر خروجی دستوری جداگانه تعریف کرد مثلا برای 2 متر یک دستور برای 4 متر یک دستور دیگر نوشت.
DATA SHEET آنرا دانلود کنید.
آی سی LM629
این آی سی برای هماهنگی همه موتورها استفاده می شود برای اینکه شتاب و سرعت و موقعیت همه موتورها کاملا دقیق و هماهنگ باشد.
این آی سی که ال ام۶۲۹ نام دارد که دارای قابلیت های زیر می باشد:
1.قابلیت پروگرم کردن توسط میکرو که می تواند در آن موقعیت، شتاب و سرعت را می نویسد.
2. با توجه به داشتن اینکدرها در موتور، این آی سی از موتورها فیدبک می گیرد تا به طور دقیق موتوربه مقدار دور تعیین شده بچرخد و تا به آن تعداد دور نرسیده از حرکت باز نمیگردد.
در ربات مین یاب دانشگاه از این آی سی استفاده شده است.
DATA SHEET آنرا دانلود کنید.
cmps03,srf05,LCD03
CMPS03
قطبنمای مغناطيسی
ولتاژ: ۵ ولت
جریان نامی: ۲۵ میلی آمپر
دقت: ۱/۰ درجه
صحت: ۳ تا ۴ درجه (بعد از کالیبره کردن)
خروجی ۱: پالس ۱ تا ۳۷ میلی ثانیه با نمو ۱/۰ میلی ثانیه
خروجی ۲: استاندارد I2C، سازگار با SMBUS، صفر تا ۲۵۵ و صفر تا ۳۵۹۹۰، سرعت SCL تا یک مگاهرتز
ابعاد: ۳۵×۳۲ میلیمتر
http://roboteam.webng.com/cmps03.pdf
نمایشگر: ۲۰
کارکتر در هر ردیف (۴ ردیف)
ولتاژ: ۵ ولت
جریان نامی: ۲۸۰ میلیآمپر (با نور پس زمینه روشن)
نوع ارتباط: I2C یا سریال ۹۶۰۰ بیت در ثانیه
کلیدها: قابل اتصال به یک صفحه کلید متشکل از
ماتریس ۴ × ۳ از کلیدها
کاراکترهای دلخواه: ۸ کاراکتر دلخواه به سادگی قابل تعریف است.
حالت پیش فرض نور پسزمینه خاموش میباشد که به کمک نرمافزار میتوان آن را روشن نمود
ولتاژ: ۵ ولت
جریان نامی: ۲۵ میلی آمپر
دقت: ۱/۰ درجه
صحت: ۳ تا ۴ درجه (بعد از کالیبره کردن)
خروجی ۱: پالس ۱ تا ۳۷ میلی ثانیه با نمو ۱/۰ میلی ثانیه
خروجی ۲: استاندارد I2C، سازگار با SMBUS، صفر تا ۲۵۵ و صفر تا ۳۵۹۹۰، سرعت SCL تا یک مگاهرتز
ابعاد: ۳۵×۳۲ میلیمتر
http://roboteam.webng.com/lcd03.pdf
فاصلهياب اولتراسونيک SRF05
محدوده عملکرد: ۱ سانتیمتر تا ۴ متر
تغذیه: ۵ ولت، جریان نامی ۴ میلیآمپر
فرکانس: ۴۰ کیلوهرتز
ابعاد: ارتفاع ۱۷ × ۲۰ × ۴۳
روشهای کارکرد: یک پین برای ارسال دستور فعال سازی (trig) و دریافت اکو (انعکاس صدا) یا دو پین مجزا برای هر سیگنال (سازگار با ماژول SRF04)
سیگنال trig باید از نوع TTL و به طول حداقل ۱۰ میکروثانیه باشد.
پالس اکو از نوع TTL با سطح مثبت است و پهنای پالس متناسب با فاصله جسم از سنسور میباشد.
http://roboteam.webng.com/srf05.pdf
PID CONTROLLER
اگر کمی بیشتر به محیط پیزامون خود توجه کنید خواهید دید که اکثر وسایل خانگی مانند:ماشین لباسشویی، آبگرمکن،توستر و ... و یا در اتومبیلها،هواپیماها،کشتی ها ،رباتها و ... از نوع سیستم کنترل بهره مند میباشند.
به عبارتی میتوان گفت علم کنترل،در توسعه و پیشرفت فناوری نقش ارزنده ای ایفا میکند و به تدریج به صورت بخش مهم و اصلی،از فرآیندهای صنعتی و تولیدی درآمده است.به کمک این علم میتوان سیستم های پویا را تهینه نمود،کیفیت فرآورده های یک فرآیند را بهبود بخشید،عملیات خسته کننده و تکراری را ماشینی نمود و حتی هزینه های یک فرآیند تولید را کاهش داد.
نویسنده باقرنیا
تاریخچه رباتیک
برای بررسی تحولات علم رباتیک از سال ۱۲۵۰ میلادی تا ۲۰۲۰ میلادی بر روی ادامه مطلب کلیک کنید.
این وبلاگ به همت دانشجویان برق گروه رباتیک دانشگاه تهران شرق و با کمک اساتید گرانقدر جهت آشنایی دانشجویان دانشگاه با فعالیت ها و تازه های رباتیک ایجاد شد تا قدمی هر چند کوچک در عرصه گسترش این علم شیرین برداشته باشد.