<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>وب نوشت های من (احسان احسانپور)</title>
	<atom:link href="http://ehgroup.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ehgroup.wordpress.com</link>
	<description>از همه چیز می نویسم ، از آی تی و روباتیک و مکانیک گرفته تا یادداشت ها شخصی !!!</description>
	<lastBuildDate>Thu, 12 Jan 2012 22:05:44 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ehgroup.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>وب نوشت های من (احسان احسانپور)</title>
		<link>http://ehgroup.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ehgroup.wordpress.com/osd.xml" title="وب نوشت های من (احسان احسانپور)" />
	<atom:link rel='hub' href='http://ehgroup.wordpress.com/?pushpress=hub'/>
		<item>
		<title>دوربین مداربسته</title>
		<link>http://ehgroup.wordpress.com/2010/12/17/%d8%af%d9%88%d8%b1%d8%a8%db%8c%d9%86-%d9%85%d8%af%d8%a7%d8%b1%d8%a8%d8%b3%d8%aa%d9%87/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/17/%d8%af%d9%88%d8%b1%d8%a8%db%8c%d9%86-%d9%85%d8%af%d8%a7%d8%b1%d8%a8%d8%b3%d8%aa%d9%87/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 14:12:31 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=467</guid>
		<description><![CDATA[دوربین های آنالوگ &#160; سیستم های مداربسته در دو نوع آنالوگ و تحت شبکه می باشند . دوربین های آنالوگ : از دوربین های آنالوگ می توان به عنوان نسل اول CCTV ها نام برد که کابل خروجی تمامی دوربین ها در دستگاه کنترل مرکزی (DVR) جمع می شوند و در آن دستگاه عملیات کنترل، [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=467&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>دوربین های </strong><strong>آ</strong><strong>نالوگ</strong><strong></strong></p>
<p>&nbsp;</p>
<p>سیستم های مداربسته در دو نوع آنالوگ و تحت شبکه می باشند .</p>
<ol>
<li><strong>دوربین      های آنالوگ :</strong><strong></strong></li>
</ol>
<p><strong> </strong>از دوربین های آنالوگ می توان به عنوان نسل اول CCTV ها نام برد که کابل خروجی تمامی دوربین ها در دستگاه کنترل مرکزی (DVR) جمع می شوند و در آن دستگاه عملیات کنترل، نظارت، ضبط و سایر پردازش ها صورت می گیرد.</p>
<ul>
<li><strong>· </strong><strong>دوربین ثابت :</strong><strong> </strong><strong></strong></li>
</ul>
<p>با وضوح تصویر بالا ، ضد نویز و سایه ، قابلیت کارکرد در نور بسیار کم، مجهز به منوی روی تصویر، قابلیت علامتگذاری روی تصویر Motion Detection</p>
<ul>
<li><strong>· </strong><strong>دوربین متحرک :</strong><strong> </strong><strong></strong></li>
</ul>
<p>با قابلیت زوم بالا ، ضد نویز و سایه ، قابلیت دید در نورکم ، وضوح تصویر بالا ، قابلیت دید در شب ، چرخش <span style="text-decoration:underline;">360</span> درجه افقی و <span style="text-decoration:underline;">240</span> درجه عمودی ، مجهز به منو روی تصویر ، قابلیت علامتگذاری روی تصویر ((Motion Detection ، قابلیت اتصال به انواع شبکه، طراحی زیبا.</p>
<ul>
<li><strong>· </strong><strong>DVR</strong><strong> : </strong><strong></strong></li>
</ul>
<p>ضبط تصاویر به صورت زنده، قابلیت فشرده سازی تصاویر برای کمتر شدن حجم تصاویر، کیفیت بالای تصویر، دارای هارد دیسک داخلی با ظرفیت بالا، مجهز به خشاب های داخلی اضافی هارددیسک، قابلیتBackup  گیری از تصاویر ضبط شده به وسیله پورت USB و DVD-RW ، قابلیت اتصال به انواع شبکه، مجهز به Mouse ، قابلیت کنترل دوربین های متحرک (Speed Dome) ، مجهز به منو ، قابلیت اتصال به کامپیوتر از طریق پورت های <span style="text-decoration:underline;">RS232</span><span style="text-decoration:underline;">- </span><span style="text-decoration:underline;">RS485-RS422</span></p>
<ul>
<li><strong>· </strong><strong>لنز :</strong><strong></strong></li>
</ul>
<p>ü     انواع لنز با قابلیت تنظیم خودکار و دستی فاصله کانونی و همچنین لته با قابلیت زوم دستی</p>
<p>ü     لنزهای با قابلیت تنظیم خودکار فاصله کانونی (Varifocal) برای فاصله های مختلف</p>
<p>ü     لنزهای با قابلیت زوم دستی از فاصله دور بوسیله کابل کشی .</p>
<ul>
<li><strong>· </strong><strong>مانیتور صنعتی : </strong></li>
</ul>
<p>مانیتورهای صنعتی LCD و CRT در اندازه های <span style="text-decoration:underline;">21</span> ، <span style="text-decoration:underline;">19</span>، <span style="text-decoration:underline;">17</span> و <span style="text-decoration:underline;">14</span> اینچ ، با کیفیت تصاویر بالا، ورودی و خروجی ویدئو و صوت ، قابلیت کارکرد به مدت طولانی.</p>
<p>&nbsp;</p>
<ol>
<li><strong>دوربین      های تحت شبکه : </strong><strong></strong></li>
</ol>
<p>دوربین های تحت شبکه را می توان به عنوان یک دوربین و یک کامپیوتر تعریف کرد که در یک سیستم هوشمند جمع شده اند. این دوربین ها تصاویر را بر روی شبکه های کامپیوتری منتقل می کنند تا کاربر بتواند از راه دور تصاویر را مدیریت ، ضبط و پخش نماید. به محض اینکه تصاویر روی شبکه ارسال شد ، کاربر از هر کامپیوتر متصل به LAN و یا اینترنت می تواند به آنها دسترسی داشته باشد.</p>
<p>دوربین های تحت شبکه بهترین و آسانترین راه برای مشاهده ، ثبت و ضبط با بهترین و مطلوبترین کیفیت تصویری بر روی هر نوع از شبکه های کامپیوتریمی باشند.تصاویر با استفاده از هر نوع مرورگر (تحت وب) بدون وابستگی به نوع سیستم عامل ، قابل دیدن و بر روی حافظه های کامپیوتر قابل ثبت و ضبط می باشند.دوربین های تحت شبکه ، کاملاً مستقل از کامپیوتر عمل کرده و در هر جایی قابل نصب هستند.این دوربین ها امکان مشاهده و ضبط تصاویر از هر جایی در دنیا برای کاربر بوجود می آورند.</p>
<div>
<table dir="rtl" border="0" cellspacing="0" cellpadding="0" width="461">
<tbody>
<tr>
<td width="237" valign="top"><strong>مزایا</strong></td>
<td width="224" valign="top"><strong>مشخصات عمومی</strong></td>
</tr>
<tr>
<td width="237" valign="top">ª     کنترل از راه دور   تصاویر زنده دوربین ها در هر زمان ، از هر مکان و از طریق هر کامپیوتر متصل به   شبکه</p>
<p>ª         بالاترين کیفیت تصاویر دیجیتالی</p>
<p>ª     دارای تصاویر واضح   تر با تیرگی کمتر به دلیل استوار بودن بر اسکن پیشرفته تصاویر</p>
<p>ª     انعطاف پذیر بودن   محل نصب در هر جایی که شبکه در دسترس باشد</p>
<p>ª     كاربردهاي متنوع و   متعدد</p>
<p>ª     قابليت افزایش   تعداد دوربین ها تا هر جایی که شبکه گسترش یابد</p>
<p>ª     پشتيباني شده از   طرف بزرگترین شرکتهای سخت افزاری</p>
<p>ª     به  علت داشتن مزيت Power   Over Ethernet نيازي به كابل كشي جداگانه   براي برق ندارند كه اين باعث ايجاد اطمينان بيشتر به سيستم مي شود</p>
<ul>
<li></li>
</ul>
</td>
<td width="224" valign="top">ª        اتصال مستقیم به شبکه های استاندارد کامپیوتری</p>
<p>ª        كاركرد بر اساس شبکه های وب سرور بدون نیاز به هر   گونه سخت افزار واسط و یا نرم افزار اضافی</p>
<p>ª        قابل نصب در هر محیط (مستقل از کامپیوتر)</p>
<p>ª        سه لایه امنیتی با استفاده از Username و Password   جهت محدود کردن دسترسی غیر مجاز</p>
<p>ª        پشتيباني فرمتهای JPEG   ، MPEG2 ، MPEG4</p>
<p>ª        نرم افزار کاربردی داخلی قدرتمند ، حافظه داخلی جهت   اضافه کردن تنظیمات مدیریتی و به روز رسانی سیستم</p>
<p>ª        در طول زمان هزينه پهناي كمتري (مثل هزينه جابجايي   مركز كنترل و سيم كشي مجدد، هزينه خريد تجهيزات مركز كنترل، انتقال تصاوير و   فشرده سازي آنها و &#8230;) براي مالك در بر خواهد داشت</p>
<p>&nbsp;</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>نرم افزار دوربین های تحت شبکه : </strong></p>
<p>بوسیله نرم افزار در آن واحد هم می توانید تصاویر دوربین ها را ببینید ، هم آنها را با کیفیت بالای دیجیتالی به صورت دائم و یا بر طبق برنامه ای خاص ضبط کنید :</p>
<ul>
<li>وجود حالتهای مختلف برای ضبط، از جمله به طور دائمی، بر طبق برنامه ای خاص، یا پس از ایجاد شدن حرکت روی تصویر (Motion Detection) و یا پس از برقراری ارتباط با سیستم های حسگر محیطی .</li>
<li>تخصیص اتوماتیک IP با استفاده از پروتکل های استاندارد</li>
<li>انجام تنظیمات لازم</li>
<li>به روز رسانی سیستم عامل مرکزی دوربین ها</li>
<li>نمایش و ضعیت ارتباط با دوربین ها</li>
<li>مدیریت تعداد نامحدودی دوربین</li>
</ul>
<p>&nbsp;</p>
<p><strong>کاربردهای سیستم های حفاظتی- نظارتی</strong></p>
<p>&nbsp;</p>
<p>ادارات و ارگان های دولتی :</p>
<p>سیستم های حفاظتی قابل نصب در ادارات و ارگان های دولتی برای حفظ و حراست پیرامونی و فیزیکی ، کنترل ورود و خروج و سایر موارد امنیتی به کار می روند . بدینوسیله با ایجاد محیطی امن از اموال دولتی و ارباب رجوع محافظت می شود.</p>
<p>اماکن صنعتی :</p>
<p>در محیط های صنعتی ، مانند کارخانه ها و امکان دسترسی به خطوط تولید و انبارها را در اختیار مدیران قرار می دهد.</p>
<p>&nbsp;</p>
<p>امور بانکی :</p>
<p>به منظور حفاظت از باجه های خودپرداز (ATM) و دیگر نقاط حساس بانکها از خطر دزدی ، موسسات مالی شروع به نصب سیستم حفاظتی در این نقاط نموده اند و برای هر حرکتی تصویر جداگانه ای قابل ذخیره در یک پایگاه داده مرکزی است.</p>
<p>فروشگاه ها :</p>
<p>صندوق فروشگاه همواره در معرض خطر دزدی قرار دارد.سیستم های حفاظتی به طوری که با انتقال تصاویر زنده روی شبکه و ذخیره آنها روی سرور صاحبان فروشگاه و مدیران می توانند روند کار را از راه دور کنترل کنند.</p>
<p>پایانه های مسافربری :</p>
<p>می توان سیستم حفاظتی موجود را در جهت ایجاد امنیت بیشتر برای مسافران راه آهن ، فرودگاه و مترو مورد استفاده قرار داد.بدینوسیله مراکز نظارتی نیز به تصاویر این نقاط دسترسی خواهند داشت.</p>
<p>اماکن آموزشی :</p>
<p>سیستم های حفاظتی قابل استفاده در مدارس ، پارک ها ، کلاس های درس ، سالن های مطالعه و سایر محیط های فرهنگی نیز می باشد و این مکان ها را به محیط های امن و قابل کنترل تبدیل می کند.</p>
<p>&nbsp;</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/uncategorized/'>Uncategorized</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/467/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/467/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=467&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/17/%d8%af%d9%88%d8%b1%d8%a8%db%8c%d9%86-%d9%85%d8%af%d8%a7%d8%b1%d8%a8%d8%b3%d8%aa%d9%87/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>تكامل طراحي ديجيتال به كمك كامپيوتر</title>
		<link>http://ehgroup.wordpress.com/2010/12/17/%d8%aa%d9%83%d8%a7%d9%85%d9%84-%d8%b7%d8%b1%d8%a7%d8%ad%d9%8a-%d8%af%d9%8a%d8%ac%d9%8a%d8%aa%d8%a7%d9%84-%d8%a8%d9%87-%d9%83%d9%85%d9%83-%d9%83%d8%a7%d9%85%d9%be%d9%8a%d9%88%d8%aa%d8%b1/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/17/%d8%aa%d9%83%d8%a7%d9%85%d9%84-%d8%b7%d8%b1%d8%a7%d8%ad%d9%8a-%d8%af%d9%8a%d8%ac%d9%8a%d8%aa%d8%a7%d9%84-%d8%a8%d9%87-%d9%83%d9%85%d9%83-%d9%83%d8%a7%d9%85%d9%be%d9%8a%d9%88%d8%aa%d8%b1/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 14:03:02 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[فناوری اطلاعات]]></category>
		<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش کامپیوتر]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=464</guid>
		<description><![CDATA[طراحي مدارات ديجيتال از 25 سال گذشته تا كنون بسيار متحول گشته است، مدارهاي ديجيتال ابتدايي كه به سختي‌ ميتوان نام سخت‌افزار را بر روي آنها گذاشت، با لامپ‌هاي خلا و تعداد اندكي ترانزيستور ساخته مي‌شدند. با ظهور تكنولوژي مدار مجتمع، امكان پياده‌سازي مدارات ديجيتال بر روي يك تراشه فراهم گرديد. اولين نسل مدارات‌مجتع يا [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=464&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>طراحي مدارات ديجيتال از 25 سال گذشته تا كنون بسيار متحول گشته است، مدارهاي ديجيتال ابتدايي كه به سختي‌ ميتوان نام سخت‌افزار را بر روي آنها گذاشت، با لامپ‌هاي خلا و تعداد اندكي ترانزيستور ساخته مي‌شدند.</p>
<p>با ظهور تكنولوژي مدار مجتمع، امكان پياده‌سازي مدارات ديجيتال بر روي يك تراشه فراهم گرديد. اولين نسل مدارات‌مجتع يا IC ها، SSI سر نام Small Scale Integration نام دارد كه در اين نسل تراشه‌ها با تعداد بسيار اندكي ترانزيستور و گيت‌هاي منطقي ساخته مي‌شدند، پس از آن حجم مجتمع سازي در نسل‌هاي MSI سر نام Medium Scale Integration و LSI سر نام Large Scale Integration به سرعت گسترش يافت و به طوري كه امكان مجتمع سازي هزاران گيت منطقي، در داخل يك تراشه براي طراحان سخت‌افزار فراهم آمده بود.</p>
<p>در اين مرحله روند طراحي بسيار پيچيده و دشوار گرديده بود و طراحان نياز داشتند تا بخشي از مراحل طراحي را به كامپيوتر بسپارند. به كمك ابزارهاي طراحي ديجتال كامپيوتري يا CAD Toolها طراحان توانستند كامپيوتر را در فرايند طراحي اجزاي خود سهيم سازند.</p>
<p>نمايي از يك طراحي بسيار پيچيده</p>
<p>با پيشرفت نسل VLSI سر نام Very Large Scale Integration امكان طراحي مدارات مجتمع با ميليون‌ها ترانزيستور فراهم گشته است(مانند تصوير بالا). به دليل پيچيدگي بسيار زياد اين مدارات ،طراحي و ارزيابي عملكرد آنها به روش‌هاي سنتي ديگر ميسر نيست، به همين خاطر ايده‌اي جهت توصيف طرح به يك زبان قابل فهم براي كامپيوتر مطرح گرديد تا زمينه حضور كامپيوتر در پروسه طراحي يك مدار VLSI گسترده‌تر گشته و مسائل طراحي و ارزيابي در پروسه طراحي يك سخت‌افزار جديد، با الگوريتم‌هاي از پيش تعريف شده، پردازش شوند.</p>
<p><strong>زبان توصيف سخت‌افزار چيست ؟</strong><strong> </strong></p>
<p>HDL سر نام Hardware Description Language ، به خانواده‌اي از زبان‌هاي برنامه‌نويسي گفته مي‌شود كه جهت مدل‌سازي عملكرد بخشي از يك سخت‌افزار به كار گرفته مي‌شوند. توصيف سخت‌افزار به كمك HDLها به دو شكل كلي امكان پذير است:</p>
<p><strong>روش اول:</strong> مدل‌سازي ساختاري سخت‌افزار، كه با تشرح ارتباطات خارجي، اجزاي تشكيل دهنده داخلي و اتصالات ميان‌ها، جهت توصيف ساختار و اجزاي تشكيل دهنده يك سخت‌افزار به كار برده مي‌شود.</p>
<p><strong>روش دوم:</strong> مدل‌سازي رفتاري سخت‌افزار، جهت توصيف انتزاعي رفتار يك سخت‌افزار بدون در نظر گرفتن جزئيات ساختار آن مي‌باشد كه بدون لحاظ كردن اجزاي تشكيل دهنده، به توصيف خروجي‌هاي مدل بر اساس تابعي از ورودي‌هاي آن مي‌پردازد. مدل‌سازي رفتاري يك سخت‌افزار در سطوح مختلفي از انتزاع صورت مي‌پذيرد كه سطوح بالاتر رفتار سخت‌افزار را به صورت چكيده‌تر با جزئيات كمتري نسبت به سطوح پايين تر انتزاع، توصيف مي‌كنند.</p>
<p>طراحي يك سخت‌افزار بر اساس طرح شماتيك مداري كه در گذشته از آن به وفور استفاده مي‌شد، با اينكه شامل اطلاعات بسيار كاملي در مورد سخت‌افزار و اجزاي تشكيل دهنده آن بود، اما در توصيف طرح‌هاي بزرگ به خاطر حجم بسيار زياد اجزاي تشكيل دهنده طرح بسيار پيچيده گشته و حجم مستندات آن خارج از كنترل مي‌گشت. همچنين در روش سنتي طراحي از ايده‌هاي مطرح شده در طرح هيچ گونه حفاظتي به عمل‌ نمي‌آمد و امكان سواستفاده از آنها توسط اشخاصي كه طرح به آنها فروخته مي‌شود، وجود داشت.</p>
<p>نمايي از يك سخت‌افزار مدرن، طراحي شده به كمك زبان‌هاي توصيف سخت‌افزار</p>
<p>در طراحي يك سخت‌افزار با توصيف متني‌ آن به كمك يك زبان برنامه‌نويسي، هم حجم مستندات طرح كاهش يافته و هم امكان حفاظت ايده‌هاي طرح به وجود آمده است. علاوه بر اين توصيف متني يك سخت‌افزار به كمك HDLها براي كامپيوتر قابل فهم‌تر از طرح شماتيكي آن سخت‌افزار با اطلاعات تصويري مي‌باشد.</p>
<p>مهمترين وجه تمايز يك زبان توصيف‌ سخت‌افزار با يك زبان برنامه‌نويسي متداول مانند C ، در نحوه اجراي خط‌كد‌ها مي‌باشد، در زبان‌هاي برنامه نويسي متداول مانند C خط كد‌هاي نوشته شده به ترتيب از بالا به پايين اجرا شده تا در نهايت به اتمام برسند، در حالي كه در زبان‌هاي توصيف سخت‌افزار اجراي دستورات ماهيت ترتيبي و سريال نداشته و تمام خط‌كدها به صورت موازي و همزمان اجرا مي‌شوند، در واقع براي توصيف سخت‌افزاري كه ممكن است از چندين بخش‌ ساخته شده باشد كه خروجي آنها به صورت همزمان تغيير مي‌كند، زبان‌هاي برنامه‌نويسي متداول با ماهيت اجراي ترتيبي خود كاربردي ندارند.</p>
<p><strong>شبيه سازي سخت‌افزار به كمك </strong><strong>HDL</strong><strong>ها</strong></p>
<p>به كمك زبان‌هاي توصيف سخت‌افزار علاوه بر طراحي مي‌توانيم يك سخت‌افزار را شبيه سازي كرده تا قابليت‌ها و عملكرد‌ آن را قبل از پياده‌سازي آزمايش كنيم. در دنياي واقعي تست كردن يك سخت‌افزار، خود نيازمند يك سخت‌افزار ديگر است كه مجموعه‌اي از ورودي‌هاي مجاز را براي سخت‌افزار زير تست توليد كرده و خروجي حاصله را با مقدار مورد انتظار مقايسه كند. در فضاي مجازي كه كامپيوتر در اختيار ما قرار داده است نيز مي‌توانيم قبل از پياده سازي و ساختن سخت‌افزار، عملكرد آنرا با طراحي يك سخت‌افزار جانبي جهت تست، سخت‌افزار اصلي را ارزيابي كنيم، به اين ترتيب كه به كمك زبان توصيف سخت‌افزار، برنامه‌اي نوشته مي‌شود تا زنجيره‌اي از ورودي‌ها را به سخت‌افزار مورد آزمايش داده و خروجي آن را با مقادير مورد انتظار طراح مقايسه نمايد، به اين برنامه كه جهت آزمايش عملكرد سخت‌افزار نوشته مي‌شود، Testbench گفته مي‌شود.</p>
<p>زبان‌هاي توصيف‌سخت‌افزار  Verilog و VHDL در ميان ساير HDL‌ها محبوبيت بيشتري پيدا كرده‌اند كه در ادامه مقاله به بررسي و مقايسه‌آنها خواهيم پرداخت.</p>
<p><strong>زبان توصيف سخت‌افزار </strong><strong>VHDL</strong></p>
<p>زبان VHDL سر نام <strong>V</strong>ery High Speed Integrated Circuit <strong>H</strong>ardware <strong>D</strong>escription <strong>L</strong>anguage از جمله HDLهاي پرطرفداري است كه امروزه در طراحي تراشه‌هاي با كاربرد خاص و تراشه FPGA به كار گرفته مي‌شود.</p>
<p>اين زبان در ابتدا به سفارش وزارت دفاع آمريكا جهت مستند‌سازي اطلاعات مدارات ديجيتال و تراشه‌هاي به كار گرفته شده در ادوات نظامي، طراحي شد. اطلاعات بسيار زياد و پيچيده مدارات ديجيتال به كار گرفته شده در ادوات نظامي‌، مانع از توسعه سريع آنها مي‌شد و اطلاعات طراحي را فقط براي طراح قابل خواندن و پيگيري مي‌ساخت به طوري كه توسعه همان طرح توسط شخص‌ديگر دشوار بود، به همين خاطر در سال 1980 زباني طراحي شد كه توصيف يك مدار در سطوح مختلف انتزاع در آن ميسر باشد. پس از آن ابزارهايي جهت شبيه‌سازي مدارات طراحي شده با اين زبان ايجاد شد، سپس ابزار‌هاي كامپيوتري جهت سنتز كردن كد‌هاي VHDL عرضه شدند كه به كمك اين ابزار، توصيف سخت‌افزاري يك مدار را مي‌توان به راحتي به معادل فيزيكي آن جهت پياده سازي و ساخت مرتبط كرد.</p>
<p>در طراحي زبان توصيف سخت‌افزاري VHDL از مفاهيم زبان برنامه‌نويسي Ada بهره برده شده به همين خاطر اين زبان در syntax بسيار مشابه Ada مي‌باشد. اين زبان به گونه‌اي طراحي شده كه مسائل همزماني و موازي‌سازي سخت‌افزار را به خوبي پوشش دهد.</p>
<p>در سال 1983 دوشركت بزرگ IBM و Texas Instrument‌ به همراه شركت Intermetrics قراردادي را جهت توسعه اين زبان براي كاربرد‌هاي طراحي مدارات ديجيتال امضا كردند و چهار سال بعد اين زبان به توسط IEEE استاندارد سازي شد پس از آن وزارت دفاع آمريكا شركت‌هاي تابع خود را مقيد ساخت تا تمامي مدارات ديجيتال خود را به اين زبان توصيف كنند.</p>
<p>جگنده F-22 يكي از اولين پروژه‌هايي بود كه تمامي مدارات و مستندات الكترونيكي آن به زبان VHDL نگاشته شده بود، موفقيت اين پروژه موجب شد تا زبان VHDL بيش از پيش توسعه يافته و مورد استفاده قرار گيرد.</p>
<p>در سال 1993 استاندارد IEEE-1076 ويرايش شد و در آن تمهيداتي جهت پوشش دادن به سيگنال‌هايي كه در آن واحد چند مقدار به آنها داده مي‌شود، انديشيده شد. در سال 1996 ابزار‌هاي شبيه سازي و سنتز مدارات ديجيتال توصيف شده توسط VHDL به صورت تجاري عرضه شدند تا مراحل طراحي تا پياده‌سازي كامپيوتري يك سخت‌افزار به كمك VHDL تكميل شود.</p>
<p>در سال 2006 كميته فني VHDL مستقر در كنسرسيوم Accellera كه توسط IEEE جهت به روز‌رساني استاندارد VHDL ايجاد شده‌ است، نسخه سوم از پيش نويس استاندارد VHDL-2006 را ارائه كرد.</p>
<p>يك نمونه از برنامه VHDL كه به توصيف يك گيت AND ساده بدون ملاحظات زماني پرداخته است در زير آورده شده است :</p>
<p>&#8211; import std_logic from the IEEE library<br />
library IEEE;<br />
use IEEE.std_logic_1164.all;</p>
<p>&#8211; this is the entity<br />
entity name_of_entity is<br />
port (<br />
IN1 : in std_logic;<br />
IN2 : in std_logic;<br />
OUT1: out std_logic);<br />
end entity name_of_entity;</p>
<p>&#8211; here comes the architecture<br />
architecture name_of_architecture of name_of_entity is</p>
<p>&#8211; Internal signals and components would be defined here</p>
<p>begin</p>
<p>OUT1 &lt;= IN1 and IN2;</p>
<p>end architecture name_of_architecture;</p>
<p><strong>زبان توصيف سخت‌افزار </strong><strong>Verilog</strong></p>
<p>زبان توصيف سخت‌افزاري Verilog‌ سرنام <strong>Veri</strong>fying <strong>Log</strong>ic جهت مدل‌سازي سيستم‌هاي الكترونيكي ابداع شده است كه كليه مراحل طراحي، ارزيابي و پياده سازي يك مدار آنالوگ يا ديجيتال يا يك مدار تركيبي را در چند سطح انتزاع پوشش مي‌دهد.</p>
<p>Syntax اين زبان بسيار مشابه به زبان C مي‌باشد و در توسعه آن از ويژگي‌هاي زبان C الگو گرفته شده است. اين زبان در سال 1981 توسط Phil Moorby در شركت Gateway Design Automation ابداع شد و در سال 1985 نرم‌افزار شبيه‌ساز اين زبان به نام Verilog-XL عرضه شد در سال 1989 اين شركت به همراه حقوق معنوي اين زبان توسط شركت ‍Cadance خريداري و سپس مستندات آنرا براي استفاده عمومي، به صورت رايگان در اختيار مردم قرار گرفت.</p>
<p>در سال 1993 اين زبان توسط IEEE بازنگري و استانداردسازي شد در همين سال بر اساس آمار EE Times حدود 85 درصد از طراحي‌هاي مدارات مجتمعي كه به كارخانه‌هاي توليد‌كننده ادوات نيمه‌هادي سفارش داده شدند، به زبان Verilog توصيف شده بودند.</p>
<p>يك نمونه از برنامه Verilog كه به توصيف يك فليپ‌فلاپ پرداخته است در زير آورده شده است :</p>
<p>module toplevel(clock,reset);<br />
input clock;<br />
input reset;</p>
<p>reg flop1;<br />
reg flop2;</p>
<p>always @ (posedge reset or posedge clock)<br />
if (reset)<br />
begin<br />
flop1 &lt;= 0;<br />
flop2 &lt;= 1;<br />
end<br />
else<br />
begin<br />
flop1 &lt;= flop2;<br />
flop2 &lt;= flop1;<br />
end<br />
endmodule</p>
<p>از جمله امكانات زبان Verilog محيط PLI آن سر نام Program Language Interface مي‌باشد كه به كمك آن مي‌توان كنترل برنامه را از زبان Verilog بر عهده تابعي كه به زبان C نوشته شده است قرار داد، اين قابليت موجب شده تا زبان Verilog انعطاف پذير گشته و توسعه برنامه در آن توسط زبان C نيز امكان پذير باشد.</p>
<p><strong>Verilog‌</strong><strong>در برابر </strong><strong>VHDL</strong></p>
<p>توصيف ساختاري يك سخت‌افزار با زبان Verilog هيچ گونه برتري يا كاستي نسبت به توصيف آن با زبان VHDL ندارد و تفاوت ميان اين دو زبان بيشتر در توصيف‌هاي رفتاري يك سخت‌افزار خود را نشان مي‌دهند. شكل زير نشان‌دهنده ميزان مقياس پذيري اين دو زبان در سطوح مختلف انتزاع در توصيف رفتاري مي‌باشد:<br />
همانطور كه مشاهده مي‌كنيد، زبان Verilog توانايي مدل‌سازي سخت‌افزار تا پايين‌ترين سطح انتزاع يعني سطح ترانزيستور و سوييچ را دارا مي‌باشد در حالي كه زبان VHDL توانايي مدل‌سازي سخت‌افزار در بالاترين سطوح انتزاع (تا سطح سيستم) را دارد. علارقم اينكه به كمك قابليت PLI زبان Verilog تا حدودي مي‌توان به توصيف سيستمي يك سخت‌افزار پرداخت، اما اصولا بهره‌گيري از HDL ها جهت توصيف يك سيستم ناكارآمد است و براي اين منظور زبان‌هاي كارآمد ديگري مانند SystemC و System Verilog طراحي شده كه به كمك آنها مي‌توان سخت‌افزار را از بالاترين سطح انتزاع توصيف نمود. لذا قابليت‌هاي توصيف سيستمي VHDL را به سختي مي‌توان در زمره برتري‌هاي آن نسبت به Verilog‌ قلمداد كرد.</p>
<p>انواع داده در زبان Verilog  نسبت به VHDL ساده تر و استفاده از آنها آسان‌تر مي‌باشد، ضمن اينكه اين انواع داده در Verilog به مدلسازي ساختاري نزديك‌تر هستند، در اين زبان برخلاف VHDL انواع داده مشخصي تعريف شده است و كاربر نمي‌تواند انواع داده جديد به آن اضافه كند. به دليل سادگي استفاده از انواع داده‌ها زبان Verilog نسبت به VHDL ارجحيت دارد.</p>
<p>براي فردي كه پيش‌زمينه‌اي در مورد زبان‌هاي برنامه نويسي ندارد، يادگيري زبان Verilog‌ساده‌تر از VHDL است، چرا كه نوشتن كد‌هاي VHDL كمي پيچيده تر از Verilog‌مي‌باشد و براي تسلط بر خط كد اين VHDL، زمان بيشتري نياز است، علاوه بر اينكه در زبان‌ VHDL روش‌هاي متعددي براي مدل كردن يك مدار وجود دارد كه در ساختار‌هاي بزرگ مي‌تواند موجب سردرگمي افراد تازه‌ كار شود.</p>
<p><strong>انتخاب يك زبان توصيف‌ سخت‌افزار</strong><strong> </strong></p>
<p>براي انتخاب يك زبان جهت توصيف مدار ديجيتال، عوامل متعددي را بايد علاوه بر برتري‌هاي ذاتي يك زبان خاص مدنظر قرار داد. برخي از اين عوامل عبارتند از:<br />
<strong>سليقه شخصي :</strong> اصولا چون اكثر مهندسين و طراحان مدارات ديجيتال به زبان C مسلط هستند، زبان Verilog را كه خط كد مشابه C دارند ترجيح مي‌دهند، ضمن اينكه خوانايي كد‌هاي اين زبان بهتر از VHDL است.</p>
<p><strong>موجوديت ابزار‌هاي شبيه‌سازي و سنتز :</strong> در حال حاضر ابزار‌هاي شبيه‌ساز رايگان متعددي براي زبان Verilog وجود دارند كه از ميان‌آنها ميتوان به كامپايلر Icarus Verilog اشاره كرد، در حالي كه ابزارهاي شبيه‌ساز متن‌باز اندكي براي VHDL موجود هستند و اقلب ابزار‌هاي شبيه‌سازي اين زبان، به صورت تجاري به فروش مي‌رسند.</p>
<p><strong>عوامل تجاري و بازاريابي :</strong> بر اساس آمار‌هاي منتشر شده در سال 1998بازار ابزار‌هاي شبيه‌سازي زبان Verilog حدود 150 ميليون دلار اعتبار داشت به طوري كه اعتبار اين بازار نسبت به سال 1994 دو برابر شده بود، در سال 2003 نيز شركت Synopses يكي از بزرگترين شركت‌هاي اين بازار چند صد ميليون دلاري، اعلام كرد كه تيم توسعه و تحقيقات اين شركت تنها بر روي Verilog متمركز شده اند و در ابزار‌هاي شبيه‌سازي اين شركت از VHDL‌پشتيباني نخواهد شد.</p>
<p>زبان توصيف سخت‌افزاري Verilog مورد استقبال صنايع بزرگ قرار گرفته است به طوري كه امروزه اين زبان به عنوان يك زبان پركاربرد در صنعت طراحي و توليد مدارات ديجيتال شناخته شده است. در مقابل زبان VHDL از سوي جامعه آكادميك مورد استقبال قرار گرفته و بيشتر در پروژه‌هاي دانشگاهي از آن بهره گرفته مي‌شود.</p>
<p>تمركز وب‌سايت تخصصي سخت‌افزار ايران نيز با توجه به برتري‌هاي ذكر شده بر روي زبان توصيف سخت‌افزاري Verilog مي‌باشد. به همين منظور جهت فراگيري اين زبان خودآموز زير را به خوانندگان گرامي اهدا مي‌كنيم.</p>
<p>خودآموز زبان Verilog نگاشته جناب آقاي دكتر صفري استاديار دانشگاه تهران در گروه مهندسي كامپيوتر-سخت‌افزار:</p>
<p>جهت فراگيري زبان توصيف سخت‌افزاري VHDL نيز مراجع و كتب‌هاي متعددي وجود دارد كه بر اساس مشور‌ت‌هاي صورت گرفته Tutorial منتشر شده توسط سايت cic.org.tw به خوانندگان محترم پيشنهاد داده مي‌شود،نسخهPDF اين خودآموز را مي‌توانيد از <a href="http://www2.cic.org.tw/training/train_download/Vhdl0407.pdf" target="_blank">اين آدرس </a>دانلود كنيد. <strong>منابع :</strong></p>
<p>Wayne Wolf, &#8220;Modern VLSI Design&#8221; 3rd Edition, Prentice-Hall</p>
<p>Samir Palnitkar, &#8220;Verilog® HDL: A Guide to Digital Design and Synthesis&#8221;, Second Edition, Prentice-Hall</p>
<p>Douglas J.Smith, &#8220;HDL Chip Design&#8221;, Doone publications</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d9%81%d9%86%d8%a7%d9%88%d8%b1%db%8c-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa/'>فناوری اطلاعات</a>, <a href='http://ehgroup.wordpress.com/category/education/'>آموزش</a>, <a href='http://ehgroup.wordpress.com/category/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/'>آموزش کامپیوتر</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/464/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=464&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/17/%d8%aa%d9%83%d8%a7%d9%85%d9%84-%d8%b7%d8%b1%d8%a7%d8%ad%d9%8a-%d8%af%d9%8a%d8%ac%d9%8a%d8%aa%d8%a7%d9%84-%d8%a8%d9%87-%d9%83%d9%85%d9%83-%d9%83%d8%a7%d9%85%d9%be%d9%8a%d9%88%d8%aa%d8%b1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>جایگاه CPU در ساختمان کامپیوتر</title>
		<link>http://ehgroup.wordpress.com/2010/12/17/%d8%ac%d8%a7%db%8c%da%af%d8%a7%d9%87-cpu-%d8%af%d8%b1-%d8%b3%d8%a7%d8%ae%d8%aa%d9%85%d8%a7%d9%86-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/17/%d8%ac%d8%a7%db%8c%da%af%d8%a7%d9%87-cpu-%d8%af%d8%b1-%d8%b3%d8%a7%d8%ae%d8%aa%d9%85%d8%a7%d9%86-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 13:58:33 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[فناوری اطلاعات]]></category>
		<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش کامپیوتر]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=461</guid>
		<description><![CDATA[کامپیوتر کار اصلی خود را در بخشی از دستگاه که توسط ما دیده نمی‌شود انجام می‌دهد. این بخش داده‌های خام را به اطلاعات تبدیل می‌کند. این مرکز کنترل که واحد پردازش مرکزی (Central Processing Unit) یا اختصارا CPU نامیده می‌شود، مجموعه‌ی گسترده و پیچیده‌ای از مدارهای الکترونیکی است که وظیفه‌ی اجرای دستورهای برنامه های ذخیره [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=461&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>کامپیوتر کار اصلی خود را در بخشی از دستگاه که توسط ما دیده نمی‌شود انجام می‌دهد. این بخش داده‌های خام را به اطلاعات تبدیل می‌کند. این مرکز کنترل که واحد پردازش مرکزی </strong>(Central Processing Unit)<strong> یا اختصارا </strong>CPU<strong> نامیده می‌شود، مجموعه‌ی گسترده و پیچیده‌ای از مدارهای الکترونیکی است که وظیفه‌ی اجرای دستورهای برنامه های ذخیره شده را به عهده دارد. واحد پردازش مرکزی از دو بخش عمده تشکیل شده است که هر یک از آنها را به اختصار توضیح خواهیم داد</strong>.<strong></strong></p>
<p><strong>واحد کنترل</strong> <strong> (</strong>Control Unit<strong>): این بخش از مدارهای الکترونیکی تشکیل شده است که به وسیله‌ی آنها سیستم کامپیوتر را در جهت اجرای دستورات هدایت می‌کند. مانند یک رهبر ارکستر. توجه به این نکته ضروری است که این واحد خود دستورات را اجرا نمی‌کند بلکه دیگر اعضای سیستم را وادار به انجام آنها می‌کند. به این منظور این واحد باید با حافظه‌ی کامپیوتر و واحد محاسبه و منطق ارتباط داشته باشد.</strong></p>
<p><strong>واحد محاسبه و منطق (</strong>Arithmetic/ Logic Unit<strong>): این واحد مجموعه‌ای از مدارهای الکترونیکی است که همان طور که از نامش بر می‌آید مسئول اجرای دستورات محاسباتی و منطقی است. دستورات محاسباتی این بخش به چهار عمل اصلی ضرب، تقسیم، جمع و تفریق محدود می‌شود. دستورات منطقی نیز معمولا شامل مقایسه است. این بخش می تواند اعداد، حروف یا کاراکترهای به خصوص را با هم مقایسه کند.</strong></p>
<p><strong>عملکرد </strong>CPU</p>
<p><strong>مجموعه‌ی عملکردهای </strong>CPU<strong> را می‌توان به چهار بخش اصلی تقسیم‌بندی کرد که تقریبا در همه‌ی ریزپزدازنده‌های امروزی یکسان است. </strong></p>
<p><strong>فراخوانی (</strong>Fetch<strong>): مرحله‌ی فراخوانی شامل دریافت یک دستورالعمل اجرایی از یک برنامه‌ی ذخیره شده است که این دستورالعمل معمولا به صورت یک عدد یا مجموعه‌ی مرتبی از اعداد است. بخشی از </strong>CPU<strong> به نام شمارنده‌ی برنامه (</strong>Program Counter<strong>)</strong> <strong> یا </strong>PC<strong>، محلی را در قسمتی از حافظه که توسط برنامه‌ی تحت اجرا اشغال شده است مشخص میکند. عددی که در </strong>PC<strong> ذخیره می‌شود مرحله‌ی فعلی فرآیند اجرای برنامه را مشخص می‌کند. بعد از این که دستور فراخوانی می‌شود، شمارنده افزایش می‌یابد. این افزایش متناسب با اندازه‌ی حجمی از حافظه‌ی کامپیوتر است که دستور تحت اجرا آن را اشغال کرده بود. به این ترتیب </strong>CPU<strong> هنگام اجرای دستور بعدی می داند که از کجای حافظه شروع کند.</strong></p>
<p><strong>رمزگشایی (</strong>decode<strong>): در این مرحله، واحد کنترل دستور فراخوانی شده را به بخش‌هایی که برای قسمت‌های پردازنده قابل فهم هستند تفکیک می‌کند. همان طور که ذکر شد، هر دستور به صورت مجموعه‌ی مرتبی از اعداد است. بخشی از این مجموعه اعداد که شناسنده (</strong>opcode<strong>) نام دارد، بیان می‌کنند که عمل اصلی مربوط به این دستور چیست. بخش باقی‌مانده معمولا حاوی داده‌های مورد نیاز برای اجرای آن دستور است. مثلا برای دستور جمع دو عدد، </strong>opcode<strong> دستور جمع را معرفی می‌کند و باقی دستور نشان می‌دهد که متغیرهایی که باید با هم جمع شوند چه هستند یا باید از کدام قسمت حافظه برداشته شوند.</strong></p>
<p><strong>اجرا (</strong>execute<strong>): در این مرحله بخش‌های مختلف اجرایی، ورودی و خروجی و حافظه‌ای </strong>CPU<strong> در ارتباط با یکدیگر قرار می‌گیرند و سرانجام عملیات نهایی در بخش محاسبه و منطق روی داده‌ها انجام می‌گیرد.</strong></p>
<p><strong>بازگشت برای نوشتن مجدد (</strong>writeback<strong>)</strong>:<strong> در این مرحله، نتایج مرحله‌ی اجرا به شکل نوعی از حافظه ذخیره می‌شوند. گاهی ممکن است لازم باشد که این نتیجه در دسترس سریع ‌</strong>CPU<strong> قرار گیرد تا برای انجام فرآیندهای بعدی </strong>CPU<strong> از آن استفاده کند. برای این منظور نوعی حافظه‌ی موقت در </strong>CPU<strong> وجود دارد که ثبّات (</strong>register<strong>) نام دارد که ‌این گونه اطلاعات روی آن ذخیره می‌شوند.<br />
</strong></p>
<p><strong>نویسندگان :</strong></p>
<p><strong>محسن مهدوی </strong></p>
<p><strong>امید رضا نظری پویا </strong></p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d9%81%d9%86%d8%a7%d9%88%d8%b1%db%8c-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa/'>فناوری اطلاعات</a>, <a href='http://ehgroup.wordpress.com/category/education/'>آموزش</a>, <a href='http://ehgroup.wordpress.com/category/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/'>آموزش کامپیوتر</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/461/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=461&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/17/%d8%ac%d8%a7%db%8c%da%af%d8%a7%d9%87-cpu-%d8%af%d8%b1-%d8%b3%d8%a7%d8%ae%d8%aa%d9%85%d8%a7%d9%86-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>برنامه ريزي حرکت ربات (Motion Planning)</title>
		<link>http://ehgroup.wordpress.com/2010/12/10/%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d8%b1%d9%8a%d8%b2%d9%8a-%d8%ad%d8%b1%da%a9%d8%aa-%d8%b1%d8%a8%d8%a7%d8%aa-motion-planning/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/10/%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d8%b1%d9%8a%d8%b2%d9%8a-%d8%ad%d8%b1%da%a9%d8%aa-%d8%b1%d8%a8%d8%a7%d8%aa-motion-planning/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 10:13:12 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[روباتیک]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=457</guid>
		<description><![CDATA[معرفي بعضي از مهمترين چالش هايي كه در كنترل ربات مطرح مي شود، در زمينه motion planning قرار مي گيرند. هدف اصلي motion planning  كامپايل كردن(تفسير) زبان هاي سطح بالا به يك سري از حركت هاي سطح پايين اوليه (اصلي) است. اولين كار براي ربات يافتن مسير است چه ربات فقط يك بازوي ربات يا [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=457&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>معرفي</strong></p>
<p>بعضي از مهمترين چالش هايي كه در كنترل ربات مطرح مي شود، در زمينه motion planning قرار مي گيرند. هدف اصلي motion planning  كامپايل كردن(تفسير) زبان هاي سطح بالا به يك سري از حركت هاي سطح پايين اوليه (اصلي) است.</p>
<p>اولين كار براي ربات يافتن مسير است چه ربات فقط يك بازوي ربات يا يك ربات متحرك يا رباتي كه آزادانه هنگام برخورد به موانع از يك وضعيت به وضعيت ديگر تغيير مي كند باشد.</p>
<p>با مساله piano mover&#8217;s ، motion planning براي اختصاص تعداد زيادي از متغيرها در مساله، اجراي نرم افزار ها در محيط هاي گوناگون ، طراحي هاي مربوط به جراحي ، بررسي اتوماتيك طرح هاي يك كارخانه ، نقشه برداري محيط هاي ناشناخته ، كنترل محيط هاي متغير و طراحي دارو به كار مي رود.نرم افزار هاي جديد ، بررسي هاي جديد را بوجود مي آورند كه بايد در طراحي الگوريتم هاي motion planning در نظر گرفته شوند.</p>
<p>از وقتي كه وقايع در دنياي فيزيكي بر مبناي قانون هاي فيزيكي ، وضعيت هاي نامعلوم و محدوديت هاي هندسي هستند، طراحي و آناليز motion planning مسائل جديدي در زمينه هاي مكانيكي، تئوري كنترل، هندسه محاسباتي و علوم كامپيوتر را به وجود مي آورند. تاثير motion planning فراتر از كاربردهاي آشكارش در نرم افزار است.</p>
<p>اين كتاب درباره تئوري ها و كارهاي عملي robot motion planning  با يك ديد نرم افزاري و سيستمي بحث مي كند. براي تمركز بر روي بحث و نكات مهم در motion planning ، ابتدا نگاهي به چند مثال جالب مي اندازيم.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong> </strong></p>
<p><strong>مساله </strong><strong>piano mover&#8217;s</strong><strong> </strong></p>
<p>مساله piano mover&#8217;s يک مساله کلاسيک در طراحي مسير است.اين مساله شامل يک سري مانع مي باشد. فرض مي شود که موانع ساکن و کاملا شناخته شده اند و اجراي مسيرهاي طراحي شده دقيق است. به اين حالت طراحي offline  مي گويند. زيرا طراحي قبل از اجرا به پايان رسيده است. گونه هاي مختلف اين مساله , مساله sofa mover&#8217;s است که در آن يک ربات روي يک سطح بين چندين مانع مسطح حرکت مي کند, مساله ديگر مساله generalized mover&#8217;s است که در آن ربات ممکن است شامل قطعات متصل به هم سخت در اتصالات مانند بازوي ربات باشد. مشکل کليدي اين است که مطمئن شويم هيچ نقطه اي روي ربات با مانع برخورد نمي کند بنابرايم ما بايد موقعيت تمام نقاط روي ربات را مشخص کنيم اين حالت يک configuration(پيکره بندي) ربات است و configuration space فضاي همه پيکره بندي هايي است که ربات مي تواند به آنها دست يابد. مجموعه زواياي اتصالات در بازوي ربات با جهتيابي روي فرش روي يک سطح نمونه اي از پيکره بندي ها هستند. فضاي پيکره بندي معمولا اقليدسي نيست به اين معني که شبيه فضاي  ،n بعدي اقليدسي نيست. ابعاد يک فضاي پيکره بندي برابر است با تعداد متغير هاي مستقل آن پيکره بندي که با درجه آزادي عمل آن (degree of freedom=DOF) نيز نشان داده مي شود. DOF مساله Piano برابر 6 است: 3 تا براي نشان دادن موقعيت (x-y-z) و 3 تا براي نشان دادن جهتيابي ( roll-pitch-yaw). هدف مساله يافتن  يک منحني در فضاي پيکره بندي است که نقاط شروع و پايان را به هم وصل مي کند و مانع همه configuration space obstacles مي شود که با وجود مانع در فضا افزايش مي يابد.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Mini AERcam</strong><strong> </strong></p>
<p>مرکز فضايي جانسون ناسا در حال توليد و توسعه Mini AERcam يا دوربين رباتيک خودگردان براي انجام وظايفي از قبيل بازرسي هاي فضايي است. اين وسيله يک ربات مجهز به 12 پشتيبان گاز سرد است که به آن اجازه فراهم کردن انرژي براي حرکت در هر جهتي را مي دهد. وقتي وسيله در حالت خودگردان ( اتوماتيک) قرار مي گيرد بايد توانايي هدايت در محيط هاي پيچيده ي 3بعدي را داشته باشد. به همين دليل اين مساله بسيار شبيه به مساله Piano mover&#8217;s است. ما نه تنها نياز به برنامه ريزي مسير حرکت براي ربات بلکه نياز به برنامه ريزي سرعت در طول مسير نيز داريم.اين موضوع trajectory (خط سير) ناميده مي شود و ورودي هاي پشتيبان به وسيله ي Dynamic ( حرکت) ربات تعيين مي</p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="108" height="38" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>شکل 1.1</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>شوند. در مساله Piano mover&#8217;s نگراني ها فقط در مورد مسائل هندسه يا جنبش شناسي (Kinematic) بود.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Personal Transport Vehicle</strong><strong> ( وسيله حمل و نقل شخصي</strong>(</p>
<p>يک وسيله حمل و نقل شخصي است که ممکن است به اصلي ترين وسيله براي حمل و نقل در محيط هاي شهري تبديل شود. جايي که اندازه , سرعت , آلودگي صوتي و آلودگي هوايي اتومبيل ها بسيار ناخوشايند است. يکي از اين وسيله ها CYCAB مي باشد. که يک وسيله حمل و نقل کوچک  است که توسط کنسرسيوم موسسه ها در فرانسه براي حمل و نقل حداکثر 2 نفر و سرعت 30 کيلومتر در ساعت طراحي شده است.يکي ديگر از اين وسيله ها Segway HT است که براي حمل يک شخص در سرعت 20 کيلومتر در ساعت طراحي شده است.</p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="108" height="38" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>شکل 1.2</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>يکي از مسائلي که درباره ساده سازي کنترل وسايل نقليه در محيط هاي شلوغ مورد مطالعه قرار گرفته Automatic parallel parking است. راننده فرآيند parallel parking را انجام مي دهد و کامپيوتر روي دستگاه را مي توان از اين طريق کنترل کرد. سيستم هاي مشابهي به                                 زودي به طور اقتصادي در اتومبيل ها به کار خواهد رفت. در ظاهر اين مساله شبيه مساله Sofa mover&#8217;s است چون هر دو مساله شامل حرکت يک جسم روي يک سطح بين موانع است. تفاوت اين است که ماشين ها و وسايل نقليه بر خلاف Sofa (نيمکت) نمي توانند به طور لحظه اي از پهلو حرکت کنند.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>(راهنماي موزه ها) </strong><strong> Museum tour guides</strong><strong> </strong><strong> </strong></p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="108" height="38" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>شکل 1.3</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>در سال 1997 يک ربات متحرک به نام Rhino  به طور کاملا خودکار به عنوان يک راهنما در deutsches museum bonn  کار مي کرد. Rhino قابليت راهنمايي و هدايت بينندگان موزه را از يک غرفه به غرفه بعد با استفاده ار محاسبه مسير و با استفاده از نقشه ذخيره شده موزه فراهم مي نمود. چون يک مدل اجرايي دقيق در مساله piano movers با توجه به اين ويژگي ها غير واقعي است. Rhino مجبور بود مکان خود را با مقايسه</p>
<p>داده هاي دريافتي از حسگرها و نقشه ذخيره شده خود پيدا کند.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Planetary exploration</strong><strong>(اکتشافات سياره اي) </strong></p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="108" height="38" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>شکل 1.4</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>يکي از موفق ترين و هيجان انگيز ترين دستاوردها در زمينه رباتيک, ربات متحرکي به نام sojourner بود که در 4  july 1997 در مريخ فرود آمد.sojouner  مانند پسر عموهاي موفق خود   spiri و opportunity بود که اين سيالات در ژانويه 2004 در مريخ فرود آمدند و تحول عظيمي را در علم داده ها به وجود آورده اند. در آينده ربات ها قادر خواهند بود مناطق وسيعي را زير پا گذاشته و بررسي کنند. از اين رو نياز به استقلال بيشتر خواهد داشت. علاوه بر قابليت جهت يابي بعضي ربات ها قادر خواهند بود که نقشه محيط را با استفاده از اطلاعاتي که از حسگرهاي خود به دست مي آورند توليد کنند.</p>
<p>بدون نقشه ربات نمي تواند موقعيت خود را تعيين کند و بدون اطلاع از موقعيت خود نمي تواند نقشه را تجزيه و تحليل کند.اين مساله اغلب با عنوان simultanecus localization &amp; mappily يا به طور خلاصه SLAM  شناخته مي شود.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>خنثي سازي مين </strong></p>
<p>مناطق مين گذاري شده توسعه هاي اقتصادي را کاهش داده و صدمه و مرگ را هر ساله به دنبال دارد. در سال 1994 , 25 ميليون مين در سرتاسر جهان کاشته شد در حالي که فقط 100000 تا از آنها خنثي شده اند.</p>
<p>ربات ها نقش کليدي در خنثي سازي سريع و امن محيط دارند. قدم اول و اصلي يافتن مين است. در بحث خنثي سازي, ربات بايد با استفاده از حسگر هاي تشخيص مين همه نقاطي را که احتمال وجود مين در آن هست را بررسي کند. براي تحقق اين عمل ربات بايد داراي يک سري مسير دقيق براي عبور از مناطق خطرناک باشد. ربات نيازمند يک مسير ياب پوشش دهنده همه جا باشد تا بتواند حرکتي را که براي جستجوي همه نقاط لازم است انجام دهد. اگر مسيرياب , يافتن مسيري که بتواند همه نقاط را پوشش دهد , وقتي که يک مسير وجود دارد را تضمين کند,  مي گوييم اين مسير ياب(نقشه کش) complete (کامل) است.</p>
<p>عمل پوشش , کاربردهاي ديگري از قبيل پاک کردن کف اتاق , چمن زني  و برداشت محصول را دارد. در همه اين کاربردها ربات بايد همزمان مکان خود را تعيين کند تا پوشش کامل منطقه اطمينان حاصل فرمايد.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Fixed base robot arms in industry</strong><strong> (بازوهاي ثابت ربات در صنعت)</strong></p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="108" height="38" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>شکل 1.5</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>در محيط هاي سازمان يافته بازوهاي ثابت وظايف گوناگوني از قبل سر هم کردن , جوشکاري و نقاشي(رنگ کردن) را انجام مي دهند.اين مساله چالش هاي تازه اي را به وجود مي آورد زيرا هميشه سطح ما يک سطح صاف نيست و ربات بايد احتمالأ درجه آزادي عمل خود  براي حرکت بازو هايش را هماهنگ کند تا بتواند بازوهاي خود را روي همه سطح حرکت دهد.</p>
<p>تأسيسات رباتيک صنعتي مشخصا توسط کارخانجات به کار مي روند بنابراين کمينه کردن زمان انجام يک کار از اهميت بالايي برخوردار است. نوع ديگر کارها ممکن است از نوع ديگري از کمينه سازي مانند کمينه سازي در مصرف سوخت و انرژي در ربات هاي سيار سود ببرند.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>ربات هايي به شکل مار براي جستجوهاي شهري و عمليات نجات</strong></p>
<p>وقتي ربات داراي آزادي عمل بيشتر در حرکات , بيش از نياز خود براي انجام يک کار باشد آن وقت ربات را redundant مي نامند.  وقتي ربات داراي آزادي عمل خيلي بالا در انجام حرکات خود باشد آن وقت به آن hyper redundant مي گويند.اين گونه ربات ها داراي فضاي پيکره بندي چند بعدي غير اقليدسي هستند. مکانيزم هاي hyper redundant شبيه خرطوم فيل يا مار هستند و مي توانند از آزادي عمل خود براي حرکت در مکانهاي تنگ براي دستيابي به مکانهايي که براي انسان و ماشين هاي موجود غير قابل دسترس اند استفاده کنند. اين ربات ها مي توانند براي جستجوهاي شهري و عمليات نجات مناسب باشند. اين ربات ها مي توانند در جاهايي که پيدا کردن محل صدمه ديدگان در زير آوار با سرعت هر چه بيشتر و امنيت بالا از اهميت ويژه اي برخوردار است, به کار روند.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="203" height="37"></td>
</tr>
<tr>
<td></td>
<td width="102" height="38" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>شکل 1.6</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>کاراکترهاي ديجيتال</strong></p>
<p>الگوريتم هاي مربوط به برنامه ريزي حرکت يا تفسير حسگرها فقط براي ربات ها نيستند. در صنعت سرگرمي برنامه ريزي حرکتي کاربردهاي گوناگوني در توليد حرکت براي کاراکترهاي ديجيتال دارد و راه ها را براي بازي هاي ويديويي انيميشن و محيط هاي ديجيتال بازتر مي کند.</p>
<p><strong>طراحي دارو</strong></p>
<p>مساله مهم در  طراحي دارو و مطاله بيماري ها , اين است که چگونه مي توان پروتيين ها را به پيکره بندي اوليه يا پايدار خود برد. با در نظر گرفتن اين موضوع که پروتيين مثل يک زنجير مصنوعي هستند. در طراحي داروهاي داروخانه اي پروتيين ها با مولکول هاي کوچکي ترکيب مي شوند  تا مجموعه اي را بوجود آورند که براي جلوگيري و درمان بيماري ها بسيار حياتي است. روش هاي motion planning براي آناليز حرکت پيچشي مولکول ها مورد استفاده قرار مي گيرد و امکان آزمايش خودکار دارو را قبل از ترکيب آن در ازمايشگاه فراهم مي کنند.</p>
<p><strong> </strong></p>
<p><strong>مرور کلي مسائل مربوط به </strong><strong>motion planning</strong></p>
<p>مثال هاي قبلي راه هاي مشخص کردن مسايل motion planning و الگوريتم آدرس دهي آن را نشان مي داد. بعضي مفاهيم را در اينجا شرح مي دهيم.</p>
<p><strong>اهداف و کارها</strong></p>
<p>مهمترين مشخصه يک برنامه ريزي حرکت ربات نحوه حل مسايل است. 4عمل مسير يابي , پوشش , تمرکز در محلي خاص و نقشه کشي را توضيح مي دهيم. مسير يابي مساله يافتن يک حرکت بدون برخورد براي سيستم ربات از يک وضعيت به وضعيت ديگر است. ربات مي تواند يک بازوي ربات باشد يا حتي يک موبايل يا هر چيز ديگري.</p>
<p>پوشش , مساله فرستادن يک سنسور يا ابزار به سراسر همه نقاط در فضا است. تمرکز در محلي خاص مساله استفاده از يک نقشه جهت تفسير حسگر هاي داده براي تعيين وضعيت ربات است. نقشه کشي مساله کشف و تشخيص يک محيط ناشناخته براي ساختن يک مدل که براي مسيريابي پوشش و تمرکز در محل خاص نيز مفيد است.</p>
<p>تمرکز در محلي خاص و نقشه کشي مي توانند با هم ترکيب شوند مثلSLAM .</p>
<p><strong>ويژگي هاي ربات</strong></p>
<p>شکل يک طراح حرکت مؤثر , بستگي زيادي به چگونگي انجام کار توسط ربات دارد. براي مثال ربات و محيط آن به درجه آزادي کار سيستم و وضعيت فضا بستگي دارد. وقتي وضعيت فضاي ربات را درک کنيم مي توانيم حرکت سريع و آزادانه ربات در همه جهات را در وضعيت فضاي خودش (در حالت نبود موانع) پيش بيني کنيم.</p>
<p>در نتيجه ربات را به عنوان يک گيرنده يا فرستنده امواج در جهات مناسب فرض مي کنيم.</p>
<p>در آخر رباتي که مدل مي شود از معادلات حرکت همراه با شتاب استفاده مي کند يا از معادلات پويا که البته با کنترل استفاده مي کند .</p>
<p><strong>ويژگي هاي الگوريتم</strong></p>
<p>بعد از اينکه هدف و سيستم ربات تعريف شد , ما مي توانيم بين الگوريتم هايي که مساله را حل مي کنند يکي را انتخاب کنيم. براي مثال آيا طراح مي تواند حرکتي را پيدا کند که در مواردي از قبيل طول , زمان اجرا و انرژي بهينه باشد؟ يا آيا يافتن يک راه حل که محدوديت ها را ارضا کند آسان است؟ علاوه بر کيفيت خروجي يک طراح , ما مي توانيم سوالاتي درباره پيچيدگي محاسبات يک طرح نيز مطرح کنيم.</p>
<p>اندازه ورودي مي تواند درجه آزادي سيستم ربات , ميزان حافظه مورد نياز براي توصيف ربات , موانع در محيط و &#8230;. باشد و پيچيدگي آن مي تواند در بهترين حالت يا حالت ميانگين تعريف شود. وقتي يک الگوريتم در زمان چند جمله اي براي مساله اي پيدا شود که قبلا فقط در زمان هاي نمايي حل مي شد نکات تازه و کليدي را درباره مساله به دست مي آورد.</p>
<p>وقتي برنامه ريزي و نقشه کشي complete(کامل) باشد به اين معني است که حتما راه حلي براي مساله motion planning پيدا مي کند.براي مساله motion planning وقتي درجه آزادي عمل افزايش مي يابد راه کامل ممکن است خود سرانه باشد. بنابراين ما مي توانيم شکل هاي ضعيف تري از کامل بودن را جستجو کنيم. يکي از اين شکل ها resolution completances است. اين بدان معني است که اگر راه حلي در يک تحليل  وجود داشته باشد طراحان آن را خواهند يافت. يکي ديگر از شکل هاي ضعيف کامل بودن probabilistic completeness است. اين بدان معنا است که احتمال يافتن يک راه حل (در صورتي که وجود داشته باشد) در بينهايت همگرا به 1 است.</p>
<p>کامل بودن و پيچيدگي محاسبات به طور طبيعي توسط يکديگر سبک و سنگين و مقايسه مي شوند. اگر ما خواستار motion plan بهينه يا کامل , از طراحان هستيم بايد از افزايش پيچيدگي محاسبات راضي باشيم.</p>
<p>ما مي گوييم يک طراح offline است اگر يک طرح را از قبل بر مبناي يک مدل شناخته شده در محيط طراحي کند و سپس اين طرح را به اجرا کننده بدهد. گوييم يک طراح online است اگر يک طرح را طراحي کند وقتي که ربات در حال اجرا است. تفاوت بين الگوريتم هاي offline و الگوريتم هاي بر مبناي سنسور online مي تواند قدري تيره باشد براي مثال اگر طراح offline بتواند به قدر کافي سريع اجرا شود مي تواند براي طراحي مداوم  وقتي داده هاي جديد حسگر, مدل محيط را بروز کند استفاده شود.</p>
<p>فرق اساسي در زمان محاسبه است و اغلب الگوريتم ها با اين معيار طراحي مي شوند. در اين کتاب ما درباره کنترل کننده هاي بازخوردي سطح پايين که نياز به پياده سازي واقعي  motion planningدارند بحث نخواهيم کرد اما فرض خواهيم کرد که آنها وجود دارند و در دسترسند.</p>
<p><strong>مرور کلي اين کتاب</strong></p>
<p>قسمت دوم به دسته اي از الگوريتم هاي Bug  به صورت شهودي و ساده مي پردازد. كه به حداقل زمينه رياضي براي پياده سازي و آناليز احتياج دارد. هدف اين است كه ربات متحرك نقطه اي ، را به يك مكان مشخص در يك صفحه هدايت كنيم كه اين صفحه با موانع ايستاي نامشخص پر شده است. الگوريتم هاي Bug بر مبناي حسگر ها هستند. ربات ها از حسگر ارتباطي براي تشخيص زماني كه به مانع مي رسد استفاده مي كند. علاوه بر آن از حسگرهاي ديگري براي شناخت ناحيه دقيق خود در يك صفحه استفاده مي كند. ربات 2 تا حركت اوليه دارد: حركت در يك خط راست و يا حركت در حاشيه يك جسم.</p>
<p>اين الگوريتم هاي ساده تضمين مي كند كه ربات به هدف خواهد رسيد اگر آن هدف قابل دستيابي باشد.</p>
<p>براي اينكه فراتر از ربات هاي نقطه اي بحث كنيم ، در فصل 3 فضاي پيكره بندي سيستم هاي بسيار معمول ربات را كه شامل بدنه هاي سخت و بازوهاي ربات هستند ، شرح مي دهيم.</p>
<p>پايه هاي رياضي در اين فصل به ما اجازه مي دهد تا مسائل عمومي مسير يابي از قبيل يافتن يک مسيردر فضاي پيکره بندي را مرور کنيم و ببنيم. ما مواردي از قبيل بعد(درجه آزادي عمل) توپولوژي و پارامترهاي فضاي پيکره بندي غير اقليدسي را مطالعه مي کنيم.</p>
<p>فصل4 يک سري از الگوريتم ها را که بر مبنايartificial potential function  ( توابع بالقوه مصنوعي) هستند توصيف مي کند. براي اين منظور ما يک منطقه بالقوه مصنوعي در فضاي پيکره بندي به وجود مي آوريم تا موانع را در آن دفع کنند و هدف را در آن , براي ربات , جذاب نشان دهيم. سپس ربات به سادگي شيب مربوط به پتانسيل مصنوعي را دنبال مي کند. براي برخي مسايل هدايت و راه يابي , اين امکان وجود دارد که يک محيط بالقوه طراحي کنيم تا مطمئن شويم که حرکت روي شيبها , ربات را هميشه به مقصد و هدف مي رساند.</p>
<p>اگر محاسبه برخي محيط هاي بالقوه سخت يا غير ممکن باشد مي توانيم به جاي آن از مواردي که محاسبه آن آسان تر است استفاده کنيم اما ممکن است اين  مورد يک ويژگي نامطلوب داشته باشد مکان هايي که ربات در آن ها گير مي کند (به دام مي افتد).در اين مورد ما مي توانيم به سادگي از منطقه بالقوه به منظور هدايت و راهنمايي طراحي هايي که بر مبناي جستجو کار مي کنند استفاده کنيم.</p>
<p><strong>شيوه رياضي</strong></p>
<p>هدف ما ارائه عناويني است که به خواننده کمک کند تا مفاهيم رياضي را عميقا درک کند. ما اغلب از سختي هاي رياضي جلوگيري مي کنيم و مطالب سخت رياضي را مطرح نمي کنيم اما در جايي که مساله به طور شهودي قابل فهم باشد. در بيشتر مسايل , اثبات تئوري در نظر گرفته نشده است براي بيشتر قسمت ها مفاهيم رياضي به همان اندازه که لازمند ارائه شده اند. در همه اين کتاب فرض شده که ربات ها در محيط هاي دو وجهييا سه بعدي  عمل مي کنند. بعضي اوقات محيط کاري را با W ذنشان مي دهيم. اين محيط کاري اغلب شامل موانعي است که با که i نشان دهنده iمين مانع است نشان مي دهيم.</p>
<p>Motion planning معمولا در محيط کاري اتفاق نمي افتد بلکه در در فضاي پيکره بندي Q (که فضاي C نيز ناميده ميشود) اتفاق مي افتد ما از R(q) براي نشان دادن نقاطي از فضاي محدود اشغال شده توسط ربات در پيکره بندي q استفاده مي کنيم.</p>
<p>در اين کتاب مابين path planning و motion planning تفاوت قائل هستيم. يکpath  يک منحني پيوسته در فضاي پيکره بندي است.</p>
<p>&nbsp;</p>
<p><strong> </strong></p>
<p><strong>فصل 2</strong></p>
<p>در اين فصل راجع به الگوريتم هايي صحبت مي شود که ربات هنگام حرکت کردن و برخورد به موانع از آنها استفاده مي کند تا راهي به سمت هدف پيدا کند.</p>
<p>Bug1 و Bug2 از اولين و ساده ترين الگوريتم هايي هستند که بر پايه سنسور مي باشند. يعني در اين الگوريتم ها ربات به عنوان يک نقطه در نظر گرفته مي شود که در يک صفحه عمل مي کند و داراي يک سنسور تماسي ( سنسوري با برد صفر ) است تا موانع را تشخيص دهد. وقتي ربات يک سنسور با برد غير صفر دارد, مي توان از الگوريتم  tangent bug براي پيدا کردن کوتاه ترين مسير به هدف استفاده مي کند.  الگوريتم هاي bug يا شبيه به bug خيلي ساده پياده سازي مي شوند. علاوه بر اين مي توانيم با يک آناليز ساده نشان دهيم که اين الگوريتم ها موفق عمل مي کنند.</p>
<p>اين الگوريتم ها از دو رفتار تبعيت مي کنند: حرکت روي خط مستقيم و دنبال کردن موانع.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>الگوريتم </strong><strong>Bug1</strong><strong> </strong></p>
<p>در اين الگوريتم ربات به سمت هدف حرکت مي کند مگر اينکه به يک مانع برخورد کند. در اين حالت مانع را دور مي زند تا زماني که رسيدن به هدف دوباره جايز باشد. در واقع الگوريتم Bug1 ايده حرکت به سوي هدف و دور زدن را فرمول بندي مي کند.</p>
<p>در اين الگوريتم فرض مي شود که ربات به صورت نقطه اي در محيط با موقعيت کامل (بدون خطا) است و مي تواند با استفاده از سنسور مرز موانع را در صورت تماس با آنها کشف کند. همچنين ربات مي تواند فاصله بين هر دو نقطه x و y را محاسبه کند و فرض بر اين است که فضاي حرکت محدود است.</p>
<p>يک نقطه شروع و يک نقطه هدف داريم. ربات حرکت خود را از نقطه شروع آغاز مي کند و بطور مستقيم به سمت هدف حرکت مي کند. يا به مقصد مي رسد يا به مانع برخورد مي کند. اگر به مانع برخورد کرد (که به اين نقطه  hit point يا نقطه برخورد مي گويند) , کل محيط مانع را طي مي کند تا به نقطه برخورد برسد. در واقع مانع را دور مي زند. در اين مسير نقطه اي را که کوتاهترين فاصله تا هدف را دارد, پيدا مي کند. به اين نقطه leave point (نقطه ترک) مي گويند. از نقطه برخورد يک بار ديگر دور مي زند تا به اين نقطه برسد و از اين نقطه دوباره خرکت مستقيم خود را به سمت هدف آغاز مي کند. ربات همين کار را تکرار مي کند تا به مقصد برسد يا اينکه تشخيص دهد رسيدن به مقصد غير ممکن است. اگر خطي که هدف و leave point را بهم وصل مي کند, مانع را تقسيم کند هيچ راهي به سمت هدف وجود ندارد.</p>
<p><strong> </strong></p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="108" height="38" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>شکل 2.1</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><strong> </strong></p>
<p><strong>الگوريتم </strong><strong>Bug2</strong><strong> </strong></p>
<p>الگوريتم bug2 نيز مانند bug1 دو رفتار دارد: حرکت روي خط مستقيم و دنبال کردن موانع.</p>
<p>در اين الگوريتم نقطه شروع و هدف با خطي بهم متصلند  و ربات روي اين خط حرکت مي کند. اگر به مانعي برخورد کرد, روي مرز مانع حرکت مي کند تا به نقطه اي برسد که روي خطي که نقاط شروع وهدف را بهم وصل کرده است قرار دارد و به هدف نزديک تر است. سپس حرکت خود را به سمت هدف ادامه مي دهد.</p>
<p>در اينجا ديگر ربات همه مانع را دور نمي زند.</p>
<p>در اين الگوريتم اگر ربات بعد از حرکت روي مرزمانع به نقطه برخورد رسيد, يعني راهي به سوي هدف وجود ندارد.</p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="108" height="38" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>شکل 2.2</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>در نگاه اول به نظر مي رسد که الگوريتم bug2 از bug1 کارآمدتر است چون مسير کوتاه تري را طي مي کند ولي هميشه اينگونه نيست. با يک سري محاسبات رياضي, براي بدست آوردن مسيري که در هر يک از اين الگوريتم ربات طي مي کند, مي توان نشان داد که در برخي موارد مسافتي که براي رسيدن به هدف طي مي شود در bug2 بيشتر از bug1 است.</p>
<p>Bug1 يک جستجوي کامل را براي يافتن کوتاه ترين مسير انجام مي دهد ولي bug2 از يک جستجوي فرصت طلبانه يا در واقع از الگوريتم هاي حريصانه استفاده مي کند.</p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="108" height="38" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>شکل 2.3</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>شکل 2.3 نشان مي دهد که در برخي موارد الگوريتم bug1 از الگوريتم bug2 بهتر عمل مي کند.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>فصل 3 (فقط برای مطالعه)</strong></p>
<p><strong>فضاي وضعيت (</strong><strong>Configuration Space</strong><strong>)</strong></p>
<p>يکي از مهمترين<strong> </strong>موارد مورد نياز در برنامه ريزي حرکت, تعيين موقعيت تمام نقاط عامل است, چرا که بايد مشخص گردد که آيا عامل با موانع برخورد دارد يا نه. اين موضوع باعث طرح سوالاتي مي گردد: به چه مقدار اطلاعات به منظور مشخص کردن کامل موقعيت تمام نقاط عامل نياز است؟ اين اطلاعات چگونه بايد نشان داده شود؟هنگام پيدا کردن مسيري براي عامل, موانع به چه صورت بابيد در نظر گرفته شوند؟ و&#8230; هدف ما در اين قسمت پاسخ دادن به چنين سوالاتي مي باشد.</p>
<p>&nbsp;</p>
<p><strong>مشخص کردن وضعيت يک عامل(</strong><strong>Specifying a Robot`s Configuration</strong><strong>)</strong><strong> </strong></p>
<p>محيط محصوري که عامل در آن حرکت مي کند را فضاي کار مي ناميم. براي مثال يک بازوي مکانيکي فضاي کار موقعيت تمام نقاطي در محيط بسته است که اثرکننده (End Effector) به آن دسترسي دارد.</p>
<p>وضعيت يک عامل توصيفي است از موقعيت تک تک آن عامل. فضاي وضعيت (C-Space) يک عامل نيز فضاي تمام وضعيت هاي ممکن آن عامل است. بنابراين يک وضعيت از يک عامل در فضاي وضعيت تنها يک نقطه در آن فضا است. در اين پايان نامه از q براي نشان دادن وضعيت و از Q براي نشان دادن فضاي وضعيت استفاده مي شود. بعد فضاي وضعيت برابر است با بعد درجه آزادي عامل که در بخش هاي بعدي بيشتر به اين موضوع خواهيم پرداخت.</p>
<p>اگر يک ربات دايره اي در فضاي<sup>2</sup> R‌ بدون چرخش (rotate) را نسبت به يک محور مختصات مرجع در نظر بگيريد, يک راه ساده براي مشخص کردن وضعيت ربات در نظر گرفتن مرکز آن است. اگر مرکز ربات (x,y) و شعاع دايره (r) را داشته باشيم, مي توانيم به راحتي از فرمول زير موقعيت تمام نقاط اشغال شده توسط ربات در محيط را بيابيم:</p>
<p>R(x,y)={(x<sup>&#8216;</sup>,y<sup>&#8216;</sup>)|(x-x<sup>&#8216;</sup>)<sup>2</sup>+(y-y<sup>&#8216;</sup>)<sup>2</sup>≤r<sup>2</sup>}</p>
<p>و به اين ترتيب تنها با دانستن مختصات مرکز ربات مي توان وضعيت آن را به طور کامل مشخص نمود.</p>
<p>فضاي کار و فضاي وضعيت دو مفهوم کاملا متفاوت هستند. براي واضح تر شدن اين دو مفهوم مثال زير را در نظر بگيريد :</p>
<p>يک بازوي مکانيکي دو مفصله همانند شکل 3.1 در نظر بگيريد.</p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="104" height="38" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>شکل 3.1</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>فضاي کار اين ربات تمامي نقاطي است که توسط اثرکننده قابل دسترسي است. اين فضا در شکل 3.2 مشاهده مي شود. از آنجايي که هر نقطه در فضاي کار به دو صورت قابل دسترسي است (در حالت اول اثرکننده رو به پايين و در حالت دوم رو به بالا) بنابراين مختصات اثرکننده نشان دهنده وضعيت (Configuration) ربات نيست, چرا که از روي اين مختصات نمي توان به وضعيت کليه نقاط ربات پي برد.</p>
<p>اما براي تعريف فضاي وضعيت از زواياي مفصلي که در شکل 3.1 مشاهده مي شود مي توان استفاده کرد. هر زاويه  را مي توان به نقطه اي بر روي دايره واحد  مرتبط نمود.</p>
<p><strong>وضعيت فضاي پيکربندي</strong></p>
<p>اکنون که ما چگونگي تصميم گيري در باره ي اندازه گيري فضاي پيکر بندي را فهميديم, ما مي توانيم هندسه و وضعيت آن را که هر کدام نقش هاي اساسي در تحليل و توليد الگوريتم هاي طراحي حرکت بازي مي کنند, کشف کنيم.</p>
<p>&nbsp;</p>
<p>شکل 10.3    سطح ليوان قهوه و جسم هلالي به لحاظ وضعيتي معادل هستند.</p>
<p>توپولوژي يکي از شاخه هاي رياضي است که ويژگي هاي اجسامي را بررسي مي کند که وقتي آن اجسام در معرض تغييرشکلهاي متصل از قبيل کشش و يا خميدگي قرار مي گيرند, تغيير نمي کنند. به همين خاطر گاهي اوقات توپولوژي به عنوان &#8220;هندسه ي صفحه ي لاستيکي&#8221; خوانده مي شود. وقتي صفحه در جهات مختلف کشيده مي شود, شکل چند ضلعي تغيير مي کند, در حالي که ويژگي هاي واقعي چند ضلعي تغيير نمي کنند. به عنوان مثال نقاطي که درون چندضلعي قرار دارند, به خاطر اينکه صفحه کشيده مي شود, به بيرون چند ضلعي حرکت نمي کنند. دو فضا از نظر توپولوژي با هم متفاوتند اگر براي تبديل يکي به ديگري نياز به <em>copy</em> و <em>paste</em> باشد. چون <em>copy</em> و <em>paste</em> تغيير شکل هاي متصلي نيستند. يکي از دلايلي که ما به توپولوژي فضاي پيکربندي توجه مي کنيم اين است که اين موضوع مي توانيد بر روي نمايش ما از فضا تاثير بگذارد. دليل ديگر اين است که اگر ما بتوانيم يک الگوريتم برنامه ريزي بر مبناي مسير را براي يکي از فضاهاي توپولوژيک استنتاج کنيم, سپس آن الگوريتم ممکن است که به فضاهايي که از نظر توپولوژيکي معادل هستند, انتقال يابد.</p>
<p><strong> </strong></p>
<p><strong> </strong><strong> </strong><strong> </strong></p>
<p>يک نگاشت   قاعده اي است که اجزا <em>S</em> را با اجزا مشابه در <em>T</em> جايگذاري مي کند. ما به ترتيب <em>image</em> مربوط به <em>S</em> را تحت  و <em>preimage</em> مربوط به <em>T</em> را با استفاده از  تعيين مي کنيم.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>شکل 11.3</p>
<p>اگر  , آنگاه ما مي گوييم  <em>surjective</em> و يا <em>onto</em> مي باشد. اگر  هر جز مربوط به <em>T</em> را با جزء مشابه آن در <em>S</em> به ازاي هر  که شامل جزء بشتري در <em>S</em> است قرار دهد, آنگاه مي گوييم  , <em>injective</em> است. اگر  , <em>injective</em> باشد آنگاه هنگامي که  باشد براي  خواهيم داشت : . نقشه هايي که هم <em>surjective</em> و هم <em>injective</em> باشند به آنها مي گوييم <em>bijective</em> هستند. شکل 11.3 اين تعاريف را نشان مي دهد.يک نگاشت  , <em>smooth</em> خوانده مي شود اگر همه ي ماخوذات جزئي  خوش تعريف باشند.</p>
<p><strong> </strong></p>
<p><strong>اتصالات قابل تغيير</strong></p>
<p>براي همه ي فضاهاي پيکربندي که تابه حال ديده ايم توانسته ايم به طور خاص يک پيکربندي با <em>n</em><em> </em>پارامتر مشخص کنيم که <em>n</em><em> </em>اندازه ي فضاي پيکربندي را تعيين مي کند. دليل اين که توانستيم اين کار را انجام دهيم اين بود که  اين فضاهاي پيکربندي همگي فضاهاي <em>n</em>-بعدي اقليدسي بودند. اين فضاها که <em>manifold</em> يا اتصالات نام دارند, يک موضوع مرکزي توپولوژي محسوب مي شوند.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d8%b1%d9%88%d8%a8%d8%a7%d8%aa%db%8c%da%a9/'>روباتیک</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/457/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=457&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/10/%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d8%b1%d9%8a%d8%b2%d9%8a-%d8%ad%d8%b1%da%a9%d8%aa-%d8%b1%d8%a8%d8%a7%d8%aa-motion-planning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>مقاله ای جامع در باب رباتیک (6)</title>
		<link>http://ehgroup.wordpress.com/2010/12/10/453/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/10/453/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 10:06:26 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[روباتیک]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=453</guid>
		<description><![CDATA[امواج Ultrasonic امواج اولتراسونيك به دسته­ايي از امواج مكانيكي گفته مي­شود كه فركانس نوسانشان بيش از محدوده شنوايي انسان 20KHz باشد. اين امواج بدليل خواصي كه دارند كاربردهاي متنوع و بعضاً جالبي دارند. با محاسبه­ايي ساده مي­توان دريافت كه اگر نقطه­ايي با فركانس 25 كيلوهرتز و دامنه 10 ميكرومتر نوسان كند شتاب آن بالغ بر [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=453&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>امواج </strong><strong>Ultrasonic</strong><strong> </strong></p>
<p>امواج اولتراسونيك به دسته­ايي از امواج مكانيكي گفته مي­شود كه فركانس نوسانشان بيش از محدوده شنوايي انسان 20KHz باشد. اين امواج بدليل خواصي كه دارند كاربردهاي متنوع و بعضاً جالبي دارند. با محاسبه­ايي ساده مي­توان دريافت كه اگر نقطه­ايي با فركانس 25 كيلوهرتز و دامنه 10 ميكرومتر نوسان كند شتاب آن بالغ بر 25 هزار برابر شتاب ثقل مي­شود. اين شتاب و به طبع آن سرعت بالا در مايعات باعث ايجاد كاويتاسيون مي­شود و در هنگام انفجار حبابهاي ايجاد شده فشاري در حدود 200 بار ايجاد مي­گردد. از طرف ديگر اگر حركت نسبي با مشخصات فوق ميان دو سطح جامد برقرار شود ازدياد دما باعث جوش خوردن دو سطح به يكديگر مي­شود كه Ultrasonic Welding مي­باشد.</p>
<p>امواج اولتراسونيك مانند ديگر امواج دارای خاصیت شکست، انعکاس، نفوذ و پراش می­باشند. برای توليد اين امواج روشهاي متفاوتي وجود دارد.</p>
<p>مجموعه­هاي اولتراسونيك معمولاً از سه بخش كلي تشكيل مي­شوند:</p>
<p>1.       مبدل</p>
<p>2.       بوستر</p>
<p>3.       تقويت كننده يا هورن.</p>
<p>مبدل نقش توليد امواج مكانيكي و تبديل انرژي الكتريكي به مكانيكي را دارد, بوستر و تقويت كننده نيز وظيفه انتقال و تقويت دامنه حركت و رساندن ‌آن به مصرف كننده را به عهده دارند.</p>
<p><strong> </strong></p>
<p><strong>کاربرد سنسورهای </strong><strong>Ultrasonic</strong><strong> در رباتیک</strong></p>
<p>يكي از مسائل مطرح در رباتيك ايجاد درك نسبت به محيط خارجي براي جلوگيري از برخورد نامطلوب به اشياء موجود در محيط حركت است. از سوي ديگر ممكن است نياز داشته باشيم كه ربات بتواند دركي از فاصله ها بدون تماس فيزيكي داشته باشد. براي اين منظور از سنسورهاي مافوق صوت يا Ultrasonic استفاده ميكنند.<br />
با وجود اينكه رويكردهاي زيادي در اين زمينه وجود دارد ولي ميتوان آنها را در دو بخش تقسيم بندي كرد. دسته اول شامل ابزارهاي انفعالي ميباشند ،نظير سيستمهاي فاصله سنجي swept-focus و يا stereoscopic . دسته بعد سيستم هاي فعال يا Active ميباشند نظير سيستمهاي ماكروويو ، ليزر و مافوق صوت.<br />
در اين مقال ما به معرفي سنسورهاي مافوق صوت خواهيم پرداخت. اين سنسورها از دو قسمت تشكيل شده است. قسمت اول مدار راه انداز آن را تشكيل ميدهد و قسمت ديگر دو قطعه (مبدل( گيرنده و فرستنده آن ، دقيقا مشابه آن قسمت از دزدگيرهايي كه در خودروها (مقابل شيشه جلو) نصب ميشود. البته دردسر اصلي كار با اينگونه سنسورها مدار راه انداز آن است.البته پكيجهاي آماده كه كار را بسيار ساده ميكنند نيز وجود دارد، مانند مدل مافوق صوت ساخت شركت Texas Instruments  كه اين سنسورها در برخي دوربينها نيز براي تشخيص فاصله و فوكوس مناسب استفاده ميشود.</p>
<p>مكانيزم كلي كار اين سنسورها ، فرستادن يك بيم و دريافت انعكاس آن و متعاقبا محاسبه زمان رفت و برگشت. بدين ترتيب ميتوان فواص را نيز براحتي با در نظر گرفتن صرعت صوت در دما و فشار محيط ، محاسبه كرد.<br />
قدم بعدي بدست آوردن ماتريسي از موانع موجود در محيط است. اينكار از دو راه ممكن است راه اول جاروب كردن محيط با امواج بصورت مكانيكي ميباشد. راه دوم استفاده ازچند مبدل ، با توجه به پيچيدگي محيط ، است. بعنوان مثال ميتوان يك مبدل متحرك با رنج زاويه اي بالا در سر ربات ، يك مبدل ثابت در جلو و رو به پايين براي تشخيص گودي، و دو مبدل با زاويه هاي 45 درجه در چپ و راست را بعنوان يك تركيب مناسب استفاده كرد.<br />
يكي از مهمترين خطاهايي كه در اين سنسورها مشاهده ميشود ، خطاي بالقوه در فواصل زياد است. همانطور كه ميدانيد امواج مافوق صوت را نمي توان همانند يك بيم ليزر تاباند و انعكاس آن را ثبت كرد. بعنوان مثال در فاصله حدودا 4.5 متري و با زاويه تابش 75 درجه حدود 250 ميليمتر خطا ممكن است پيش آيد.</p>
<p>برخي از محققين با استفاده از تيوپها ، شيپوره ها و بازتابنده ها و با فوكوس دادن بيمهاي صوتي سعي در كم كردن زاويه تابش داشته اند ولي تجهيزات مورد نياز ابعاد سنسور را به ده ها برابر افزايش ميدهد. دقت اين نوع سنسورها را با افزايش دقت گيرنده نيز ميتوان افزايش داد. لبه هاي كناري بيم عموما از شدت كمتري برخوردارند لذا با كم كردن شدت حساسيت گيرنده ميتوان خطا را تا نصف كاهش داد. البته در مواردي از يك آرايه از داده ها استفاده ميشود و پروسسوري وظيفه تشخيص زاويه مناسب را برعهده دارد.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>نمونه ای از کاربرد سنسورهای </strong><strong>Ultrasonic</strong><strong> در روباتیک</strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>ربات دوچرخه سوار</strong></p>
<p>یک کمپانی ژاپنی اقدام به ساخت یک ربات کوچک نموده که به سادگی دوچرخه سواری می کند.</p>
<p>شرکت Murata Manufacturing در یکی از نمایشگاه های تکنولوژیهای پیشرفته در اطراف شهر توکیو در ژاپن، رباتی را معرفی کرد که قادر است دوچرخه سواری کند.</p>
<p>این ربات که پنجاه سانتیمتر ارتفاع و نزدیک به پنج کیلوگرم وزن دارد، &#8220;پسر موراتا&#8221; (Murata Boy) نام داشته می تواند با سرعتی حدود 79 سانتیمر در ثانیه حرکت کند.</p>
<p>نسخه قدیمی تر این ربات که دوچرخه سواری می کرد در سال 1990 معرفی شد اما نمی توانست بدون آنکه بیفتد، توقف کند. اما ربات اخیر با تنظیم سرعت و انحراف مرکز جرم خود می تواند تعادل خود را در موقعیت های مختلف از جمله هنگام ایستادن حفظ کند.</p>
<p><strong>سنسور سونار:</strong></p>
<p><strong>خلاصه:</strong></p>
<p>سونار SRF04 سنسور مسافت یاب است که می توان توسط آن ربات را هدایت کرد. شما می توانید ربات خود قادر سازید تا محیط پیرامونش را از طریق مجموعه سنسورهای سونار ببیند.(مانند چشم انسان)</p>
<p><strong>نظریه عملکرد:</strong></p>
<p><strong> </strong>یک سنسور سونار از طریق تولید یک صدا مانند رگبار کوتاه اسلحه کار می کند(ping) بنابراین وقتی که صدا به نزدیکترین شیء برخورد می کند، انعکاس صدا(echo) توسط سنسور شنیده می شود.</p>
<p>مانند تصویر زیر:</p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="7" height="5"></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>توسط اندازه گیری درست زمان، از لحظه ای که Ping شروع شده تا لحظه ای که Echo به سنسور برمیگردد، مقدار فاصله به نزدیکترین شیء را می توان محسبه کرد. حرکت صدا چیزی در حدود 1116.4 feet/second و یا 340.29 meters/second در سطح دریا، سرعت دارد. فاصله به نزدیکترین شیء را می توان با تقسیم زمان گذشته شده(elapsed time) بر دو برابر سرعت صدا محاسبه کرد.</p>
<p>منظور از زمان گذشته شده، زمان بین فرستادن صدا و شنیدن انعکاس(echo) است.</p>
<p>فرمول بدست آوردن فاصله سنسور از شیء به صورت زیر است:</p>
<p>Distance = ElapsedTime / (2* Speed_Of_Sound)</p>
<p>دلیل این که عمل تقسیم را بر دو برابر سرعت صدا ضرب می کنیم این است که فاصله از شیء فقط نصف فاصله حرکت واقعی موجی صدا است. موج صدا باید به سمت شیء حرکت کند و به سنسور برگردد برای این که سنسور، برگشت صدا یا echo را بشنود.</p>
<p><strong>عملکرد سنسور:</strong></p>
<p><strong> </strong>سنسور مسافت یاب SRF04 با تولید یک پالس بر روی سیگنالی قرار است بفرستد، آن را رها می کند. این باعث می شود تا مسافت یاب یک ping ارسال کند. سنسور مسافت یاب قادر است تا 100 microsecond را بعد از عمل پینگ دریافت کند و سیگنال خروجی echo سنسور را افزایش دهد.(تأخیر در فعال سازی گیرنده باعث می شود تا گیرنده از شنیدن ping ارسال شده جلوگیری کند) وقتی که گیرنده echo را می شنود سیگنال خروجی را قطع می کند. زمان گذشته شده(Elapsed Time) بین ping و echo را می توان با اندازه گیری مدت زمان پالس روی خط echo و اضافه کردن 100 microsecond به آن بدست آورد. به صورت زیر:</p>
<p>elapsedTime = pulseDuration + 100</p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="3" height="10"></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><strong> </strong></p>
<p><strong><br />
</strong></p>
<p><strong>سنسور رنگ:</strong></p>
<p><strong>چکیده:</strong></p>
<p>در این مقاله سعی در این است که شناخت مختصری از سنسور رنگ بوجود آوریم برای این منظور ابتدا در مورد طیف نور توضیحاتی ارائه شده و سپس به ساختار داخلی سنسور پرداخته ایم. بعد سیستم کار این سنسور که بصورت کدهای دیجیتال در خروجی سریال جهت پروسس عمل می کند را شرح داده ایم.</p>
<p><strong>کلمات کلیدی</strong><strong>:</strong></p>
<p>ADC:  Analog – Digital – Converter</p>
<p>Sensor:  حسگر</p>
<p>Pixel:  پیکسل</p>
<p>Chip:  چیپ</p>
<p><strong>مقدمه:</strong></p>
<p><strong> </strong>هدف اصلی از بررسی ها و تعاریفی که در این مقاله ارائه میشود . بازشناسی رنگ ها توسط ابزاری بغیر از چشم انسان می باشد یعنی به غیر از چشم انسان ابزارهای دیگری هم وجود دارند که می توانند رنگ ها را دریافت کرده و حس کنند پس لازمه ی ارتباط سخت افزار با دنیای قابل دیدن یک چشم حساس به نور مرئی یا رنگ می باشد که در اصطلاح فیزیک به آن سنسور نوری گفته می شود . این سنسورها در نور غیر مرئی یا طول موج های مورد نظر برای نورهای مرئی حساس هستند مانند سنسورهای حساس به نور زیر قرمز(infrared) یا ماوراء بنفش               (ultra violet) که برای گیرنده های تلوزیونی کاربرد دارند.</p>
<p>سنسورهای رنگی ساخته شده در صنعت کار تشخیص رنگ را بر عهده دارند و تقریبا تمام طیف نور مرئی را تشخیص می دهند. این سنسورها بهترین انتخاب برای کاربردهای مقیاس کوچک با عملکرد بالا هستند.</p>
<p>مورد استفاده سنسور رنگ در صنعت مدرن بسیار زیاد است که از آن جمله می توان به کاربرد آن در خطوط تولید کنترل کیفیت (Q.C) ،ماهواره ها، رباتیک ،پزشکی ،صنایع غذایی ، اتومبیل سازی ، و به طور کلی در اتوماسیون سیستمها و سیستمهای اتوماتیک اشاره کرد.</p>
<p>ابزارهای بسیاری نیاز به کنترل رنگ از طریق یک سنسور را دارند به عنوان مثال در صنعت، کدهای رنگی پرینت شده همانند خطوط روی مقاومتها بایستی آشکار شوند تا اجازه عملکرد بالای ذخیره اتوماتیک رابه مقاومت بدهند . نیمی از شرکتهای آلمانی در صنعت غذایی (tetra) جهت کنترل رنگی از  color sensor استفاده می کنند.</p>
<p>سه نوع سنسور رنگ شبیه چشم انسان مسئولیت تشخیص رنگ را بر عهده دارند . این سنسورهای رنگی نمایانگر یک طرح کوچک فیلترهایی با کیفیت بالا و خواندن هم زمان سه سطح رنگی می باشند.</p>
<p>سنسور فوق یکی از انواع سنسورهای JEN color ساخت کارخانه MAZET آلمان و از نوع سنسورهای سه عنصری (3 element color sensor) بوده که قابلیت شناسایی رنگ ها را به تفکیک رنگهای قرمز ، سبز و آبی دارا می باشد.</p>
<p>سنسور مربوط از 3*19 فتو دیود pin  سیلیکونی که بصورت حلقه وار روی چیپ فقرار گرفته اند تشکیل شده برای جلو گیری از ایجاد تداخل در بین فتو دیود ها ، هر سکتوری از قسمت دیگر جدا شده  برای شناسایی هر رنگی در هر کدام از این فتودیود ها فیلتر مربوط به طول موج رنگ مربوط در نظر گرفته شده است.</p>
<p>فیلترهای رنگی با کیفیت بالای تداخلی دارای این خصوصیات می باشد:</p>
<p>1-                بصورت micro-structure  روی چیپ قرار گرفته اند</p>
<p>2-                قدرت انتقال سیگنال بالایی دارند.</p>
<p>3-                سطح آن ها سخت می باشد.</p>
<p>4-                پایداری حرارتی بالایی دارند.</p>
<p>5-                فیلترها دارای شیب زیادی هستند</p>
<p>آرایه های فتو دیدهای pin  سیلیکونی:</p>
<p>1-                ناحیه طول موج 450mm-750mm</p>
<p>2-                جریان گرفته شده از هر سکتور کمتر از 50 pa  به ازای 5v   ولتاژ معکوس</p>
<p>3-                ظرفیت  خازن هر سکتور 50 pf  به ازای 5v ولتاژ معکوس</p>
<p>4-                ماکزیمم ولتاژ معکوس 30 v</p>
<p>5- زمان صعود (TR) کمتر 1ns<strong> </strong></p>
<p>این قطعه در انواع پکیج های tos-smd-so8 با فیلتر IR  ارائه شده است .و دارای چهار پایه می باشد که شامل سه پایه آند که هر کدام مربوط به یک رنگ قرمز ، سبز و آبی و یک پایه کاتد مشترک می باشد.</p>
<p><strong>: ساختار فیزیکی</strong></p>
<p>سنسورهای رنگی شامل آرایه های دو بعدی(ماتریس) از سلول های تصویری می باشند که عملیات استخراج نور و اسکنینگ(Scanning) را انجام می دهد، جنس این سلول ها از مواد نیمه هادی طراحی آن به صورتی است که تشکیل یک خازن بدهد. برای تولید این سلول ها از ترکیب بایاس معکوس P-N استفاده می شود. در این تکنولوژی، ساخت دیودی با اتصال P-N</p>
<p>(reverse-based) مورد استفاده قرار می گیرد.</p>
<p>وقتی یک ولتاژ مثبت بر روی یک الکترود هادی کنار بستر القاء می شود یک ناحیه تخلیه در بستر در کنار الکترود ایجاد می شود به این منبع تخلیه چاه پتانسیلی نیز گفته می شود حال وقتی نور به ناحیه تخلیه برسد الکترون های بستر با حفره ها ترکیب مجدد می شوند ولی در ناحیه تخلیه الکترون های آزاد خواهیم داست بنابراین یک شارژ منفی از ناحیه تخلیه بوجود می آمد که نمایانگر تابش نور بر بستر می باشد برای این که نور به آسانی به محل تخلیه برسد الکترودهای از جنس پلی سیلیکون می باشد.</p>
<p>عامل های هوشمند</p>
<p><strong>مقدمه</strong></p>
<p><strong>عامل هرچیزی است که قادر به درک محیط پیرامون خود ازطریق حس گرها(سنسور) واثرگذاری بر روی محیط از طریق اثرکننده ها  باشد.</strong><strong> </strong></p>
<p>عامل انسانی اندامهایی مانند گوشها، شمها ودیگر ارگانها برای حس کردن ودستها، پاها ، بینی ودیگر اندامها برای اثرگذاری دارند. عامل رباتیک دوربینها ویابنده های مادون قرمز را بجای حس گرها وانواع موتورها را بجای اثرکننده ها جایگزین کرده است. عامل نرم افزاری رشته های بیتی را بعنوان درک محیط وعمل ، کدگذاری می کنند. درشکل زیرنمادی ازیک عامل عمومی ترسیم شده است.</p>
<div dir="rtl">
<table dir="rtl" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="561" valign="top">Sensors&nbsp;</p>
<p>&nbsp;</td>
</tr>
</tbody>
</table>
</div>
<p><strong>شكل ١</strong><strong>–</strong><strong>۲:عامل هايي كه از طريق حسگر ها و اثر كننده ها با محيط ها ارتباط برقرار مي كنند.</strong></p>
<p>عامل ها چگونه باید عمل کنند؟</p>
<p>عامل منطقی (RATIONAL AGENT) چیزیست که کاردرست انجام میدهد. آشکارا ،این بهتر ازآنست که کار نادرست انجام گیرد، اما این چه معنی می دهد؟ بعنوان اولین تخمین ، میگوییم عمل درست آنست که باعث موفق ترین شدن عامل گردد. اما این بیان مساله ، تصمیم گیری درباره چگونگی وزمان محاسبه موفقیت عامل را نادیده می گیریم .</p>
<p>ماواژه معیارکارآیی را (PERFORMANCE MEASURE) برای چگونگی به کار میبریم ، ملاکی که چگونگی موفقیت یک عامل را تعیین می کند. آشکارا ، تنها یک معیارثابت مناسب برای تمامی عاملها وجود ندارد . ماباید ازعامل برای عقیده ذهنی چگونگی رضایت خود از کارآیی اش را مورد پرسش قرار دهیم.</p>
<p>اما برخی ازعاملها قادر به پاسخگویی نبوده وبرخی خودشان را فریب می دهند.(عاملهای انسانی بویژه نمونه بارزی ازانگور ترشیده هستند چرا که بعد ازعدم موفقیت درحصول چیزدر میابند که واقعا آن چیزرا نیاز نداشتند).</p>
<p>بنابراین ما دراندازه گیری معیار ذهنی که بوسیله اعمال قدرتی تحمیل شده ، تاکید می کنیم . بعبارت دیگر، بعنوان مشاهده گرهای خارجی استاندارهایی را بیان می کنیم که موفقیت چه معنی درمحیطی را میدهد وازآن بعنوان معیار کارآیی عاملها استفاده می کنیم.</p>
<p>نمی توان عاملی را  برای چیزیکه قابل درک نیست یا بعلت عدم انجام عمل غیرقابل انجامی ، مانند دفع دربار سرزنش نمود. اما رها کردن نياز های کامل بودن،راه مناسبی برای عامل ها نيست.نکته اينجاست اگر معين کنيم که هر عامل هوشمند همواره باید همان کاری را انجام دهدکه در عمل مناسب است¸هیچگاه نمی توان عاملی را طراحی نمود که این مشخصات را مرتفع سازد.</p>
<p>به طور خلاصه آن چه که در هر زمانی منطقی است به چهار چیز وابسته است:</p>
<ul>
<li>معیار کارآرایی که درجه موفقیت را تعیین می کند</li>
<li>هرچیزی که تاکنون عامل ادراک نموده است.اما این تاریخچه کامل اذراکی را دنباله ادراکی می نامیم.</li>
<li>آنچه که عامل در باره ی محیط خودمی داند.</li>
</ul>
<p>اعمالی که عامل می تواند صورت دهد.</p>
<p>این عوامل راهنمای تعریف ایده آل هستند:برای هردنباله ادراکی ممکن عامل منطقی ایده آل باید هر کاری را که انتظار می رودباعث حداکثرسازی معیار کارآرایی می شود انجام دهدواین عمل بر پایه شواهدی که از طریق دنباله ادراکی آماده شده وهر آنچه که دانش درونی عامل است انجام میگردد.</p>
<p><strong>نگاشت ايده آل از دنباله هاي ادراكي به عمليات</strong></p>
<p>از آنجا كه دريافتيم رفتار عامل وابسته به دنباله ادراكي تا حال است، مي توانيم هر عامل خاصي را به وسيله ساخت جدولي از عمل آن در پاسخ به هر دنباله ادراكي توصيف كنيم. (براي اكثريت عامل ها، اين ليست بسيار طولاني خواهد بود يا در واقع نا متناهي،مگر آنكه كراني بر طول دنباله ادراكي مورد انتظار قرار دهيم.) چنين ليستي نگاشت (mapping) از دنباله ها ادراكي ناميده مي شود. اصولاً قادر هستيم دريابم كدام نگاشت عامل را به وسيله بررسي تمامي دنباله هاي ادركي ممكن و ثبت اعمالي كه عامل در پاسخ انجم مي دهد،توصيف مي كند. (اگر عامل ها مقداري تصادفي سازي در محاسبا ت خود بكار برند، خواهيم توانست برخي دنباله هاي ادركي را چندين بار اعمال نموده تا ايده مناسبي براي رفتار متوسط عامل بدست آوريم.) و اگر نگاشت ها عامل ها را توضيح دهند،آنگاه نگاشت ايده آل عامل هاي ايده آل را تشريح مي كند. تعيين اين كه كدام عمل را بايد عامل در مقابل هر دنباله ادراكي داده شده انجام دهد،طراحي براي عامل ايده را مهيا مي سازد.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>خود مختاري (</strong><strong>Autonomy</strong><strong>) </strong></p>
<p>يك مورد اضافه ديگر در تعريف عامل منطقي ايده ال بايد لحاظ شود، بخش « دانش دروني.» اگر اعمال عامل ها كاملاً بر پايه دانش دروني باشد، چنانچه هيچ توجهي به ادراك خود نكنند، گوييم عامل فاقد خود مختاري است. براي مثال، اگرسازنده ساعت آنقدر پيشگو باشد كه بداند مالك ساعت به استراليا در تاريخ معيني خواهد رفت، آنگاه درداخل آن مكانيزمي را تعبيه خواهد كرد تا عقربه ها را به طور خود كر در موعد معين شش ساعت جابه جا كند. اين رفتار به طور عمومي موفقيت آميز است اما به نظر مي رسد هوشمندي به طراح ساعت است تا خود ساعت.</p>
<p>رفتار عامل مي تواند متكي بر دو پايه تجربه خود و دانش دروني بنا نهاده شود كه در ساخت عامل براي شرايط محيطي خاص كه درآن عمل خواهد كرد،استفاده مي شود. سيستم به وسعتي خود مختار است كه رفتار آن براساس تجربه خودش تعيين مي كند.زماني كه عامل فاقد تجربه و يا كم تجربه است،مسلماً تصادفي عمل خواهد كرد،مگر آنكه طراح كمكهايي به آن داده باشد.بنابر اين همانگونه كه تكامل موجودات زنده را با واكنش غريزي كافي آماده مي سازد تا قادر به ادامه حيات براي كسب يادگيري باشند،منطقي به نظر مي رسد كه عامل هاي هوش مصنوعي داراي دانش اوليه در كنار توانايي يادگيري باشند.</p>
<p>خود مختاري نه تنها بر شعور ما مطابقت دارد، بلكه مثالي از تجربه مهندسي صحيح است. عاملي كه بر اساس مفروضات دروني خود عمل مي كند.تنها زماني مي تواند موفق عمل كند كه اين كه اي مفروضات بر قرار باشند واين يعني فقدان انعطاف پذيري،بذاي مثال سوسك سر گين خور را در نظر گيريد. اين سوسك پس از حفر لانه و تخم گذاري در آن،تكه اي سرگين براي بستن در لانه خود در ابتداي دهنه سوراخ قرار مي دهد. حال اگر تكه سنگين بر خلاف رويه اين سوسك از دهنه سوراخ برداشته شود سوسك به رفتار هاي قبلي خود همانند يك پانتوميم ادامه خواهد داد و هيچ گاه متوجه حذف سرگين نخواهد شد. تكامل اين رفتار غريزي را براي سوسك ايجاد نموده و زماني كه شرايط اوليه برقرار نباشد ناموفق صورت خواهد گرفت.عامل هوشمند واقعاً خود مختار بايد قادر به عمل موفقيت آميز در دامنه وسيعي از محيط ها باشد و البته بايد زمان كافي براي تطبيق نيز به آن داده شود.</p>
<p><strong>ساختار عاملهاي هوشمند</strong></p>
<p>تاكنون درباره عامل ها از طريق توصيف رفتارشان بحث شد، عملي كه بعد از هر دنباله ادراكي داده شده انجام مي گيرد.حال  زمان آن رسيده كه به اصل مطلب بپردازيم و درباره چگونگي كاركرد داخلي آن گفتگو كنيم. وظيفه هوش مصنوعي طراحي برنامه عامل است، تابعي كه نگاشت عامل از ادراك به عمليات را پياده سازي مي كند. فرض مي كنيم اين برنامه بر روي نوعي ابزار محاسبه گر اجرا مي گردد كه آن را معماري مي ناميم.</p>
<p>بديهي است، برنامه اي كه انتخاب مي كنيم بايد آن برنامه اي باشد كه توسط معماري قابل پذيرش واجرا باشد.</p>
<p>معماري ممكن است يك كامپيوتر يا سخت افزارها ي خاص براي مقاصد معين باشد، به عنوان مثال دوربين هاي پردازش تصوير يا ورودي فيلتر شده صدا. همچنين ممكن است شامل نرم افزاري گردد كه درجه اي از پوشش بين كامپيوتر به عنوان سخت افزار صرف و برنامه عامل را ايجاد نمايد وبنابراين برنامه نويسي در سطح بالا تري صورت مي گيرد. عموماً، معماري ادراك از طريق حس گر ها را براي برنامه آماده ساختهع برنامه را اجرا نموده و اعمال انتخابي برنامه را به عمل كننده هاي سيستم منتقل خواهد كرد. ارتباط ما بين عامل ها، معماري هاوبرنامه ها را مي توان  به صورد ذيل جمع بندي نمود:</p>
<p>برنامه + معماري = عامل</p>
<p>اكثريت مباحث اين كتاب درباره طراحي برنامه ها عامل است.</p>
<p>قبل از آنكه به طراحي عامل بپردازيم، ابتدا بايد تصوير خوبي از ادراكات وعمليات ممكن، اهداف يا معيار كارآيي عامل كه مي خواهد به آن برسد و نوع محيطي كه در آن فعاليت مي كند،را داشته باشيم.اين مباحث عناوين گسترده اي را شامل مي گردد.شكل ٣–۲ عناصر پايه براي انتخاب انواع عامل را نشان مي دهد.</p>
<div dir="rtl">
<table dir="rtl" border="1" cellspacing="0" cellpadding="0" width="672">
<tbody>
<tr>
<td width="148" valign="top">محيط</td>
<td width="116" valign="top">اهداف</td>
<td width="146" valign="top">عمليات</td>
<td width="131" valign="top">ادراكات</td>
<td width="131" valign="top">نوع   عامل</td>
</tr>
<tr>
<td width="148" valign="top">بيمار،   بيمارستان</td>
<td width="116" valign="top">بيمارسالم،   حداقل هزينه</td>
<td width="146" valign="top">سؤالات،&nbsp;</p>
<p>آزمونها،</p>
<p>رفتارها</td>
<td width="131" valign="top">علائم،&nbsp;</p>
<p>يافته   ها، پاسخهاي بيمار</td>
<td width="131" valign="top">سيستم   تشخيص پزشكي</td>
</tr>
<tr>
<td width="148" valign="top">تصاوير  ماهواره اي</td>
<td width="116" valign="top">طبقه   بندي&nbsp;</p>
<p>صحيح</td>
<td width="146" valign="top">چاپ   يك صحنه طبقه بندي شده</td>
<td width="131" valign="top">پيكسل   هاي با شدت متفاوت،&nbsp;</p>
<p>رنگ</td>
<td width="131" valign="top">سيستم   تحليل تصويرماهواره اي</td>
</tr>
<tr>
<td width="148" valign="top">تسمه   حمل كننده اجزاء</td>
<td width="116" valign="top">قرار   دادن اجزاء در دسته&nbsp;</p>
<p>صحيح</td>
<td width="146" valign="top">برداشتن   اجزاء&nbsp;</p>
<p>و   مرتب سازي آنها به صورت دسته اي</td>
<td width="131" valign="top">پيكسلها   با شدت&nbsp;</p>
<p>متفاوت</td>
<td width="131" valign="top">روبات   جابه جا كننده اشياء</td>
</tr>
<tr>
<td width="148" valign="top">پالايشگاه</td>
<td width="116" valign="top">افزايش   خلوص،&nbsp;</p>
<p>محصول،ايمني</td>
<td width="146" valign="top">بازو   بسته كردن&nbsp;</p>
<p>سوپاپها،</p>
<p>تعديل   دما</td>
<td width="131" valign="top">دما،   فشارسنجها</td>
<td width="131" valign="top">كنترل   كننده&nbsp;</p>
<p>پالايشگاه</td>
</tr>
<tr>
<td width="148" valign="top">مجموعه     دانش آموزان</td>
<td width="116" valign="top">افزايش   نمرات&nbsp;</p>
<p>دانش   آموزان در آزمونها</td>
<td width="146" valign="top">تمرينهاي&nbsp;</p>
<p>چاپ   شده،پيشنهادات،</p>
<p>اصلاحات</td>
<td width="131" valign="top">كلمات   تايپ شده</td>
<td width="131" valign="top">آموزش   دهنده زبان انگليسي&nbsp;</p>
<p>با   ارتباط متقابل</td>
</tr>
</tbody>
</table>
</div>
<p><strong>شكل٣</strong><strong>–</strong><strong>۲:مثالهايي از انواع عامل ها و تعاريف </strong><strong>PAGE</strong><strong> هاي آنها</strong></p>
<p>شايد براي برخي از خوانندگان تعجب آور باشد كه ما درليست انولع عامل ها برخي برنامه ها را ذكر كرده ايم كه در محيط كاملاً مصنوعي كه به وسيله ورودي صفحه كليد و خروجي كاراكتربر روي صفحه نمايش تعريف مي شود،مطرح مي گردند مطمئناًبرخي خواهند گفت، «آيا اين يك محيط واقعي است؟» در حقيقت مسئله مهم تمايز محيط هاي    « واقعي » و «مصنوعي » نيست، بلكه مسئله اصلي پيچيدگي ما بين ارتباط رفتار عامل، دنباله ادراكي توليد شده بوسيله محيط، و اهدافي است كه عامل قصد حصول آن را دارد،مي باشند. برخي محيط هاي « واقعي » در عمل بسيار ساده هستند.براي مثال،روباتي كه براي بازرسي قطعاتي كه بر روي تسمه نقاله مي آيند، طراحي شده مي تواند فرضيات ساده كننده اي را در نظر گيرد: اين فرض كه روشنايي همواره وجود دارد،اين فرض كه فقط قطعات خاصي بر روي تسمه نقاله انتقال مي يابند و اينكه تنها دو عمل اعريف شده است،قبول قطعه يا علامت گذاري روي آن براي رد قطعه.</p>
<p>در مقابل برخي عامل هاي نرم افزاري (Software agents) در دامنه هاي نا محدود و غني وجود دارند (به اين نرم افزار ها ،روبات هاي نرم افزاري يا( softbots ) نيز مي گويند). روبات نرم افزاري را تصور كنيد كه براي شبيه سازي پرواز 747 طراحي شده است. شبيه ساز دراي محيطي پيچيده و بسيارجزيي است و عامل نرم افزاري بايدازميان طيف گسترده اي  از عمليات در شرايط بلاد رنگ انتخابي را انجامدهد. و يا عامل نرم افزاري را تصور كنيد كه براي مرور منابع اخبار و نمايش اقلام مورد توجه مشتريان طراحي شده است.براي انجام درست كار، بايد قابليت پردازش زبان طبيعي را داشته باشد، نيازمند يادگيري علايق  مشتريان خواهد بود و مي بايست توانايي تغيير پوياي برنامه خود را براي زماني داشته باشد كه براي مثال اتصال به يك منبع خبري از بين رود و يا يك منبع جديد خبريروي خط بيايد.</p>
<p>برخي محيط ها تمايز بين « واقعي » و« مصنوعي » را محو مي كنند.در محيط  ALIVE (Maes  et al.1994)، عامل هاي نرم افزاري داده شده ناد كه قادر به درك تصاوير دوربين ديجيتال اتاقي هستند كه انساني گرداگرد آن قدم ميزند. عامل، عامل تصوير دوربين را پردازش كرده و عملي را انتخاب مي كند.محيط همچنين تصوير دوربين را بر روي پرده نمايش بزرگي كه انسان قادربه ديدن آن باشد نمايش مي دهد تا بتواند بر روي تصوير افكت هاي گرافيك كامپيوتري را اضافه كند.چنين تصويري مي تواند سگكارتوني باشد كه برناوه ريزي شده تا بسوي انسان حركت كند (مگر اينكه فرد به جايي اشاره كند تا سگ دور شود) و يا دست خود را تكان داده و يا مشتاقانه بپرد زماني كه انسان اداهي خاصي از خود در آورد.</p>
<p><strong>محيط ها</strong></p>
<p>اعمال بوسيله عامل بر محيط انجام مي شود، كه خود ادراك عامل را مهيا مي سازد. اول، انواع متفاوت محيط ها وچگونگي اثر آنها بر طراحي عامل را تشريح نموده و سپس برنامه هاي محيطي را تشريح خواهد كرد كه مي تواند به عنوان بستر آزمون برنامه هاي عامل مورد استفاده قرار گيرد.</p>
<p><strong>خواص محيط ها</strong> : محيط ها از چند منظر مورد توجه قرار مي گيرند. تمايز هاي پايه به قرار زير ايجاد مي شوند:</p>
<p><strong>قابل دسترسي در مقابل غيرقابل دسترسي</strong></p>
<p>اگر ابزار حس كننده عاملي امكان دسترسي به وضعيت كامل محيط را بدهد، آنگاه مي گوئيم محيط براي عامل قابل دسترسي است. محيط مؤثر قابل دسترسي است. اگر حس گرها تمامي جنبه هايي را كه براي انتخاب عمل لازم است شناسايي كنند. محيط قبال دسترسي راحت است زيرا عامل نيازمند دستكاري هيچ وضعيت داخلي براي حفظ دنيا را نخواهد داشت.</p>
<p><strong>قطعي در مقابل غير قطعي</strong></p>
<p>اگروضعيت بعدي محيط به وسيله وضعيت كنوني و اعمالي كه با عامل انتخاب گردد، تعيين شود،مي گوئيم محيط قطعي است. به طور كلي، عامل نبايد درباره عدم قطعيت در محيط قطعي وقابل دسترسي نگران باشد. اگر محيط قابل دسترسي نباشد، ممكن است غير قطعي به نظر برسد. اگر محيط پيچيده باشد اين مطلب به طور اخص صحيح است،  كه نگهداري تمامي جنبه هاي غيرقابل دسترسي را دشوار مي سازد. بنابراين، بهتر است به قطعي يا غير قطعي بودن محيط از ديدگاه عامل نگاه كنيم.</p>
<p><strong>اپيزوديك در مقابل غير اپيزوديك</strong></p>
<p>در محيط اپيزوديك(episodic)، تجربه عامل به اپيزود هايي تقسيم مي گردد. هر اپيزود شامل درك و عمل عامل است. كيفيت اعمال ان تنها به خود اپيزود وابسته است، زيرا اپيزود هاي بعدي وابسته به اعمالي كه در اپيزود هاي قبلي صورت مي گيرد نيستند. محيط هاي اپيزودي بسيار ساده ترند زيرا عامل نبايد به جلو تر فكر كند.</p>
<p><strong>ايستا در مقابل پويا</strong></p>
<p>اگر محيط درحين سنجيدن عامل تغيير كند، مي گوئيم محيط براي عامل پويا است، در غير اين صورت پويا است. محيط هاي ايستا براي كار ساده هستند زيرا عامل نيازمند نگاه كردن به دنيا درحين تصميم گيري عملي نداشته و همچنين در مورد گذرزمان نيز نگران نمي باشد. اگر محيط با گذر زمان تغيير نيابد اما امتياز كارايي تغيير كند، مي گوئيم محيط نيمه پويا (semidynamic ) است.</p>
<p><strong>گسسته در مقابل پيوسته</strong></p>
<p>اگر تعداد محدود و مجزا از ادراك و اعمال بوضوح تعريف شده باشد، مي گوئيم محيط گسسته است. بازي شطرنج گسسته است، تعداد ثابتي در هر نوبت بازي وجود دارد. رانندگي تاكسي پيوسته است، سرعت و محل تاكسي و ديگر مشخصات خودرو در بازده مقادير پيوسته تغيير مي كنند. مشاهده خواهيم كرد كه انواع متفاوت محيط ها نياز مند برنامه هاي عامل تا حدودي متفاوت هستند تا قادر به عملكرد كارا باشند. بعداً روشن خواهد شد كه سخت ترين حالت، همانطور كه شما ممكن است حدس زده باشيد، غير قابل دسترسي، غير اپيزوديك، پويا و پيوسته است. همچنين خواهيم ديد كه اكثريت وضعيت هاي واقعي چنان پيچيده هستند كه اگرواقعاً قطعي باشند، براي اهداف عملي، غير قطعي در نظر گرفته مي شود.</p>
<p><strong>برنامه محيط</strong></p>
<p>شبيه ساز يك يا چند عامل را به عنوان ورودي گرفته و بگونه اي عمل مي كند كه هر عامل ادراك درست و نتيجه بازگشتي عمل خود را بدست آورد. سپس شبيه ساز محيط را بر اساس اعمال و احتمالاً ديگر فرايند هاي پوياي محيط كه به عنوان عامل ها در نظر گرفته نمي شوند(مثل باران)، بهنگام مي سازد. بنابراين محيط با وضعيت آغازين و تابع بهنگام سازي تعريف مي گردد. البته، عاملي كه در شبيه ساز كار مي كند بايد قادر به كار كردن در محيط واقعي باشد كه همان انواع ادراك را ايجاد نموده و همان انواع اعمال را قبول كند</p>
<p>به طور كلي، ملاك كارايي وابسته به كل دنباله وضعيت هاي محيط است كه در حين عمل برنامه توليد مي گردد. معمولاً، ملاك كارايي با يك تجمع ساده مثل جمع، ميانگين يا حداكثر كار مي كند. براي مثال، اگر ملاك كارايي براي عامل vaccum-cleaning  جئع كل زباله هايي باشد كه در يك شيفت كاري تميز كرده باشد، scores تنها مقدار زباله تميز شده تا كنون را نگهداري مي كند. RUN-EVAL &#8211; ENVIRONMENT ملاك كارايي براي محيط واحدي برمي گرداند كه به وسيله وضعيت آغازين واحد وتابع بهنگام سازي ويژه تعريف مي گردد. معمولاًعامل براي كار در يك دسته محيط (environment class) طراحي شده است، مجموعه جامعي ازانواع محيط ها. براي مثال، ما برنامه شطرنج را براي بازي در رقابت با رقباي متفاوت ماشيني و انساني طراحي مي كنيم. اگر آن را براي يك رقيب واحد طراحي كنيم، ممكن است قادر به استفاده از ضعف خاص آن رقيب باشيم، اما اين طرح نمي تواند برنامه خوبي براي نرم افزار بازي عمومي باشد. به بيان دقيق تر، براي اندازه گيري كارايي يك عامل، نيازمند توليد كننده محيطي هستيم كه محيط هاي خاص (با احتمالات كلي) را براي اجراي عامل انتخاب كند سپس ما علاقه مند به ميزان كارايي متوسط عامل بر روي كلاس محيط هستيم.</p>
<p>يك اشتباه رايج بين دو مفهوم متغير وضعيت درمحيط شبيه ساز و متغير در خود عامل (مراجعه شود به REFLEX-AGENT-WITH-STATE) ممكن است روي دهد. به عنوان برنامه نويسي كه هر دو محيط شبيه ساز و عامل را پياده سازي مي كند، اغوا برانگيز خواهد بود كه عانل قادر به دسترسي متغير وضعيت شبيه ساز محيط باشد. اين فريفتگي بايد به هر قيمتي سركوب شود! نسخه عامل وضعيت تنها بايد از روي ادراك آن ساخته شود، بدون آنكه دسترسي به اطلاعات كامل وضعيت داشته باشد.</p>
<p><strong>امواج </strong><strong>Ultrasonic</strong><strong> </strong></p>
<p>امواج اولتراسونيك به دسته­ايي از امواج مكانيكي گفته مي­شود كه فركانس نوسانشان بيش از محدوده شنوايي انسان 20KHz باشد. اين امواج بدليل خواصي كه دارند كاربردهاي متنوع و بعضاً جالبي دارند. با محاسبه­ايي ساده مي­توان دريافت كه اگر نقطه­ايي با فركانس 25 كيلوهرتز و دامنه 10 ميكرومتر نوسان كند شتاب آن بالغ بر 25 هزار برابر شتاب ثقل مي­شود. اين شتاب و به طبع آن سرعت بالا در مايعات باعث ايجاد كاويتاسيون مي­شود و در هنگام انفجار حبابهاي ايجاد شده فشاري در حدود 200 بار ايجاد مي­گردد. از طرف ديگر اگر حركت نسبي با مشخصات فوق ميان دو سطح جامد برقرار شود ازدياد دما باعث جوش خوردن دو سطح به يكديگر مي­شود كه Ultrasonic Welding مي­باشد.</p>
<p>امواج اولتراسونيك مانند ديگر امواج دارای خاصیت شکست، انعکاس، نفوذ و پراش می­باشند. برای توليد اين امواج روشهاي متفاوتي وجود دارد.</p>
<p>مجموعه­هاي اولتراسونيك معمولاً از سه بخش كلي تشكيل مي­شوند:</p>
<p>1.       مبدل</p>
<p>2.       بوستر</p>
<p>3.       تقويت كننده يا هورن.</p>
<p>مبدل نقش توليد امواج مكانيكي و تبديل انرژي الكتريكي به مكانيكي را دارد, بوستر و تقويت كننده نيز وظيفه انتقال و تقويت دامنه حركت و رساندن ‌آن به مصرف كننده را به عهده دارند.</p>
<p><strong> </strong></p>
<p><strong>کاربرد سنسورهای </strong><strong>Ultrasonic</strong><strong> در رباتیک</strong></p>
<p>يكي از مسائل مطرح در رباتيك ايجاد درك نسبت به محيط خارجي براي جلوگيري از برخورد نامطلوب به اشياء موجود در محيط حركت است. از سوي ديگر ممكن است نياز داشته باشيم كه ربات بتواند دركي از فاصله ها بدون تماس فيزيكي داشته باشد. براي اين منظور از سنسورهاي مافوق صوت يا Ultrasonic استفاده ميكنند.<br />
با وجود اينكه رويكردهاي زيادي در اين زمينه وجود دارد ولي ميتوان آنها را در دو بخش تقسيم بندي كرد. دسته اول شامل ابزارهاي انفعالي ميباشند ،نظير سيستمهاي فاصله سنجي swept-focus و يا stereoscopic . دسته بعد سيستم هاي فعال يا Active ميباشند نظير سيستمهاي ماكروويو ، ليزر و مافوق صوت.<br />
در اين مقال ما به معرفي سنسورهاي مافوق صوت خواهيم پرداخت. اين سنسورها از دو قسمت تشكيل شده است. قسمت اول مدار راه انداز آن را تشكيل ميدهد و قسمت ديگر دو قطعه (مبدل( گيرنده و فرستنده آن ، دقيقا مشابه آن قسمت از دزدگيرهايي كه در خودروها (مقابل شيشه جلو) نصب ميشود. البته دردسر اصلي كار با اينگونه سنسورها مدار راه انداز آن است.البته پكيجهاي آماده كه كار را بسيار ساده ميكنند نيز وجود دارد، مانند مدل مافوق صوت ساخت شركت Texas Instruments  كه اين سنسورها در برخي دوربينها نيز براي تشخيص فاصله و فوكوس مناسب استفاده ميشود.</p>
<p>مكانيزم كلي كار اين سنسورها ، فرستادن يك بيم و دريافت انعكاس آن و متعاقبا محاسبه زمان رفت و برگشت. بدين ترتيب ميتوان فواص را نيز براحتي با در نظر گرفتن صرعت صوت در دما و فشار محيط ، محاسبه كرد.<br />
قدم بعدي بدست آوردن ماتريسي از موانع موجود در محيط است. اينكار از دو راه ممكن است راه اول جاروب كردن محيط با امواج بصورت مكانيكي ميباشد. راه دوم استفاده ازچند مبدل ، با توجه به پيچيدگي محيط ، است. بعنوان مثال ميتوان يك مبدل متحرك با رنج زاويه اي بالا در سر ربات ، يك مبدل ثابت در جلو و رو به پايين براي تشخيص گودي، و دو مبدل با زاويه هاي 45 درجه در چپ و راست را بعنوان يك تركيب مناسب استفاده كرد.<br />
يكي از مهمترين خطاهايي كه در اين سنسورها مشاهده ميشود ، خطاي بالقوه در فواصل زياد است. همانطور كه ميدانيد امواج مافوق صوت را نمي توان همانند يك بيم ليزر تاباند و انعكاس آن را ثبت كرد. بعنوان مثال در فاصله حدودا 4.5 متري و با زاويه تابش 75 درجه حدود 250 ميليمتر خطا ممكن است پيش آيد.</p>
<p>برخي از محققين با استفاده از تيوپها ، شيپوره ها و بازتابنده ها و با فوكوس دادن بيمهاي صوتي سعي در كم كردن زاويه تابش داشته اند ولي تجهيزات مورد نياز ابعاد سنسور را به ده ها برابر افزايش ميدهد. دقت اين نوع سنسورها را با افزايش دقت گيرنده نيز ميتوان افزايش داد. لبه هاي كناري بيم عموما از شدت كمتري برخوردارند لذا با كم كردن شدت حساسيت گيرنده ميتوان خطا را تا نصف كاهش داد. البته در مواردي از يك آرايه از داده ها استفاده ميشود و پروسسوري وظيفه تشخيص زاويه مناسب را برعهده دارد.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>نمونه ای از کاربرد سنسورهای </strong><strong>Ultrasonic</strong><strong> در روباتیک</strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>ربات دوچرخه سوار</strong></p>
<p>یک کمپانی ژاپنی اقدام به ساخت یک ربات کوچک نموده که به سادگی دوچرخه سواری می کند.</p>
<p>شرکت Murata Manufacturing در یکی از نمایشگاه های تکنولوژیهای پیشرفته در اطراف شهر توکیو در ژاپن، رباتی را معرفی کرد که قادر است دوچرخه سواری کند.</p>
<p>این ربات که پنجاه سانتیمتر ارتفاع و نزدیک به پنج کیلوگرم وزن دارد، &#8220;پسر موراتا&#8221; (Murata Boy) نام داشته می تواند با سرعتی حدود 79 سانتیمر در ثانیه حرکت کند.</p>
<p>نسخه قدیمی تر این ربات که دوچرخه سواری می کرد در سال 1990 معرفی شد اما نمی توانست بدون آنکه بیفتد، توقف کند. اما ربات اخیر با تنظیم سرعت و انحراف مرکز جرم خود می تواند تعادل خود را در موقعیت های مختلف از جمله هنگام ایستادن حفظ کند.</p>
<p><strong>سنسور سونار:</strong></p>
<p><strong>خلاصه:</strong></p>
<p>سونار SRF04 سنسور مسافت یاب است که می توان توسط آن ربات را هدایت کرد. شما می توانید ربات خود قادر سازید تا محیط پیرامونش را از طریق مجموعه سنسورهای سونار ببیند.(مانند چشم انسان)</p>
<p><strong>نظریه عملکرد:</strong></p>
<p><strong> </strong>یک سنسور سونار از طریق تولید یک صدا مانند رگبار کوتاه اسلحه کار می کند(ping) بنابراین وقتی که صدا به نزدیکترین شیء برخورد می کند، انعکاس صدا(echo) توسط سنسور شنیده می شود.</p>
<p>مانند تصویر زیر:</p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="7" height="5"></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>توسط اندازه گیری درست زمان، از لحظه ای که Ping شروع شده تا لحظه ای که Echo به سنسور برمیگردد، مقدار فاصله به نزدیکترین شیء را می توان محسبه کرد. حرکت صدا چیزی در حدود 1116.4 feet/second و یا 340.29 meters/second در سطح دریا، سرعت دارد. فاصله به نزدیکترین شیء را می توان با تقسیم زمان گذشته شده(elapsed time) بر دو برابر سرعت صدا محاسبه کرد.</p>
<p>منظور از زمان گذشته شده، زمان بین فرستادن صدا و شنیدن انعکاس(echo) است.</p>
<p>فرمول بدست آوردن فاصله سنسور از شیء به صورت زیر است:</p>
<p>Distance = ElapsedTime / (2* Speed_Of_Sound)</p>
<p>دلیل این که عمل تقسیم را بر دو برابر سرعت صدا ضرب می کنیم این است که فاصله از شیء فقط نصف فاصله حرکت واقعی موجی صدا است. موج صدا باید به سمت شیء حرکت کند و به سنسور برگردد برای این که سنسور، برگشت صدا یا echo را بشنود.</p>
<p><strong>عملکرد سنسور:</strong></p>
<p><strong> </strong>سنسور مسافت یاب SRF04 با تولید یک پالس بر روی سیگنالی قرار است بفرستد، آن را رها می کند. این باعث می شود تا مسافت یاب یک ping ارسال کند. سنسور مسافت یاب قادر است تا 100 microsecond را بعد از عمل پینگ دریافت کند و سیگنال خروجی echo سنسور را افزایش دهد.(تأخیر در فعال سازی گیرنده باعث می شود تا گیرنده از شنیدن ping ارسال شده جلوگیری کند) وقتی که گیرنده echo را می شنود سیگنال خروجی را قطع می کند. زمان گذشته شده(Elapsed Time) بین ping و echo را می توان با اندازه گیری مدت زمان پالس روی خط echo و اضافه کردن 100 microsecond به آن بدست آورد. به صورت زیر:</p>
<p>elapsedTime = pulseDuration + 100</p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="3" height="10"></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><strong> </strong></p>
<p><strong><br />
</strong></p>
<p><strong>سنسور رنگ:</strong></p>
<p><strong>چکیده:</strong></p>
<p>در این مقاله سعی در این است که شناخت مختصری از سنسور رنگ بوجود آوریم برای این منظور ابتدا در مورد طیف نور توضیحاتی ارائه شده و سپس به ساختار داخلی سنسور پرداخته ایم. بعد سیستم کار این سنسور که بصورت کدهای دیجیتال در خروجی سریال جهت پروسس عمل می کند را شرح داده ایم.</p>
<p><strong>کلمات کلیدی</strong><strong>:</strong></p>
<p>ADC:  Analog – Digital – Converter</p>
<p>Sensor:  حسگر</p>
<p>Pixel:  پیکسل</p>
<p>Chip:  چیپ</p>
<p><strong>مقدمه:</strong></p>
<p><strong> </strong>هدف اصلی از بررسی ها و تعاریفی که در این مقاله ارائه میشود . بازشناسی رنگ ها توسط ابزاری بغیر از چشم انسان می باشد یعنی به غیر از چشم انسان ابزارهای دیگری هم وجود دارند که می توانند رنگ ها را دریافت کرده و حس کنند پس لازمه ی ارتباط سخت افزار با دنیای قابل دیدن یک چشم حساس به نور مرئی یا رنگ می باشد که در اصطلاح فیزیک به آن سنسور نوری گفته می شود . این سنسورها در نور غیر مرئی یا طول موج های مورد نظر برای نورهای مرئی حساس هستند مانند سنسورهای حساس به نور زیر قرمز(infrared) یا ماوراء بنفش               (ultra violet) که برای گیرنده های تلوزیونی کاربرد دارند.</p>
<p>سنسورهای رنگی ساخته شده در صنعت کار تشخیص رنگ را بر عهده دارند و تقریبا تمام طیف نور مرئی را تشخیص می دهند. این سنسورها بهترین انتخاب برای کاربردهای مقیاس کوچک با عملکرد بالا هستند.</p>
<p>مورد استفاده سنسور رنگ در صنعت مدرن بسیار زیاد است که از آن جمله می توان به کاربرد آن در خطوط تولید کنترل کیفیت (Q.C) ،ماهواره ها، رباتیک ،پزشکی ،صنایع غذایی ، اتومبیل سازی ، و به طور کلی در اتوماسیون سیستمها و سیستمهای اتوماتیک اشاره کرد.</p>
<p>ابزارهای بسیاری نیاز به کنترل رنگ از طریق یک سنسور را دارند به عنوان مثال در صنعت، کدهای رنگی پرینت شده همانند خطوط روی مقاومتها بایستی آشکار شوند تا اجازه عملکرد بالای ذخیره اتوماتیک رابه مقاومت بدهند . نیمی از شرکتهای آلمانی در صنعت غذایی (tetra) جهت کنترل رنگی از  color sensor استفاده می کنند.</p>
<p>سه نوع سنسور رنگ شبیه چشم انسان مسئولیت تشخیص رنگ را بر عهده دارند . این سنسورهای رنگی نمایانگر یک طرح کوچک فیلترهایی با کیفیت بالا و خواندن هم زمان سه سطح رنگی می باشند.</p>
<p>سنسور فوق یکی از انواع سنسورهای JEN color ساخت کارخانه MAZET آلمان و از نوع سنسورهای سه عنصری (3 element color sensor) بوده که قابلیت شناسایی رنگ ها را به تفکیک رنگهای قرمز ، سبز و آبی دارا می باشد.</p>
<p>سنسور مربوط از 3*19 فتو دیود pin  سیلیکونی که بصورت حلقه وار روی چیپ فقرار گرفته اند تشکیل شده برای جلو گیری از ایجاد تداخل در بین فتو دیود ها ، هر سکتوری از قسمت دیگر جدا شده  برای شناسایی هر رنگی در هر کدام از این فتودیود ها فیلتر مربوط به طول موج رنگ مربوط در نظر گرفته شده است.</p>
<p>فیلترهای رنگی با کیفیت بالای تداخلی دارای این خصوصیات می باشد:</p>
<p>1-                بصورت micro-structure  روی چیپ قرار گرفته اند</p>
<p>2-                قدرت انتقال سیگنال بالایی دارند.</p>
<p>3-                سطح آن ها سخت می باشد.</p>
<p>4-                پایداری حرارتی بالایی دارند.</p>
<p>5-                فیلترها دارای شیب زیادی هستند</p>
<p>آرایه های فتو دیدهای pin  سیلیکونی:</p>
<p>1-                ناحیه طول موج 450mm-750mm</p>
<p>2-                جریان گرفته شده از هر سکتور کمتر از 50 pa  به ازای 5v   ولتاژ معکوس</p>
<p>3-                ظرفیت  خازن هر سکتور 50 pf  به ازای 5v ولتاژ معکوس</p>
<p>4-                ماکزیمم ولتاژ معکوس 30 v</p>
<p>5- زمان صعود (TR) کمتر 1ns<strong> </strong></p>
<p>این قطعه در انواع پکیج های tos-smd-so8 با فیلتر IR  ارائه شده است .و دارای چهار پایه می باشد که شامل سه پایه آند که هر کدام مربوط به یک رنگ قرمز ، سبز و آبی و یک پایه کاتد مشترک می باشد.</p>
<p><strong>: ساختار فیزیکی</strong></p>
<p>سنسورهای رنگی شامل آرایه های دو بعدی(ماتریس) از سلول های تصویری می باشند که عملیات استخراج نور و اسکنینگ(Scanning) را انجام می دهد، جنس این سلول ها از مواد نیمه هادی طراحی آن به صورتی است که تشکیل یک خازن بدهد. برای تولید این سلول ها از ترکیب بایاس معکوس P-N استفاده می شود. در این تکنولوژی، ساخت دیودی با اتصال P-N</p>
<p>(reverse-based) مورد استفاده قرار می گیرد.</p>
<p>وقتی یک ولتاژ مثبت بر روی یک الکترود هادی کنار بستر القاء می شود یک ناحیه تخلیه در بستر در کنار الکترود ایجاد می شود به این منبع تخلیه چاه پتانسیلی نیز گفته می شود حال وقتی نور به ناحیه تخلیه برسد الکترون های بستر با حفره ها ترکیب مجدد می شوند ولی در ناحیه تخلیه الکترون های آزاد خواهیم داست بنابراین یک شارژ منفی از ناحیه تخلیه بوجود می آمد که نمایانگر تابش نور بر بستر می باشد برای این که نور به آسانی به محل تخلیه برسد الکترودهای از جنس پلی سیلیکون می باشد.</p>
<p>عامل های هوشمند</p>
<p><strong>مقدمه</strong></p>
<p><strong>عامل هرچیزی است که قادر به درک محیط پیرامون خود ازطریق حس گرها(سنسور) واثرگذاری بر روی محیط از طریق اثرکننده ها  باشد.</strong><strong> </strong></p>
<p>عامل انسانی اندامهایی مانند گوشها، شمها ودیگر ارگانها برای حس کردن ودستها، پاها ، بینی ودیگر اندامها برای اثرگذاری دارند. عامل رباتیک دوربینها ویابنده های مادون قرمز را بجای حس گرها وانواع موتورها را بجای اثرکننده ها جایگزین کرده است. عامل نرم افزاری رشته های بیتی را بعنوان درک محیط وعمل ، کدگذاری می کنند. درشکل زیرنمادی ازیک عامل عمومی ترسیم شده است.</p>
<div dir="rtl">
<table dir="rtl" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="561" valign="top">Sensors&nbsp;</p>
<p>&nbsp;</td>
</tr>
</tbody>
</table>
</div>
<p><strong>شكل ١</strong><strong>–</strong><strong>۲:عامل هايي كه از طريق حسگر ها و اثر كننده ها با محيط ها ارتباط برقرار مي كنند.</strong></p>
<p>عامل ها چگونه باید عمل کنند؟</p>
<p>عامل منطقی (RATIONAL AGENT) چیزیست که کاردرست انجام میدهد. آشکارا ،این بهتر ازآنست که کار نادرست انجام گیرد، اما این چه معنی می دهد؟ بعنوان اولین تخمین ، میگوییم عمل درست آنست که باعث موفق ترین شدن عامل گردد. اما این بیان مساله ، تصمیم گیری درباره چگونگی وزمان محاسبه موفقیت عامل را نادیده می گیریم .</p>
<p>ماواژه معیارکارآیی را (PERFORMANCE MEASURE) برای چگونگی به کار میبریم ، ملاکی که چگونگی موفقیت یک عامل را تعیین می کند. آشکارا ، تنها یک معیارثابت مناسب برای تمامی عاملها وجود ندارد . ماباید ازعامل برای عقیده ذهنی چگونگی رضایت خود از کارآیی اش را مورد پرسش قرار دهیم.</p>
<p>اما برخی ازعاملها قادر به پاسخگویی نبوده وبرخی خودشان را فریب می دهند.(عاملهای انسانی بویژه نمونه بارزی ازانگور ترشیده هستند چرا که بعد ازعدم موفقیت درحصول چیزدر میابند که واقعا آن چیزرا نیاز نداشتند).</p>
<p>بنابراین ما دراندازه گیری معیار ذهنی که بوسیله اعمال قدرتی تحمیل شده ، تاکید می کنیم . بعبارت دیگر، بعنوان مشاهده گرهای خارجی استاندارهایی را بیان می کنیم که موفقیت چه معنی درمحیطی را میدهد وازآن بعنوان معیار کارآیی عاملها استفاده می کنیم.</p>
<p>نمی توان عاملی را  برای چیزیکه قابل درک نیست یا بعلت عدم انجام عمل غیرقابل انجامی ، مانند دفع دربار سرزنش نمود. اما رها کردن نياز های کامل بودن،راه مناسبی برای عامل ها نيست.نکته اينجاست اگر معين کنيم که هر عامل هوشمند همواره باید همان کاری را انجام دهدکه در عمل مناسب است¸هیچگاه نمی توان عاملی را طراحی نمود که این مشخصات را مرتفع سازد.</p>
<p>به طور خلاصه آن چه که در هر زمانی منطقی است به چهار چیز وابسته است:</p>
<ul>
<li>معیار کارآرایی که درجه موفقیت را تعیین می کند</li>
<li>هرچیزی که تاکنون عامل ادراک نموده است.اما این تاریخچه کامل اذراکی را دنباله ادراکی می نامیم.</li>
<li>آنچه که عامل در باره ی محیط خودمی داند.</li>
</ul>
<p>اعمالی که عامل می تواند صورت دهد.</p>
<p>این عوامل راهنمای تعریف ایده آل هستند:برای هردنباله ادراکی ممکن عامل منطقی ایده آل باید هر کاری را که انتظار می رودباعث حداکثرسازی معیار کارآرایی می شود انجام دهدواین عمل بر پایه شواهدی که از طریق دنباله ادراکی آماده شده وهر آنچه که دانش درونی عامل است انجام میگردد.</p>
<p><strong>نگاشت ايده آل از دنباله هاي ادراكي به عمليات</strong></p>
<p>از آنجا كه دريافتيم رفتار عامل وابسته به دنباله ادراكي تا حال است، مي توانيم هر عامل خاصي را به وسيله ساخت جدولي از عمل آن در پاسخ به هر دنباله ادراكي توصيف كنيم. (براي اكثريت عامل ها، اين ليست بسيار طولاني خواهد بود يا در واقع نا متناهي،مگر آنكه كراني بر طول دنباله ادراكي مورد انتظار قرار دهيم.) چنين ليستي نگاشت (mapping) از دنباله ها ادراكي ناميده مي شود. اصولاً قادر هستيم دريابم كدام نگاشت عامل را به وسيله بررسي تمامي دنباله هاي ادركي ممكن و ثبت اعمالي كه عامل در پاسخ انجم مي دهد،توصيف مي كند. (اگر عامل ها مقداري تصادفي سازي در محاسبا ت خود بكار برند، خواهيم توانست برخي دنباله هاي ادركي را چندين بار اعمال نموده تا ايده مناسبي براي رفتار متوسط عامل بدست آوريم.) و اگر نگاشت ها عامل ها را توضيح دهند،آنگاه نگاشت ايده آل عامل هاي ايده آل را تشريح مي كند. تعيين اين كه كدام عمل را بايد عامل در مقابل هر دنباله ادراكي داده شده انجام دهد،طراحي براي عامل ايده را مهيا مي سازد.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>خود مختاري (</strong><strong>Autonomy</strong><strong>) </strong></p>
<p>يك مورد اضافه ديگر در تعريف عامل منطقي ايده ال بايد لحاظ شود، بخش « دانش دروني.» اگر اعمال عامل ها كاملاً بر پايه دانش دروني باشد، چنانچه هيچ توجهي به ادراك خود نكنند، گوييم عامل فاقد خود مختاري است. براي مثال، اگرسازنده ساعت آنقدر پيشگو باشد كه بداند مالك ساعت به استراليا در تاريخ معيني خواهد رفت، آنگاه درداخل آن مكانيزمي را تعبيه خواهد كرد تا عقربه ها را به طور خود كر در موعد معين شش ساعت جابه جا كند. اين رفتار به طور عمومي موفقيت آميز است اما به نظر مي رسد هوشمندي به طراح ساعت است تا خود ساعت.</p>
<p>رفتار عامل مي تواند متكي بر دو پايه تجربه خود و دانش دروني بنا نهاده شود كه در ساخت عامل براي شرايط محيطي خاص كه درآن عمل خواهد كرد،استفاده مي شود. سيستم به وسعتي خود مختار است كه رفتار آن براساس تجربه خودش تعيين مي كند.زماني كه عامل فاقد تجربه و يا كم تجربه است،مسلماً تصادفي عمل خواهد كرد،مگر آنكه طراح كمكهايي به آن داده باشد.بنابر اين همانگونه كه تكامل موجودات زنده را با واكنش غريزي كافي آماده مي سازد تا قادر به ادامه حيات براي كسب يادگيري باشند،منطقي به نظر مي رسد كه عامل هاي هوش مصنوعي داراي دانش اوليه در كنار توانايي يادگيري باشند.</p>
<p>خود مختاري نه تنها بر شعور ما مطابقت دارد، بلكه مثالي از تجربه مهندسي صحيح است. عاملي كه بر اساس مفروضات دروني خود عمل مي كند.تنها زماني مي تواند موفق عمل كند كه اين كه اي مفروضات بر قرار باشند واين يعني فقدان انعطاف پذيري،بذاي مثال سوسك سر گين خور را در نظر گيريد. اين سوسك پس از حفر لانه و تخم گذاري در آن،تكه اي سرگين براي بستن در لانه خود در ابتداي دهنه سوراخ قرار مي دهد. حال اگر تكه سنگين بر خلاف رويه اين سوسك از دهنه سوراخ برداشته شود سوسك به رفتار هاي قبلي خود همانند يك پانتوميم ادامه خواهد داد و هيچ گاه متوجه حذف سرگين نخواهد شد. تكامل اين رفتار غريزي را براي سوسك ايجاد نموده و زماني كه شرايط اوليه برقرار نباشد ناموفق صورت خواهد گرفت.عامل هوشمند واقعاً خود مختار بايد قادر به عمل موفقيت آميز در دامنه وسيعي از محيط ها باشد و البته بايد زمان كافي براي تطبيق نيز به آن داده شود.</p>
<p><strong>ساختار عاملهاي هوشمند</strong></p>
<p>تاكنون درباره عامل ها از طريق توصيف رفتارشان بحث شد، عملي كه بعد از هر دنباله ادراكي داده شده انجام مي گيرد.حال  زمان آن رسيده كه به اصل مطلب بپردازيم و درباره چگونگي كاركرد داخلي آن گفتگو كنيم. وظيفه هوش مصنوعي طراحي برنامه عامل است، تابعي كه نگاشت عامل از ادراك به عمليات را پياده سازي مي كند. فرض مي كنيم اين برنامه بر روي نوعي ابزار محاسبه گر اجرا مي گردد كه آن را معماري مي ناميم.</p>
<p>بديهي است، برنامه اي كه انتخاب مي كنيم بايد آن برنامه اي باشد كه توسط معماري قابل پذيرش واجرا باشد.</p>
<p>معماري ممكن است يك كامپيوتر يا سخت افزارها ي خاص براي مقاصد معين باشد، به عنوان مثال دوربين هاي پردازش تصوير يا ورودي فيلتر شده صدا. همچنين ممكن است شامل نرم افزاري گردد كه درجه اي از پوشش بين كامپيوتر به عنوان سخت افزار صرف و برنامه عامل را ايجاد نمايد وبنابراين برنامه نويسي در سطح بالا تري صورت مي گيرد. عموماً، معماري ادراك از طريق حس گر ها را براي برنامه آماده ساختهع برنامه را اجرا نموده و اعمال انتخابي برنامه را به عمل كننده هاي سيستم منتقل خواهد كرد. ارتباط ما بين عامل ها، معماري هاوبرنامه ها را مي توان  به صورد ذيل جمع بندي نمود:</p>
<p>برنامه + معماري = عامل</p>
<p>اكثريت مباحث اين كتاب درباره طراحي برنامه ها عامل است.</p>
<p>قبل از آنكه به طراحي عامل بپردازيم، ابتدا بايد تصوير خوبي از ادراكات وعمليات ممكن، اهداف يا معيار كارآيي عامل كه مي خواهد به آن برسد و نوع محيطي كه در آن فعاليت مي كند،را داشته باشيم.اين مباحث عناوين گسترده اي را شامل مي گردد.شكل ٣–۲ عناصر پايه براي انتخاب انواع عامل را نشان مي دهد.</p>
<div dir="rtl">
<table dir="rtl" border="1" cellspacing="0" cellpadding="0" width="672">
<tbody>
<tr>
<td width="148" valign="top">محيط</td>
<td width="116" valign="top">اهداف</td>
<td width="146" valign="top">عمليات</td>
<td width="131" valign="top">ادراكات</td>
<td width="131" valign="top">نوع   عامل</td>
</tr>
<tr>
<td width="148" valign="top">بيمار،   بيمارستان</td>
<td width="116" valign="top">بيمارسالم،   حداقل هزينه</td>
<td width="146" valign="top">سؤالات،&nbsp;</p>
<p>آزمونها،</p>
<p>رفتارها</td>
<td width="131" valign="top">علائم،&nbsp;</p>
<p>يافته   ها، پاسخهاي بيمار</td>
<td width="131" valign="top">سيستم   تشخيص پزشكي</td>
</tr>
<tr>
<td width="148" valign="top">تصاوير  ماهواره اي</td>
<td width="116" valign="top">طبقه   بندي&nbsp;</p>
<p>صحيح</td>
<td width="146" valign="top">چاپ   يك صحنه طبقه بندي شده</td>
<td width="131" valign="top">پيكسل   هاي با شدت متفاوت،&nbsp;</p>
<p>رنگ</td>
<td width="131" valign="top">سيستم   تحليل تصويرماهواره اي</td>
</tr>
<tr>
<td width="148" valign="top">تسمه   حمل كننده اجزاء</td>
<td width="116" valign="top">قرار   دادن اجزاء در دسته&nbsp;</p>
<p>صحيح</td>
<td width="146" valign="top">برداشتن   اجزاء&nbsp;</p>
<p>و   مرتب سازي آنها به صورت دسته اي</td>
<td width="131" valign="top">پيكسلها   با شدت&nbsp;</p>
<p>متفاوت</td>
<td width="131" valign="top">روبات   جابه جا كننده اشياء</td>
</tr>
<tr>
<td width="148" valign="top">پالايشگاه</td>
<td width="116" valign="top">افزايش   خلوص،&nbsp;</p>
<p>محصول،ايمني</td>
<td width="146" valign="top">بازو   بسته كردن&nbsp;</p>
<p>سوپاپها،</p>
<p>تعديل   دما</td>
<td width="131" valign="top">دما،   فشارسنجها</td>
<td width="131" valign="top">كنترل   كننده&nbsp;</p>
<p>پالايشگاه</td>
</tr>
<tr>
<td width="148" valign="top">مجموعه     دانش آموزان</td>
<td width="116" valign="top">افزايش   نمرات&nbsp;</p>
<p>دانش   آموزان در آزمونها</td>
<td width="146" valign="top">تمرينهاي&nbsp;</p>
<p>چاپ   شده،پيشنهادات،</p>
<p>اصلاحات</td>
<td width="131" valign="top">كلمات   تايپ شده</td>
<td width="131" valign="top">آموزش   دهنده زبان انگليسي&nbsp;</p>
<p>با   ارتباط متقابل</td>
</tr>
</tbody>
</table>
</div>
<p><strong>شكل٣</strong><strong>–</strong><strong>۲:مثالهايي از انواع عامل ها و تعاريف </strong><strong>PAGE</strong><strong> هاي آنها</strong></p>
<p>شايد براي برخي از خوانندگان تعجب آور باشد كه ما درليست انولع عامل ها برخي برنامه ها را ذكر كرده ايم كه در محيط كاملاً مصنوعي كه به وسيله ورودي صفحه كليد و خروجي كاراكتربر روي صفحه نمايش تعريف مي شود،مطرح مي گردند مطمئناًبرخي خواهند گفت، «آيا اين يك محيط واقعي است؟» در حقيقت مسئله مهم تمايز محيط هاي    « واقعي » و «مصنوعي » نيست، بلكه مسئله اصلي پيچيدگي ما بين ارتباط رفتار عامل، دنباله ادراكي توليد شده بوسيله محيط، و اهدافي است كه عامل قصد حصول آن را دارد،مي باشند. برخي محيط هاي « واقعي » در عمل بسيار ساده هستند.براي مثال،روباتي كه براي بازرسي قطعاتي كه بر روي تسمه نقاله مي آيند، طراحي شده مي تواند فرضيات ساده كننده اي را در نظر گيرد: اين فرض كه روشنايي همواره وجود دارد،اين فرض كه فقط قطعات خاصي بر روي تسمه نقاله انتقال مي يابند و اينكه تنها دو عمل اعريف شده است،قبول قطعه يا علامت گذاري روي آن براي رد قطعه.</p>
<p>در مقابل برخي عامل هاي نرم افزاري (Software agents) در دامنه هاي نا محدود و غني وجود دارند (به اين نرم افزار ها ،روبات هاي نرم افزاري يا( softbots ) نيز مي گويند). روبات نرم افزاري را تصور كنيد كه براي شبيه سازي پرواز 747 طراحي شده است. شبيه ساز دراي محيطي پيچيده و بسيارجزيي است و عامل نرم افزاري بايدازميان طيف گسترده اي  از عمليات در شرايط بلاد رنگ انتخابي را انجامدهد. و يا عامل نرم افزاري را تصور كنيد كه براي مرور منابع اخبار و نمايش اقلام مورد توجه مشتريان طراحي شده است.براي انجام درست كار، بايد قابليت پردازش زبان طبيعي را داشته باشد، نيازمند يادگيري علايق  مشتريان خواهد بود و مي بايست توانايي تغيير پوياي برنامه خود را براي زماني داشته باشد كه براي مثال اتصال به يك منبع خبري از بين رود و يا يك منبع جديد خبريروي خط بيايد.</p>
<p>برخي محيط ها تمايز بين « واقعي » و« مصنوعي » را محو مي كنند.در محيط  ALIVE (Maes  et al.1994)، عامل هاي نرم افزاري داده شده ناد كه قادر به درك تصاوير دوربين ديجيتال اتاقي هستند كه انساني گرداگرد آن قدم ميزند. عامل، عامل تصوير دوربين را پردازش كرده و عملي را انتخاب مي كند.محيط همچنين تصوير دوربين را بر روي پرده نمايش بزرگي كه انسان قادربه ديدن آن باشد نمايش مي دهد تا بتواند بر روي تصوير افكت هاي گرافيك كامپيوتري را اضافه كند.چنين تصويري مي تواند سگكارتوني باشد كه برناوه ريزي شده تا بسوي انسان حركت كند (مگر اينكه فرد به جايي اشاره كند تا سگ دور شود) و يا دست خود را تكان داده و يا مشتاقانه بپرد زماني كه انسان اداهي خاصي از خود در آورد.</p>
<p><strong>محيط ها</strong></p>
<p>اعمال بوسيله عامل بر محيط انجام مي شود، كه خود ادراك عامل را مهيا مي سازد. اول، انواع متفاوت محيط ها وچگونگي اثر آنها بر طراحي عامل را تشريح نموده و سپس برنامه هاي محيطي را تشريح خواهد كرد كه مي تواند به عنوان بستر آزمون برنامه هاي عامل مورد استفاده قرار گيرد.</p>
<p><strong>خواص محيط ها</strong> : محيط ها از چند منظر مورد توجه قرار مي گيرند. تمايز هاي پايه به قرار زير ايجاد مي شوند:</p>
<p><strong>قابل دسترسي در مقابل غيرقابل دسترسي</strong></p>
<p>اگر ابزار حس كننده عاملي امكان دسترسي به وضعيت كامل محيط را بدهد، آنگاه مي گوئيم محيط براي عامل قابل دسترسي است. محيط مؤثر قابل دسترسي است. اگر حس گرها تمامي جنبه هايي را كه براي انتخاب عمل لازم است شناسايي كنند. محيط قبال دسترسي راحت است زيرا عامل نيازمند دستكاري هيچ وضعيت داخلي براي حفظ دنيا را نخواهد داشت.</p>
<p><strong>قطعي در مقابل غير قطعي</strong></p>
<p>اگروضعيت بعدي محيط به وسيله وضعيت كنوني و اعمالي كه با عامل انتخاب گردد، تعيين شود،مي گوئيم محيط قطعي است. به طور كلي، عامل نبايد درباره عدم قطعيت در محيط قطعي وقابل دسترسي نگران باشد. اگر محيط قابل دسترسي نباشد، ممكن است غير قطعي به نظر برسد. اگر محيط پيچيده باشد اين مطلب به طور اخص صحيح است،  كه نگهداري تمامي جنبه هاي غيرقابل دسترسي را دشوار مي سازد. بنابراين، بهتر است به قطعي يا غير قطعي بودن محيط از ديدگاه عامل نگاه كنيم.</p>
<p><strong>اپيزوديك در مقابل غير اپيزوديك</strong></p>
<p>در محيط اپيزوديك(episodic)، تجربه عامل به اپيزود هايي تقسيم مي گردد. هر اپيزود شامل درك و عمل عامل است. كيفيت اعمال ان تنها به خود اپيزود وابسته است، زيرا اپيزود هاي بعدي وابسته به اعمالي كه در اپيزود هاي قبلي صورت مي گيرد نيستند. محيط هاي اپيزودي بسيار ساده ترند زيرا عامل نبايد به جلو تر فكر كند.</p>
<p><strong>ايستا در مقابل پويا</strong></p>
<p>اگر محيط درحين سنجيدن عامل تغيير كند، مي گوئيم محيط براي عامل پويا است، در غير اين صورت پويا است. محيط هاي ايستا براي كار ساده هستند زيرا عامل نيازمند نگاه كردن به دنيا درحين تصميم گيري عملي نداشته و همچنين در مورد گذرزمان نيز نگران نمي باشد. اگر محيط با گذر زمان تغيير نيابد اما امتياز كارايي تغيير كند، مي گوئيم محيط نيمه پويا (semidynamic ) است.</p>
<p><strong>گسسته در مقابل پيوسته</strong></p>
<p>اگر تعداد محدود و مجزا از ادراك و اعمال بوضوح تعريف شده باشد، مي گوئيم محيط گسسته است. بازي شطرنج گسسته است، تعداد ثابتي در هر نوبت بازي وجود دارد. رانندگي تاكسي پيوسته است، سرعت و محل تاكسي و ديگر مشخصات خودرو در بازده مقادير پيوسته تغيير مي كنند. مشاهده خواهيم كرد كه انواع متفاوت محيط ها نياز مند برنامه هاي عامل تا حدودي متفاوت هستند تا قادر به عملكرد كارا باشند. بعداً روشن خواهد شد كه سخت ترين حالت، همانطور كه شما ممكن است حدس زده باشيد، غير قابل دسترسي، غير اپيزوديك، پويا و پيوسته است. همچنين خواهيم ديد كه اكثريت وضعيت هاي واقعي چنان پيچيده هستند كه اگرواقعاً قطعي باشند، براي اهداف عملي، غير قطعي در نظر گرفته مي شود.</p>
<p><strong>برنامه محيط</strong></p>
<p>شبيه ساز يك يا چند عامل را به عنوان ورودي گرفته و بگونه اي عمل مي كند كه هر عامل ادراك درست و نتيجه بازگشتي عمل خود را بدست آورد. سپس شبيه ساز محيط را بر اساس اعمال و احتمالاً ديگر فرايند هاي پوياي محيط كه به عنوان عامل ها در نظر گرفته نمي شوند(مثل باران)، بهنگام مي سازد. بنابراين محيط با وضعيت آغازين و تابع بهنگام سازي تعريف مي گردد. البته، عاملي كه در شبيه ساز كار مي كند بايد قادر به كار كردن در محيط واقعي باشد كه همان انواع ادراك را ايجاد نموده و همان انواع اعمال را قبول كند</p>
<p>به طور كلي، ملاك كارايي وابسته به كل دنباله وضعيت هاي محيط است كه در حين عمل برنامه توليد مي گردد. معمولاً، ملاك كارايي با يك تجمع ساده مثل جمع، ميانگين يا حداكثر كار مي كند. براي مثال، اگر ملاك كارايي براي عامل vaccum-cleaning  جئع كل زباله هايي باشد كه در يك شيفت كاري تميز كرده باشد، scores تنها مقدار زباله تميز شده تا كنون را نگهداري مي كند. RUN-EVAL &#8211; ENVIRONMENT ملاك كارايي براي محيط واحدي برمي گرداند كه به وسيله وضعيت آغازين واحد وتابع بهنگام سازي ويژه تعريف مي گردد. معمولاًعامل براي كار در يك دسته محيط (environment class) طراحي شده است، مجموعه جامعي ازانواع محيط ها. براي مثال، ما برنامه شطرنج را براي بازي در رقابت با رقباي متفاوت ماشيني و انساني طراحي مي كنيم. اگر آن را براي يك رقيب واحد طراحي كنيم، ممكن است قادر به استفاده از ضعف خاص آن رقيب باشيم، اما اين طرح نمي تواند برنامه خوبي براي نرم افزار بازي عمومي باشد. به بيان دقيق تر، براي اندازه گيري كارايي يك عامل، نيازمند توليد كننده محيطي هستيم كه محيط هاي خاص (با احتمالات كلي) را براي اجراي عامل انتخاب كند سپس ما علاقه مند به ميزان كارايي متوسط عامل بر روي كلاس محيط هستيم.</p>
<p>يك اشتباه رايج بين دو مفهوم متغير وضعيت درمحيط شبيه ساز و متغير در خود عامل (مراجعه شود به REFLEX-AGENT-WITH-STATE) ممكن است روي دهد. به عنوان برنامه نويسي كه هر دو محيط شبيه ساز و عامل را پياده سازي مي كند، اغوا برانگيز خواهد بود كه عانل قادر به دسترسي متغير وضعيت شبيه ساز محيط باشد. اين فريفتگي بايد به هر قيمتي سركوب شود! نسخه عامل وضعيت تنها بايد از روي ادراك آن ساخته شود، بدون آنكه دسترسي به اطلاعات كامل وضعيت داشته باشد.</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d8%b1%d9%88%d8%a8%d8%a7%d8%aa%db%8c%da%a9/'>روباتیک</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/453/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=453&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/10/453/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>مقاله ای جامع در باب رباتیک (5)</title>
		<link>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-5/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-5/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 10:04:19 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[روباتیک]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=451</guid>
		<description><![CDATA[&#160; تعریف سنسور نوري (گيرنده-فرستنده) يكي از پركاربردترين حسگرهاي مورد استفاده در ساخت رباتها حسگرهاي نوري هستند. سنسور های نوری در اصل چشم ربات به حساب میاید که خط زیر ربات را تشخیص میدهد و به میکرو کنترلر فرمان میفرستند. خروجي اين حسگر در صورتيكه مقابل سطح سفيد قرار بگيرد 5 ولت و در صورتي [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=451&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><strong>تعریف سنسور نوري (گيرنده-فرستنده)</strong></p>
<p>يكي از پركاربردترين حسگرهاي مورد استفاده در ساخت رباتها حسگرهاي نوري هستند.</p>
<p>سنسور های نوری در اصل چشم ربات به حساب میاید که خط زیر ربات را تشخیص میدهد و به میکرو کنترلر فرمان میفرستند. خروجي اين حسگر در صورتيكه مقابل سطح سفيد قرار بگيرد 5 ولت و در صورتي كه در مقابل يك سطح تيره قرار گيرد صفر ولت مي باشد. البته اين وضعيت مي تواند در مدلهاي مختلف حسگر برعكس باشد. در هر حال اين حسگر در مواجهه با دو سطح نوري مختلف ولتاژ متفاوتي توليد مي كند.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>در زير يك نمونه مدار راه انداز زوج حسگر نوري گيرنده فرستنده نشان داده شده است. مقادير مقاوتهاي نشان داده شده در مدلهاي متفاوت متغيير است و با مطالعه ديتا شيت آنها مي توان مقدار بهينه مقاومت را بدست آورد.</p>
<div>
<p>&nbsp;</p>
</div>
<p>بسته های متفاوت سنسورنوری:<strong> </strong></p>
<p>به طور کلی بسته های موجود را می توان به دو دسته تقسيم کرد؛ سنسورهايی که برای تشخيص وجود اجسام استفاده می شوند (proximity sensors) و سنسور هايی که برای تشخيص فاصله مورد استفاده قرار می گيرند .(distance sensors)</p>
<p>سنسورهايی که برای تشخيص وجود اجسام مورد استفاده قرار می گيرند، معمولا از يک فرستنده مثل IR LED و يک گيرنده مثل فوتوترانزيستور استفاده می شود. نمونه ی اين گونه سنسور RS 05 يا سنسور های نوع OPB است، که بررسی می  شود .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>شکل ١4.يک بسته ی گيرنده و فرستنده ی IR</p>
<p>&nbsp;</p>
<p>انواع سنسورهای نوری</p>
<p>1- سنسور GP2S04-6 :</p>
<p>این سنسور یک سنسور فرستنده و گیرنده در یک پک کوچک و کم حجم میباشد که دارای حساسیت بسیار خوبی است و یکی از بهترین سنسور ها برای یک ربات مسیر یاب میباشد و نور محیط تاثیر زیادی در عملکرد آن ندارد ( مادون قرمز ) که اسم این سنسور GP2S04-6 است . بهترین بازده این سنسور در فاصله 4 الی 6 میلیمتر از صطح زمین میباشد</p>
<p>در عکس زیر نمونه ای از این سنسور و نمونه ای از برد سنسور را میبینید .</p>
<p>&nbsp;</p>
<p>این سنسور دارای 4 پایه میباشد که دوتای آن به زمین وصل میشود و دوتای دیگر هم هر کدام به یک مقاومت متصل می گردد</p>
<p>&nbsp;</p>
<p>باید توجه کرد که قسمتی از سنسور که دارای یک شیار در گوشه سنسور است فرستنده می باشد.</p>
<p>2- مقاومت نوری : (photoresistor)</p>
<p>&nbsp;</p>
<p><strong> </strong><strong> </strong></p>
<p>&nbsp;</p>
<p>شکل ١.چند نوع <strong>photoresisto</strong><strong> </strong>در ابعاد مختلف؛اساس کار اين</p>
<p>قطعات بر خواص فيزيکی سطح سولفيد کادميوم استوار است.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>اساس کار مقاومت نوری بسيار ساده است؛ مقاومت اين قطعه با تغيير شدّت نور رسيده به آن تغيير می کند،امّا از آنجا که در الکترونيک داده ها به صورت ولتاژ ظاهر می شوند بايد به شکلی اين تغيير در مقاومت را به تغيير ولتاژ تبديل کنيم.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>در شکل بالا ولتاژ خروجی به سادگی از رابطه ی زير به دست می آيد:</p>
<p>Voutput = Vcc * (R2 / ( R1 + R2 ))</p>
<p>فرض کنيد در يک مدار معمولی مقاومت  برابر Ω  500  و  Vcc برابر 5 V  باشد، اکنون هنگامی که مقاومت نوری در تاريکی کامل قرار دارد مقاومت آن حدود  kΩ 2  است و ولتاژ خروجی تقريبا صفر است، و هنگامی که در مقابل نور مستقيم قرار می گيرد مقاومت آن به حدود Ω20 کاهش يافته و ولتاژ خروجی تقريبا V ۵  می شود.</p>
<p>بدين گونه موفق شديم يک حالت فيزيکی محيط را به سيگنال الکتريکی تبديل کرده و به عبارت ديگر يک گيرنده برای سنسور خود بسازيم.</p>
<p>3- سنسور CNY70</p>
<p>این سنسور به صورت یک بسته حاوی دو عدد سنسور مادون قرمزاست. یک سنسور فرستنده و سنسور دیگر گیرنده می باشد.برای اینکه روبات شما بهتر کار کند بهتر است بجای استفاده از دو سنسور مادون قرمز به صورت مجزا از این packeg سنسور استفاده کنید.در این سنسور پایه های بلندتر در هر سمت سمت آند و پایه های کوتاهتر سمت کاتد است.<br />
با استفاده از این نوع سنسور میزان خطاها تا حد قابل ملاحظه ای کاهش می یابد.</p>
<p>&nbsp;</p>
<p>4- <a href="http://esfahan.pardakht.com/esfahan/ShoppingCart/shoppingcart.cfm?ID=elecshop&amp;ref=http://www.roboeq.com&amp;ProdID=7.5">فتوسل</a><br />
یک سنسور حساس به نور مرئی و مادن قرمز که در صورت تابش نور به آن مقاومت الکتریکی آن تغییر می کند.<br />
قيمت: 1000  ريال</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>5- <a href="http://esfahan.pardakht.com/esfahan/ShoppingCart/shoppingcart.cfm?ID=elecshop&amp;ref=http://www.roboeq.com&amp;ProdID=7.1">فتوسل بزرگ</a><br />
یک فتوسل(مقاومت حساس به نور) بزرگ با یک قاب پلاستیکی جهت حفاظت فتوسل از آسیب و آلودگی در صورتی که نوری که به این</p>
<p>فتوسل تابیده می شود زیاد شود مقاومت الکتریکی آن کاهش می یابد<br />
قيمت: 4500  ريال</p>
<p>&nbsp;</p>
<p>6 &#8211; <a href="http://esfahan.pardakht.com/esfahan/ShoppingCart/shoppingcart.cfm?ID=elecshop&amp;ref=http://www.roboeq.com&amp;ProdID=7.2">یک جفت دیود فرستنده و گیرنده مادون قرمز</a><br />
یک جفت دیود فرستنده و گیرنده مادون قرمز 5 میلی متری بسیار مناسب برای تشخیص رنگ سطوح مختلف و مناسب برای ربات های</p>
<p>مسیر یاب ، لابیرنت، آتش نشان و هر رباتی که نیاز به تخشیص رنگ دارد<br />
حداقل تعداد خرید 5 جفت است.<br />
قيمت: 2000  ريال</p>
<p>7 &#8211; <a href="http://esfahan.pardakht.com/esfahan/ShoppingCart/shoppingcart.cfm?ID=elecshop&amp;ref=http://www.roboeq.com&amp;ProdID=7.6">اپتوکانتر موازی مادون قرمز</a><br />
یک فرستنده و گیرنده مادون قرمز که پک شده اند. بسیار مناسب برای استفاده در ربات های مسیر یاب و لابیرنت<br />
قيمت: 10000  ريال</p>
<p>&nbsp;</p>
<p>8 &#8211; <a href="http://esfahan.pardakht.com/esfahan/ShoppingCart/shoppingcart.cfm?ID=elecshop&amp;ref=http://www.roboeq.com&amp;ProdID=7.3">اپتوکانتر موازی مادون قرمز تایوانی</a><br />
یک فرستنده و گیرنده بسیار قوی مادون قرمز که پک شده اند.<br />
بسیار مناسب برای استفاده در ربات های مسیر یاب و لابیرنت<br />
قیمت آن کمی گران است ولی نسبت به کیفیت آن ارزش دارد<br />
در این محصول در اصل یک فتو ترانزیستور وجود دارد که حساسیت زیادی ایجاد می کند.<br />
این محصول کارخانه ویشی تایوان است<br />
قيمت: 13000  ريال</p>
<p>کاربرد سنسور های نوری :</p>
<p>1-               استفاده در کنترل از راه دور تلویزیون :<strong> </strong>سنسور های مادون قرمز (IR) زیادی در بازار موجود میباشند که در دو نوع فرستنده و گیرنده میباشد که نمونه اون رو میتونید در کنترل تلویزیون و خود تلویزیون مشاهده کنید که سنسوری که در کنترل میباشد و دارای رنگ روشنی میباشد فرستنده  و سنسوری که در جلوی تلوزیون میباشد تیره رنگ میباشد گیرنده اون به شمار میرود</p>
<p>2-                استفاده از سنسور نوری در ماوس :<strong> </strong>از سنسور های نوری برای تبدیل حرکت در ماوس به سیگنال های الکتریکی قابل فهم برای کامپیوتر استفاده می شود در يک طرف ديسک يک LED مادون قرمز و در طرف ديگر  يک سنسور مادون قرمز ، وجود دارد . سوراخ های موجود بر روی ديسک باعث شکست نور متصاعده شده توسط  LED می شوند، بدين ترتيب سنسور مادون قرمز ، پالس ها ی نور را مشاهده خواهد کرد . تعداد پالس ها ارتباط مستقيم با سرعت موس و مسافتی که موس حرکت می کند ، خواهد داشت .<br />
يک تراشه پردازنده بر روی برد . پردازنده فوق پالس ها را خوانده و پس از تبديل به باينری ، آن ها را از طريق کابل مربوطه برای کامپيوتر ارسال می دارد .</p>
<p>مدارات مرتبط با سنسور های نوری :</p>
<p>مدار زیر مربوط به سنسور نوری فرستنده گیرنده GP2S04-6 است .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>در این سنسور پایه مثبت فرستنده به مقاومت ۳۳0 اهم و پایه مثبت گیرنده به مقامت 470 کیلو اهم وصل میشن</p>
<p>خروجی این سنسور بین پایه گیرنده و مقاومت 470 کیلیو اهم گرفته میشود</p>
<p>زمانی که زیر سنسور رنگ سفید باشد مقدار خروجی حدود 2/0 –0.7   ولت میباشد و زمانی که رنگ زیر آن سیاه باشد خروجی آن حدود 3/3 – 4/3 ولت میباشد</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d8%b1%d9%88%d8%a8%d8%a7%d8%aa%db%8c%da%a9/'>روباتیک</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/451/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/451/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=451&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>مقاله ای جامع در باب رباتیک (4)</title>
		<link>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-4/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-4/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 10:01:38 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[روباتیک]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=449</guid>
		<description><![CDATA[بخش مکانیکی – موتور ها این قسمت شامل  سیستم حرکتی ربات میشه. حركت روباتها با استفاده از پا، چرخ يا ريل انجام مي شود. چرخها يا پاها را مي توان با موتورها، سولنوئيدها يا آلياژهاي حافظه دار (SMA) به حركت درآورد. که معمولا در رباتهای ابتدایی از موتور و چرخ استفاده میشه. در یک پروژه [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=449&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>بخش مکانیکی </strong><strong>–</strong><strong> موتور ها</strong></p>
<p><strong> </strong></p>
<p>این قسمت شامل  سیستم حرکتی ربات میشه. حركت روباتها با استفاده از پا، چرخ يا ريل انجام مي شود. چرخها يا پاها را مي توان با موتورها، سولنوئيدها يا آلياژهاي حافظه دار (SMA) به حركت درآورد.<br />
که معمولا در رباتهای ابتدایی از موتور و چرخ استفاده میشه.</p>
<p>در یک پروژه مکاترونیک یا روبوتیک علاوه بر قطعات لازم جهت ساخت قسمتهای ذکر شده به یک یا چند منبع تغذیه هم نیاز داریم.</p>
<p><strong>قسمتهاي مختلف يك روبات که نياز به منبع تغذيه دارد: </strong></p>
<p>قسمتهاي الكتريكي، مكانيكي شامل: موتورها و بخشهايي كه بصورت هيدروليك و پنوماتيك كار مي كنند.<br />
اگر روبات متحرك باشد بايد از باطري استفاده شود. اگر روبات ثابت باشد مي توان از برق AC استفاده كرد. چون تغذيه روباتها اكثرا َ، برق DC مي باشد بنابراين بايد برق AC را بوسيله يكسوساز و فيلتر به DC تبديل كرد.</p>
<p>یکی از مهمترین اجزای یک روبوت نیروی محرکه آن است. برای حرکت دادن سازه ای که ساخته اید نیاز به انرژی مکانیکی دارید. این انرژی معمولا توسط یک موتور الکتریکی تامین می شود. موتور الکتریکی یا اصطلاحاً آرمیچر ها در واقع مبدل های انرژی هستند. موتورهای الکتریکی می توانند انرژی الکتریکی که از ترمینالهای آن وارد می شود را به انرژی مکانیکی تبدیل کنند. انرژی مکانیکی معمولاً به صورت دوران در شافت (محور) موتور ظاهر می شود. دوران این محور (شافت) دو مشخصه اساسی دارد : یکی سرعت دوارن آن و دیگری قدرت آن. از ضرب سرعت خطی (متر بر ثانیه) در نیروی موتور می توانید توان نهایی خروجی آن را محاسبه کنید.</p>
<p>همان طور که گفته شد یک موتور الکتریکی ، <a title="الکتریسیته" href="http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D8%A7%D9%84%DA%A9%D8%AA%D8%B1%DB%8C%D8%B3%DB%8C%D8%AA%D9%87">الکتریسیته</a> را به حرکت مکانیکی تبدیل می‌کند. عمل عکس آن که تبدیل حرکت مکانیکی به الکتریسیته است، توسط ژنراتور انجام می‌شود. این دو وسیله بجز در عملکرد ، مشابه یکدیگر هستند. اکثر موتورهای الکتریکی توسط <a title="الکترومغناطیس" href="http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D8%A7%D9%84%DA%A9%D8%AA%D8%B1%D9%88%D9%85%D8%BA%D9%86%D8%A7%D8%B7%DB%8C%D8%B3">الکترومغناطیس</a> کار می‌کنند، اما موتورهایی که بر اساس پدیده‌های دیگری نظیر نیروی الکتروستاتیک و اثر پیزوالکتریک کار می‌کنند، هم وجود دارند.<br />
ایده کلی این است که وقتی که یک ماده حامل جریان الکتریسیته تحت اثر یک میدان مغناطیسی قرار می‌گیرد، نیرویی بر روی آن ماده از سوی میدان اعمال می‌شود. در یک موتور استوانه‌ای ، روتور به علت گشتاوری که ناشی از نیرویی است که به فاصله‌ای معین از محور روتور به روتور اعمال می‌شود، می‌گردد.</p>
<p>همان طور که گفته شد اغلب موتورهای الکتریکی دوارند، اما موتور خطی هم وجود دارند. در یک موتور دوار بخش متحرک (که معمولاً درون موتور است) <strong>روتور</strong> و بخش ثابت <strong>استاتور</strong> خوانده می‌شود. موتور شامل <a title="آهنربای الکتریکی" href="http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D8%A2%D9%87%D9%86%D8%B1%D8%A8%D8%A7%DB%8C+%D8%A7%D9%84%DA%A9%D8%AA%D8%B1%DB%8C%DA%A9%DB%8C">آهنرباهای الکتریکی</a> است که روی یک قاب سیم پیچی شده است. گر چه این قاب اغلب آرمیچر خوانده می‌شود، اما این واژه عموماً به غلط بکار برده می‌شود. در واقع آرمیچر آن بخش از موتور است که به آن ولتاژ ورودی اعمال می‌شود یا آن بخش از ژنراتور است که در آن ولتاژ خروجی ایجاد می‌شود. با توجه به طراحی ماشین ، هر کدام از بخشهای روتور یا استاتور می‌توانند به عنوان آرمیچر باشند. برای ساختن موتورهایی بسیار ساده کیتهایی را در مدارس استفاده می‌کنند.</p>
<p>. با توجه به اینکه گفتیم موتور یک مبدل است، اگر موتور شما ایده آل باشد توان خروجی که بدست می آورید با توان ورودی یعنی انرژی الکتریکی مصرف شده برابر خواهد بود. موتورهای الکتریکی انوع مختلفی دارند از جمله استپ موتورها ، سرور موتورها ، موتورهای دی سی DC  ، موتورهای AC  و &#8230;</p>
<p>هر یک از موتورهای نام برده شده ویژگی خاصی دارد مثلا استپب موتورها دارای دقت بالایی هستند و با توجه به نوع موتور می توان دقت گردش موتور در حد چند درجه کنترل نمود.. از ویژگی های اساسی موتورهای DC  این است که جهت حرکت و سرعت حرکت آنها به راحتی قابل کنترل است. با تغییر متوسط  ولتاژ ورودی می توانید سرعت موتور را تغییر دهید و با تغییر پلاریته ( جهت اتصال تغذیه به موتور ) جهت دوران شافت تغییر خواهد نمود.</p>
<p>توان خروجی از ضرب سرعت در قدرت و با استفاده از فرمول W=f.d بدست می آید.بسته به کارکرد ربات ، توان مصرفی ، دقت لازم و پارامترهایی از این قبیل نوع موتور ربات انتخاب می شود. بی شک یکی از مشخصه های اصلی موفقیت یک ربات انتخاب صحیح موتور محرک ربات می باشد.</p>
<p><strong><br />
</strong></p>
<p><strong> هنگام انتخاب موتور باید به</strong><strong> </strong><strong>چه چیز هایی توجه داشت</strong><strong>:</strong></p>
<p>1- دردست بودن منبع تغذیه</p>
<p>2- شرط یا عوامل راه اندازی</p>
<p>3- مشخصه‌های راه اندازی (گشتاور – سرعت) مناسب</p>
<p>4- سرعت عملکرد کار مطلوب</p>
<p>5- قابلیت کارکردن به جلو و عقب</p>
<p>6- مشخصه‌هی شتاب (وابسته به بار)</p>
<p>7- بازده مناسب در بار اسمی</p>
<p>8- توانایی تحمل اضافه بار</p>
<p>9- اطمینان الکتریکی و حرارتی</p>
<p>10- قابلیت نگهداری و عمر مفید</p>
<p>11- ظاهر مکانیکی مناسب (اندازه، وزن،‌ میزان صدا، محیط اطراف)</p>
<p>12- پیچیدگی کنترل و هزینه</p>
<p>13-ولتاژ: 1.5-4-8 V<br />
14-جريان: 50mA-2A</p>
<p>&nbsp;</p>
<p><strong> </strong></p>
<p><strong><br />
</strong></p>
<p><strong> در یک دسته بندی کلی موتورها به انواع زیر تقسیم میشوند:</strong><br />
· موتور DC<br />
· موتور AC<br />
· موتور پله‌ای (Stepper motor)</p>
<p>. موتور خطی</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>1- موتورهای </strong><strong>DC</strong><strong> </strong></p>
<p>متداولترين موتور مورد استفاده در روباتها موتور DC است چراكه داراي انواع مختلفي از نظر توان، اندازه، شكل و سرعت مي باشد.</p>
<p>جهت استفاده : تعويض جهت چرخش موتور DC با معكوس كردن جهت جريان امكان پذير است.<br />
سرعت: سرعت موتور به جريان و بار موتور بستگي دارد<br />
سرعت كمتر=توان بيشتر<br />
سرعت بيشتر=جريان يا ولتاژ بيشتر</p>
<p>&nbsp;</p>
<p><strong>2- موتورهای </strong><strong>AC</strong><strong> : </strong></p>
<p><strong> </strong>1- موتورهای AC تک فاز</p>
<p>2- موتورهای AC سه فاز</p>
<p>اين موتورها با جريان متناوب برق كار مي‌كنند لذا به آنها موتور  AC گفته مي‌شود. يخچال، جاروبرقي و آبميوه ‌گيري موتور  AC‌دارند. براي كنترل ميزان چرخش موتور از وسيله‌اي بنام شفت انكودر استفاده مي‌شود.</p>
<p>&nbsp;</p>
<p><strong>3- موتور پله</strong><strong> </strong><strong>ای</strong><strong> (Stepper Motor)</strong></p>
<p>كاربرد اصلي اين موتورها در كنترل موقعيت است. اين موتورها ساختار كنترلي ساده‌اي دارند. لذا در ساخت ربات كاربرد زيادي دارند. مطابق با تعداد پالسهايي كه به يكي از پايه‌هاي راه‌انداز موتور ارسال مي‌شود موتور به چپ يا راست مي‌چرخد. اين موتور یکی از انواع <a title="موتورهای الکتریکی" href="http://daneshnameh.roshd.ir/mavara/mavara-index.php?page=%D9%85%D9%88%D8%AA%D9%88%D8%B1+%D8%A7%D9%84%DA%A9%D8%AA%D8%B1%DB%8C%DA%A9%DB%8C+">موتورهای الکتریکی </a>است که حرکت آن کاملا دقیق و از پیش تعریف شده می باشد و با ارسال بیتهای 0,1به سیم پیچهای آن می توان آنرا حرکت داد.</p>
<p><strong>ساختار موتور پله ای</strong><strong> </strong><strong> </strong></p>
<p>این موتورعموما دارای چهار قطب میباشد که سیم پیچها بر روی این چهار قطب قرار می گیرند و شما با ارسال بیتهای 0و1به این سیم پیچها در واقع میدان مغناطیسی ایجاد می کنید که این میدان باعث حرکت روتورمغناطیسی موجود در داخل موتور پله ای می شود البته میبایست این سیم پیچها را به توالی 0 و 1 کرد و گرنه موتو ر مطابق میل شما نخواهد چرخید.</p>
<p><strong>نحوه کنترل :</strong></p>
<p><strong> </strong>1- نحوه کنترل 1 بیت</p>
<p>2- نحوه کنترل 2 بیتی</p>
<p>&nbsp;</p>
<p><strong> </strong></p>
<h2>
نحوه کنترل 1 بیتی :<br />
در حالت یک بیتی اگر اول سیم پیچ 1 را تحریک کنیم .سیم پیچ 2و3و4 بدون تحریک باید باشند جهت حرکت موتور پله ای در سمت حرکت عقربه های ساعت بعد از سیم پیچ 1 نوبت سیم پیچ 2 است که تحریک شود.، و در این حالت نیز بقیه سیم پیچها بدون تحریک هستند بعد از آن نوبت سیم پیچ 3 و سپس نوبت سیم پیچ شماره 4 است دقت کنید که در هر لحظه یک سیم پیچ تحریک شو د اگر بعد از سیم پیچ 1 سیم پیچ 4 را تحریک کنیم و سپس به سراغ3و2 برویم موتور در جهت عکس عقربه های ساعت خواهد چرخید.</h2>
<h2>نحوه کنترل 2 بیتی :<br />
در حالت دو بیتی در لحظه دو سیم پیچ بار دار می شو ند مثلا اگر اول سیم پیچ 1 و2 تحریک شوند بعد سیم پیچ 2و3 سپس 3و4 ودر نهایت 4و 1 برای حرکت موتور پله ای بایست همین ترتیب را تا موقعییکه می خوا هید موتور حرکت داشته باشد ادامه دهید حال اگر این ترتیب را عوض کنید موتور در خلاف جهت فعلی حرکت می کند</h2>
<p><strong> </strong></p>
<p><strong>موتور پله کامل و نیم پله :</strong></p>
<p>·  در حالت عادي ميزان چرخش موتور به تعداد پالسهاي اعمالي و گام موتور بستگي دارد. هر پالس يك پله موتور را مي‌چرخاند.</p>
<p>·  با تحريك دو فاز مجاور در موتور مي‌توان موتور را به اندازه نيم پله حركت داد. به اين ترتيب تعداد پله‌هاي موتور دو برابر مي‌شود و در نتيجه دقت چرخش موتور هم دوبرابر مي گردد.</p>
<p>&nbsp;</p>
<h1>راه اندازي موتور پله‌اي :</h1>
<p>·   تراشه L297 يك راه انداز  مناسب براي موتور پله‌اي است.</p>
<p>·   مدارهاي راه‌انداز متنوعي براي استفاده از موتورهاي پله‌اي وجود دارد. در اينجا از مدارمجتمع L297  و L298 براي راه‌اندازي موتور پله‌اي استفاده مي‌شود. كه طريقه بستن آن در شكل زير نشان داده شده است.</p>
<p>·   جهت کنترل موتور به قابلیت هایی همچون حرکت به عقب و جلو، کنترل سرعت، کنترل جریان و توقف آنی موتور احتیاج داریم و این نیازها را درایور مورد نظر ما یعنی L298 براحتی تامین می نمايد. L298 یک آیسی پل-H دوتایی (  DUALH-Bridge) دارای ۱۵ پایه مي‌باشد که  قادر است وظایفی چون چرخش موتور به عقب و جلو، کنترل سرعت، کنترل جریان و توقف آنی موتور را انجام دهد. كنترل موتور به اين شرح است كه پس از محاسبه ميزان چرخش موتور براي جابجايي مورد نظر با استفاده از ميكرو كنترلر به تعداد مورد نظر پالس به پايه راه انداز ارسال مي‌كنيم.</p>
<p>·   يك پايه براي تعيين جهت چرخش (ساعتگرد و پاد ساعتگرد) مورد استفاده قرار مي‌گيرد.</p>
<p>·   پايه Enableمدار راه‌انداز را فعال و غير فعال مي‌نمايد.</p>
<p>&nbsp;</p>
<div>
<p><strong>تعریف سنسور :</strong></p>
<p>سنسور‌ها قطعاتی هستند متشکل از ابزارهای لامسه‌ای الکتریکی یا نوری که در کنار سایر عناصر الکترونیکی ایفای نقش می‌کنند. وظیفه این المان‌ها کسب اطلاعاتی از موقعیت مفاصل ربات و شرایط محیطی مانند نور و گرما و هدف‌های موجود در محیط می‌باشد.</p>
</div>
<p>سنسورها اغلب برای درک اطلاعات تماسی، تنشی، مجاورتی، بینایی و صوتی به‌کار می‌روند. عملکرد سنسورها بدین‌گونه است که با توجه به تغییرات فاکتوری که نسبت به آن حساس هستند، سطوح ولتاژی ناچیزی را در پاسخ ایجاد می‌کنند، که با پردازش این سیگنال‌های الکتریکی می‌توان اطلاعات دریافتی را تفسیر کرده و برای تصمیم‌گیری‌های بعدی از آن‌ها استفاده نمود.</p>
<div>
<p>به عبارت دیگر حسگر يك وسيله الكتريكي است كه تغييرات فيزيكي يا شيميايي را اندازه‌‌گيري مي‌كند و آن را به سيگنال الكتريكي تبديل مي‌نمايد.</p>
</div>
<p>حسگرها در واقع ابزار ارتباط ربات با دنياي خارج و كسب اطلاعات محيطي و نيز داخلي مي باشند. انتخاب درست حسگرها تأثير بسيار زيادي در ميزان كارايي ربات دارد .</p>
<p>انواع حسگر ها (سنسور ها )</p>
<p>. بسته به نوع اطلاعاتي كه ربات نياز دارد از حسگرهاي مختلفي مي توان استفاده نمود:</p>
<p>–        فاصله</p>
<p>–         رنگ</p>
<p>–         نور</p>
<p>–         صدا</p>
<p>–        حركت و لرزش</p>
<p>–         دما</p>
<p>–         دود</p>
<p>–         و&#8230;</p>
<div>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
<p>مزایای استفاده از سنسور ها :</p>
<p>اما چرا از حسگرها استفاده مي كنيم ؟ همانطور كه در ابتداي اين گفتار اشاره شد حسگرها اطلاعات مورد نياز ربات را در اختيار آن قرار مي دهند و كميتهاي فيزيكي يا شيميايي موردنظر را به سيگنالهاي الكتريكي تبديل مي كنند.مزاياي سيگنالهاي الكتريكي را مي توان بصورت زير دسته بندي كرد:</p>
<p>–        پردازش راحتتر و ارزانتر</p>
<p>–         انتقال آسان</p>
<p>–         دقت بالا</p>
<p>–         سرعت بالا</p>
<p>و&#8230;</p>
<p><strong>سنسورها در ربات(1)</strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>سنسورها اغلب برای درک اطلاعات تماسی، تنشی، مجاورتی، بینایی و صوتی به‌کار می‌روند. عملکرد سنسورها بدین‌گونه است که با توجه به تغییرات فاکتوری که نسبت به آن حساس هستند، سطوح ولتاژی ناچیزی را در پاسخ ایجاد می‌کنند، که با پردازش این سیگنال‌های الکتریکی می‌توان اطلاعات دریافتی را تفسیر کرده و برای تصمیم‌گیری‌های بعدی از آن‌ها استفاده نمود.</strong></p>
<p><strong> </strong></p>
<p><strong>سنسورها را می‌توان از دیدگاه‌های مختلف به دسته‌های متفاوتی تقسیم کرد که در ذیل می‌آید:</strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>b</strong><strong>.</strong><strong> </strong><strong> </strong><strong><span style="text-decoration:underline;">سنسور بازخورد:</span></strong><strong> این سنسور اطلاعات وضعیت ربات، از جمله موقعیت بازوها، سرعت حرکت و شتاب آن‌ها و نیروی وارد بر درایورها را دریافت می‌نمایند.</strong></p>
<p><strong> </strong><strong> </strong></p>
<p><strong>c</strong><strong>.</strong><strong> </strong><strong> </strong><strong><span style="text-decoration:underline;">سنسور فعال:</span></strong><strong> این سنسورها هم گیرنده و هم فرستنده دارند و نحوه کار آن‌ها بدین ترتیب است که سیگنالی توسط سنسور ارسال و سپس دریافت می‌شود. </strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>d</strong><strong>.</strong><strong> </strong><strong> </strong><strong><span style="text-decoration:underline;">سنسور غیرفعال:</span></strong><strong> این سنسورها فقط گیرنده دارند و سیگنال ارسال شده از سوی منبعی خارجی را آشکار می‌کنند، به‌ ‌همین دلیل ارزان‌تر، ساده‌تر و دارای کارایی کمتر هستند. </strong><strong> </strong></p>
<p><strong>سنسورها از لحاظ فاصله‌ای که با هدف مورد نظر باید داشته باشند به سه قسمت تقسیم می‌شوند: </strong></p>
<p><strong><span style="text-decoration:underline;">سنسورها از لحاظ فاصله‌ای</span></strong></p>
<p><strong> </strong><strong> </strong><strong><span style="text-decoration:underline;">سنسور تماسی</span></strong><strong>: این نوع سنسورها در اتصالات مختلف محرک‌ها مخصوصا در عوامل نهایی یافت می‌شوند و به دو بخش قابل تفکیک‌اند. </strong></p>
<p><strong>سنسورهای تشخیص تماس</strong></p>
<p><strong>سنسورهای نیرو-فشار</strong></p>
<p><strong> </strong></p>
<p><strong> </strong><strong> </strong><strong><span style="text-decoration:underline;">سنسورهای مجاورتی</span></strong><strong>: این گروه مشابه سنسورهای تماسی هستند، اما در این مورد برای حس کردن لازم نیست حتما با شی در تماس باشد. عموما این سنسورها از نظر ساخت از نوع پیشین دشوارترند ولی سرعت و دقت بالاتری را در اختیار سیستم قرار می‌دهند. </strong><strong> </strong></p>
<p><strong>دو روش عمده در استفاده از سنسورها وجود دارد:</strong></p>
<p><strong><span style="text-decoration:underline;">حس کردن استاتیک:</span></strong><strong> در این روش محرک‌ها ثابت‌اند و حرکت‌هایی که صورت می‌گیرد بدون مراجعه لحظه‌ای به سنسورها صورت می‌گیرد.به عنوان مثال در این روش ابتدا موقعیت شی تشخیص داده می‌شود و سپس حرکت به سوی آن نقطه صورت می‌گیرد. </strong></p>
<p><strong><span style="text-decoration:underline;">حس کردن حلقه بسته:</span></strong><strong> در این روش بازوهای ربات در طول حرکت با توجه به اطلاعات سنسورها کنترل می‌شوند. اغلب سنسورها در سیستم‌های بینا این‌گونه‌اند. </strong><strong> </strong></p>
<p><strong> </strong><strong> </strong></p>
<p><strong>لحاظ کاربردی با نمونه‌هایی از انواع سنسورها در ربات آشنا می‌شویم: </strong><strong> </strong></p>
<p><strong> </strong><strong> </strong></p>
<p><strong>a</strong><strong>.</strong><strong> </strong><strong> </strong><strong><span style="text-decoration:underline;">سنسورهای بدنه (</span></strong><strong><span style="text-decoration:underline;">Body Sensors</span></strong><strong><span style="text-decoration:underline;">)</span></strong><strong> : </strong><strong>این سنسورها اطلاعاتی را درباره موقعیت و مکانی که ربات در آن قرار داردفراهم می‌کنند. این اطلاعات نیز به کمک تغییر وضعیت‌هایی که در سوییچ‌ها حاصل می‌شود، به دست می‌آیند. با دریافت و پردازش اطلاعات بدست آمده ربات می‌تواند از شیب حرکت خود و این‌که به کدام سمت در حال حرکت است آگاه شود. در نهایت هم عکس‌العملی متناسب با ورودی دریافت شده از خود بروز می‌دهد. </strong></p>
<p><strong>b</strong><strong><span style="text-decoration:underline;">.</span></strong><strong> </strong><strong><span style="text-decoration:underline;"> سنسور جهت‌یاب مغناطیسی(</span></strong><strong>Direction Magnetic Field Sensor</strong><strong>)</strong><strong>:</strong><strong> با بهره‌گیری از خاصیت مغناطیسی زمین و میدان مغناطیسی قوی موجود، قطب‌نمای الکترونیکی هم ساخته شده است که می‌تواند اطلاعاتی را درباره جهت‌های مغناطیسی فراهم سازد. این امکانات به یک ربات کمک می‌کند تا بتواند از جهت حرکت خود آگاه شده و برای تداوم حرکت خود در جهتی خاص تصمصم‌گیری کند.  این سنسورها دارای چهار خروجی می‌باشند که هرکدام مبین یکی از جهت‌ها است. البته با استفاده از یک منطق صحیح نیز می‌توان شناخت هشت جهت مغناطیسی را امکان‌پذیر ساخت. </strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>c</strong><strong>.</strong><strong> </strong><strong> </strong><strong><span style="text-decoration:underline;">سنسورهای فشار و تماس</span></strong><strong> (</strong><strong>Touch and Pressure Sensors</strong><strong>) : شبیه‌سازی حس لامسه انسان کاری دشوار به نظر می‌رسد. اما سنسورهای ساده‌ای وجود دارند که برای درک لمس و فشار مورد استفاده قرار می‌گیرند. از این سنسورها در جلوگیری از تصادفات و افتادن اتومبیل‌ها در دست‌اندازها استفاده می‌شود. این سنسورها در دست‌ها و بازوهای ربات‌ هم به منظورهای مختلفی استفاده می‌شوند.  مثلا برای متوقف کردن حرکت ربات در هنگام برخورد عامل نهایی با یک شی. همچنین این سنسورها به ربات‌ها برای اعمال نیروی کافی برای بلند کردن جسمی از روی زمین و قرار دادن آن در جایی مناسب نیز کمک می‌کند. با توجه به این توضیحات می‌توان عملکرد آن‌ها را به چهار دسته زیر تقسیم کرد: 1- رسیدن به هدف، 2- جلوگیری از برخورد، 3- تشخیص یک شی. </strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>d</strong><strong>.</strong><strong> </strong><strong> </strong><strong><span style="text-decoration:underline;">سنسورهای گرمایی</span></strong><strong> (</strong><strong>Heat Sensors</strong><strong>)</strong><strong>:</strong></p>
<p><strong> </strong><strong> یکی از انواع سنسورهای گرمایی ترمینستورها هستند. این سنسورها المان‌های مقاومتی پسیوی هستند که مقاومتشان متناسب با دمایشان تغییر می‌کند. بسته به اینکه در اثر گرما مقاومتشان افزایش یا کاهش می‌یابد، برای آن‌ها به ترتیب ضریب حرارتی مثبت یا منفی را تعریف می‌کنند. نوع دیگری از سنسورهای گرمایی ترموکوپل‌ها هستند که آن‌ها نیز در اثر تغییر دمای محیط ولتاژ کوچکی را تولید می‌کنند. در استفاده از این سنسورها معمولا یک سر ترموکوپل را به دمای مرجع وصل کرده و سر دیگر را در نقطه‌ای که باید دمایش اندازه‌گیری شود، قرار می‌دهند. </strong><strong> </strong></p>
<p><strong>e</strong><strong>.</strong><strong> </strong><strong> </strong><strong> <span style="text-decoration:underline;">سنسورهای بویایی</span> (</strong><strong>Smell Sensors</strong><strong>)</strong><strong>:</strong><strong> </strong><strong> </strong></p>
<p><strong> تا همین اواخر سنسوری که بتواند مشابه حس بویایی انسان عمل کند، وجود نداشت. آنچه که موجود بود یک‌سری سنسورهای حساس برای شناسایی گازها بود که اصولا هم برای شناسایی گازهای سمی کاربرد داشتند. ساختمان این سنسورها به این صورت است که یک المان مقاومتی پسیو که از منبع تغذیه‌ای مجزا، با ولتاژ 5+ ولت تغذیه می‌شود، در کنار یک سنسور قرار دارد که با گرم شدن این المان حساسیت لازم برای پاسخ‌گویی سنسور به محرک‌های محیطی فراهم می‌شود. برای کالیبره کردن این دستگاه ابتدا مقدار ناچیزی از هر بو یا عطر دلخواه را به سیستم اعمال کرده و پاسخ آن را ثبت می‌کنند و پس از آن این پاسخ را به عنوان مرجعی برای قیاس در استفاده‌های بعدی به کار می‌‌برند. اصولا در ساختمان این سیستم چند سنسور، به طور همزمان عمل می‌کنند و سپس پاسخ‌های دریافتی از آن‌ها به شبکه‌ عصبی ربات منتقل شده و تحلیل و پردازش لازم روی آن صورت می‌گیرد. نکته مهم درباره کار این سنسورها در این است که آن‌ها نمی‌توانند یک بو یا عطر را به طور مطلق انداره‌ بگیرند. بلکه با اندازه‌گیری اختلاف بین آن‌ها به تشخیص بو می‌پردازند.</strong><strong> </strong></p>
<p><strong>بویایی حسی است که می تواند در جلوگیری از جرائم استفاده شود. از گذشته از حس بویایی سگ ها برای یافتن اجساد ، مواد مخدر یا مواد منفجره و حتی شناسایی افراد استفاده می شده است. دانشمندان و مهندسان دارند بر روی سیستمی کار می کنند که بتواند بو را احساس کند. این تکنولوژی می تواند به جای سگ ها به کار برده شود و وظایف آن ها را انجام دهد.</strong></p>
<p><strong>بو مخلوطی از مواد شیمیایی موجود در هوا است. حیوانات و ماشین ها برای بوییدن باید از چندین سنسور متفاوت استفاده کنند. هر سنسور به دسته ی خاصی از مواد شیمیایی حساس است. با اندازه گیری نتایج سنسور ها می توان بو را تشخیص داد.</strong></p>
<p><strong> </strong><strong> </strong></p>
<p><strong>در این تصویر نشان داده شده که چگونه 20 سنسور متفاوت ، نسبت به گاز آمونیاک عکس العمل نشان داده اند.</strong><strong> </strong></p>
<p><strong> </strong><strong> </strong></p>
<p><strong>در این تصویر نیز نشان داده شده که چگونه همان 20 سنسور، نسبت به استیک اسید(جوهر سرکه) عکس العمل نشان داده اند. </strong></p>
<p><strong>با مقایسه نتایج به دست امده از سنسور ها با نتایج از قبل ثبت شده ، می توان ماده شیمیایی را تشخیص داد.</strong><strong> </strong></p>
<p><strong> یک سنسور بویایی می تواند از یک کریستال کوارتز با اتصالات الکترونیکی و یک روکش پلاستیکی خاص درست شده باشد. کریستال کوارتز به منظور ایجاد یک لرزه منظم با یک فرکانس دقیق استفاده می شود. روکش پلاستیکی می تواند مواد شیمیایی را جذب کند .</strong></p>
<p><strong> </strong></p>
<p><strong> </strong><strong> </strong></p>
<p><strong>یک سنسور بویایی</strong></p>
<p><strong> </strong><strong> </strong></p>
<p><strong>ساختمان یک </strong><strong>QCM</strong><strong> (</strong><strong>Quartz Crystal Microbalance</strong><strong>)</strong><strong> </strong></p>
<p><strong>یک کریستال بر روی فنر</strong></p>
<p><strong>کریستال می تواند بر روی یک فنر قرار گیرد . فرکانس به دست آمده از اسیلاتور بر روی فنر از فرمول زیر به دست می آید.</strong><strong> </strong></p>
<p><strong></strong><strong></strong></p>
<p><strong>K</strong><strong> = ضریب سختی فنر(</strong><strong>Nm<sup>-1</sup></strong><strong>)</strong></p>
<p><strong>m</strong><strong> = جرم (</strong><strong>kg</strong><strong>)</strong></p>
<p><strong>f</strong><strong>= فرکانس(</strong><strong>Hz</strong><strong>)</strong><strong></strong></p>
<p><strong> </strong></p>
<p><strong>f. </strong><strong><span style="text-decoration:underline;">سنسورهای موقعیت مفاصل :</span></strong><strong> </strong></p>
<p><strong>g. </strong><strong>رایج‌ترین نوع این سنسورها کدگشاها (</strong><strong>Encoders</strong><strong>) هستند که هم از قدرت بالای تبادل اطلاعات با کامپیوتر برخوردارند و هم اینکه ساده، دقیق، مورد اعتماد و نویز ناپذیرند. این دسته انکدرها را به دو دسته می‌توان تقسیم کرد: </strong><strong></strong></p>
<p><strong> </strong><strong> </strong><strong> </strong><strong>i</strong><strong>.</strong><strong> </strong><strong> </strong><strong><span style="text-decoration:underline;">انکدرهای مطلق</span></strong><strong>: در این کدگشا ها موقعیت به کد باینری یا کد خاکستری </strong><strong>BCD</strong><strong> (</strong><strong>Binary Codded Decible </strong><strong>) تبدیل می‌شود. این انکدرها به علت سنگینی و گران‌قیمت بودن و اینکه سیگنال‌های زیادی را برای ارسال اطلاعات نیاز دارند، کاربرد وسیعی ندارند. همانطور که می‌دانیم به‌کار گیری تعداد زیادی سیگنال درصد خطای کار را افزایش می‌دهد و این اصلا مطلوب نیست. پس از این انکدرها فقط در مواردی که مطلق بودن مکان‌ها برای ما خیلی مهم است و مشکلی هم از احاظ بار فابل تحمل ربات متوجه ما نباشد، استفاده می‌شود. </strong><strong></strong></p>
<p><strong>ii</strong><strong>.</strong><strong> </strong><strong><span style="text-decoration:underline;">انکدرهای افزاینده</span></strong><strong>: این کدگشا ها دارای قطار پالس و یک پالس مرجع که برای کالیبره کردن بکار می‌رود هستند، از روی شمارش قطارهای پالس نسبت به نقطه مرجع به موقعیت مورد نظر دست می‌یابند. از روی فرکانس (عرض پالس‌ها) می‌توان به سرعت چرخش و از روی محاسبه تغییرات فرکانس در واحد زمان (تغییرات عرض پالس) به شتاب حرکت دوارنی پی برد. حتی می‌توان جهت چرخش را نیز فهمید. فرض کنید سیگنال‌های </strong><strong>A</strong><strong> و </strong><strong>B</strong><strong> و </strong><strong>C</strong><strong> سه سیگنالی باشند که از کدگشا به  کنترل‌کننده ارسال می‌شود. </strong><strong>B</strong><strong> سیگنالی است که با یک چهارم پریود تاخیر نسبت به </strong><strong>A</strong><strong>. از روی اختلاف فاز بین این دو می‌توان به جهت چرخش پی برد.</strong><strong></strong></p>
<p><strong> </strong></p>
<p><strong>منبع  : </strong>http://www.aoh.blogfa.com</p>
<p><strong><span style="text-decoration:underline;">سنسورها در ربات (2): </span></strong><strong></strong></p>
<p><strong>در اتوماسیون سخت(</strong><strong>Hard Automation</strong><strong>)</strong><strong> </strong><strong>که درآن یک ماشین وظیفه مشخص را همان‌گونه که در صنعت مورد نیاز است انجام می‌دهد، نیازی به هوشمند بودن سیستم نیست. اما برای رسیدن به اتوماسیون هوشمند (</strong><strong>Intelligent Automation</strong><strong>)</strong><strong> </strong><strong>به دو جز کلیدی نیازمندیم: هوش‌مصنوعی و سیستم سنسوری. </strong><strong></strong></p>
<p><strong>به کمک این دو می‌توان به ربات‌های صنعتی با کاربردهایی در نقاشی، جوشکاری، حمل‌و‌نقل و مونتاژ رسید که قدرت انجام کارهای پیچیده، تشخیص و تفکیک را دارا هستند. </strong><strong></strong></p>
<p><strong>سنسورها اغلب برای درک اطلاعات تماسی، تنشی، مجاورتی، بینایی و صوتی به‌کار می‌روند. عملکرد سنسورها بدین‌گونه است که با توجه به تغییرات فاکتوری که نسبت به آن حساس هستند، سطوح ولتاژی ناچیزی را در پاسخ ایجاد می‌کنند، که با پردازش این سیگنال‌های الکتریکی می‌توان اطلاعات دریافتی را تفسیر کرده و برای تصمیم‌گیری‌های بعدی از آن‌ها استفاده نمود.</strong></p>
<p>&nbsp;</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d8%b1%d9%88%d8%a8%d8%a7%d8%aa%db%8c%da%a9/'>روباتیک</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/449/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=449&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>مقاله ای جامع در باب رباتیک (3)</title>
		<link>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-3/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-3/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 09:59:05 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[روباتیک]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=446</guid>
		<description><![CDATA[مکاترونیک تركيبي از علم مهندسي مكانيك و مهندسي كنترل سيستم مي‌باشد. در حقيقت توسط اين علم مي‌توان سيستمهاي مكانيكي را به صورت هوشمند درآورد. نهايت علم مكاترونيك را مي‌توان در رباتها مشاهده كرد. سيستمهاي ترمز ABS در اتومبيل، دستگاههاي CNC و كليه سيستمهاي اتوماسيون را مي‌توان از نمونه‌هاي بارز اين علم دانست.  مکاترونیک چنانکه از [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=446&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>مکاترونیک</p>
<p>تركيبي از علم مهندسي مكانيك و مهندسي كنترل سيستم مي‌باشد. در حقيقت توسط اين علم مي‌توان سيستمهاي مكانيكي را به صورت هوشمند درآورد. نهايت علم مكاترونيك را مي‌توان در رباتها مشاهده كرد. سيستمهاي ترمز ABS در اتومبيل، دستگاههاي CNC و كليه سيستمهاي اتوماسيون را مي‌توان از نمونه‌هاي بارز اين علم دانست.  مکاترونیک چنانکه از نامش بر می­آید ترکیبی از سه علم مکانیک، الکترونیک و کامپیوتر است. این علم تازه و جوان کاربردهای بسیاری در صنعت پیدا کرده و از جمله زمینه های علمی جدید و گسترده در پیش روی بشر است. اهمیت آن از آن جهت است که این علم ابزار کنترل در کلیه زمینه های صنعتی و نظامی می­باشد. چگونگی استفاده از سنسورها و کنترل اجزای مکانیکی توسط مدارهای الکترونیکی و کامپیوتر در این علم مورد بحث و بررسی قرار می گیرد.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>مکاترونیک مسلما علم جدیدی نیست . مکاترونیک شامل چهار علم مهندسی , مکانیک , الکترونیک , کامپیوتر(نرم افزار) و کنترل است. البته گاهی , کنترل را بخشی بدیهی از سه قسمت دیگر فرض میکنند. با تعریفی که ارائه شد , میتوان به راحتی مقوله هایی همانند رباتیک , اتوماسیون صنعتی , الکترومکانیک و غیرهرا در حوزه مکاترونیک جای داد.<br />
همانطور که ملاحظه میشود احاطه به این علم به معنای احاطه به چهار علم مهندسی است لذا با سالها تحقیق و مطالعه نیز به سختی میتوان ادعای احاطه به این علم را داشت.</p>
<p>مطالعه این علم عموما در دو راستا دنبال میشود:</p>
<p>الف: بدلیل اینکه در پروژه های بزرگ , متخصصان مکاترونیک عموما به عنوان واسطی میان چند تیم تخصصی که هریک در یکی از قسمت چهار مقوله مکاترونیک کارشناس میباشند , عمل میکنند , گاهی در بررسی این علم جنبه<br />
آشنایی فرد با چهار بخش مهندسی مکاترونیک , بدیهی فرض شده و از دید مدیریت پروژه های مکاترونیکی بحث دنبال می شود. به عنوان مثال با تقسیم بندی های شناختی , مانند طرح ماژولهای مکاترونیکی و بررسی نحوه ارتباط آنها با هم , سعی در یافتن بهترین راه حل صرف میگردد.</p>
<p>ب: در این مقوله بیشتر به فراگیری قسمتهای مهم علوم طرح شده پرداخته میشود و با ارائه اطلاعات اصلی و پایه , دانشجو این امکان را مییابد تا با برخورد به موارد تخصصی تر , تحقیق و مطالعه را در آن مقوله ادامه دهد.<br />
بدین ترتیب یک مهندس مکاترونیک باید با توجه به نیاز اجتماع و صنعت ,مطالعه و تحقیق را بی وقفه ادامه دهد. بعنوان مثال خیل تولیدات میکروالکترونیکی و پکیجهای میکروپروسسوری , سنسورهای گوناگون که روز به روزمتحول شده و انواع جدید تری از آنها , مانند محصولات شرکت ATMEL , به بازار ارائه میشود, امکان فراگیری آکادمیک را محدود نموده است و فراگیری طرز کار و طراحی با آنها نیاز به تحقیق فردی و مستمر فرد دارد.</p>
<p>تعاريف بسياري براي مكاترونيك ارائه شده است. ايده اصلي اين علم، كاربرد تلفيقي مؤثر از مكانيك، الكترنيك و تكنولوژي كامپيوتر براي توليد محصولات يا سيستم هاي پيشرفته است. از اين رو مكاترونيك زيرمجموعه علم سايبرنتيك به شمار مي رود.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><br />
</strong></p>
<p><strong>ساختار پروژه هاي روبوتيك و مكاترونيك</strong></p>
<p>نقطه شروع ما دراين بحث اين ايده است كه روبوتها و وسايل مكاترونيكي ماشين هايي هستند كه تركيبي از الكترونيك و مكانيك را استفاده مي كنند و براي انجام وظايفي كه معمولاً توسط انسانها صورت مي گيرند، به وجود آمده اند. با استفاده از اين فرض اساسي مي توانيم وظايف اصلي را به صورت بلوكهاي مجزا در نظربگيريم . ساختار كلي اين بلوكها در شكل1-1 نشان داده شده است.</p>
<p>شكل:</p>
<p>تعداد و نحوه انتخاب بلوكهاي مورد استفاده در يك پروژه خاص به واسطه نتيجه نهايي كه مدنظر طراح بوده است، تعيين ميگردد. به عنوان مثال يك بازوي ثابت يا يك بالابر اتوماتيك نيازي به چرخ يا پا ندارد. يك ساختار شبيه سرانسان با چشم هاي الكترونيكي كه براي &#8220;ديدن&#8221; و تشخيص اشياء برنامه ريزي شده است، نيازي به داشتن بازو ندارد. بلوكهاي مشتركي كه در تمامي پروژه ها به كار مي روند. درادامه اين قسمت توضيح داده شده است.</p>
<p><strong>1.3.1 كنترل</strong></p>
<p>اين بخش درواقع &#8220;مغز&#8221; هر پروژه در يك سيستم روبوتيكي يا مكاترونيكي مي باشند. تمامي قسمت هاي الكترونيكي يك روبوت يا هر پروژه ديگري، توسط مدارات الكترونيكي كنترل مي شوند. انواع كنترلهاي اصلي موجود براي روبوتها و پروژه هاي مكاترونيكي به شرح زير مي باشند.</p>
<p>a)كنترل موقعيت<a href="#_ftn1">[1]</a>: بازوهاي داراي چنگك<a href="#_ftn2">[2]</a> يا ديگر ساختارهايي كه با گرفتن و جابجايي اشياء سروكاردارند. بايد داراي مدارات كنترل بسيار دقيق به منظور قرارگرفتن در موقعيت صحيح باشند. حركت يك سرداراي چشم توسط يك بلوك كنترل تك محور<a href="#_ftn3">[3]</a> كنترل مي شود.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>b)كنترل سينماتيك<a href="#_ftn4">[4]</a>: هر پروژه اي كه داراي قسمت هاي متحرك باشد، به اين نوع كنترل نيازمند است. سرعت هر كدام از قسمت هاي متحرك بايد توسط اين گونه مدارات به دقت تعيين و كنترل شوند. يكي از مهم ترين مدارات كنترلي در اين گروه مداري است كه سرعت موتور محرك يك روبوت را كنترل مي كند.</p>
<p>c)كنترل ديناميك<a href="#_ftn5">[5]</a>: بسياري از قسمت هاي يك روبوت يايك پروژه مكاتونيك نيرو هايي را ايجاد مي كنند كه بايد به هنگام عملكرد كنترل شوند. هنگامي كه دست روبوت يك شيء را برمي دارد، استفاده از مدارات كنترلي براي تعيين مقدار نيروي لازم براي نگهداشتن شي بدون شكستن آن ضروري است. يكي از موارد دشوار براي سازندگان پروژه ها، ساخت يك دست روبوتيك است كه بتواند يك تخم مرغ رااز سبد برداشته و آن را بدون شكستن در سبد ديگري قراردهد. چنين اهدافي كنترل ديناميك دقيقي نياز دارند.</p>
<p>d)كنترل تطبيقي<a href="#_ftn6">[6]</a>: هنگامي كه لازم است يكي از عملكردهاي روبوت يا دستگاه مكاترونيكي در حين اجراي يك فرآيند به طور مداوم تغيير يابد. بايد از كنترل تطبيقي استفاده شود. به عنوان مثال مي توان به نياز براي افزايش مداوم نيرو به هنگام فشردن يك فنر اشاره نمود. هر چه فنر فشرده تر شود، نيروي بيشتري مورد نياز مي باشد. مثال ديگري از كاربرد كنترل تطبيقي اعمال توان بيشتر به موتور به منظور ثابت نگه داشتن سرعت يك روبوت مي باشد كه اين حالت به هنگام حركت روبوت از سطح افقي به يك سطح شيبدار به هنگام جابجايي يك شيء سنگين توسط روبوت رخ مي دهد.</p>
<p>e)كنترل خارجي<a href="#_ftn7">[7]</a>: زماني كه از يك انسان به عنوان اپراتور براي صدور فرمان انجام تمامي وظايف روبوت استفاده مي شود. مدارات كنترل خارجي مورد نياز مي باشند. در اين حالت انسان به عنوان&#8221; مغز&#8221; عمل كرده و با استفاده از انواع سنسورها نظير سنسورهاي تصويري به عنوان &#8220;حواس&#8221; عملكرد روبوت را كنترل مي كند.</p>
<p>براي انتقال فرامين به يك روبوت يا دستگاه مكاترونيكي، شخص اپراتور مي تواند از انواع مختلفي از &#8220;مدارات واسطه&#8221;<a href="#_ftn8">[8]</a> استفاده نمايد. گزينه هاي اصلي براي ارسال فرامين، مداراتي هسند كه از امواج راديويي، مادون قرمز، سيم و حتي فرامين صوتي استفاده مي كنند. امروزه پروژه هاي مدرن شامل مدارات تشخيص صوت مي باشند كه قادر بعه</p>
<p>&nbsp;</p>
<p>دريافت مستقيم دستورات از اپراتور هستند. از يك كامپيوتر نيز مي توان به عنوان مدار واسطه براي ارتباط واحد كنترل به روبوت يا دستگاه مكاترونيكي استفاده نمود.</p>
<p>دراينجا، نكته مهم اين است كه بايد درجه هوشمندي روبوت توجه نماييم. مدارات كنترلي پيچيده مي توانند اين تصوير را در ناظر ايجاد نمايند كه يك روبوت &#8220;هوشمند&#8221; است. در حالي كه يك بلوك كنترلي كه توابع زيادي را به كار مي گيرد. يك بلوك هوشمند به شمار نمي رود. در حالتي كه روبوت قادر باشد براساس اطلاعات سنسورهاي خود يا براساس اطلاعاتي كه يك اپراتور از طريق بلوك خاص ورودي داده ها وارد مي كند، تصميم گيري نمايد. مي توان قابليت هوشمندبودن را به روبوت اضافه نمود.</p>
<p>1.3.2 محرك ها</p>
<p>روبوتها و ماشين هاي مكاترونيك بايد داراي امكاناتي براي سروكار داشتن با اشياء يا انجام برخي كارها در دنياي خارج باشند. در ادامه اين قسمت بسياري از انواع محركهاي كه در پروژه هاي كاربردي يافت مي شوند، ذكر شده اند.</p>
<p>حركت: روبوتها قادرند با استفاده از پا، چرخ يا ريل از يك نقطه به نقطه ديگر جابجا شوند. پاهاي روبوت را مي توان با استفاده از موتورها، سولنوئيدها يا آلياژهاي حافظه دار(SMA) حركت داد.</p>
<p>دست افزارها: روبوتها و دستگاههاي مكاترونيك داراي دست نمي باشند. آنها براي گرفتن اشيا از چنگك ها استفاده مي كنند و اين ابزارها توسط مدارات الكترونيكي كنترل مي شوند.</p>
<p>حركت اين ابزارها  مي تواند با استفاده از سولنوئيدها، موتورها با SMAها صورت گيرد. شكل 2-1 برخي از انواع اين چنگك ها را نشان مي دهد.</p>
<p>نحوه انجام كارها توسط دست را مي توان با استفاده از تجهيزاتي كه منحصراً براي انجام يك وظيفه خاص طراحي شده اند، تغيير داد. نظير اين حالت در بسياري از روبوتهاي صنعتي ديده مي شود. در بسياري از روبوتهاي صنعتي ديده مي شود. در بسياري از كاربردها، قطعات به هم پيوسته مكانيكي را مي توان به گونه اي تنظيم نمود كه با اندازه و شكل هر شيء موردنظر سازگار شوند. مثالي از اين حالت در شكل 3-1 نشان داده شده است.</p>
<p>سنسورها: روبوتها و دستگاههاي مكاترونيك با استفاده از سنسورها، آنچه را كه در دنياي واقعي رخ مي دهد، تشخيص مي دهند. سنسورها داراي اهميت فروان مي باشند، چرا كه آنها اطلاعات مربوط به موقعيت يك روبوت يا بازوي</p>
<p>روبوت، اندازه و شكل يك شيء موردنظر، وجود موانع( در مورد روبوتهاي متحرك) و بسياري اطلاعات ديگر نظير تشخيص يك شيء از روي اندازه و شكل آن، مانند آنچه در روبوتهاي هوشمند يافت مي شود، را ارسال مي كنند.</p>
<p>با اتصال يك دوربين تلويزيوني به يك مدار هوشمند مي توان اين امكان رابراي يك بازوي اتوماتيك فراهم آورد تا قادر به انتخاب قطعات داراي اندازه و شكل خاص از ميان تعداد زيادي از قطعات مختلف باشد.</p>
<p>سنسورهاي اصلي كه در پروژه هاي روبوتيك و مكاترونيك به كار مي روند، عبارتند از:</p>
<p>سنسورهاي نور: مقاومت هاي متغير با نور (LDR ها، به عنوان مثال سلول هاي CdS يا فوتورزيستورها)، فوتوديودها، فوتوسل ها و فوتوترانزيستورها)</p>
<p>سنسورهاي فشار: اسفنج هادي، سنسورهاي الكترومكانيكي، سنسورهاي نيمه هادي</p>
<p>سنسورهاي دما: NTC,PTC ، ديودها و ترانزيستورها</p>
<p>سنسورهاي تصويري: سنسورهاي CCD ، فوتوديودها يا ماتريس هاي فوتوترانزيستور.</p>
<p>سنسورهاي موقعيت: پتانسيومترها، سنسورهاي اولتراسونيك، رادار، سنسورهاي مادون قرمز(IR)</p>
<p>سنسورهاي تماسي: ميكروسوئيچ ها، پاندون ها.</p>
<p>سنسورهاي مجاورت: سنسورهاي خازني، سنسورهاي القايي يا مادون قرمز.</p>
<p>منبع تغديه: هر پروژه شامل مدارات الكترونيكي و قطعات متحرك نيازمند يك منبع تغذيه الكتريكي مي باشد. اگر پروژه مورد نظر يك روبوت متحرك باشد. درحالت ايده آل منبع تغذيه در داخل خود روبوت جاسازي مي شود. ازسلولهاي باتري مي توان براي اين منظور استفاده نمود. اندازه و نوع باتري ها به توان موردنياز روبوت، مدت زمان كاركرد روبوت بدون شارژ مجدد و وظايفي كه روبوت بايد انجام دهد، بستگي دارد.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>دو نوع از هوش مصنوعي براي كاربرد در پروژه هاي روبوتيك و مكاترونيك مناسب مي باشند:</p>
<p>هوش نرم افزاري: هوش نرم افزاري به واسطه يك كامپيوتر، ميكروپروسسور يا ميكروكنترلر كه يك نرم افزار هوشمند را اجرا مي نمايد، تامين مي شود. اتصالات سخت افزاري، داده هايي را كه پردازنده براي تصميم گيري و ارتباط با بلوك كنترلي نياز دارد، فراهم ميسازند.</p>
<p>تصميمات به شكل يك ساختار اساسي برنامه ريزي شده اند كه در برخي موارد مي توانند مطابق داده هاي ورودي تغيير يابند. در چنين حالتي، برنامه قادر به &#8220;يادگيري&#8221; از طريق تجربه مي باشد كه اين خاصيت به عنوان مشخصه به عنوان مشخصه اصلي سيستم هاي هوشمند در نظرگرفته مي شود.</p>
<p>دانشجويان،پژوهشگران و طراحان فعال در زمينه هوش مصنوعي بيشتر برنامه هايي را ترجيح مي دهند كه شبكه هاي عصبي را شبيه سازي مي كنند. ابزار مهم ديگر براي طراحي سيستم هاي هوشمند منطق فازي مي باشد.</p>
<p>با استفاده از ميكروپروسسورها و ميكرو كنترلرها مي توان هوش نرم افزاري را داخل خود روبوت يا ماشين مكاترونيك پياده سازي نمود. چيپ Basic Stamp يك روش ساده را براي اضافه نمودن درجه اي از هوشمندي به يك ماشين ارائه مي دهد: اين چيپ را مي توان به گونه اي برنامه ريزي كرد كه براساس وروردي هاي دريافتي از سنسورهاي مدار كنترل خارجي تصميم گيري نمايد.</p>
<p>&nbsp;</p>
<p>علاقه مندان مي توانند برنامه هاي بسياري كه شبكه هاي عصبي و منطق فازي را شبيه سازي مي نمايد، بيابند.بسياري از اين برنامه ها را مي توان براي اضافه نمودن خاصيت هوشمندي به كامپيوترها، روبوتهاي خودكار<a href="#_ftn9">[9]</a> و ديگر ماشين ها مورد استفاده قرار داد.</p>
<p>هوش سخت افزاري: روش ديگر براي اضافه نمودن هوشمندي به يك ماشين استفاده از مداراتي است كه قادر به يادگيري مي باشند. ايده اصلي اين روش تقليداز طريقه اي است كه موجودات زنده اطلاعات دريافتي از حواس خود را با استفاده از سيستم عصبي پردازش مي كنند</p>
<p>&nbsp;</p>
<p>بخشهای مکانیکی یک ربات ساده</p>
<p>در بعضی از مواقع ربات شما علاوه بر حرکت در یک محیط باید توانایی انجام یک فعالیت فیزیک خاص را نیز داشته باشد. به عنوان مثال وزنه ای را جابجا کند یا شئی را سوراخ کند و یا به یک جسم ضربه بزند. در این مواقع علاوه بر اینکه شما نیاز به یک سیستم حرکتی مناسب دارید، باید برای ساخت قسمت مکانیکی ربات خود وقت بیشتری صرف نمایید&#8230;.</p>
<p>وقتی یک قسمت متحرک به ربات خود اضافه می کنید ، با توجه به کاری که این قسمت انجام میدهد، ممکن است حرکت دورانی حول یک محور داشته باشد و یا حرکت آن در راستای مستقیم باشد. با توجه به نوع حرکتی که باید این بخش از ربات شما داشته باشد می توانید توسط وسایلی که در اختیار دارید سازه مناسبی برای آن تهیه کنید. مثلاً می خواهید یک بازو با حرکت دورانی بسازید ، ابتدا آن را با چوب یا آلومینیوم یا &#8230; می سازید و برای اتصال آن به ربات از لولاهای موجود در بازار استفاده می کنید. اگر قرار است بازوی شما حرکت در راستای مستقیم داشته باشد به جای لولا باید آن را توسط یک مکانیزم کشویی به ربات متصل نمایید. برای اینکه مطلب را بهتر درک نمایید ، تصاویر را به دقت مشاهده و تحلیل کنید. بیشتر این ربات ها توسط دانش آموزان ساخته شده است.</p>
<p>هنگامی که یک بازو را به ربات خود متصل می کنید می توانید توسط روشهای مختلف انرژی مکانیکی را به آن منتقل نمایید. مثلاً یک تکه نخ ماهیگیری که به دور شافت خروجی گریبکس پیچیده می شود می تواند بازی شما را حرکت دهد. همچنین سلونوئیدها وسایل مناسبی برای ایجاد حرکت در بازو و همچنین تغییر جهت چرخهای یک ربات هستند. اساس کار سلوئیدها بر پایه های نیروی مغناطیسی آهنرباهای الکتریکی بنا شده است. در مباحث بعدی در مورد طرز کار سلونوئیدها توضیحات بیشتری خواهیم داد.</p>
<p>. لازم است برای بار دیگر تذکر دهیم که ما تنها کلیاتی از کار را برای شما توضیح می دهیم چون افراد مختلف تمایل به ساخت رباتهای مختلف دارند. مابقی کار بستگي به ابتکار و وسایلی که در اختیار دارید دارد. اگر کمی وقت بگذارید و بعضی از گزینه ها را تجربه کنید قطعاً مناسبترین گزینه را خواهید یافت.</p>
<p>ما از این پس سعی می کنیم که آموزش های خود را با تصاویر بیشتر کامل نمائیم تا درک مطالب برای شما بهتر باشد.</p>
<p>اگر ربات شما دو چرخ دارد ( در هر طرف یک چرخ ) باید برای حفظ تعادل آن فکری بکنید. این کار را می توانید با نصب دو چرخ هرز گرد در جلو و عقب روبات انجام دهید. اگر چرخ کوچک در دسترس ندارید کافی است که یک مفتول را به صورت قلاب ( علامت سوال ) در آورده و در انتها و ابتدای ربات نصب کنید. این کار از کشیده شدن عقب و جلوی ربات بر روی زمین جلو گیری می کند.</p>
<p><strong>بازوهای</strong><strong> </strong><strong>مکانیکی</strong> ماهر (Manipulator) از رابط‌های صلبی تشکیل می‌شوند که به وسیلهٔ <a title="مفصل" href="http://fa.wikipedia.org/w/index.php?title=%D9%85%D9%81%D8%B5%D9%84&amp;action=edit">مفصل‌هایی</a> که حرکت نسبی رابط‌های مجاور را ممکن می‌سازند، به یکدیگر اتصال یافته‌اند. بازوهای مکانیکی توانایی انجام عملیات از پیش برنامه‌ریزی شدهٔ متنوعی را در صتایع مختلف دارند. بازوهای مکانیکی ماهر در طی سال‌های اخیر به شکل قابل ملاحظه‌ای تکمیل یافته و پیشرفت کرده‌اند. کارکردن با آن‌ها و نیز تعمیر و نگهداری‌شان آسان‌تر شده و ارتباط متناسب و بهینه‌ای میان توان٬ کنترل‌پذیری و مهارت آن‌ها ایجاد گشته‌است.</p>
<p>در انتهای زنجیره رابط‌های تشکیل دهنده بازوی مکانیکی مجری نهایی وجود دارد که بر حسب کاربردی که از ربات انتظار می‌رود می‌تواند گیره یا چنگک یا ابزارهای دیگری از جمله لوازم <a title="برشکاری" href="http://fa.wikipedia.org/w/index.php?title=%D8%A8%D8%B1%D8%B4%DA%A9%D8%A7%D8%B1%DB%8C&amp;action=edit">برشکاری</a>، <a title="جوشکاری" href="http://fa.wikipedia.org/wiki/%C3%98%C2%AC%C3%99%C2%88%C3%98%C2%B4%C3%9A%C2%A9%C3%98%C2%A7%C3%98%C2%B1%C3%9B%C2%8C">جوشکاری</a> و نظیر آن باشد. از این لحاظ بازوهای مکانیکی ماهر متنوعی وجود دارند که گونه‌های وسیعی و متفاوتی از کاربردهای صنعتی و نیز تحقیاتی را را پوشش می‌دهند. این کاربردها شامل انجام فعالیت‌های متنوع مونتاژ، برشکاری و جوشکاری در خطوط تولید تا انجام عملیات متنوع زیرآبی – نظیر نصب در <a title="ربات زیرآبی" href="http://fa.wikipedia.org/wiki/%C3%98%C2%B1%C3%98%C2%A8%C3%98%C2%A7%C3%98%C2%AA_%C3%98%C2%B2%C3%9B%C2%8C%C3%98%C2%B1%C3%98%C2%A2%C3%98%C2%A8%C3%9B%C2%8C">ربات زیرآبی</a> &#8211; مانند گرفتن و دنبال‌کردن کابل یا سیم، و یا محبوس کردن اجسام یا نمونه‌های پیچیده‌ای چون برقراریِ اتصال‌های خطوط الکتریکی یا هیدرولیکی هستند.</p>
<h2>ملاحظات طراحی و ساخت</h2>
<p>در انتخاب بازوهای مکانیکی آن چه اهمیت دارد این است که ساده‌ترین نمونهٔ ممکن که بتواند وظیفه محوله را در زمان مطلوب انجام دهد، گزینش گردد. پیچیدگی طراحی ربات در عین افزایش قابلیت‌های عملکرد می‌تواند مشکلاتی در <a title="کنترل" href="http://fa.wikipedia.org/wiki/%C3%9A%C2%A9%C3%99%C2%86%C3%98%C2%AA%C3%98%C2%B1%C3%99%C2%84">کنترل</a>، هدایت و نیز اطمینان و دقت دستگاه و نیز تعمیر و نگهداری آن ایجاد نماید. انتخاب و تکمیل مجموعه بازوهای مکانیکی ماهر امر پیچیده‌ای است و طراح ربات باید نکات فراوانی را لحاظ نماید. تعداد و انواع بازوهای مورد نیاز، محل قرارگیری، نوع کنترلر، محدودهٔ فضای عملکرد٬ حداکثر و حداقل نقطه دست‌رسی و نوع و ساختار کنترل بازوها توسط کاربر، از آن جملهٔ این موارد است.</p>
<div>
<hr size="1" />
<div>
<p><a href="#_ftnref1"><strong>[1]</strong></a> &#8211; Position  Control</p>
</div>
<div>
<p><a href="#_ftnref2"><strong>[2]</strong></a> &#8211; Grip</p>
</div>
<div>
<p><a href="#_ftnref3"><strong>[3]</strong></a> &#8211; One-axis  control  block</p>
</div>
<div>
<p><a href="#_ftnref4"><strong>[4]</strong></a> &#8211; Kinematic Control</p>
</div>
<div>
<p><a href="#_ftnref5"><strong>[5]</strong></a> &#8211; Dynamic  Control</p>
</div>
<div>
<p><a href="#_ftnref6"><strong>[6]</strong></a> &#8211; Adaptiv Control</p>
</div>
<div>
<p><a href="#_ftnref7"><strong>[7]</strong></a> -External  Control</p>
</div>
<div>
<p><a href="#_ftnref8"><strong>[8]</strong></a> &#8211; Interface</p>
</div>
<div>
<p><a href="#_ftnref9"><strong>[9]</strong></a> &#8211; Automatons</p>
</div>
</div>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d8%b1%d9%88%d8%a8%d8%a7%d8%aa%db%8c%da%a9/'>روباتیک</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/446/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=446&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>مقاله ای جامع در باب رباتیک (2)</title>
		<link>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-2/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-2/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 09:56:03 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[روباتیک]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=444</guid>
		<description><![CDATA[دسته‌بندی ربات‌ها ربات‌ها در سطوح مختلف دارای دو خاصيت &#8220;تنوع در عملکرد&#8221; و &#8220;قابليت تطبطق خودکار با محيط&#8221; (automated adapting) می‌باشند. بر اساس اين دو خاصطت دسته‌بندی ربات‌ها انجام می‌گيرد. دسته‌بندی اتحادطه ربات‌های ژاپنی(jira) به شرح زير است: 1. وسيله‌ای که توسط دست کنترل می‌شود. 2. ربات برای کارهای متوالی بدون تغيير 3. ربات برای [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=444&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>دسته‌بندی ربات‌ها</strong></p>
<p>ربات‌ها در سطوح مختلف دارای دو خاصيت &#8220;تنوع در عملکرد&#8221; و &#8220;قابليت تطبطق خودکار با محيط&#8221; (automated adapting) می‌باشند. بر اساس اين دو خاصطت دسته‌بندی ربات‌ها انجام می‌گيرد.</p>
<p>دسته‌بندی اتحادطه ربات‌های ژاپنی(jira) به شرح زير است:</p>
<p>1. وسيله‌ای که توسط دست کنترل می‌شود.<br />
2. ربات برای کارهای متوالی بدون تغيير<br />
3. ربات برای کار‌های متوالی متغير<br />
4. ربات مقلد<br />
5. ربات کنترل<br />
6. ربات باهوش</p>
<p>که در دسته‌بندی موسسه رباتيک آمريکا(RIA)، فقط ماشين‌های دسته 3 تا 6، ربات محسوب می‌شوند.</p>
<p><strong>رباتهای متحرک به دسته های زير تقسيم بندی مي شوند:</strong></p>
<p><strong>1- </strong><strong>رباتهای چرخ داربا انواع چرخ عادی</strong></p>
<p>&nbsp;</p>
<p>و يا شنی تانک و با پيکربندی های مختلف يک, دو يا چند قسمتی</p>
<p><strong>2-رباتهای پادار مثل سگ اسباب بازی</strong></p>
<p>&nbsp;</p>
<p>AIBO ساخت سونی که در شکل بالا نشان داده شد يا ربات ASIMO ساخت شرکت هوندا</p>
<p><strong>3-رباتهای پرنده </strong></p>
<p><strong>4-رباتهای چند گانه(هايبريد) که ترکيبی از رباتهای بالا يا ترکيب با جابجاگرها هستند </strong></p>
<p><strong>روبات همکار</strong></p>
<p>&nbsp;</p>
<p>روباتای همکار روباتايی هستند که با کمک هم يک کارو انجام می دهند و کارهای انها بهم مربوط است و از هم مستقل نيست. در اين مجموعه دو روبات چشم هست (چپ و راست)، و يک روبات دست (وسط). کارآنها اين است که: چشکها محيط رو می بينند و اطلاعات مربوط رو به کامپيوتر می فرستند. کامپيوتر با image processing محيط را آناليز می کند و اگر در آن جسم قرمزی ببيند، ان را پيدا مي کند. يعنی اينکه اين سيستم به اشيای قرمز رنگ حساس است ( که البته می تواند به رنگهای ديگر باشد) بعد با استفاده از روابط هندسی با توجه به زاويه ديد دوربينها مکان جسم رادر فضا پيدا مي شود و اگه در محدوده روبات دست باشد، اين روبات 3 درجه آزادی به حرکت درمي ايد و جسم رو در فضا می گيرد &#8230;&#8230;..</p>
<p><strong>نانوبات‌ها</strong></p>
<p>اگر چه در حال حاضر كارايي‌هاي انسان و روبات با هم قابل مقايسه نيستند، اما ري كورزويل در مورد آينده عقيده ديگري دارد. او كه نويسنده و متخصص رشته كامپيوتر است در يكي از نوشته‌هاي خود با صراحت اظهار اميدواري كرده است تا سال 2029 انسان با توجه به روند شناخت و ساخت هوش مصنوعي ميتواند روباتي را بسازد كه در هوش و تصميم گيري با انسان برابر باشد. كورزويل معتقد است در سالهاي 2030 انسان خواهد توانست نانوبات Nanobots يا روباتهاي بسيار كوچك را جهت افزايش شعور به مغز خود بفرستد. اين نانو روباتها به اندازه سلولهاي خون هسنتد و از طريق جريان خون در رگها به مغز انتقال خواهند يافت. كورزويل در مقابل كميته علوم كنگره آمريكا اعتراف كرده است در حال حاضر انسان از چنين تكنولوژي برخوردار است و آن را بر روي تعدادي حيوان نيز آزمايش كرده است. او در ادامه شهادت خود در كنگره آمريكا اضافه كرده است دانشمندان توانسته‌اند با انتقال 7 ننو روبات به بدن موش آزمايشگاهي ديابت او را علاج كرده و انسولين را از منفذهاي پوست خارج كنند.آخرين كتاب كورزويل &#8220;شگفتي در راه است، برتري انسان بر بيولوژي&#8221; نيز بر اساس پيش بيني‌هاي علمي او نوشته شده است. او در اين كتاب مينويسد در 25 سال آينده ننوبات‌ها در خون جاري در رگها هر نوع بيماري را با نابود كردن عوامل بيماري زا از بين برده و پس از خارج كردن آثار باقيمانده مرض همزمان به مرمت اشتباهات موجود در دي ان اي و ساختار بيولوژيكي انساني خواهد پرداخت. كورزويل در بخش اقتصادي ورود روبات به خانه‌ها اعتقاد دارد در فاصله سالهاي 2020 تا 2030 هر كس با كمك روبات و ننوتكنولوژي و توليد كننده‌هاي مولكول، در خانه خود قادر خواهد بود هر نوع محصول غير ارگانيك را تهيه كند.</p>
<p>&nbsp;</p>
<p><strong><em><br />
</em></strong></p>
<h1><em>كاربرد رباتها</em></h1>
<p><strong>ربات آدم نمای اعلام</strong><strong> </strong><strong>خطر</strong>:</p>
<p><strong>(Humannoid Danger Alarm Robot)</strong></p>
<p>&nbsp;</p>
<p>این ربات یک آدم نمای ابتکاری است که به منظور اعلام خطر در جاده ها و جایگاه های خطر برای وسایل یا افراد عبوری جهت کاهش هزینه های نیروی</p>
<p>انسانی و خطرات نهفته در این گونه مشاغل و فعالیت ها مورد استفاده قرار می گیرد.</p>
<p>دارای چشم الکترونیکی حساس به حرکت اجسام، خودروها و انسان با برد 15 متر و قابل استفاده تا مسافت 200 متر جلو تر از دستگاه ربات</p>
<p>دارای برد میکروکنترلی قابل برنامه ریزی برای انواع کاربرد ها</p>
<p>دارای تایمر زمانی قابل تنظیم که بعد از مشاهده جسم متحرک تا دو دقیقه بازوها را به حرکت وا میدارد</p>
<p>دارای یک بازوی متحرک با حرکت شبیه به دست انسان و دو درجه آزادی</p>
<p>قابل جدا کردن به دو بخش برای حمل و نقل آسان</p>
<p>قابل استفاده از برق و باطری</p>
<p>دارای فلاشر و چراغ خطر جهت کار در شب</p>
<p>درای آژیر صوتی جهت اعلام خطر</p>
<p>دارای قابلیت نصب سیستم حفاظتی</p>
<p><strong>کاربرد ها</strong><strong> </strong></p>
<p>استفاده در جاده ه،اتوبانها، بزرگراه ها، به منظور اخطاربه خودروها در هنگام نزدیک شدن به محل های در دست تعمیر یا محل هایی که کارگران مشغول به کار هستند.استفاده در خیابانها و معابری که در دست تعمیر، تغییر یا انجام فعالیت های عمرانی است</p>
<p>استفاده در جاده ها به منظور اخطار به خودروها برای کاهش سرعت یا اتخاذ آمادگی بیشتر استفاده در جاده ها، پیچ ها و&#8230;به منظور کاهش جرایم رانندگی</p>
<p>استفاده در مراکزی همانند کارگاههای سد سازی، نصب پل و ساختن مجتمع های تولیدی</p>
<p>ضریب اطمینان مناسب</p>
<p>ایمنی  فوق العاده</p>
<p>کاهش هزینه های پرسنلی</p>
<p>فرهنگ سازی</p>
<p>استفاده ازربات ها براي تقليد رفتار حيوانات:</p>
<p>ربات ها براي تقليد رفتارحيوانات و حشرات بكار گرفته مي شوند. به گزارش بخش خبر شبكه فن آوري اطلاعات ايران، از موج،محققين موفق شده اند به كمك ربات بسيار ريزي سوسك ها را كنترل كنند اين موضوع مي تواند جهت ارتباط با انواع مختلفي از حيوانات در آينده مورد استفاده قرار گيرد . انجمن تكنولوژي اروپا(FET) طراح اين برنامه است كه رباتي را مجهز به دو موتور،چرخ ،باتري هاي قابل شارژ،چندين پردازنده كامپيوتري ،يك دوربين سبك براي دريافت احساسات و بازوهائي مجهز به سنسورساخته است. وقتي اين ربات در يك جاي پر از پيچ و خم و پوشانده شده با ديوارها قرار مي گيرد ،به راحتي حركت مي كند، مي چرخد و مي ايستد و مي تواند راه خود را بدون برخورد با ديوارها و موانع پيدا كندو وقتي در كنار سوسكي قرارمي گيرد به سرعت رفتارهاي آن را تقليد مي كند. اين ربات حتي قادر است انواع مختلفي از راه هاي ارتباطي را اجرا كند و سوسك را طوري گول بزند كه آن را به عنوان حشره واقعي بپذيرد.<br />
اين گروه سوسك را به عنوان نمونه اوليه آزمايشات خود</p>
<p>بكار گرفتند چون رفتارهاي آن نسبت به ساير گونه هاي حشرات مانند مورچه هابيشترقابل درك است.<br />
اين ربات نه تنها رفتار سوسك ها تقليد مي كند بلكه در تغيير رفتار سوسك ها نيز بسيار موفق بوده به طوريكه با حركت اين ربات به سمت نور سوسك ها نيز به تبعيت از آن به سمت نور حركت مي كنند و در آن مكان تجمع مي كنند .اين موضوع نشان مي دهد كه انسان به زودي قادر خواهد بود رفتارهاي حشراتي كه به صورت</p>
<p>گروهي زندگي مي كنند راماهرانه تقليد كند</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>ربات تعقيب خط:</p>
<p>&nbsp;</p>
<p>نوعي از ربات است كه وظيفه اصلي آن تعقيب كردن مسيري به رنگ مثلا سياه در زمينه‌اي به رنگ متفاوت مشخصي مثلا سفيد است. يكي از كاربرد‌هاي عمده اين ربات، حمل‌و‌نقل وسايل و كالاهاي مختلف در كارخانجات، بيمارستان‌ها، فروشگاه‌ها، كتابخانه‌ها و &#8230; مي‌باشد. ربات تعقيب خط تا حدي قادر به انجام وظيفه كتاب‌داري كتابخانه‌ها مي‌باشد. به اين صورت كه بعد از دادن كد كتاب، ربات با دنبال كردن مسيري كه كد آن را تعيين مي‌كند، به محلي كه كتاب در آن قرار گرفته مي رود و كتاب را برداشته و به نزد ما مي‌آورد. مثال ديگر كاربرد اين نوع ربات در بيمارستان‌هاي پيشرفته است، كف بيمارستان‌هاي پيشرفته خط كشي‌هايي به رنگ‌هاي مختلف به منظور هدايت ربات‌هاي پس‌فايندر به محل‌هاي مختلف</p>
<p>مثلا رنگ قرمز به اتاق جراحي يا آبي به اتاق زايمان ، وجود دارد. بيماراني‌ كه توانايي حركت كردن و جابه‌جا شدن را ندارند و بايد از ويلچر استفاده ‌كنند، اين ويلچير نقش ربات تعقيب‌خط را دارد، و بيمار را از روي مسير مشخص به محل مطلوب مي‌برد. و خلاصه كاربردهاي فراواني دارد و اگر روزي بشود در زندگي‌مان بكار بريم، خيلي كيف دارد. الگوريتم مسير‌يابي: الگوريتم مسير‌يابي بايد طوري نوشته شود تا ربات بتواند هرگونه مسيري را، با هر اندازه پيچ و خم دنبال كند، به‌طوري كه خطاي آن مينيمم باشد. تجربه نشان مي‌دهد كه بهترين روش براي يافتن و دنبال كردن مسير، استفاده از 4 سنسور است. البته با استفاده از حداقل 2 سنسور نيز مي‌توان ربات مسيرياب ساخت، ولي قضيه دو دوتا 4 تاست! يعني با كم كردن سنسور ضريب اطمينان ربات نيز كاهش مي‌يابد. (اتفاقا اصلا اين قضيه صادق نبود، احتمالا تعبير هرچقدر پول بدي، متراژ بيشتري پيتزا‌ متري مي‌خوري مناسب‌تر باشد!) وظيفه سنسورهاي 1 و 2 تشخيص پيچ‌هاي مسير و سنسور 3 مقدار چرخش ربات به جهات مختلف را تعيين مي‌كند</p>
<p>ربات هايي که تماس را حس مي کنند :</p>
<p>&nbsp;</p>
<p>به تازگي نمونه اي جديد از يک حساسه ساخته شده که نصب آنها در ربات ها موجب مي شود تا اين مخلوقات دست بشر سطوح مختلف را در حين تماس حس کنند و بتوانند کارهاي ظريفي را که انسانها با دستشان انجام مي دهند انجام دهند.<br />
به گزارش بخش خبر شبكه فن آوري اطلاعات ايران ، از خبرگزاری سلام، Vivek Maheshwari و پروفسور Ravi Saraf, از دانشگاه نبراسکا در لينکون پس از ماهها تحقيق شبانه روزي به اين موفقيت دست يافته اند.<br />
آنان مي گويند اين حساسه ها باعث مي شود دست يک ربات در تماس با سطوح مختلف همان احساس دست انسان را داشته باشد. از ربات هاي مجهز به اين حساسه ها مي توان در جراحي هاي بسيار دقيق استفاده کرد.<br />
حساسه هاي ياد شده در تماس با سطوح مختلف مي درخشند. هنوز مشخص نيست اين ربات ها چه زماني به توليد انبوه مي رسند</p>
<p><strong>ربات آبی برای يافتن جعبه سياه هواپيما</strong><strong> </strong></p>
<p>يک ربات آبی برای پيدا کردن جعبه سياه هواپیمای بويينگ 737 فرانسه که چند روز پيش در نزديکی شرم الشيخ مصر سقوط کرده و هر 148 مسافر آن کشته شده اند به خدمت گرفته شده است. اين ربات که از راه دور قابل کنترل است و از شرکت فرنس تلکام برای اين کار اجاره شده است, روز سه شنبه برای بازيابی يکی از جعبه ها که سيگنال قوی از خود ساتع میکرد و احتمالا درعمق 800 متری دريای احمر است به آب انداخته شده است. قبلا نيروی دريايی امريکا يک جعبه سياه را از عمق 2200 متری خارج کرده اند.</p>
<p><strong>ر</strong><strong>بات پذيرش</strong></p>
<p>ربات پذيرش که البته هنوز تکميل نشده رباتيه برای پذيرش مراجعين در يک شرکت يا يک نمايشگاه. فعلا به جای سر ربات يک مونيتور گذاشته شده و يک سر انيميشنی با مراجعه کننده صحبت ميکند.</p>
<p>اين ربات ميتواند ورود مراجعه کننده ها را تشخيص بدهد، به آنها خوش آمد بگويد و اگر کاربر مي خواهد جايی را پيدا کند يا سوال ديگه ای دارد به آنها جواب بدهد. يک صفحه کليد هم گذاشتن که مراجعه کننده سوالش را تايپ کند.                  در آينده اين ربات قرار است بسته های پستی را تحويل بگيرد و رسيد بدهد به پستچی. به مراجعه</p>
<p>کننده نوشيدنی تعارف کند و يک ربات آبدارچی</p>
<p>نوشيدنی برای آنها بيارورد و حتی با استفاده از</p>
<p>سرورهای پردازش کننده صحبت به تلفن ها هم</p>
<p>جواب بدهد. دانشگاه CMU هم اکنون در حال ساخت اين ربات است.</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d8%b1%d9%88%d8%a8%d8%a7%d8%aa%db%8c%da%a9/'>روباتیک</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/444/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/444/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=444&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>مقاله ای جامع در باب رباتیک (1)</title>
		<link>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-1/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-1/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 09:52:34 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[روباتیک]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=441</guid>
		<description><![CDATA[ربات چیست؟ ربات یک ماشین هوشمند است که قادر است در شرایط خاصی که در آن قرار می گیرد، کار تعریف شده ای را انجام دهد و همچنین قابلیت تصمیم گیری در شرایط مختلف را نیز ممکن است داشته باشد. با این تعریف می توان گفت ربات ها برای کارهای مختلفی می توانند تعریف و [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=441&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>ربات چیست؟</strong><strong> </strong><br />
ربات یک ماشین هوشمند است که قادر است در شرایط خاصی که در آن قرار می گیرد، کار تعریف شده ای را انجام دهد و همچنین قابلیت تصمیم گیری در شرایط مختلف را نیز ممکن است داشته باشد. با این تعریف می توان گفت ربات ها برای کارهای مختلفی می توانند تعریف و ساخته شوند.مانند کارهایی که انجام آن برای انسان غیرممکن یا دشوار باشد.<br />
برای مثال در قسمت مونتاژ یک  کارخانه اتومبیل سازی، قسمتی هست که چرخ زاپاس ماشین را در صندوق عقب قرار می دهند، اگر یک انسان این کار را انجام دهد خیلی زود دچار ناراحتی هایی مثل کمر درد و &#8230;می شود، اما می توان از یک ربات الکترومکانیکی برای این کار استفاده کرد و یا برای جوشکاری و سایر کارهای دشوار کارخانجات هم همینطور.<br />
و یا ربات هایی که برای اکتشاف در سایر سیارات به کار میروند هم از انواع ربات هایی هستند که در جاهایی که حضور انسان غیرممکن است استفاده می شوند.</p>
<p>کلمه ربات توسط Karel Capek  نویسنده نمایشنامه R.U.R  (روبات‌های جهانی روسیه) در سال 1921 ابداع شد. ریشه این کلمه، کلمه چک اسلواکی(robotnic) به معنی کارگر می‌باشد.<br />
در نمایشنامه وی نمونه ماشین، بعد از انسان بدون دارا بودن نقاط ضعف معمولی او، بیشترین قدرت را داشت و در پایان نمایش این ماشین برای مبارزه علیه سازندگان خود استفاده شد.<br />
البته پیش از آن یونانیان مجسمه متحرکی ساخته بودند که نمونه اولیه چیزی بوده که ما امروزه ربات می‌نامیم.<br />
امروزه معمولاً کلمه ربات به معنی هر ماشین ساخت بشر که بتواند کار یا عملی که به‌طور طبیعی توسط انسان انجام می‌شود را انجام دهد، استفاده می‌شود.</p>
<p>بیشتر ربات‌ها امروزه در کارخانه‌ها برای ساخت محصولاتی مانند اتومبیل؛ الکترونیک و همچنین برای اکتشافات زیرآب یا در سیارات دیگر مورد استفاده قرار می‌گیرد.</p>
<p><strong>رُبات</strong> یا <strong>روبوت</strong> وسیله‌ای <a title="مکانیک" href="http://fa.wikipedia.org/wiki/%C3%99%C2%85%C3%9A%C2%A9%C3%98%C2%A7%C3%99%C2%86%C3%9B%C2%8C%C3%9A%C2%A9">مکانیکی</a> جهت انجام وظایف مختلف است. یک <a title="ماشین" href="http://fa.wikipedia.org/wiki/%C3%99%C2%85%C3%98%C2%A7%C3%98%C2%B4%C3%9B%C2%8C%C3%99%C2%86">ماشین</a> که می‌تواند برای عمل به دستورات مختلف <a title="برنامه‌ریزی" href="http://fa.wikipedia.org/w/index.php?title=%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D8%B1%DB%8C%D8%B2%DB%8C&amp;action=edit">برنامه‌ریزی</a> گردد و یا یک سری اعمال ویژه انجام دهد. مخصوصا آن دسته از کارها که فراتر از حد توانایی‌های طبیعی بشر باشند. این ماشینهای مکانیکی برای بهتر به انجام رساندن اعمالی از قبیل احساس کردن درک نمودن و جابجایی اشیا یا اعمال تکراری شبیه <a title="جوشکاری" href="http://fa.wikipedia.org/wiki/%C3%98%C2%AC%C3%99%C2%88%C3%98%C2%B4%C3%9A%C2%A9%C3%98%C2%A7%C3%98%C2%B1%C3%9B%C2%8C">جوشکاری</a> تولید می‌شوند.</p>
<p><strong>علم رباتیک</strong> از سه شاخه اصلی تشکیل شده است:</p>
<p>·  <strong> </strong><strong> </strong><strong>الکترونیک ( شامل مغز ربات)</strong><strong><br />
</strong> ·       <strong> </strong><strong>مکانیک (شامل بدنه فیزیکی ربات)</strong><strong><br />
</strong> ·        <strong>نرم افزار (شامل قوه تفکر و تصمیم گیری ربات)</strong><strong></p>
<p></strong>اگریک ربات را به یک انسان تشبیه کنیم، بخشهایی مربوط به ظاهر فیزیکی انسان را متخصصان مکانیک می سازند، مغز ربات را متخصصان الکترونیک توسط مدارای پیچیده الکترونیک طراحی و می سازند و کارشناسان نرم افزار قوه تفکر را به وسیله برنامه های کامپیوتری برای ربات شبیه سازی می کنند تا در موقعیتهای خاص ، فعالیت مناسب را انجام دهد.</p>
<p><strong>ربات‌ها چه کارهایی انجام می‌دهند؟</strong></p>
<p>بیشتر ربات‌ها امروزه در کارخانه‌ها برای ساخت محصولاتی مانند اتومبیل؛ الکترونیک و همچنین برای اکتشافات زیرآب یا در سیارات دیگر مورد استفاده قرار می‌گیرد.</p>
<p><strong>ربات‌ها از چه ساخته می‌شوند؟</strong></p>
<p>ربات‌ها دارای سه قسمت اصلی هستند:</p>
<ul>
<li>مغز که معمولاً یک کامپیوتر است.</li>
<li>محرک و بخش مکانیکی شامل موتور، پیستون، تسمه، چرخ‌ها، چرخ دنده‌ها و &#8230;</li>
<li>سنسور که می‌تواند از انواع بینایی، صوتی، تعیین دما، تشخیص نور، تماسی یا حرکتی باشد.</li>
</ul>
<p>با این سه قسمت، یک ربات می‌تواند با اثرپذیری  و اثرگذاری در محیط کاربردی‌تر شود.</p>
<p><strong>ربات یک ماشین الکترومکانیکی هوشمند است با خصوصیات زیر:</strong><br />
*  می توان آن را مکرراً برنامه ریزی کرد.<br />
*  چند کاره است.<br />
*  کارآمد و مناسب برای محیط است.</p>
<p><strong> </strong><strong>اجزاي يك ربات با ديدي ريزتر :</strong><br />
**  وسایل مکانیکی و الکتریکی شامل :<br />
* شاسی، موتورها، منبع تغذیه،<br />
*  حسگرها (برای شناسایی محیط):<br />
*  دوربین ها، سنسورهای sonar، سنسورهای ultrasound، …<br />
*  عملکردها (برای انجام اعمال لازم)<br />
*  بازوی ربات، چرخها، پاها، …<br />
*  قسمت تصمیم گیری (برنامه ای برای تعیین اعمال لازم):<br />
*  حرکت در یک جهت خاص، دوری از موانع، برداشتن اجسام، …<br />
*  قسمت کنترل (برای راه اندازی و بررسی حرکات روبات):<br />
*  نیروها و گشتاورهای موتورها برای سرعت مورد نظر، جهت مورد نظر، کنترل مسیر، …</p>
<p><strong>مزایای رباتها:</strong></p>
<p>1- رباتیک و اتوماسیون در بسیاری از موارد می توانند ایمنی، میزان تولید، بهره و کیفیت محصولات را افزایش دهند.<br />
2-  رباتها می توانند در موقعیت های خطرناک کار کنند و با این کار جان هزاران انسان را نجات دهند.<br />
3-  رباتها به راحتی محیط اطراف خود توجه ندارند و نیازهای انسانی برای آنها مفهومی ندارد. رباتها هیچگاه خسته نمی شوند.<br />
4-  دقت رباتها خیلی بیشتر از انسانها است آنها در حد میلی یا حتی میکرو اینچ دقت دارند.<br />
5-  رباتها می توانند در یک لحظه چند کار را با هم انجام دهند ولی انسانها در یک لحظه تنها یک کار انجام می دهند.</p>
<p><strong>معایب رباتها:</strong><br />
1-  رباتها در موقعیتهای اضطراری توانایی پاسخگویی مناسب ندارند که این مطلب می تواند بسیار خطرناک باشد.<br />
2-  رباتها هزینه بر هستند.<br />
3-  قابلیت های محدود دارند یعنی فقط کاری که برای آن ساخته شده اند را انجام می دهند.</p>
<p>برای مثال امروزه برای بررسی وضعیت داخلی رآکتورها از ربات استفاده می شود تا تشعشعات رادیواکتیو به انسانها صدمه نزند.</p>
<p><strong>مزایای رباتیک:</strong><br />
مزایا کاملاً آشکار است. معمولاً یک ربات می‌تواند کارهایی که ما انسان‌ها می‌خواهیم انجام دهیم را ارزان‌تر انجام‌ دهد. علاوه بر این ربات‌ها می‌توانند کارهای خطرناک مانند نظارت بر تأسیسات انرژی هسته‌ای یا کاوش یک آتش‌فشان را انجام دهند. ربات‌ها می‌توانند کارها را دقیقتر از انسان‌ها انجام دهند و روند پیشرفت در علم پزشکی و سایر علوم کاربردی را سرعت ‌بخشند. ربات‌ها به ویژه در امور تکراری و خسته کننده مانند ساختن صفحه مدار، ریختن چسب روی قطعات یدکی و… سودمند هستند.</p>
<p>&nbsp;</p>
<p><strong>انواع ربات ها</strong></p>
<p>رباتهای امروزی که شامل قطعات الکترونيکی و مکانيکی هستند در ابتدا به صورت بازوهای مکانيکی برای جابجايی قطعات و يا کارهای ساده و تکراری که موجب خستگی و عدم تمرکز کارگر و افت بازده میشد بوجود آمدند. اينگونه رباتها جابجاگر (manipulator) نام دارند.جابجاگرها معمولا در نقطه ثابت و در فضای کاملا کنترل شده در کارخانه نصب میشوند و به غير از وظيفه ای که به خاطر آن طراحی شده اند قادر به انجام کار ديگری نيستند. اين وظيفه ميتواند در حد بسته بندی توليدات, کنترل کيفيت و جدا کردن توليدات بی کيفيت, و يا کارهای پيچيده تری همچون جوشکاری و رنگزنی با دقت بالا باشد.</p>
<p>نوع ديگر رباتها که امروزه مورد توجه بيشتری است رباتهای متحرک هستند که مانند رباتهای جابجا کننده در محيط ثابت و شرايط کنترل شده کار نمي کنند. بلکه همانند موجودات زنده در دنيای واقعی و با شرايط واقعی زندگی میکنند و سير اتفاقاتی که ربات بايد با انها روبرو شود از قبل مشخص نيست. در اين نوع ربات هاست که تکنيک های هوش مصنوعی مي بايست در کنترلر ربات(مغز ربات) به کار گرفته شود.</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d8%b1%d9%88%d8%a8%d8%a7%d8%aa%db%8c%da%a9/'>روباتیک</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/441/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=441&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/10/%d9%85%d9%82%d8%a7%d9%84%d9%87-%d8%a7%db%8c-%d8%ac%d8%a7%d9%85%d8%b9-%d8%af%d8%b1-%d8%a8%d8%a7%d8%a8-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>آسیمو پیشرفته ترین ربات انسان نمای جهان</title>
		<link>http://ehgroup.wordpress.com/2010/12/10/%d8%a2%d8%b3%db%8c%d9%85%d9%88-%d9%be%db%8c%d8%b4%d8%b1%d9%81%d8%aa%d9%87-%d8%aa%d8%b1%db%8c%d9%86-%d8%b1%d8%a8%d8%a7%d8%aa-%d8%a7%d9%86%d8%b3%d8%a7%d9%86-%d9%86%d9%85%d8%a7%db%8c-%d8%ac%d9%87%d8%a7/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/10/%d8%a2%d8%b3%db%8c%d9%85%d9%88-%d9%be%db%8c%d8%b4%d8%b1%d9%81%d8%aa%d9%87-%d8%aa%d8%b1%db%8c%d9%86-%d8%b1%d8%a8%d8%a7%d8%aa-%d8%a7%d9%86%d8%b3%d8%a7%d9%86-%d9%86%d9%85%d8%a7%db%8c-%d8%ac%d9%87%d8%a7/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 09:28:54 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[روباتیک]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=439</guid>
		<description><![CDATA[آیا می خواهید یک ربات شام شما را بپزد ، تکالیف شما را انجام بدهد ، خانه شما را تمیز کند ،به سوپرمارکت برود؟ ربات ها قبلا کارهای زیادی را انجام داده اند که انسانها نمی خواستند انجام بدهند . یا نمی توانند انجام بدهند  یا به خوبی یک ربات نمی توانند انجام بدهند . [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=439&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>آیا می خواهید یک ربات شام شما را بپزد ، تکالیف شما را انجام بدهد ، خانه شما را تمیز کند ،به سوپرمارکت برود؟ ربات ها قبلا کارهای زیادی را انجام داده اند که انسانها نمی خواستند انجام بدهند . یا نمی توانند انجام بدهند  یا به خوبی یک ربات نمی توانند انجام بدهند . در کارخانه ها ی سراسر جهان بازوهای رباتی کار مونتاژ خودروها را انجام می دهند ، به طور دقیق شکلات ها را در جعبه اشان قرار می دهند .و انواع کارهای کسالت آور دیگر را انجام می دهند. حتی یک سری رباتها وجود دارند که در فروشگاه ها کف آنجا را جارو می کنند .</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>خیلی از ما ها در سنین رشد رباتهایی را در فیلمهای تلویزیون مشاهده کرده ایم ،مانند ربات </strong><strong>C3PO</strong><strong> در فیلم جنگ ستارگان . رباتهایی که امروزه خلق می شوند کاملا در سطح رباتهایی مانند جنگ ستارگان نیستند . اما پیشرفتهای شگفت انگیزی در تکنولوژیشان بوجود آمده است . مهندسین شرکت هوندا بیش از هفده سال است که مشغول ساخت ربات آسیمو هستند . در این مقاله ما در می یابیم که چه چیزی آسیمو را پیشرفته ترین ربات انسانما در تاریخ ما گردانیده است .</strong></p>
<p><strong>آسیمو چیست؟</strong><strong> </strong></p>
<p><strong>آسیمو، بر پایه گامی پیشرفته در توانایی نویی درحرکت بوسیله شرکت هوندا (</strong><strong>Honda</strong><strong>) توسعه داده شد . و پیشرفته ترین ربات انسان نمای در جهان است . بر اساس سایت رسمی آسیمو ، آسیمو  تنها ربات انسان نما در کل جهان است که می تواند مستقلا بدون کمک انسان راه برود و از پله ها بالا برود . این در حالیست که چندین ربات انسان نما وجود دارد که می توانند راه بروند  ولی نه مانند آسیمو که قدمهای واقعی و روان  بر می دارد.</strong></p>
<p><strong>به علاوه  توانایی آسیمو در راه رفتن شبیه ما انجام می شود ، او می تواند همچنین برخی فرمانهای گفتاری را بفهمد (فعلا فقط به زبان ژاپنی) و صورت ها را شناسایی کند .</strong></p>
<p><strong>آسیمو  دارای بازو و دست است  و کارهایی را با آن می تواند انجام بدهد مانند روشن کردن سوئیچ چراغ ،بازکردن در،حمل اشیا ، و گذاشتن کارت.</strong></p>
<p><strong>سیستم بینایی هوندا برای ربات آسیمو</strong><strong> </strong></p>
<p><strong>به جای ساختن یک ربات که یک اسباب بازی دیگر باشد ، هوندا می خواهد یک رباتی بسازد که به مردم کمک کند . یک ربات برای کمک در خانه ، کمک به سالمندان ، یا کمک به هر کس که محدود به ویلچر است است یا  در رختخواب است.آسیمو چهار فوت(2/1 متر) قد دارد  که دقیقا اندازه ارتفاع فردیست که روی مبل نشسته و به چشمان او نگاه می کند .این به آسیمو اجازه می دهد تا کارهایی را که برای آن ساخته شده انجام بدهد بدون اینکه تهدیدی برای کسی باشد .آسیمو  شبیه بچه ایست که لباس فضانوردی را پوشیده و یک ظاهر مهربانی دارد . و سایزش ترسناک نیست و به خوبی کار می کند در جهتی که شرکت هوندا هنگام ساخت آن در سر داشت.</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>آسیمو همچنین می تواند کارهایی که برای انسان خیلی خطرناک است را هم انجام دهد . شبیه رفتن به مناطق خطرناک ،خنثی کردن بمب یا آتش نشانی</strong></p>
<p><strong>آسیمو شبیه انسان حرکت می کند</strong><strong> </strong></p>
<p><strong>محققین هوندا با مطالعه روی پای حشرات و پستانداران آغاز کردند.و حرکت یک کوهنورد با پاهای مصنوعی تا فیزیولوژی و هر آن چیزی را که هنگام راه رفتن ما اتفاق می افتد بهتر درک کردند.خصوصا در مفاصل، برای مثال ،این حقیقت خیلی برای مکانیزم راه رفتن آسیمو  مهم بود که که ما وزنمان را یا اصطلاحا مرکز ثقل بدنمان  با استفاده از بدنمان و خصوصا بازوهایمان به منظور تعادل روی پاها عوض می کنیم و این حقیت که ما یک انگشتانی داریم  که به  بالانس و تعادل ما را کمک می کند . آسیمو عملا یک برآمدگی نرم در پاهایش دارد که همان نقشی را باز می کند که انگشتان ما در هنگام راه رفتن ایفا می کنند.این ماده نرم همچنین یک جاذب ضربه برای مفاصل نیز می باشد . همونطور که بافت بدن ما موقع راه رفتن چنین می کنند .</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>آسیمو داری لگن ، زانو و  مفاصل پا است . رباتها دارای مفاصلی هستند که محققین به عنوان درجه آزادی می شناسند . یک درجه آزادی اجازه حرکت به چپ و راست یا بالا و پایین را می دهد . آسیمو 26 درجه آزادی دارد که در نقاط مختلف بدنش پخش شده تا اجازه بدهد که ربات حرکت کند .  دو درجه آزادی در گردن آسیمو وجود دارد . شش درجه در هر دستش و شش درجه در هر پایش . تعداد درجات آزادی لازم برای پاهای آسیمو  را از روی مفاصل پای انسان هنگامی که در سطح صاف راه می رود یا روی پله ها اندازه گیری شده است .</strong></p>
<p><strong>آسیمو همچنین دارای یک سنسور سرعت و سنسور ژیروسکوپ در بدنش هست .آنها کارهای زیر را انجام می دهند :</strong></p>
<p><strong>1-     حس کردن موقعیت بدن آسیمو و سرعتش وقتی در حال حرکت است .</strong></p>
<p><strong>2-     تنظیم تعادل برای کامپیوتر مرکزیش</strong></p>
<p><strong>این سنسورها  شبیه گوش داخلی ما عمل می کنند ،دخالت در حفظ بالانس و جهت گیری. برای کامل کردن کار ماهیچه ها و پوست، حس کردن قدرت ماهیچه ها  ، فشار و زاویه مفاصل انجام می شود . آسیمو دارای دو سنسور  مفاصل زاویه ای است و شش سنسور نیروهای محوری .</strong></p>
<p><strong> </strong></p>
<p><strong>آسیمو شبیه یک انسان راه  می رود</strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>اگر شما درباره رباتها چیز زیادی ندانید ، شما ممکن نیست کاملا درک کنید این گام برجسته و افسانه ای را که آسیمو چنان راه می رود که ما راه می رویم .مهمترین قسمت راه رفتن آسیمو توانایی چرخیدن و دور زدن ان می باشد به جای اینکه بایستد و و دور بزند و سپس حرکت کند و دوباره بایستد و کمی دور بزند و دوباره درجهت جدید حرکت کند ،آسیمو تکیه می کند بر پایش به نرمی می چرخد شبیه انسان .آسیمو همچنان می تواند گامهایش را خودش تنظیم کند .</strong></p>
<p><strong>به منظور جلوگیری از تلو تلو خوردن ، مهندسین آسیمو باید راهی برای کار با نیروی اینرسی که هنگام راه رفتن بوجود می آید ، پیدا می کردند .برای مثال ،گرانش زمین یک نیروی ایجاد می کند که باعث سرعت گرفت شما هنگام قدم زدن می شود . این دو نیرو نیروی اینرسی کلی نامیده می شوند . همچنین نیرویی هنگامی که پاهایتان با زمین در تماس است بوجود می آید که نیروی عکس العمل سطح نامیده می شود .</strong></p>
<p><strong>این نیروها باید با همدیگر بالانس شوند  و طرز قرار گرفتن ما این کار را انجام می دهد . که این نقطه مومنتم صفر نامیده می شود (مومنتم یا اندازه حرکت) اصطلاحا </strong><strong>ZERO MOMENT POINT (zmp</strong><strong> ) برای کنترل طرز قرار گرفتن آسیمو ، مهندسین روی این سه منطقه کنترلی کار کردند.</strong></p>
<p><strong>کنترل عکس العمل سطح یعنی کف پا بچسبد به سطح .</strong></p>
<p><strong>هدف از کنترل نقطه مومنتم صفر یا </strong><strong>ZMP</strong><strong> این است که هنگامی که آسیمو نمی تواند محکم بایستد و بدنش شروع به افتاده رو به جلو می کند .این کنترل موقعیت ربات  را با حرکت دادن قسمت بالای بدنش در خلاف جهت حفظ کند .همزمان سرعتش مانند وزنه تعادلی باشد .</strong></p>
<p><strong>هنگامی که کنترل نقطه مومنتم صفر فعال است محل قرارگیری پاها لگد زدن را کنترل می کند. طوریکه طول گام ها تنظیم می شود تا رابطه ی درست میان موقعیت و سرعت جسم و طول گام ها برقرار باشد .</strong></p>
<p><strong>حرکت آسیمو، حرکتی نرم و صاف</strong><strong> </strong></p>
<p><strong>آسیمو می تواند حرکت افتادن را حس کند و نسبت به آن سریعا عکس العمل نشان دهد، اما مهندسین آسیمو  بیشتر از این انتظار داشتن . آنها می خواهند تا ربات گام های نرم و صافی داشته باشد نه مانند آنچه سایر رباتها نمی توانند انجام بدهند .یعنی چرخیدن بدون توقف.</strong></p>
<p><strong> </strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>موقعی که ما حول یک گوشه می چرخیم ، ما مرکز گرانشمان را به سمت دوران تغییر می دهیم.آسیمو از یک تکنولوژی به نام</strong><strong> کنترل حرکت پیش بینی شده </strong><strong>استفاده می کند .همچنین به نام تکنولوژی راه رفتن هوشمند هوندا هم موسوم است .برای دست یافتن به چنین چیزی، آسیمو پیش بینی می کند که چقدر باید مرکز گرانشش را به سمت دوران جا به جا کند و چه مدت این جا به جایی باید حفظ شود .زیرا این تکنولوژی در زمان واقعی کار میکند و به صورت آنی ،آسیمو این کارها را بدون توقف میان گامهایش انجام می دهد.در صورتیکه سایر رباتها توقف می کنند .</strong></p>
<p><strong>به طور اساسی ،در هر گام آسیمو ،باید اینرسی معین شود و سپس برای گام بعدی پیش بینی شود که چقدر وزن باید جا به جا شود به منظور راه رفتن و چرخیدن یکنواخت .که این کار عواملی را که در زیر می آید را تنظیم می کند</strong></p>
<p><strong>طول گام های آسیمو</strong></p>
<p><strong>موقعیت بدنش</strong></p>
<p><strong>سرعتش</strong></p>
<p><strong>جهتی که ربات به سمت آن راه می رود .</strong></p>
<p><strong>حالا درباره استعداد دیگری آسیمو صحبت می کنیم ، یعنی شناسایی تصاویر</strong></p>
<p><strong>بینایی آسیمو</strong><strong> </strong></p>
<p><strong>در رباتیک ،بینایی یعنی گرفتن عکس وتفسیر آن بر اساس الگوی برنامه ریزی شده. در محیط کارخانه ،جایی که بازوهایی رباتی خودروها را می سازند ، شما  درباره یک تراشه نیه رسانا در یک محیط کنترل شده بحث می کنید .نور همواره یکسان است ،زاویه همیشه یکسان است و چیزهای محدودی برای دیدن وجود دارند .ولی در واقعیت و محیط ساختار نیافته ،چیزهایی که باید دیده شوند و درک شوند بسیار هستند .</strong></p>
<p><strong> </strong></p>
<p><strong>یک ربات انسان نما ، که باید در یک خانه یا ساختمان یا محیط بیرونی ناوبری یا رهیابی شود ،هنگام انجام کارها باید قاد به حس کردن چیزهای زیادی باشد . او باید سایه ها را و زوایای مختلف و حرکت ها را ببیند ، و باید فهیم باشد . برای مثال ، خود را به سمت یک محیط ناشناخته حرکت دهد ، یک ربات مجبور است اشیا را در زمان آنی کشف و شناسایی کند .و مشخصات لازم را برای آنها برگزیند مانند رنگ ، شکل و لبه برای مقایسه با اشیای که در بانک اطلاعاتیش نهفته است . می تواند هزاران شی در حافظه ربات وجود داشته باشد .</strong></p>
<p><strong> </strong></p>
<p><strong>سیستم بینایی آسیمو شامل یک دوربین ویدیویی اصلی برای چشمهایش است که در سراو تعبیه شده .آسیمو از یک الگوریتم بینایی تناسبی  استفاده می کند .که به او اجازه می دهد تا ببیند ، شناسایی کند و پرهیزکند از رفتن به سمت اشیا حتی اگر جهتهایشان و نورشان مشابه انچیزی که در حافظه اش هست ،نباشند، این دوربین ها می توانند چندین شی را کشف کنند ،و صورت هایی برنامه ریزی شده را شناسایی کنند ، و حتی حرکت دستها را تفسیر کنند . برای مثال ، موقعی که شما دستتان را برای آسیمو بالا می برید و نگه می دارید ، آسیمو می ایستد .مشخصه شناسایی ظاهرها ،به آسیمو امکان می دهد تا با انسانهای</strong><strong> آشنا </strong><strong>احوالپرسی کند .</strong></p>
<p><strong>کنترل کردن آسیمو</strong><strong> </strong></p>
<p><strong>آسیمو یک ربات خودگردان یا خودمختار (</strong><strong>Autonomous</strong><strong>)نیست .او نمی تواند وارد یک اتاق شود و تصمیمات لازم را درباره هدایت خودش بگیرد .آسیمو یا باید برنامه ریزی شده باشد برای انجام کار خاصی در یک محیط خاص و یا اینکه به صورت دستی بوسیله انسان کنترل شود .</strong></p>
<p><strong>کوله پشتی آسیمو کامپیوترش راحمل میکند . که حرکات آسیمو را کنترل میکند . آسیمو به سه روش قابل کنترل است .</strong></p>
<p><strong>1-     کامپیوتر شخصی</strong></p>
<p><strong>2-     کنترل بدون سیم از راه دور ،شبیه یک دسته بازی</strong></p>
<p><strong>3-     از طریق فرمانهای صوتی</strong></p>
<p><strong>از تکنولوژی 802 </strong><strong>wireless</strong><strong> استفاده میکند و با یک لب تاب یا کامپیوتر میزی ، شما می توانید آسیمو را کنترل کنیدو به خوبی ببینید آنچه را آسیمو می بیند .آسیمو همچنین می تواند از رابط های کامپیوتری نیز استفاده کند  برای دسترسی به اینترنت و اصلاح کردن اطلاعاتش ، شبیه گزارش هواشناسی و اخبار .</strong></p>
<p><strong>دسته بدون سیم کنترلی  آسیمو ، او را به هر طرفی که شما برانید هدایت می کند .مانند یک ماشیم کنترل از راه دور .</strong></p>
<p><strong>شما می توانید او را به سمت های جلو ، عقب ، کنار و قطری  برانید و یا درجا بچرخد  یا حول گوشه ای دور بزند . این کنترل یک کنترل پیشرفته است یعنی آسیمو خودش قدمهایش را تنظیم می کند .اگر شما او را به جلو هدایت کنید و او با یک مانع یا شیبی مواجه شود ،آسیمو به طور خودکار گامهایش را تنظیم می کند برای تطبیق یافتن با عوارض زمین .</strong></p>
<p><strong>همچنین یک سری اشاره های برنامه ریزی شده وجود دارد که شما می توانید با استفاده از دکمه ها آنها را برای کنترل انتخاب کنید. شبیه بای بای کردن ، چنگ زدن و واکنش نشان دادن به چیزهای دیگر.توانایی آسیمو برای درک فرمانهای صوتی یک کنترل جدید . اضافی دیگر برای آن است. بانک اطلاعاتی آن شامل 30 فرمان صوتی متفاوت است که حرکات مشخصی را در آسیمو فعال می کنند . علاوه بر این آسیمو می تواند به شما به صورت شفاهی هم جواب بدهد . که به آسیمو اجازه می دهد تا به عنوان یک مسئول پذیرش کار کند، یا با بازدیدکنندگان احوال پرسی کند و به سوالات انها پاسخ دهد .</strong></p>
<p><strong> </strong></p>
<p><strong>قدرت آسیمو</strong><strong> </strong></p>
<p><strong>شبیه بسیاری از تکنولوژیها در زمینه رباتیک ، آسیمو بوسیله سرو موتورها قدرت یافته است . این موتورها کوچکند ولی قدرتمند هستند با یک محور دوارنی که می تواند یک عضو بدن را حرکت دهد یا یک یک زاویه خاص را پوشش دهد متسقیما بوسیله  کنترلگرش.یکی از موتورها  در زاویه مناسب حرکت داده می شود ، و وقتی حرکت تمام شد ،خودش یاد میگیرد که این حرکت را مجددا تکرار کند .برای مثال ،یک سرو ممکن است یک مفصل دست ربات را کنترل کند و در زاویه درست نگه دارد تا  اینکه دوباره نیاز به حرکتش باشد . سروها از سنسور کنترل موقعیت استفاده می کنند یا دکدرهای دیجیتالی برای اینکه مطمئنا شوند محور موتور در موقعیت درست قرار گرفته اند .آنها معمولا از یک قدرت متناسب برای یک بار مکانیکی استفاده می کنند .یعنی انرژی زیادی استفاده نمی کنند.</strong></p>
<p><strong>آسیمو دارای 26 سرو موتور در بدنش است که بازوها ،دستها ،زانوهاو پاهایش را حرکت می دهند و سایر قسمتهای متحرک را .</strong></p>
<p><strong>باطری ها  لازم</strong><strong> </strong></p>
<p><strong>آسیمو  از یک باطری قابل شارژ 40 ولت نیکلی استفاده می کند که برای 30 دقیقه در هر بار شارژ قابل استفاده است .باطریها در قسمت میانی آسیمو ذخیره شده اند .جایی که وزنش کمک میکند به تعادلش.باطریهای آسیمو چهار ساعت  برای شارژ کامل وقت می گیرند.بنابراین  وجود یک باطری دوم یا سوم  برای کارهای طولانی ضروریست.</strong></p>
<p><strong>جفت های آسیمو</strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>علاوه بر آسیمو ، برخی رباتهای پیشرفته انسان نمای دیگری نیز وجود دارند که کارهای زیادی شبیه آسیمو انجام می دهند بجز چرخش نرم و یکنواخت.تفاوت بیشتر انها در این است که سایز کوچیکی دارند و برای سرگرمی استفاده می شوند. بزرگترین رقیب های آسیمو در سطح تکنولوژی به نظز می رسد این رباتها باشند:</strong></p>
<p><strong>1- </strong><strong>SONY&#8217;s  QRIO robot</strong><strong> </strong></p>
<p><strong> 2- </strong><strong>Fujitsu&#8217;s  HOAP-1 robot</strong><strong> </strong></p>
<p><strong> 3- </strong><strong>Dr. Robot</strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>که انها کارهای دیگری نظیری کار در بیمارستان ،آسانسورها و راهروها را نیز انجام می دهند وهمچنین روی چرخ هم حرکت می کنند.</strong></p>
<p><strong> </strong></p>
<p><strong>داستان زندگی آسیمو</strong><strong> </strong></p>
<p><strong>هوندا شروع به توسعه آسیمو ،ربات کمک رسان انسان نمایش در سال 1986 کرد، مهندسین آسیمو می دانستند که ربات باید قادر باشد تا به آسانی رهیابی کند در خانه یا ساختمان .و بنابراین تکنولوژی راه رفتنش باید کامل باشد .اولین تلاش انها  به طور ساده جعبه های پا داری بود .که مکانیزم راه رفتنشان بسیار پیشرفته بود .سپس دستها وسرانجام سر اضافه شد .</strong></p>
<p><strong> </strong></p>
<p><strong>سیر زمانی آسیمو</strong><strong> </strong></p>
<p><strong>1986 قدم زدن استاتیکی</strong><strong> </strong></p>
<p><strong>اولین ربات ساخته شده توسط هوندا </strong><strong>E0</strong><strong> نام داشت . که خیلی آهسته قدم می زد. هر قدمش 20 ثانیه طول می کشید تا کامل شود .به خاطر اینکه </strong><strong>E0</strong><strong> اصطلاحا درجا قدم می زد .یا قدم زدن استاتیکی . در این نوع راه رفتن بعد از اینکه ربات یکی از پاهایش را به جلو حرکت داد منتظر می ماند تا وزنش روی این پا قرار بگیرد و سپس پای دیگر را بلند می کند و به جلو می راند . انسان اینطور قدم نمی زند ،بنابراین تحقیق ادامه یافت.</strong></p>
<p><strong>1987- راه رفتن دینامیکی</strong><strong> </strong></p>
<p><strong>حالا مهندسین توسعه داده بودند یک راهی را برای قدم زدن دینامیکی که خیلی شبیه راه رفتن انسان است . با این تکنولوژی راه رفتن ، ربات که اکنون مدل اولیه </strong><strong>E1</strong><strong> نام گرفته بود و بعدها </strong><strong>E2</strong><strong>و </strong><strong>E3</strong><strong> . روی قدم بعدیش تکیه می کرد و وزنش را جا به جا می کرد و روی پای دیگر راه می رفت .</strong></p>
<p><strong>1991 راه رفتن شبیه یک حرفه ای</strong><strong> </strong></p>
<p><strong>در مدلهای </strong><strong>E4</strong><strong>و </strong><strong>E5</strong><strong> و</strong><strong>E6</strong><strong> . مهندسین هوندا مکانیزم راه رفتن را به جایی رساندند که به آسانی می توانست قدم بزند روی یک سطح شیب دار یا از پله ها بالا رود . و حتی روی عوارض ناشناخته زمین.</strong></p>
<p><strong>زیرا راه رفتن دقیق مانند انسان نیازمند استفاده از جسم و دستها و سر هست ، مهندسین باید به سمت گام بعدی حرکت کنند .</strong></p>
<p><strong>1993- یک ربات خیلی شبیه انسان</strong><strong> </strong></p>
<p><strong>با یک بدن و دست و سر نسل جدید مدل به نام </strong><strong>P1</strong><strong> و </strong><strong>P2</strong><strong>و </strong><strong>p3</strong><strong> خیلی شبیه به انسان عرضه شد .مثلا </strong><strong>P1</strong><strong> بلندی 188 سانتی متر و وزن 175 کیلوگرم داشت .</strong><strong>P2</strong><strong> قدش  کمتر بود ولی خیلی سنگین تر بود 210 کیلوگرم . خیلی کارهای مثل گرفتن و راه رفتن روی شیب و حتی حفظ تعادل هنگامی که حلش بدهید را هم انجام می داد .سرانجام </strong><strong>p3</strong><strong> خیلی راحت تر و کمتر ترساننده ساخته شد . 157 سانتی متر قد و 130کیلوگرم وزن. و سریعتر می توانست راه برود و پردازشگرش هم سریعتر بود .</strong></p>
<p><strong>1997- آسیموی که ما می شناسیم .</strong><strong> </strong></p>
<p><strong>سیستم راه رفتنش خیلی بیشتر بهبود یافته بود ، اجازه می داد به آسیمو تا به آسانی در هر محیطی قدم بزند.مفصل لگن پیشرفته اش امکان چرخش صاف و نرم را به او می داد . چیزی که سایر رباتها مشکل دارند .</strong></p>
<p><strong>در فکر اینکه آسیمو چگونه مورد استفاده قرار گیرد . تصمیم گرفته شد تا قد آسیمو به 122 سانتی متر کاهش یابد . تا کسی ازش نترسد و به اندازه کسی باشد که روی صندلی نشسته و به چشمهایش نگاه می کند . این قد مناسب برای کار با کامپیوتر و میز هم هست . و دسترسی به سویچ چراغ و باز کردن در.آسیمو خیلی قویست اما وزنش به دلیل استفاده از آلیاژ منیزم فقط 53 کیلوگرم است .  تکنولوژی موسوم به کنترل حرکت پیش بینی شده به آسیمو این امکان را می دهد تا حرکت بعدیش را اتوماتیک پیش بینی کند و وزنش را در جهت چرخش شیفت دهد . به منظور سریع راه رفتن یا کند راه رفتن گام های بلند آسیمو  نیزدر زمان واقع قابل تنظیم هستند.</strong></p>
<p><strong> </strong></p>
<p>&nbsp;</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d8%b1%d9%88%d8%a8%d8%a7%d8%aa%db%8c%da%a9/'>روباتیک</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/439/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=439&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/10/%d8%a2%d8%b3%db%8c%d9%85%d9%88-%d9%be%db%8c%d8%b4%d8%b1%d9%81%d8%aa%d9%87-%d8%aa%d8%b1%db%8c%d9%86-%d8%b1%d8%a8%d8%a7%d8%aa-%d8%a7%d9%86%d8%b3%d8%a7%d9%86-%d9%86%d9%85%d8%a7%db%8c-%d8%ac%d9%87%d8%a7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>زبان مدلسازی یکنواخت (4)</title>
		<link>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-4/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-4/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 21:08:29 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[فناوری اطلاعات]]></category>
		<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش کامپیوتر]]></category>
		<category><![CDATA[آموزش اینترنت]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=435</guid>
		<description><![CDATA[نمودار کلاس ( Class Diagram ) : همانطور که قبلاً ذکر شده اساس روش های ( Objeaoriented ) کلاسها و اشیاء      می باشد . کلاس ها نمایشگر ساختار سیستم و ارتباطات استاتیک سیستم است . براساس یک نمودار کلاس می توان ساختار منطقی سیستم ( Logical view ) نشان داد : یک نمودار کلاس بیانگر [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=435&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>نمودار کلاس </strong><strong>( Class Diagram )</strong><strong> :</strong></p>
<p>همانطور که قبلاً ذکر شده اساس روش های ( Objeaoriented ) کلاسها و اشیاء      می باشد . کلاس ها نمایشگر ساختار سیستم و ارتباطات استاتیک سیستم است . براساس یک نمودار کلاس می توان ساختار منطقی سیستم ( Logical view ) نشان داد :</p>
<p>یک نمودار کلاس بیانگر ارتباطات استاتیک در سیستم است . بطور کلی دو نوع ارتباط استاتیک میان کلاسهای سیستم می توان تعریف کرد :</p>
<p>1. تناظر ( Assosiation ) : که بیانگر ارتباطات ساختاری دو کلاس با یکدیگر است . مثلاً یک دانشجو می تواند در تعدادی درس ثبت نام کند .</p>
<p>2. زیر نوع ( Generalization ) : که بیانگر توارث میان کلاسهای سیستم است . مثلاً کلاسهای دانشجو ، استاد و کارمند ، خواص کلاس انسان را به ارث می برند .</p>
<p>نمودار کلاس یا Class Diagram ، کلاسها ، اعمال ، صفات و روابط و محدودیتهای همان کلاس در رابطه با کلاسهای دیگر را نشان می دهد .</p>
<p>نمودار کلاس در مراحل مختلف پروژه با چشم اندازهای متفاوتی ترسیم می شود :</p>
<p>1.  چشم انداز مفهومی ( Conceftal Perspective ) : این چشم انداز در مرحله شناخت سیستم مطرح است و در این مرحله هدف از تهیه نمودار کلاس فهم و ترسیم حوزه و دامنه مسأله است . بنابراین هیچ نقشه ارتباطی میان کلاسهایی که در این مرحله تعریف می شوند با کلاسهای پیاده سازی سیستم وجود ندارد .</p>
<p>2.  چشم انداز تشخیص ( Specification Perspective ) : در این مرحله علاوه بر توجه به دامنه مسأله به نرم افزار نیز توجه می کنیم ، اما نگاه به نرم افزار چندان عمیق    نمی باشد . در این مرحله type  یا نوع کلاسها تشخیص داده می شود .</p>
<p>3. چشم انداز پیاده سازی ( Impelimentation Perspective ) : کلاسهایی که در این مرحله تعریف می شوند دقیقاً کلاسهایی هستند که در نرم افزار پیاده سازی می شوند. این دیدگاه خاص Developer ها یا توسعه دهندگان نرم افزار است .</p>
<p>کلاسهای خاص : چند کلاس خاص وجود دارد که در زیر بررسی می شود .</p>
<p>1. کلاس خدماتی ( Atility class ) : این کلاس ، کلاسی است که هیچ شیء ندارد و مجرد نیز می باشد ، یعنی در هیچ رابطه تعمیمی مورد استفاده قرار نمی گیرد . معمولاً زمانی که اعمالی وجود دارد که در کلاسهای مختلفی تکراری می باشد و       نمی توان آنها را به صورت رابطه تعمیم و به ارث بری تعریف نمود کلاسهای خدماتی تعریف می شوند که این اعمال را درون آنها قرار می دهیم . مثال : یک ماژول برای تبدیل تاریخ شمسی به میلادی .</p>
<p>2. کلاس مجرد ( Absdfast class ) : این کلاس نیز کلاسی است که هیچ شیء ندارد ، اما در رابطه تعمیم مورد استفاده قرار می گیرد . یعنی کلاسهای دیگر صفات و اعمال آن را به ارث می برند . مثلاً کلاس انسان .</p>
<p>3. کلاس منفرد ( Singleten class ) : این کلاس ، کلاسی است که همواره یک شیء دارد . معمولاً کنترل گره ها در سیستم ها در این نوع کلاسها می باشند .</p>
<p><strong>روابط :</strong></p>
<p>در نمودار کلاس علاوه بر کلاسها باید ارتباطات میان کلاسها نیز نمایش داده شود . قبلاً در رابطه با ارتباطات توضیحاتی داده شده است که اکنون به تکمیل آنها می پردازیم .</p>
<div>
<table dir="rtl" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="261" valign="top">Project</td>
</tr>
<tr>
<td width="261" valign="top">-   name : steing</p>
<p>- Description : string</p>
<p>- Startdata : Date</td>
</tr>
<tr>
<td width="261" valign="top">+   creatc : project</p>
<p>+ set start dat (Startdate : Date)</p>
<p>+ get start dete (   ) : date</p>
<p>+ destroy (    )</p>
<p>= find property : project</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>1. رابطه تناظر : همانگونه که گفته شد رابطه تناظر ارتباط ساختاری میان دو کلاس را نشان می دهد . یک رابطه تناظر می تواند دارای جهت ، نام ، چندتایی ، نقش و قابلیت پیمایش باشد . به عنوان مثال کلاس user با کلاس pasword  یک رابطه تناظر دارد .</p>
<p>؟؟</p>
<p>2. رابطه تجمع : این رابطه در متدولوژیهای قدیمی تر به عنوان رابطه کل به جزء معروف است . براساس این رابطه نشان داده می شود که کلاس کل از تجمع کلاسهای جزء پدید می آید و این رابطه در صورت از بین رفتن کلاس کل مطلقاً کلاسهای جزء از بین نمی رود و هر گونه ارتباطی بوسیله کلاسهای دیگر می تواند بدون دخالت کلاس کل با کلاسهای جزء برقرار شود .</p>
<p>؟؟</p>
<p>3. رابطه ترکیب : این رابطه حالت خاصی از تجمع است که در آن کلاسهای جزء با از بین رفتن کلاس کل از بین می رود . همچنین کلاسهای دیگر حتما باید از طریق کلاس کل با کلاس جزء ارتباط برقرار کنند .</p>
<p>؟؟</p>
<p>در روابط ترکیب و تجمع می توان بر روی رابطه چندتایی ها را مشخص نمود .</p>
<p>4. رابطه وابستگی : هرگاه دو کلاس که با هم ارتباط دارند ، ارتباطشان یک رابطه ساختاری نباشد آنگاه یک رابطه وابستگی است . مثلاً اگر کلاس B  پارامتر یکی از اعمال کلاس A باشد یک رابطه وابستگی بین آنها وجود دارد . یعنی هر متغیری در کلاس A می تواند در کلاس B تأثیرگذار باشد .</p>
<p>؟؟</p>
<p>5. رابطه تعمیم : این رابطه قبلاً مورد بررسی قرار گرفته است . در این قسمت به خواص تعریف شده روی آن می پردازیم .</p>
<p>الف ) چند وراثتی : اگر یک کلاس تخصیص ( فرزند ) بتواند خصوصیات خود را از چند کلاس تعمیم یا ( والد ) به ارث ببرد ، به این رابطه چند وراثتی گفته می شود .</p>
<p>؟؟</p>
<p>کلاس C خصوصیات خود را از کلاسهای A و B به ارث برده است .</p>
<p>ب ) جایگزینی : یکی از خصوصیات رابطه تعمیم جایگزینی است که براساس آن یک کلاس تخصیص می تواند بدون بروز هیچ اشکالی جایگزین کلاس تعمیم شود .</p>
<p><strong>نمودارهای تعامل : </strong></p>
<p>نمودار کلاس ساختار اجرای تشکیل دهنده یک سیستم و ارتباطات استاتیک تعریف شده میان آنها را نمایش می دهد . همکاری و تعامل میان این کلاسها که مبین رفتار سیستم می باشد توسط نمودارهای تعامل ( Interaotienolig ) که عبارتند از نمودارهای توالی ( Sequence ) و نمودارهای همکاری ( Colaboretion ) نمایش داده می شود . به عبارتی دیگر برای هر سناریو از یک use case می توان نمودارهای توالی و همکاری ترسیم نمود که تعامل میان کلاسها و اشیاء برای تکمیل آن سناریو را نشان می دهد . در بعضی موارد حتی می توان از نمودارهای تعامل برای کشف کلاسها و اشیاء سیستم استفاده نمود .</p>
<p><strong>نمودار توالی : </strong></p>
<p>این نمودار تعامل میان اشیاء و کلاسها را بر مبنای زمان تعریف می کنند . در این نمودار هر شیء یا کلاس را در بالای یک خط چین عمودی که به خط عمر( Life line ) معروف است نشان می دهیم . تعامل میان اشیاء از طریق ارسال پیام یا پیغام های تبادل شده میان آنها نمایش داده می شود . ( message ها ) یا پیام ها در نمودار توالی با پیکانهای جهت دار نمایش داده می شوند .</p>
<p>بر روی خط عمر می توان مستطیلی قرار داد که به آن کانون تمرکز یا                       ( Focees of conturol ) گفته می شود که بیانگر دوره زمانی است که شیء در حین انجام عملیات می باشد . این عمل می تواند مستقیماً توسط یک رویه یا از طریق چند رویه تو در تو انجام گیرد .</p>
<p><strong>Activity diagram</strong><strong> ( نمودار فعالیت ) :</strong></p>
<p>Activity diagram به منظور شرح یک Work flow یا جریان کار مورد استفاده قرار می گیرد و در مراحل مختلف از پروژه مورد استفاده دارد . یک نمودار فعالیت در شروع پروژه و یا بحث Bussiues modeling به منظور تشریح سناریوهای مختلف جریان کار در یک  use case می باشد . در مرحله طراحی از نمودار فعالیت می توان برای تشریح چگونگی عملیات یک کلاس در واقع از یک operation استفاده نمود . نمودار فعالیت از حالات ، فعالیتها و انتقال از یک حالت به یک حالت دیگر ، یا از یک فعالیت به فعالیت دیگر تشکیل شده است .</p>
<p><strong>موارد استفاده از </strong><strong>Activity diagram</strong><strong> :</strong></p>
<p>1) قبل از ترسیم use case  دیاگرام می توان Work flow سیستم را به کمک یک نمودار فعالیت ترسیم نمود . این نمودار کمک می کند که بتوان use case های اصلی سیستم را استخراج نمود .</p>
<p>2) پس از ترسیم use case ها می توان فرآیند جریان هر use case را به کمک یک اکتیویتی دیاگرام انجام داد .</p>
<p>3) پس از ترسیم دیاگرام کلاس برای نمایش فلوچارت اعمال یک کلاس می توان از این نمودار استفاده نمود .</p>
<p><strong>بیان دیاگرام یک پایگاه داده ها بوسیله یک نمودار کلاس : </strong></p>
<p>می توان براساس یک نمودار کلاس سطوح پایگاه داده های یک سیستم را بیان کنیم . برای این منظور هر table به عنوان یک کلاس تعریف شده و فیلدهای آن به عنوان صفات یا ( Properties ) کلاس و triger های آن به عنوان operation تعریف خواهد شد . ارتباط میان table ها یا از نوع composition هستند و یا از نوع aggregation  . اگر در یک رابطه یک به چند ، میان دو جدول رکوردی که در طرف چند رابطه قرار دارد بتوانند بدون وجود رکورد طرف یک وجود داشته باشند ، رابطه از نوع aggregation  و در غیر این صورت از نوع composition خواهد بود .</p>
<p>triger : همان گونه که گفته شد تریگر ، به عنوان عمل در یک کلاس از نوع table تعریف می شود . برای هر table سه نوع ( event ) قابل پیش بینی است :</p>
<p>Insert : اضافه کردن یک رکورد جدید .</p>
<p>Update : بروز رسانی یک رکورد جدید .</p>
<p>Delet : حذف یک رکورد .</p>
<p>اعمالی که باید بعد از وقوع هر یک از این وقایع رخ دهد به عنوان triger  یا operation  های کلاس table  تعریف خواهد شد .</p>
<p><strong>قدمهای لازم برای طراحی پایگاه داده ها و ترسیم نمودار کلاس مربوطه : </strong></p>
<p>الف ) نرمال سازی براساس تجزیه و تحلیل رابطه داده ها :</p>
<p>1 ) تشکیل جدول غیر نرمال .</p>
<p>2 ) تشکیل جدول نرمال 1</p>
<p>3 ) تشکیل جدول نرمال 2</p>
<p>4 ) تشکیل جدول نرمال 3</p>
<p>ب ) ترسیم نمودار کلاس .</p>
<p>مراحل فوق را با در نظر گرفتن یک مثال توضیح می دهیم .</p>
<p><strong>الف :</strong></p>
<p><strong>الف  1 ) تشکیل جدول غیر نرمال : </strong></p>
<p>در این مرحله باید براساس یک Souree  اولیه که خود یک کلاس از سیستم از نوع فرم یا گزارش می باشد ، جدول غیر نرمال را تشکیل داد .</p>
<p><strong>الف 2 ) تشکیل جدول نرمال 1 :</strong></p>
<p>یک جدول نرمال 1 جدولی است که براساس کلید اصلی که بر روی آن تعریف         می شود .</p>
<p>اگر ( Primerg key ) هیچ رکورد تکراری نداشته باشد ، کلید اصلی می تواند ساده     ( شامل یک فیلد ) و یا ترکیبی از چند فیلد باشد .</p>
<p><strong>الف 3 ) تشکیل جدول نرمال 2</strong> <strong>:</strong></p>
<p>در جدول نرمال یک اگر کلید اصلی ترکیبی باشد ، نگاه می کنیم که آیا فیلدی وجود دارد که فقط به بخشی از یک کلید اصلی ترکیبی وابسته است یا خیر ؟ اگر وجود دارد باید در قالب یک جدول جدید بیان شود .</p>
<p><strong>الف 4 ) تشکیل جدول نرمال 3 :</strong></p>
<p>در جدول نرمال 1 و 2  اگر فیلدی وجود داشته باشد که فقط به یک فیلد دیگر ( غیر از کلید اصلی ) وابسته باشد باید از آن جدول خارج و در قالب یک جدول جدید ذکر شود.</p>
<p><strong>ب ) </strong></p>
<p><strong>ترسیم نمودار کلاس :</strong></p>
<p>مرحله نرمال 4 همان کلاسهای مورد نظر می باشند .</p>
<p>این عمل باعث می شود که کلاس ( table ) های جدید شناسایی شده و یا در Properties  ( فیلدهای table ) کامل گردد .</p>
<p>پس از انجام تمام این مراحل طرح کلی پایگاه داده ها آماده است .</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d9%81%d9%86%d8%a7%d9%88%d8%b1%db%8c-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa/'>فناوری اطلاعات</a>, <a href='http://ehgroup.wordpress.com/category/education/'>آموزش</a>, <a href='http://ehgroup.wordpress.com/category/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/'>آموزش کامپیوتر</a>, <a href='http://ehgroup.wordpress.com/category/internet-education/'>آموزش اینترنت</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/435/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/435/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/435/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/435/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/435/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/435/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/435/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/435/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/435/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/435/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/435/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/435/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/435/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/435/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=435&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>زبان مدلسازی یکنواخت (3)</title>
		<link>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-3/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-3/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 21:07:11 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[فناوری اطلاعات]]></category>
		<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش کامپیوتر]]></category>
		<category><![CDATA[آموزش اینترنت]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=433</guid>
		<description><![CDATA[نمودارهای مورد کاربرد ( use case diagram ) : همانطور که می دانیم اولین مرحله در فرآیند تولید نرم افزار تعیین مشخصات و محدودیتهای عملیاتی نرم افزار منطبق بر خواست ها و نیازمندیهای کاربران می باشد . استفاده از نمودار مورد کاربرد ( use case ) می تواند : یک نقطه شروع خوب برای پروژه [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=433&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong> </strong></p>
<p><strong>نمودارهای مورد کاربرد </strong><strong>( use case diagram )</strong><strong> :</strong></p>
<p>همانطور که می دانیم اولین مرحله در فرآیند تولید نرم افزار تعیین مشخصات و محدودیتهای عملیاتی نرم افزار منطبق بر خواست ها و نیازمندیهای کاربران می باشد . استفاده از نمودار مورد کاربرد ( use case ) می تواند :</p>
<p>یک نقطه شروع خوب برای پروژه باشد . نمودار مورد کاربرد در مجموعه نمودارهای زبان UML در دسته نمودارهای رفتار ( Behavair ) قرار می گیرد .</p>
<p>این نمودار به صورتی خیلی ساده و با به کار گیری از حداقل نمادها و مفاهیم نموداری تعامل سیستم با اجزاء خارجی خود را نشان می دهد . یعنی بطور کامل مشخص می کند که چه عاملها ( Actor ) ، ( بازیگر ، کنشگر ) در دامنه سیستم وجود دارند و هریک چه انتظاری از سیستم داشته و یا چه عملیاتی را در سیستم انجام می دهند .</p>
<p><strong>اجزای یک نمودار مورد کاربرد </strong><strong>( Notation )</strong><strong> : </strong></p>
<p>نمودارهای مورد کاربرد از اجزاء اصلی زیر تشکیل شده است :</p>
<p>مورد کاربرد ( use case )</p>
<p>عامل ، بازیگر ، کنشگر ( actor )</p>
<p>روابط ( Relation Ship )</p>
<p><strong>1. مورد کاربرد </strong><strong>( use case )</strong><strong> :</strong></p>
<p>مورد کاربرد در اصل همان نیاز کاربر است که به صورت زنجیره ای از عملیات که منجر به نتیجه مشخصی که همان برآورده شدن نیاز کاربر است در سیستم قابل تعریف می باشد .</p>
<p>همان طور که ملاحظه می شود مورد کاربرد را در یک علامت بیضی که نام مورد کاربرد در درون آن قرار داده می شود مشخص می کنند .</p>
<p>؟؟</p>
<p><strong>جریان وقایع برای یک مورد کاربرد </strong><strong>( Flow of event )</strong><strong> :</strong></p>
<p>همانطور که گفته شد یک مورد کاربرد توالی از عملیات است که منجر به کسب یک نتیجه ملموس بوسیله Actor در سیستم می شود . پس از مشخص کردن مورد کاربرد باید جریان وقایع یعنی چگونگی توالی انجام عملیات برای محقق شدن use case    مستند سازی شود .</p>
<p>این کار به دو صورت رسمی یا نرمال و غیر رسمی قابل انجام است . در حالت رسمی می توان از نمودارهای دیگری در UML برای توصیف رفتار یک use case استفاده نمود . این نمودارها عبارتند از :</p>
<p>State chart Diagram  ، Activity Diagram   ،  Seguence Diagram  و Collaboration  Diagram  .</p>
<p>به صورت غیر رسمی نیز می توان با یک متن یا جدول معمولی نیز رفتار use case را توصیف نمود . برای این منظور برای هر use case  موارد زیر مستند می شود :</p>
<p>تعریف مختصر Deseription</p>
<p>پیش شرایط Pre condition</p>
<p>جریان رخدادهای اصلی Main flow</p>
<p>جریان رخدادهای فرعی Sab  flow</p>
<p>شرایط پسین Post condition</p>
<p>تعریف مختصر :   باید بتوان در یک یا دو جمله مورد کاربرد را به صورت واضح تعریف کرد .</p>
<p>پیش شرایط :  اگر برای انجام یک use case باید قبلاً شرایط خاصی در سیستم مهیا شده باشد . این شرایط تحت عنوان پیش شرایط مطرح می شود .</p>
<p>یک use case می تواند پیش شرایط نداشته باشد .</p>
<p>جریان رخداد اصلی و فرعی :  هر use case یک جریان یا توالی عملیات دارد که از ابتدا تا انتها ادامه پیدا می کند . این جریان را جریان اصلی نامیده و اگر بر حسب وقوع وقایع مختلف در این جریان مسیر حرکت تغییرات دیگری داشته باشند به آنها جریان فرعی گفته می شود .</p>
<p>برای تعریف جریان و رخدادها به ترتیب زیر عمل می شود :</p>
<p>- چگونگی شروع به کار use case</p>
<p>- مسیرهای مختلف یا متنوع در use case  ( سناریوهای مختلف )</p>
<p>- جریان رخداد اصلی یا معمولی</p>
<p>- روند انحرافی و خطادار</p>
<p>شرایط پسین : اگر بعد از انجام یک use case باید شرایط خاصی در سیستم حکم فرما باشد مثلاً یک متغیری با یک مقدار مقداردهی شده باشد ، این شرایط را تحت عنوان شرایط پسین تعریف می کنیم .</p>
<p><strong>2. عامل ، بازیگر ، کنشگر </strong><strong>( actor )</strong><strong> :</strong></p>
<p>هر چیزی که در خارج از سیستم قرار گیرد و با سیستم در تعامل باشد به عنوان اکتور شناسایی می شود . Actor را با نماد             نشان می دهیم . معمولاً  اکتورها یا کاربران سیستم هستند یا کسانی هستند که با سیستم در تعامل می باشند و یا سیستمهای دیگری هستند که با سیستم در تعامل هستند . در تعریف اکتور باید توجه کرد که منظور از اکتور نقش کاربر در رابطه با سیستم است نه شخص کاربر . بنابراین اکتورها نقشهایی هستند که کاربران در رابطه با سیستم ایفا می کنند . ممکن است یک فرد خاص هم عضو هیئت مدیره باشد و هم مدیر عامل ، بنابراین چون دو نقش دارد به عنوان دو اکتور مختلف تعریف می شود .</p>
<p>هر اکتور با یک یا چند use case در سیستم در ارتباط است . در واقع use case ها اعمالی هستند که اکتور در سیستم انجام می دهد .</p>
<p><strong>3. روابط </strong><strong>( Relation Ship )</strong><strong> :</strong></p>
<p>بین هر use case و هر اکتور متناظر با آن یک رابطه تناظر ( association ) وجود دارد که جهت رابطه شروع کننده را نشان می دهد .</p>
<p>؟؟</p>
<p>هر use case  باید حداقل بوسیله یک اکتور آغاز شود . به غیر از این رابطه اصلی روابط دیگری نیز قابل تعریف می باشد . اولین رابطه ، رابطه تعمیم است .</p>
<p><strong>1) رابطه تعمیم </strong><strong>( Generalization )</strong><strong> : </strong></p>
<p>رابطه تعمیم یک رابطه مهم در متدولوژی شیء گرا محسوب می شود . در این رابطه کلاس یا شیء که خواص و وقایع مشترک چندین کلاس دیگر را در خود داشته باشد به عنوان کلاس تعمیم در نظر گرفته می شود و کلاسهای تخصیص این کلاس تعمیم ، ضمن به ارث بردن کلیه صفات و اعمال کلاس تعمیم می توانند صفات و اعمال خاص خود را نیز داشته باشند .</p>
<p>؟؟</p>
<p>در نمودار use case رابطه تعمیم می تواند میان اکتورها و همچنین میان use case ها اتفاق بیفتد . به عنوان مثال در مثال فوق use case A یک use case تعمیم بوده و D و C کلیه خواص آن را به ارث برده . ضمن اینکه می تواند خواص خاص خود را نیز داشته باشد .</p>
<p><strong>2) کلیشه های </strong><strong>Extend</strong><strong> و </strong><strong>Include</strong><strong> در روابط تناظر میان </strong><strong>use case</strong><strong> ها : </strong></p>
<p>برای دسته بندی بهتر use case ها و همچنین پرهیز از تکرارهای اضافی و ساده شدن نمودار می توان روابط Extend  و Include را میان دو use case تعریف کرد :</p>
<p><strong>الف ) رابطه </strong><strong>Extend</strong><strong> :</strong></p>
<p>؟؟</p>
<p>این شکل نشان می دهد که use case B می تواند تحت شرایط خاص بجای A قرار گیرد .</p>
<p><strong>ب ) رابطه </strong><strong>Include</strong><strong> :</strong></p>
<p>؟؟</p>
<p>هرگاه در مجموعه عملیات یک use case عملیات یک use case  دیگر تکرار شود یک رابطه Include بین آنها تعریف می شود . مثلاً در شکل فوق عملیات use case A همواره شامل عملیات use case B نیز می شود .</p>
<p><strong>مروری بر مفاهیم شیء گرا </strong><strong>( Object oriented )</strong><strong> :</strong></p>
<p>روش شیء گرا یک دیدگاه جدید به سیستمها است که سعی می کند با شناسایی و تعریف عناصر یک سیستم ، کل سیستم را مورد شناسایی و تحلیل قرار دهد .</p>
<p><strong>- تعریف شیء </strong><strong>( Object )</strong><strong> :</strong></p>
<p>انسان ، مکان ، &#8230; و هر چیزی که در یک سیستم حس می شود و قابل لمس و درک است شیء نامیده می شود .</p>
<p><strong>- مسئولیت </strong><strong>( Rispasability )</strong><strong> :</strong></p>
<p>هر چیزی که به شیء تعلق دارد و شیء در مقابل آن پاسخگو می باشد ، مسئولیت شیء نامیده می شود . مسئولیت 3 جنبه دارد :</p>
<p>1) آن چیزی که شیء راجع به خود می داند که به آن صفت یا Properties گفته      می شود . مثلاً یک دانشجو ، شماره دانشجویی ، نام ، نام خانوادگی و &#8230; را که به عنوان صفات مطرح می شود ، می داند .</p>
<p>2) کسانی است که شیء آنها را می شناسد و در حوزه مسئله با آنها ارتباط برقرار    می کند ( Relation ) . به عنوان مثلاً  &#8221; دانشجو &#8221; در درس &#8221; ثبت نام &#8221; می کند .</p>
<p>3) اعمالی است که شیء انجام می دهد که به آن اعمال یا  Operation  شیء گفته   می شود . به عنوان مثال دانشجو اعمالی نظیر ثبت نام ، حذف و اضافه و &#8230; را انجام    می دهد .</p>
<p><strong>- سناریو :</strong><strong> </strong></p>
<p>مجموعه ای از اعمال که با یک توالی مشخص انجام می شوند و منجر به یک نتیجه    می گردد .</p>
<p><strong>- کلاس : </strong></p>
<p>مجموعه ای از اشیاء که دارای صفات اعمال و ارتباطات یکسان می باشند در یک گروه بنام کلاس قرار می گیرند . بنابراین هر شیء ، نمونه ای ( Instance ) از کلاس هستند. نمایش یک کلاس به فرم است :</p>
<div>
<table dir="rtl" border="1" cellspacing="0" cellpadding="0" align="right">
<tbody>
<tr>
<td width="78" valign="top">نام کلاس</td>
</tr>
<tr>
<td width="78" valign="top">صفات</td>
</tr>
<tr>
<td width="78" valign="top">اعمال</td>
</tr>
</tbody>
</table>
</div>
<p>نام کلاس</p>
<p>صفات</p>
<p>اعمال</p>
<p><strong> </strong></p>
<p><strong>انواع ارتباطات در مدلهای شیء گرا :</strong></p>
<p>1. <strong>رابطه تعمیم </strong><strong>( Generalization )</strong><strong> : </strong></p>
<p>این رابطه یکی از روابط پایه ای در مفاهیم شیء گرا می باشد که در اکثر نمودارهای UML کاربرد دارد . این رابطه برای پرهیز از تکرار صفات و اعمال در کلاسها بکار    می رود . بر این اساس هرگاه چند کلاس مختلف دارای صفات و اعمال یکسانی باشند می توان کلاس را به نام کلاس تعمیم تعریف نمود که شامل کلیه صفات و اعمال مشترک سایر کلاسها بوده و هر یک از کلاسهای دیگر به عنوان یک تخصیص از این کلاس کلیه خصوصیات و اعمال کلاس تعمیم را به ارث می برد . البته نیز می تواند صفات و اعمال خاص خود را داشته باشد .</p>
<p>؟؟</p>
<p>به این خاصیت ، خاصیت به ارث بری یا وراثت ( Inheritance ) گفته می شود .</p>
<p><strong>2. رابطه تناظر ( انجمنی </strong><strong>Assosiation</strong><strong> ) : </strong></p>
<p>هنگامی که دو شیء با یکدیگر ارتباط ساختاری داشته باشند این رابطه کاربرد دارد . براساس یک رابطه تناظر می توان از یک شیء و کلاس به شیء یا کلاس دیگر پیمایش کرد .</p>
<p>؟؟</p>
<p>دو نوع خاص از رابطه تناظر ، تجمع و ترکیب می باشد که در آینده مورد بررسی قرار می گیرد .</p>
<p><strong>3. رابطه وابستگی </strong><strong>( Dependencoy )</strong><strong> :</strong></p>
<p>هرگاه تغییری در یک کلاس یا شیء باعث تغییری در کلاس یا شیء دیگری شود و نتوان یک رابطه تناظر بین دو کلاس یا شیء برقرار کرد ، می گوئیم بین دو شیء یک رابطه وابستگی وجود دارد . معمولاً  این رابطه زمانی اتفاق می افتد که یکی از خصوصیات کلاس X به عنوان پارامتر یکی از اعمال کلاس Y مطرح باشد .</p>
<p>؟؟</p>
<p><strong>حالتهای خاص تجمع و ترکیب در رابطه تناظر : </strong></p>
<p><strong>1. رابطه تجمع </strong><strong>( Aggrigation )</strong><strong> :</strong></p>
<p>در این نوع رابطه ، کلاسی وجود دارد که از اجزای کوچکتری تشکیل شده است .</p>
<p>؟؟</p>
<p>در این حالت یک کلاس کل تشکیل می شود و رابطه تجمع نشان می دهد که این کلاس کل از چه اجزائی تشکیل شده است .</p>
<p><strong>2. رابطه ترکیب </strong><strong>( Composition )</strong><strong> :</strong></p>
<p>این رابطه حالت خاص از رابطه تجمع است . در این حالت اگر سایر کلاسهایی که        می خواهند با اجزاء یک کل ارتباط برقرار کنند قادر به برقراری ارتباط مستقیم نبوده و باید حتماً از طریق کلاس کل با اجزاء ارتباط برقرار کنند . رابطه تجمع به صورت ترکیب در خواهد آمد .</p>
<p>&nbsp;</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d9%81%d9%86%d8%a7%d9%88%d8%b1%db%8c-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa/'>فناوری اطلاعات</a>, <a href='http://ehgroup.wordpress.com/category/education/'>آموزش</a>, <a href='http://ehgroup.wordpress.com/category/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/'>آموزش کامپیوتر</a>, <a href='http://ehgroup.wordpress.com/category/internet-education/'>آموزش اینترنت</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/433/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=433&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>زبان مدلسازی یکنواخت (2)</title>
		<link>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-2/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-2/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 21:05:46 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[فناوری اطلاعات]]></category>
		<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش کامپیوتر]]></category>
		<category><![CDATA[آموزش اینترنت]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=431</guid>
		<description><![CDATA[نمودارهای UML : در این بخش به معرفی نمودارهای UML  می پردازیم و علاقمندان به آشنایی بیشتر را ، دعوت به مطالعه مراجع معرفی شده ، می نمائیم : 1. نمودار کلاس ( Class Diagram ) : این نمودار ، کلاسها ، واسطه ها و همکاری و روابط بین آنها را نمایش می دهد . [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=431&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>نمودارهای </strong><strong>UML</strong><strong> :</strong></p>
<p>در این بخش به معرفی نمودارهای UML  می پردازیم و علاقمندان به آشنایی بیشتر را ، دعوت به مطالعه مراجع معرفی شده ، می نمائیم :</p>
<p><strong>1. نمودار کلاس </strong><strong>( Class Diagram )</strong><strong> :</strong></p>
<p>این نمودار ، کلاسها ، واسطه ها و همکاری و روابط بین آنها را نمایش می دهد . و نمودارهای اصلی و مرکزی UML می باشد که بیان کننده ساختار ایستای سیستم    نرم افزاری می باشند .</p>
<p><strong>2. نمودار اشیاء </strong><strong>( Object Diagram )</strong><strong> :</strong></p>
<p>این نمودار ، اشیاء سیستم و روابط بین آنها را نمایش می دهد . در واقع یک تصویر لحظه ای از نمودار کلاس می باشد .</p>
<p><strong>3. نمودار مورد کاربرد </strong><strong>( Usecase Diagram )</strong><strong> :</strong></p>
<p>این نمودار ، تعامل کاربران خارجی و سیستم مدل را مدل می کند و از جهاتی شبیه نمودار سطح صفر DFD می باشد که جنبه های رفتاری سیستم را نمایش می دهد . این نمودار نقطه ورودی برای تمامی نمودارهای دیگر است که به تشریح نیازمندیها و معماری و پیاده سازی سیستم می پردازد .</p>
<p><strong>4. نمودارهای تعامل </strong><strong>( Interaction Diagram )</strong><strong> : </strong></p>
<p>این نمودارها ، بیان کننده تعامل هستند که شامل اشیاء مختلف و روابط بین آنها و همچنین پیغامهایی که بینشان رد وبدل می شود می باشند . این نمودارها جنبه های پویای یک سیستم را مدل می کنند و خود بر دو نوعند : نمودار توالی                          ( Sequence Diagram ) که ترتیب زمانی تعامل ها را نشان می دهد و نمودار همکاری ( Collaboration Diagram ) که تأکید بر نمایش ساختاری تعامل ها دارد .</p>
<p><strong>5. نمودار حالت </strong><strong>( Start chart Diagram )</strong><strong> :</strong></p>
<p>این نمودار ، بیان کننده جنبه های رفتاری سیستم می باشد و در واقع توصیف رسمی یک کلاس بوده که شامل حالات ، انتقال بین حالات ، رخدادها و فعالیتها می باشد . از این نمودارها برای نمایش دادن چرخه حیات اشیاء یک کلاس خاص نیز می توان استفاده کرد .</p>
<p><strong>6. نمودار فعالیت </strong><strong>( Activity Diagram )</strong><strong> :</strong></p>
<p>این نمودار ، نوع خاصی است از نمودار حالات ، که انتقال جریان از یک فعالیت به فعالیت دیگر را نمایش می دهد . این نمودار جنبه های پویای یک سیستم را نمایش می دهد . در واقع حالات این نمودار ، گامهای ترتیبی انجام یک عمل را نمایش می دهند .</p>
<p><strong>7. نمودار اجزاء </strong><strong>( Component Diagram )</strong><strong> :</strong></p>
<p>از جمله نمودارهای پیاده سازی می باشد و سازماندهی و روابط بین مجموعه ای از اجزاء را نمایش می دهد . این نمودار ، جنبه های ایستای پیاده سازی یک سیستم را مدل می کند .</p>
<p><strong>8. نمودار به کارگماری </strong><strong>( Deployment Diagram )</strong><strong> :</strong></p>
<p>پیکربندی گره های پردازشی زمان اجرا را نمایش می دهد که برای مدل کردن     جنبه های ایستای به کار گماری یک معماری بکار می رود . همچنین نمایش دهنده ی اجزای استفاده شده زمان اجرا مثل کتابخانه های DLL ، فایل های اجرایی ، کدهای مبدأ و روابط بین آنها می باشد . البته این نمودارها تمام نمودارهای UML نیستند بلکه بسته به نیاز و با کمک ابزارهای Case می توان نمودارهای دیگری نیز تعریف و استفاده کرد .</p>
<p>در پروژه چهار فاز را پشت سر می گذاریم :  Inception  ( شناخت )  ،  Elaboration  ( مهارت ) ، Construction ( ساختار ) و Transition ( انتقال ) . Inception شروع پروژه است . ما اطلاعات را جمع آوری کرده و مفهوم و برداشت کلی را اثبات          می نماییم . پایان Inception تصمیم درباره انجام / عدم انجام پروژه است . در Elaboration  ، بطور مفصل use case ها توضیح داده شده و تصمیمات معماری گرفته می شوند . Elaboration  شامل مقداری تجزیه و تحلیل ، طراحی ، کد نویسی و تست می باشد . Construction ( ساختار ) جایی است که قسمت عمده کد نویسی انجام شده است . Transition آمادگی و تولید نهایی سیستم برای کاربران است .</p>
<p><strong>Inception</strong><strong> ( شناخت ) : </strong></p>
<p>فاز Inception شروع پروژه است . ما کشف می کنیم که عامل های سیستم چه کسانی هستند و use case ها را تعیین می نماییم . ما در اینجا وارد جزئیات use case ها     نمی شویم اما فقط یک یا دو جمله را آماده می کنیم . همچنین تخمینی را فراهم       می کنیم تا مدیریت را پیش ببریم . بنابراین با استفاده از Rose برای پشتیبانی از   پروژه های خود ، عامل ها و use case هایی را ایجاد خواهیم کرد و نمودارهای       use case را تولید خواهیم نمود . Inception زمانی پایان می یابد که تحقیقات انجام شده اند و مدیریت ، منابع را اختصاص می دهد تا بر روی پروژه کار کنند .</p>
<p>فاز Inception  پروژه به طور اساسی دنباله دار و غیر تکراری است . حالتهای دیگر چندین بار در طول پروژه تکرار می شوند . به دلیل اینکه در حقیقت پروژه فقط یکبار می تواند شروع شود ، Inception  نیز فقط یکبار روی پروژه انجام شده است . به همین دلیل ، بیش از یک وظیفه در Inception  می ماند . تولید یک طرح تکراری ، یک طرح تکراری طرحی است که توضیح می دهد چه use case  در طول تکرار انجام     می شود . اگر ما در طول تکرار ده تا use case را پیدا کنیم ، ممکن است یک نقشه تکراری مانند این را بکشیم .</p>
<p>Inception One                            Use Case 1,5,6</p>
<p>Inception Two                            Use Case 7,9</p>
<p>Inception Three                          Use Case 2,4,8</p>
<p>Inception Four                            Use Case 3,10</p>
<p>طرح به ما می گوید که کدام use case اول انجام شده است . مشخص کردن این طرح نیازمند این است که به وابستگیهای بین  use case  نگاه کنیم و براساس آن برنامه ریزی نماییم . اگر برای کاربران use case 5  نیاز به use case 3 داشته باشد ، پس طرح توضیح داده شده بالا شدنی و امکان پذیر نیست زیرا use case 3  باید در دور 4 اجرا شده باشد ، در حالی که use case 5 در اولین دوره قرار دارد . ما باید طرحمان را تنظیم کنیم تا با وابستگیها وفق داده شود .</p>
<p><strong>Elaboration</strong><strong> ( مهارت ) :</strong></p>
<p>فاز مهارت ( Elaboration ) پروژه شامل مقداری طراحی ، تجزیه و تحلیل و طرح معماری است . همراه با طرح تکرار ، فاز مهارت برای هر use case در تکرار جاری انجام می شود . فاز مهارت شامل چندین جنبه از یک پروژه است . مانند کد کردن ، اثبات مفاهیم ( proofs-of-concept ) ، تولید نمونه های آزمایشی و ایجاد تصمیمات طراحی .</p>
<p>از کارهای اصلی فاز Elaboration  تکمیل use case است . درخواستهای سطح پائین یک use case  شامل جریان پردازش در طول use case  می باشد ، چه عامل هایی با    use case درخواست شده اند و نمودارهای Interaction  جریان پردازش را به صورت گرافیکی نشان می دهد و کلاً هر حالتی که تغییر می کند ممکن است در زمان          use case  اتفاق بیفتد . در خواستها ، به شکل use case های کامل و با جزئیات ، در یک سند جمع شده اند که یک Software Requirement Specification (SRS )             ( مشخصات درخواست نرم افزار ) نامیده شده است . SRS شامل همه جزئیات درخواستهای سیستم می باشد . کارهای دیگری در فاز مهارت ( Elaboration ) انجام می شود مانند اصلاح تخمینهای اولیه ، بررسی کیفیت SRS  و مدل Use Case  و بررسی کردن خطرها .</p>
<p>Rational Rose  می تواند به مدل Use Case کمک کند و نمودارهای Sequence  ، Collaboration را ایجاد کند تا جریان گرافیکی پردازش را نشان دهد . نمودارهای Class ، آبجکت هایی که ساخته شده اند یا در طول فاز مهارت ( Elaboration ) طراحی شده اند را نشان می دهد . فاز مهارت ( Elaboration ) زمانی تمام شده است که use case ها کاملاً وارد جزئیات شده اند و بوسیله کاربران پذیرفته شده اند ، اثبات مفاهیم ( proofs-of-concept ) کامل شده اند تا شدت خطرها را کاهش دهند و نمودارهای Class کامل می باشند . به عبارت دیگر این فاز زمانی کامل است که سیستم طراحی شده ، بازبینی شده و آماده است تا برنامه نویسان آن را تولید نمایند .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Construction</strong><strong> ( ساختار ) :</strong></p>
<p>Construction ( ساختار ) به روند تولید و تست نرم افزار بر می گردد . مانند Elaboration این فاز برای هر مجموعه از use case ها ، در یک بار تکرار کامل شده است . کارهای فاز Construction شامل مشخص کردن درخواستهای ثابت ، تولید   نرم افزار و تست نرم افزار می باشد . از آنجایی که نرم افزار در طول فاز Elaboration بطور کامل طراحی شده است ، Construction نباید درگیر تصمیمهای طراحی زیادی باشد . این به گروه پروژه کمک می کند تا تولید موازی را به انجام رسانند . تولید موازی به این معنی است که چند برنامه نویس بتوانند بر روی     آبجکت های مختلف نرم افزاری کار کنند و بدانند که کل سیستم با هم جمع خواهد شد . در  Elaboration، ما آبجکت هایی را در سیستم طراحی کردیم و اینکه آنها چگونه بر روی هم اثر می گذارند . Construction فقط موضوع گذاشتن آن طرح در action است ، تا تصمیمات طراحی جدید که می توانند آن فعل و انفعالات را تغییر دهند ، ایجاد شوند . مزیت دیگر مدل کرد سیستم این است که Rational Rose می تواند کد اولیه را برای سیستم تولید کند .</p>
<p><strong>Transition</strong><strong> ( انتقال ) :</strong></p>
<p>فاز Transition زمانی است که محصول نرم افزاری کامل شده ، به سمت اجتماع کاربر بر می گردد . کارها در این فاز شامل کامل کردن محصول نرم افزاری نهایی ، تکمیل تست تأیید نهایی ، کامل کردن مستند سازی کاربر و فراهم کردن آموزش  برای کاربر می باشند . باید مشخصات درخواست نرم افزار                                         ( Software Requirement Specification )  ، نمودارهای Use Case ، نمودارهای Class ، نمودارهای Component و نمودارهای Deployment بروزرسانی شده باشند تا تغییرات نهایی را منعکس کنند . مهم است که این مدلها با محصول نرم افزاری همزمان شده باشند زیرا مدلهایی که یکبار در محصول نرم افزاری استفاده خواهند شد به مد پشتیبانی می روند . چند ماه بعد از اتمام پروژه ، این مدلها در کمک به ارتقاء نرم افزار ، گرانبهاتر خواهند بود .</p>
<p>Rational Rose در فاز Transition مانند دیگر فازها مفید نیست . در این نقطه ، محصول نرم افزاری تولید شده است . Rose طراحی شده است تا به مدلسازی و تولید نرم افزار کمک کند و حتی به ارتقاء نرم افزار کمک می کند . اگرچه ، Rose  به عنوان یک ابزار آزمایشی یا کمک به طرح های آزمایشی یا توابع گسترشی طراحی نشده بود ، اما ابزار دیگری وجود دارد که مخصوصاً برای این اهداف طراحی شده اند . بنابراین ، اصولاً  Rose  در فاز Transition  استفاده خواهد شد تا مدلها را به عنوان محصول نرم افزاری تکمیل شده بروز رسانی نماید .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d9%81%d9%86%d8%a7%d9%88%d8%b1%db%8c-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa/'>فناوری اطلاعات</a>, <a href='http://ehgroup.wordpress.com/category/education/'>آموزش</a>, <a href='http://ehgroup.wordpress.com/category/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/'>آموزش کامپیوتر</a>, <a href='http://ehgroup.wordpress.com/category/internet-education/'>آموزش اینترنت</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/431/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/431/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=431&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>زبان مدلسازی یکنواخت (1)</title>
		<link>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-1/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-1/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 21:03:52 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[فناوری اطلاعات]]></category>
		<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش کامپیوتر]]></category>
		<category><![CDATA[آموزش اینترنت]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=427</guid>
		<description><![CDATA[زبان مدلسازی یکنواخت یا Unified Modeling Language ( UML )  ، یک زبان مدلسازی است که برای تحلیل و طراحی سیستمهای شیء گرا بکار می رود .  UML اولین بار توسط شرکت  Rational ارائه شد و پس از آن از طرف بسیاری از     شرکت های کامپیوتری و مجامع صنعتی و نرم افزارهای دنیا مورد حمایت [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=427&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>زبان مدلسازی یکنواخت یا Unified Modeling Language ( UML )  ، یک زبان مدلسازی است که برای تحلیل و طراحی سیستمهای شیء گرا بکار می رود .  UML اولین بار توسط شرکت  Rational ارائه شد و پس از آن از طرف بسیاری از     شرکت های کامپیوتری و مجامع صنعتی و نرم افزارهای دنیا مورد حمایت قرار گرفت ، بطوریکه تنها پس از یک سال ، توسط گروه Object Manahement Group ، به عنوان زبان مدلسازی استاندارد پذیرفته شد . UML تواناییها و خصوصیات بارز فراوانی دارد که می تواند به طور گسترده ای در تولید نرم افزار استفاده گردد . در ادامه ی این مقاله ابتدا به تاریخچه UML و در ادامه به معرفی ، ویژگیها و نمودارهای آن پرداخته می شود و در پایان ، روند حرکت به سمت UML و اهمیت آن ، بررسی خواهد شد .</p>
<p><strong>تاریخچه ی </strong><strong>UML</strong><strong> : </strong></p>
<p>دیدگاه شیء گرایی ( Object Oriented ) ، از اواسط دهه 1970 تا اواخر دهه 1980 در حال مطرح شدن بود . در این دوران تلاشهای زیادی برای ایجاد روشهای تحلیل و طراحی شیء گرا صورت پذیرفت . در نتیجه ی این تلاشها بود که در طول 5 سال یعنی 1989 تا 1994 ، تعداد متدولوژیهای شیء گرا از کمتر از 10 متدولوژی به بیش از 50 متدولوژی رسید . تکثر متدولوژیها و زبانهای شیء گرایی و رقابت بین اینها به حدی بود که این دوران به عنوان &#8221; جنگ متدولوژیها &#8221; لقب گرفت . از جمله متدولوژیهای پرکاربردآن زمان می توان ازBooch ، OOSH ، OMT ، Fusion ، Coad-Yourdan  ،  Shlayer-Mellor  و غیره نام برد . فراوانی و اشباع متدولوژیها و روشهای شیء گرایی و نیز نبودن یک زبان مدلسازی استاندارد ، باعث مشکلات فراوانی شده بود . از یک طرف کاربران از متدولوژیهای موجود خسته شده بودند ، زیرا مجبور بودند از میان روشهای مختلف شبیه به هم که تفاوت کمی در قدرت و قابلیت داشتند یکی را انتخاب کنند . بسیاری از روشها ، مفاهیم مشترک شیء گرایی را در قالبهای مختلف بیان       می کردند که این واگرایی و نبودن توافق میان این زبانها ، کاربران تازه کار را از دنیای شیء گرایی زده می کرد و آنها را از این حیطه دور می ساخت . عدم وجود یک زبان استاندارد ، برای فروشندگان محصولات نرم افزاری نیز مشکلات زیادی ایجاد کرده بود .</p>
<p>اولین تلاشهای استاندارد سازی از اکتبر 1994 آغاز شد ، زمانی که آقای Rumbaurgh  صاحب متدولوژی OMT به آقای  Booch  در شرکت  Rational پیوست و این دو با ترکیب متدولوژیهای خود ، اولین محصول ترکیبی خود به نام &#8221; روش یکنواخت &#8221; را ارائه دادند . در سال 1995 بود که با اضافه شدن آقای Jacobson به این دو ، روش یکنواخت ارائه شده با روش OOSE نیز ترکیب شد و این خود سبب ارائه ی UML نسخه ی 0/9 در سال 1996 گردید . سپس این محصول به شرکتهای مختلفی در سراسر جهان به صورت رایگان ارائه شد و استقبال شدید شرکتها از این محصول و تبلیغات گسترده شرکت Rational ، سبب آن شد که گروه OMG ، نسخه ی 1/0 UML را به عنوان زبان مدلسازی استاندارد خود بپذیرند . تلاشهای تکمیلی UML استاندارد ادامه پیدا کرد و نسخه ی 1/1 آن در سال 1997 و نسخه ی 1/3  آن در سال 1999 ارائه گردید .</p>
<p><strong> </strong></p>
<p><strong>UML</strong><strong> چیست ؟ </strong></p>
<p>UML  یا زبان مدلسازی یکنواخت ، زبانی است برای مشخص کردن ( Specify ) ، مصورسازی ( Visualize )  ،  ساخت ( Construction )  و مستندسازی                      ( Documenting ) سیستمهای نرم افزاری و غیر نرم افزاری و نیز برای مدلسازی سیستم های تجاری . اما چرا مدل و مدلسازی ؟ ایجاد یک مدل برای سیستمهای نرم افزاری قبل از ساخت یا باز ساخت آن ، به اندازه داشتن نقشه برای ساختن یک ساختمان ضروری و حیاتی است . بسیاری از شاخه های مهندسی ، توصیف چگونگی محصولاتی که باید ساخته شوند را ترسیم می کنند و همچنین دقت زیادی می کنند که محصولاتشان طبق این مدلها و توصیفها ساخته شوند . مدلهای خوب و دقیق در برقراری یک ارتباط کامل بین افراد پروژه ، نقش زیادی می توانند داشته باشند . شاید علت مدل کردن سیستم های پیچیده این باشد که تمامی آن را نمی توان یکباره مجسم کرد ، بنابراین برای فهم کامل سیستم و یافتن و نمایش ارتباط بین قسمتهای مختلف ، آن را به مدلسازی می پردازیم .</p>
<p>UML زبانی است برای مدلسازی یا ایجاد نقشه تولید نرم افزار .</p>
<p>به عبارت دیگر ، یک زبان ، با ارائه یک فرهنگ لغات و یک مجموعه قواعد ، امکان می دهد که با ترکیب کلمات این فرهنگ لغات و ساختن جملات ، با یکدیگر ارتباط برقرار کنیم . یک زبان مدلسازی ، زبانی است که فرهنگ لغات و قواعد آن بر نمایش فیزیکی و مفهومی آن سیستم متمرکزند . برای سیستمهای نرم افزاری نیاز به یک زبان مدلسازی داریم که بتواند دیدهای مختلف معماری سیستم را در طول چرخه ی تولید آن ، مدل کند .</p>
<p>فرهنگ واژگان و قواعد زبانی مثل UML به شما می گویند که چگونه یک مدل را بسازید و یا چگونه یک مدل را بخوانید . اما به شما نمی گویند که در چه زمانی ، چه مدلی را ایجاد کنید . یعنی UML فقط یک زبان نمادگذاری ( Notation ) است نه یک متدولوژی . یک زبان نمادگذاری شامل نحوه ی ایجاد و نحوه ی خواندن یک مدل    می باشد ، اما یک متدولوژی بیان می کند که چه محصولاتی باید در چه زمانی تولید شوند و چه کارهایی با چه ترتیبی توسط چه کسانی ، با چه هزینه ای ، در چه مدتی و با چه ریسکی انجام شوند .</p>
<p><strong>ویژگی های </strong><strong>UML</strong><strong> :</strong></p>
<p>UML دارای ویژگی های بارز فراوانی است که در این قسمت به آنها می پردازیم . UML یک زبان مدلسازی است اما چیزی فراتر از چند نماد گرافیکی است . بطوریکه در ورای این نمادها ، یک سمانتیک ( معناشناسی ) قوی وجود دارد ، بطوریکه یک تولیدکننده می تواند مدلهایی تولید کند که تولیدکننده های دیگر و یا حتی یک ماشین آن را بخواند و بفهمد . بنابراین یکی دیگر از نقش های مهم UML  “ تسهیل ارتباط ” بین اعضای پروژه و یا بین تولیدکنندگان مختلف می باشد . این ارتباط بسیار مهم است . شاید دلیل اصلی اینکه تولید نرم افزار به صورت فریبنده ای دشوار است ، همین عدم ارتباط مناسب بین اعضای پروژه باشد و اگر در تولید نرم افزار ، بین اعضای پروژه گزارشهای هفتگی و مداوم وجود داشته باشد ، بسیاری از این دشواریها برطرف خواهد شد .</p>
<p>البته این را هم باید در نظر گرفت که UML کمی پیچیده است و این به خاطر آن است که سعی شده است نمودارهایی فراهم شود که در هر موقعیتی و با هر ترتیبی قابل استفاده باشند . دلیل دیگر پیچیدگی از آنجا ناشی می شود که UML ترکیبی از زبانهای مختلف ، که برای حفظ سازگاری و جمع کردن خصوصیات مثبت آنها ناگزیر از پذیرش این پیچیدگی می باشد . UML موفقیت طرح را تضمین نمی کند ، اما در عین حال خیلی چیزها را بهبود می بخشد . به عنوان مثال استفاده از UML ، تاحد زیادی ، هزینه های ثابتی نظیر آموزش و استفاده مجدد از ابزارها را در هنگام ایجاد تغییر در سازمان و طرحها کاهش می دهد .</p>
<p>مسأله دیگر اینکه ، UML یک زبان برنامه نویسی بصری ( visual ) نیست ، اما مدلهای آن را می توان مستقیماً به انواع زبانهای مختلف ارتباط داد . یعنی امکان نگاشت از مدلهای UML به کد زبانهای برنامه نویسی مثل Java و VC++ وجود دارد که به این عمل “ مهندسی رو به جلو ” می گویند . عکس این عمل نیز ممکن است ؛ یعنی این امکان وجود دارد که شما بتوانید از کُد برنامه زبانی شیء گرا ، مدلهای UML معادل آن را بدست آورید . به این عمل“ مهندسی معکوس ” می گویند . مهندسی رو به جلو و مهندسی معکوس از مهمترین قابلیتهای UML به شمار می روند ، البته نیاز به ابزار Case مناسبی دارید که از این مفاهیم پشتیبانی کنند .</p>
<p>اگر با زبانهای مدلسازی دیگر کار کرده باشید ، برای کار با UML مشکل چندانی نخواهید داشت . اما برای شروع کار با UML به عنوان اولین زبان مدلسازی ، بهتراست فقط با نمودارهای خاصی کار کنید . برای این کار بهتر است ابتدا با نمودارهای مورد کاربرد و تعامل کار کنید و پس از مدتی کار و آشنا شدن با ویژگی های اولیه ی آن ، به یادگیری و استفاده از نمودارها و اجزای دیگر بپردازید .</p>
<p>در مقایسه با زبانهای دیگر مثل ER و زبان فلوچارتی DR ، زبان UML نمودارهای قویتر و قابل فهمتری را ارائه می دهد که شامل تمامی مراحل چرخه ی حیات تولید نرم افزار ( تحلیل ، طراحی ، پیاده سازی و تست ) می شود .</p>
<p>یکی دیگر از ویژگیهای مهم UML این است که مستقل از متدولوژی یا فرآیند تولید نرم افزار می باشد و این بدان معنی است که شما برای استفاده از UML ، نیاز به استفاده از یک متدولوژی خاص ندارید و می توانید طبق متدولوژی قبلی خود عمل کنید با این تفاوت که مدلهایتان را با UML نمایش می دهید .</p>
<p>البته مستقل بودن از متدولوژی و فرآیند تولید ، یک مزیت برای UML می باشد ، زیرا بسیاری از انواع پروژه ها و سیستمها نیاز به متدولوژی خاص خود دارند . اگر UML در پی پیاده کردن همه ی اینها بر می آمد ، یا بسیار پیچیده می شد و یا استفاده خود را مخدود می کرد . البته متدولوژیهایی براساس UML در حال شکل گیری      می باشند .</p>
<p>از دیگر ویژگیهای UML می توان به پشتیبانی از مفاهیم سطح بالای شیء گرا یی مثل Collaboration  ،  Framework  ،  Pattern  و Component اشاره کرد . همچنین UML با استفاده از یک سری مکانیزمهای گسترش پذیر امکان می دهد که بتوان زبانهای مدلسازی جدیدتری ( با گسترش مفاهیم پایه ای موجود ) ایجاد کرد .</p>
<p><strong>روند حرکت به سمت </strong><strong>UML</strong><strong> در جهان :</strong><strong> </strong></p>
<p>قبل از ارائه UML ، زبان مدلسازی استانداردی وجود نداشت و استفاده کنندگان مجبور بودند از میان زبانهای مختلف موجود که هیچ یک تقریباً کامل نبودند و تفاوتهایی با هم داشتند ، یکی را انتخاب کنند . تفاوتهای زبان مدلسازی ، چندان قدرت مدلسازی را افزایش نداده بود ، اما در عوض باعث افول ضعف شیء گرایی و سردرگمی کاربران شده بود .</p>
<p>در چنین شرایطی طبیعی بود که استقبال زیادی از یک زبان مدلسازی استاندارد که ویژگیهای بارز زیادی داشت ، بشود . بسیاری از شرکتها در همان اوایل کار به UML روی آوردند و تعداد دیگری نیز پس از تثبیت UML ، آن را به عنوان استراتژی تولید و مستندسازی خود پذیرفتند .</p>
<p>OMG که کنسرسیومی است متشکل از 700 شرکت معتبر آمریکا ، از UML حمایت کرد و آن را به عنوان زبان مدلسازی استاندارد خود اعلام کرد .</p>
<p>البته علاوه بر استاندارد شدن ، حمایت جداگانه شرکت های بزرگ دنیا مثل   Hewlett-Packard ، I-Logix ، Microsoft ، IBM ، Oracle و بسیاری دیگر ، خود سبب افزایش کاربرد آن در محافل صنعتی و نرم افزاری دنیا گردید . امروزه نیز با ارائه نسخه 3/1 و رفع مشکلات گذشته ، روز به روز بر کاربران آن افزوده می شود .</p>
<p>هرچند UML یک استاندارد برای تشخیص کیفیت نرم افزار نیست ولی استانداردی برای مدلسازی نرم افزار است و لذا مراحل مختلف تعریف ، طراحی و حتی تست     نرم افزار را تسهیل نموده و کار تیمی و ارزیابی ناظران خارجی را آسان و ممکن       می نماید . اگر استفاده از UML در تولید نرم افزار به یک فرهنگ تبدیل گردد ، گام بزرگی به سوی دقت ، کیفیت ، مستندسازی و رعایت اصول مهندسی نرم افزار برداشته شده است .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d9%81%d9%86%d8%a7%d9%88%d8%b1%db%8c-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa/'>فناوری اطلاعات</a>, <a href='http://ehgroup.wordpress.com/category/education/'>آموزش</a>, <a href='http://ehgroup.wordpress.com/category/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/'>آموزش کامپیوتر</a>, <a href='http://ehgroup.wordpress.com/category/internet-education/'>آموزش اینترنت</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/427/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=427&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/09/%d8%b2%d8%a8%d8%a7%d9%86-%d9%85%d8%af%d9%84%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%da%a9%d9%86%d9%88%d8%a7%d8%ae%d8%aa-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>مقدمه ای بر visual Basic 6</title>
		<link>http://ehgroup.wordpress.com/2010/12/09/%d9%85%d9%82%d8%af%d9%85%d9%87-%d8%a7%db%8c-%d8%a8%d8%b1-visual-basic-6/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/09/%d9%85%d9%82%d8%af%d9%85%d9%87-%d8%a7%db%8c-%d8%a8%d8%b1-visual-basic-6/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 20:55:54 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش کامپیوتر]]></category>
		<category><![CDATA[آموزش اینترنت]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=424</guid>
		<description><![CDATA[آموزش نصب برنامه : در ابتدا باید بتوانیم برنامه را به درستی نصب کنیم تا در ادامه بتوانیم با آن کار کنیم و برای نصب برنامه ویژوال بیسیک 6 باید مراحل زیر را طی کرد . نصب نرم افزار visual basic 6.0 برای نصب برنامه ابتدا دیسک برنامه را داخل درایو سی دی رام قرار [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=424&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>آموزش نصب برنامه :</strong><strong> </strong></p>
<p>در ابتدا باید بتوانیم برنامه را به درستی نصب کنیم تا در ادامه بتوانیم با آن کار کنیم و برای نصب برنامه ویژوال بیسیک 6 باید مراحل زیر را طی کرد .</p>
<p>نصب نرم افزار visual basic 6.0<strong><em> </em></strong></p>
<p>برای نصب برنامه ابتدا دیسک برنامه را داخل درایو سی دی رام قرار داده و در ادامه منتظر می مانیم تا auto run برنامه اجرا شود (در صورتی که برنمامه با auto run اجرا نشد در ریشه درایو CD خود بر روی آیکون setup.exe دابل کلیک کنید) برنامه نصب اجرا شده و اولین کادر نمایش میابد .</p>
<p>بازدن دکمه next در کادر دوم دکمه رادیویی I accept the agreement را انتخاب کنید و سپس دکمه next را بزنید و در کادر بعد در قسمت please enter your product&#8217;s ID number:  نیز عدد 1 را ده مرتبه تکرار کنید.</p>
<p>در کادر بعدی دکمه next را زده منتظر می مانیم تا پیغامی ظاهر شود با ظاهر شدن آن دکمه ok را زده و به کادر بعد می رویم در کادر جدید دکمه رادیویی custom را فعال کرده و به کادر بعد می رویم</p>
<p>در این کادر شما مسیر نصب برنامه را انتخاب می کنید و در زیر آن حجمی که برنامه اشغال میکند و فضای خالی دیسک را مشاهده میکنید با زدن دکمه next کادر کوچکی ظاهر میشود که از شما می خواهد تا منتظر بمانید.</p>
<p>در کادری که بعد از مدتی باز می شود بر روی دکمه continue کلیک کنید و در کادر بعد کلید ok را بزنید تا کادر کوچکی در صفحه مانیتور ظاهر شود در کادر بعد شما میتوانید زبان های برنامه نویسی ، اجزای گرافیکی و سایر ابزار مورد نیاز را انتخاب و نصب کنید .</p>
<p>با دکمه continue برنامه نصب را ادمه دهید تا بعد از سه مرحله نصب به درستی انجام گرفت را روءیت کنید با زدن کلید ok کادری باز میشود که در آن شما باید دکمه restart windows را بزنید تا سیستم مجدداً راه اندازی شود</p>
<p>پس از راه اندازی مجدد کادری ظاهر می شود که در آن check boxموجود را غیر فعال می کنید و سپس با زدن کلید next برنامه را از سر گیری می کنید پس از انجام این مرحله در صورت عدم نصب msdn پیغامی در این مورد ظاهر میشود که با زدن دکمه yes از آن عبور می کنیم در ادامه تا آخرین مرحله دکمه next رامیزنیم ودر کادر انتهایی نیز دکمه finish را میزنیم تا نصب برنامه خاتمه یابد.</p>
<p>و برای اجرا از منوی start زبان برنامه نویسی را اجرا میکنیم.</p>
<p><strong>کلیات :</strong></p>
<p>رایانه از دو بخش سخت افزار ونرم افزار تشکیل شده است و کاربر باید بتواند با سخت افزار ارتباط برقرار کند، در این جا نرم افزار به کمک کاربر می آید</p>
<p>نرم افزار ها مجموعه ای از داده ها و دستورالعمل ها هستند که به وسیله برنامه نویس و براساس قواعد مشخص نوشته می شوند .          <strong>نرم افزار ها دارای دسته بندی زیر می باشند:</strong></p>
<p><strong> </strong>سیستم عامل</p>
<p>کامپایلر ها و مفسرها</p>
<p>سیستمی           برنامه ها ی سودمند</p>
<p>انواع نرم افزار           کاربردی</p>
<p>&nbsp;</p>
<p>زبان برنامه نویسی : به مجموعه ای از قواعد و دستورالعمل ها ی تعریف شده زبان برنامه نویسی می گوییم .</p>
<p>تقسیم بندی زبان های برنامه نویسی :</p>
<p>زبان های برنامه نویسی در سه سطح می باشند که در زیر توضیح داده شده اند</p>
<p>ماشین</p>
<p>زبان های سطح پایین</p>
<p>اسمبلی</p>
<p>انواع زبان برنامه نویسی        زبان های سطح میانی             c++وc</p>
<p>فرترن</p>
<p>زبان های سطح بالا                  بیسیک</p>
<p>پاسکال</p>
<p>&nbsp;</p>
<p>سطح زبان های برنامه نویسی بر اساس نزدیکی آنها به زبان 0و1 تعیین می شود به صورتی که زبان های سطح پایین بسیار شبیه زبان ماشین هستند و زبان های سطح بالا به زبان انگلیسی شباهت دارند .</p>
<p>با پا به ارسعه وجود گذاردن رایانه ها زبان ها ی سطح پایین مورد استفاده قرار گرفتند که برنامه نویسی با آنها نیز کار مشکلی بود .با ساخت نسل دوم رایانه ها زبان دیگری به نام اسمبلی به وجود آمد که این زبان نیز به زبان ماشین نزدیک بود و با استفاده ی ساده تر با ارایه نسل سوم رایانه زبان هایی c و فرتن و بیسیک پا به میان گذاشتند که به تدریج به زبان محاوره ی انگلیسی نزدیک تر شدند از آن زمان کیفیت و کمیت زبان ها به کرات تغییر کرده است وبرای کاربردها و محیط های مختلف زبان ها ی مختلفی ارائه شده اند با این که کار با زبان ها ی برنامه نویسی نسل سوم آسان تر شده بود اما در پروژه واقعی باعث سر در گمی می شدند ، بنا بر این روند تکامل ادامه یافت تا زبان های ساخت یافته به وجود آمدند و این مشکل را بر طرف کردند در این روش می توان برنامه را به بخش ها ی کوچک تر تبدیل کرد و از آنها در هر بخشی از برنامه استفاده کرد در زبان هایی چون پاسکال وc و ویژوال بیسیک میتوان از این روش بهره جست ، با تمام محاسن این روش نگهداری اطلاعات زیاد در آن به علت جدای داده ها از بخش های کوچک تر برنامه مشکل است.</p>
<p>با به وجود آمدن برنامه نویسی شئ گرا تحولی در برنامه نویسی به وجود آمد . در این روش می توان داده ها و دستور العمل ها را دسته بندی کرد و در هر قسمت برنامه از آنها استفاده کرد . که به آنها شئ می گوییم و معروفترین برنامه های شئ گرا عبارتند از c++ و ویژوال بیسیک و دلفی که آنها علاوه بر ساخت یافتگی شئ گرا نیز هستند .</p>
<p>نکته : البته زبان ویژوال بیسیک از تمام امکانات شئ گرا مانند c++ برخوردار نیست و فقط میتواند به صورت شئ گرا نیز استفاده شود .</p>
<p>زبان های برنامه نویسی علاوه بر نوع سطح از نظر نوع ترجمه و اجرا نیز دسته بندی می شوند که این دسته بندی شامل دو مفسر ها  و مترجم هاست .</p>
<p>مفسرها :</p>
<p>این زبان ها برنامه را از بالا به پایین خط به خط ترجمه و در صورت عدم وجود خطا آن را  اجرا می کنند و قادر به ایجاد برنامه مستقل (Application) نیستند .</p>
<p>مترجم ها :</p>
<p>بر خلاف مفسر ها این نوع زبان ابتدا تمام برنامه را ترجمه کرده و در صورت عدم وجود خطا آن را اجرا می کند به عبارت دیگر این زبان ها  برنامه ی نوشته شده یا منبع (source ) را به زبان ماشین ترجمه می کنند که به آن مقصد ( object ) می گوییم و سپس آن را اجرا می کنند از مزایای این زبان این است که می توان قبل از اجرا خطا ها را رفع کرد و از برنامه نوشته شده فایل اجرایی مستقل ساخت چند نمونه از این زبان ها عبارتند از فرترن وc و پاسکال که زبان ویژوال بیسیک در دو دسته ی فوق جای می گیرد .</p>
<p><strong>آشنایی با چند زبان سطح بالا :</strong><strong></strong></p>
<p>زبان برنامه نویسی فرترن: این زبان از اولین زبان ها ی برنامه نویسی است و در برنامه نویسی های علمی با دقت بالا استفاده میشود .</p>
<p>زبان برنامه نویسی پاسکال: این زبان یک زبان ساخت یافته است که از آن در برنامه نویسی علمی تجاری استفاده میشود.</p>
<p>زبان برنامه نویسی c  : این زبان نیز ساخت یافته است و از قابلییت های فراوانی بر خوردار است و به عبارتی زبان برنامه نویسی سیستم است و در نسخه دیگر آن یعنی c++ قابلییت شئ گرایی نیز موجود است. و برایش نسخه ها ی دیگر همچون visual c++ و زc#.net  نیز به بازار آمده است .</p>
<p>زبان برنامه نویسی ویژوال بیسیک: این زبان در واقع حاصل توسعه ی زبان بیسیک است که برای گسترش برنامه نویسی بین دانش آموزان و دانش جویا ن عر ضه شده است و دار ای نسخه ها ی متفاوتی هم چون GWBASIC ( QUICK BASIC یا QBASIC و TURBOBASIC ) ارایه گردیده و با ظهور سیستم عامل ویندوز نیز خود ویژوال بیسک و هم اکنون نیز VISUAL BASIC . NET که کامل ترین نسخه ی آن است توسط شرکت مایکروسافت (MICROSOFT   ) به بازار رایانه ی جهان ارایه گردیده است .</p>
<p><strong>تاریخچه ی اجمالی ویژوال بیسیک از آغاز تاکنون :</strong><strong></strong></p>
<p>زبان بیسیک ابتدایی در حدود سال 1964 در کالج دارت موث به وسیله آقایان توماس کورتز و جان کمنی به وجود آمد .</p>
<p>با ظهور سیستم عامل 95 و 98 فقدان یک زبان آسان و قدرتمند برای استفاده در ویندوز مشهود شد از این رو در سال 1991 مایکروسافت با امکانات یک زبان برنامه نویسی قدرتمند و حرفه ای د ر ویندوز ارایه کرد . و در نهایت نسخه تکامل یافته آن به نام ویژوال بیسیک دات نت برای نسخه ی جدید ویندوز طراحی و ارایه شده است.</p>
<p>در ادامه به توصیف ویژگی های ویژوال بیسیک می پردازیم ç</p>
<p>ویژگی های ویژوال بیسیک :</p>
<p>یکی از مهم ترین ویژگی های زبان ویژوال بیسیک رابط گرافیکی آن است . رابط گرافیکی GUI ) ) در ویژوال بیسیک یکی از کامل ترین رابط های گرافیکی است که به وسیله ی آن می توان به راحتی برنامه های تحت ویندوز را ارایه کرد و از دیگر قابلیت ها ی این رابط گرافیکی قابلیت طراحی سریع برنامه (RAD )یکی دیگر از ویژگی های آن است. منظور از طراحی آسان یا RAD در ویژوال بیسیک این است که طراحی و تولید برنامه ها در این زبان به دلیل وجود ابزار های مناسب به سرعت انجام میشود . بنا بر این هزینه تولید در آن به طور قابل توجهی کاهش می یابد .</p>
<p>ویژگی دیگر زبان ویژوال بیسیک ویژگی مدیریت رویداد ها و اتفاقات می باشد . این زبان یک زبان روداد گراست . مزیتی که این زبان ها دارند این است که بر نامه نویس میتواند از قبل برای رویدادهایی هم چون کلیک های مأوس و صفحه کلید و رویدادهای دیگر نیز برنامه ریزی کند .</p>
<p>یکی دیگر از ویژگی های ویژوال بیسیک داشتن محیط IDE است . این محیط به برنامه نویس اجازه می دهد تا برنامه ی خود را به سهولت و طراحی ، تولید و خطا یابی و اجرا کند . این امکانات به وسیله ابزارهای متعددی که به صورت مجتمع در رابط گرافیکی ویژوال بیسیک قرار داده شده است قابل دسترسی است .</p>
<p>دیگر ویژگی این زبان برنامه نویسی دسترسی به برنامه های کاربردی ویندوز به وسیله توابع API است . این توابع از توابع داخلی</p>
<p>ویندوز هستند که برنامه را قادر میسازد تا از امکانات داخلی ویندوز استفاده نماید .</p>
<p>از دیگر جنبه هایی که تفاوت شگرفی بین این نسخه زبان ویژوال بیسیک و سایر نسخه ها ایجاد میکند توانایی برنامه نویسی شئ گرا است که توقعات یک برنامه نویس را نسبت به تعریف اشیاء وکلاس ها برطرف میکند . در برنامه نویسی ساخت یافته بر نامه ها با استفاده از رویه ها تقسیم بندی می شود و در برنام نویسی شئ گرا با استفاده از اشیا می توان مجموعه از دستورالعمل ها را در عنصر واحدی به نام شئ قرار داد .</p>
<p>ویژگی دیگر این زبان در نحوه تصحیح و برخورد با اشتباهات است که در هنگام طراحی یا اجرا برنامه رخ می دهد . که ویژوال بیسیک در زمینه کشف خطاهای نوشتاری و منطقی برنامه امکانات بسیار مناسبی در اختیار برنامه نویس میدهد و به وی امکان می دهد تا با استفاده از فرامین خطاهای غیر قابل پیش بینی را نیز در هنگام اجرا تشخیص داده و قدم در راه رفع آنها بگزارد .</p>
<p>از آغاز ارائه ویژوال بیسیک نسخه های متفاوتی از آن ارایه شده که در نسخه های آموزشی آن کاربر قابل به ساخت برنامه های اجرایی از نوع exe و dll را به همراه استفاده از کنترل های متعدد فراهم می آورد.  نگارش حرفه ای آن علاوه بر ویژگی های آموزشی آن امکان استفاده از کنترل های مربوط به بانک های اطلاعاتی ، کنترل های ActiveX و هم چنین به کار گیری ویزارد های مناسب و قابلیت استفاده در شبکه های محلی و استفاده از زبان SQL و تولید و طراحی برنامه های کاربردی با حجم زیاد را نیز دارد .</p>
<p>نحوه ی اجرای برنامه ویژوال بیسیک :</p>
<p>قبل از هر گونه اقدام برای یک پروژه باید نحوه اجرای برنامه و اجزای موجود در پنجره ی آن را فرا گرفت . برای اجرای برنامه به منوی استارت رفته و در all programs به دنبال Microsoft visual</p>
<p>Basic 6.0 بگردید و در آن فایل اجرای برنامه را با دابل کلیک اجرا کنید که در این صورت پنجره اصلی برنامه به همراه کادر new project نمایش داده می شود . در کادر محاوره ی new project سه زبانه همراه سه دکمه ویک کادر و لیست مشاهده می شود . در این کادر بر روی سربرگ new کلیک کنید ودر کادر لیست موجود در آن آیکن standard EXE را انتخاب کنید وسپس دکمه ی open را برگزینید . پروژه هایی که از نوع standard EXE هستند به شما اجازه ساخت یک برنامه مستقل برای اجرا در ویندوز را می دهند که به آنها Application می گویند را می دهند .</p>
<p>معرفی اجزای موجود در برنامه :</p>
<p>پنجره طراحی فرم : شما می توانید به وسیله این پنجره که در قسمت مرکزی برنامه ویژوال بیسیک قرار دارد تغییرات لازم را بر روی فرم برنامه که داخل آن است اعمال کرد .</p>
<p>شما می توانید به کمک زدن دکمه view object در پنجره پروژه و یا کلید های ترکیبی shift + F7  یا انتخاب گزینه object از منوی view فعال کنید .</p>
<p>پنجره پروژه (Project Explorer ) : در قسمت بالا و سمت راست پنجره ویژوال بیسیک پنجره یا مرور گر پروژه قرار دارد که اجزای تشکیل دهنده برنامه مانند پروژه ها و فرم ها را به صورت ساختار درختی نمایش می دهد . در این قسمت برنامه نویس قادر به مدیریت اجزای داخلی پروژه می باشد . و این پروژه را می توانید با استفاده ازدکمه Project Explorer در نوار ابزار استاندارد ، یا فشردن</p>
<p>کلید ترکیبی ctrl +r یا انتخاب گزینه Project Explorer از منوی View فعال کنید .</p>
<p>پنجره خواص (Properties Windows) : در زیر پنجره ی پروژه قرار گرفته وبه وسیله ی آن می توانید خواص و ویژگی های مربوط به فرم ها و کنترل ها را مشاهده و تنظیم کنید . پنجره خواص را می توانید با استفاده از دکمه Properties Windows در نوار ابزار استاندارد یا فشردن کلید F4 یا انتخاب گزینه ی Properties  Windows از منوی View فعال کنید .</p>
<p>نکته : در پنجره خواص با استفاده از دکمه های Alphabetic و categorized می توانید نحوه نمایش اسامی خواص را به صورت الفبایی یا موضوعی تعیین کنید و زمانی که یک خاصیت را برمی گزینید در پایین پنجره خواص توضیحاتی در مورد آن به صورت خلاصه نوشته می شود .</p>
<p>پنجره تعیین موقعیت (Form Layout Windows ) : که در زیر پنجره خواص قرار دارد و مکان قرار گیری فرم را برروی دسک تاپ نمایش می دهد و به علاوه می توان به کمک آن موقعیت پنجره را تغییر داد .</p>
<p>پنجره تعیین موقعیت را می توان با استفاده از دکمه Form Layout در نوار ابزار استاندارد یا انتخاب گزینه Form Layout Windows از منوی View  فعال کنید .</p>
<p>جعبه ابزار (Toolbox ) : در سمت چپ پنجره ویژوال بیسیک و طراحی فرم ، جعبه ابزار (Toolbox ) حاوی آیکن کنترل های مختلف</p>
<p>وجود دارد . جعبه ابزار را می توان با استفاده از دکمه Toolbox در نوار ابزار استاندارد یا انتخاب گزینه Toolbox ازمنوی View  فعال کرد .</p>
<p>کلیات پنجره :</p>
<p>در واقع اصلی ترین جزء تشکیل دهنده ی یک برنامه در ویژوال بیسیک پروژه است که از اجزای کوچک تری مانند فرم ها ، ماژول کد و ماژول کلاس تشکیل می شوند . فرم ها در واقع همان پنجره ها در ویندوز هستند و اطلاعات مربوط به شکل ظاهری برنامه و کنترل های موجود در آن را نگهداری می کنند . از کنترل ها جهت هدایت عملکرد برنامه ، انجام عملیات و تنظیمات مورد نظر در برنامه ها استفاده می شود ، عناصری مانند دکمه های فرمان ،کادرهای متن ، کادرهای لیست ، دکمه های انتخاب و کادرهای علامت نمونه از کنترل هستند و هر کدام از آنها یک یا چند ویژگی دارندکه به آن خاصیت می گویند که ما می توانیم  آنها را در پنجره ی خواص تنظیم نما ییم خواص و ویژگی یک فرم یا کنترل می تواند از داده های عددی یا رشته ای تشکیل شده باشد. ماژول های کد ، قطعاتی شامل کد ههستند که دستور العمل های مورد نیاز برنامه در آن ها قرار دارد . ماژول های کلاس نیز مانند ماژول های کد شامل قطعت کد هستند و از آنها در برنامه نویسی شئ گرا برای تعریف انواع کلاس ها استفاده می شود .</p>
<p>آشنایی با نحوه قرار دادن کنترل ها :</p>
<p>Toolbox مکانی است که در آن کنترل های متفاوتی وجود دارد تا برنامه نویس بتواند به راحتی به آنها دسترسی داشته باشد .</p>
<p>برای قرار دادن یک کنترل بر روی فرم ابتدا بر روی آیکن آن در جعبه ابزار کلیک کنید و سپس به داخل پنجره فرم رفته و با عمل دراگ کنترل مربوطه را داخل فرم جای می دهیم یا می توانید در جعبه ابزار روی آیکن کنترل مورد نظر دابل کلیک کنید ، سپس در پنجره خواص و با استفاده از خواص width و height عرض و ارتفاع  کنترل را تنظیم کنید . در هنگام ایجاد کنترل می توانید عرض ، ارتفاع و مختصات محل قرار گیری کنترل را در انتهای سمت راست نوار ابزار استاندارد مشاهده کنیدهم چنین می توان به کمک دراگ روی گیره های مربعی اطراف کنترل تنظیم کنید .</p>
<p>نحوه ذخیره سازی پروژه ها و فرم ها :</p>
<p>برای ذخیره سازی فرم در نوار منوی پنجره ویژوال بیسیک ابتدا روی منوی File و سپس گزینه Save Form1 As… کلیک کنید . کادر محاوره Save File As برای ذخیره سازی فرم ، نمایش داده می شود . همان طور که در این کادر محاوره مشاهده می کنید ، پسوند فایل فرم frm است .</p>
<p>البته فرم ها را به روش های زیر نیزمی توانید save کنید :</p>
<p>الف) در پنجره پروژه ، آیکن فرم را انتخاب کرده و روی آن کلیک راست کنید ، سپس گزینه Save Form1 As… را بر گزینید</p>
<p>ب) گزینه Save Form1 را از منوی File انتخاب کنید یا از کلید ترکیبی Ctrl + S استفاده کنید .</p>
<p>برای ذخیره سازی پروژه از منوی File گزینه Save Project As… را می زنیم . و می بینید که پروژه ها با پسوند vbp ذخیره می</p>
<p>شوند .</p>
<p>برای ذخیره پروژه ها می توان از سه روش زیر استفاده کرد :</p>
<p>الف) در پنجره پروژه آیکن پروژه را انتخاب کرده و روی آن کلیک راست کنید و سپس گزینه Save Project را برگزینید .</p>
<p>ب) گزینه Save Project را از منوی File انتخاب کنید .</p>
<p>ج) روی دکمه Save در نوار ابزار استاندارد کلیک کنید .</p>
<p>نکته : هر پروژه دارای یک خاصیت Name است که به وسیله ی آن امکان دسترسی و شنا سایی پروژه را امکان پذیر می کند برای تغییر نام یک پروژه می توانید روی منوی Project کلیک کنید و سپس گزینه Project Properties… را برگزینید تا کادر محاوره ای Project Properties برای تعیین یک عبارت به عنوان نام پروژه می توانید از حروف الفبای انگلیسی ، ارقام صفر تا 9 و کاراکتر خط زیر که باید با یک کاراکتر حرفی آغاز شود زیرا استفاده از کاراکترهای نقطه ، فضای خالی و علامت – مجاز نیست . دقت کنید برای تغییر نام در این کادر در سربرگ General عبارت مورد نظر را تایپ کنید و در پایان روی دکمه Ok کلیک کنید .</p>
<p>نحوه باز خوانی فایل پروژه وفرم :</p>
<p>برای این کار می توانید از طرق زیر عمل کنید :</p>
<p>الف) برای این کار می توانیم برروی فرم یا پروژه ی مورد نظر دابل کلیک نمایید تا در محیط برنامه ی ویژوال بیسیک قرار بگیرد .</p>
<p>ب) می توانید در هنگام باز کردن پروژه در کادر New Project به سربرگ Recent رفته ودر آن جا مسیر فایل را اجرا کرده و فایل مورد نظر را انتخاب کرده و کلید Open را فشار دهید .</p>
<p>پ) می توانید بعد از باز گشایی برنامه از نوار ابزار استاندارد دکمه ی Open را فشار دهید و فایل مورد نظر را انتخاب و با زدن کلید Open آن را وارد محیط برنامه نمایید .</p>
<p>ت) می توانید به منوی فایل رفته و گزینه ی Open را از آن جا انتخاب نماید و فایل مورد نظر را فراخوانی نمایید .</p>
<p>&nbsp;</p>
<p>مرجع :</p>
<p>کتاب برنامه نویسی (الگوریتم ، فلوچارت و زبان VB )</p>
<p>موءلف : مهندس منصور ولی نژاد</p>
<p>انتشارات : دیباگران تهران</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/education/'>آموزش</a>, <a href='http://ehgroup.wordpress.com/category/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/'>آموزش کامپیوتر</a>, <a href='http://ehgroup.wordpress.com/category/internet-education/'>آموزش اینترنت</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/424/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=424&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/09/%d9%85%d9%82%d8%af%d9%85%d9%87-%d8%a7%db%8c-%d8%a8%d8%b1-visual-basic-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>(PLC logo)</title>
		<link>http://ehgroup.wordpress.com/2010/12/09/plc-logo/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/09/plc-logo/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 20:52:34 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[فناوری اطلاعات]]></category>
		<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش کامپیوتر]]></category>
		<category><![CDATA[آموزش اینترنت]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=421</guid>
		<description><![CDATA[PLC مخفف عبارت(Programmable Logic Controller ) می باشد یعنی کنترل کننده منطقی برنامه پذیر این سیستم وسیله ای است که متناسب به برنامه ای که دریافت می کند وظیفه ای را انجام می دهد . به عبارت دیگر PLC نوعی کامپیوتر است که برنامه ای خاص را اجرا می کند . با حضور PLC تجهیزات [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=421&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>PLC</strong><strong> مخفف عبارت(</strong><strong>Programmable Logic Controller</strong><strong> ) می باشد یعنی کنترل کننده منطقی برنامه پذیر این سیستم وسیله ای است که متناسب به برنامه ای که دریافت می کند وظیفه ای را انجام می دهد . به عبارت دیگر </strong><strong>PLC</strong><strong> نوعی کامپیوتر است که برنامه ای خاص را اجرا می کند . با حضور </strong><strong>PLC</strong><strong> تجهیزات و قطعات استفاه شده در کنترل فرآیندهای صنعتی و خطوط تولید تغییر نمود و مدارهای رله کنتاکتوری و سخت افزاری حالت جامد کم کم جای خود را به کنترل کننده های منطقی برنامه پذیر یعنی </strong><strong>PLC</strong><strong> ها دادند بدون تردید </strong><strong>PLC</strong><strong> مهمترین و پر کاربردترین وسیله اتوماسیون در صنایع مدرن امروزی است . در ماشینها و خطوط تولید جدید ، کمتر موردی را می توان یافت که از </strong><strong>PLC</strong><strong> استفاده نشده باشد .در حقیقت این وسیله بسیار قابل انعطاف که خود یک کنترل کننده کامل است به عنوان قطعه ای برنامه پذیر در صنایع گوناگون کاربرد وسیعی یافته است به گونه ای که با پیشرفت تکنولوژی و حضور اتوماسیون در عرصه صنعت در طراحی کنترل کننده ها و مدارها فرمان خطوط تولید و فرآیندهای صنعتی استفاده از مدارهای فرمان قدیمی منسوخ گردیده و در اکثر مراکز صنعتی از کنترل کننده های منطقی قابل برنامه ریزی استفاده می شود . </strong><strong> </strong></p>
<p><strong> </strong><strong> </strong></p>
<p><strong> </strong><strong> </strong></p>
<p><strong>برای بررسی نقش بهتر این کنترل کننده هابه بررسی آنها در پروسه های کوچک با سرعت کارایی نسبتا متوسط می پردازیم:</strong><strong> </strong></p>
<p><strong>در پروسه های با </strong><strong>I/O</strong><strong> های محدودکه نیاز به برنامه نویسی پیچیده ندارد می توانیم از کنترل کننده ها با برنامه نویسی ساده (</strong><strong>LOGO</strong><strong>) استفاده کنیم. </strong><strong> </strong></p>
<p><strong>LOGO</strong><strong> یک</strong><strong>miniPLC</strong><strong> ازخانواده</strong><strong>PLC</strong><strong> های </strong><strong>SIEMENS</strong><strong> است که با همان منطق </strong><strong>PLC</strong><strong> های </strong><strong>S5</strong><strong> و </strong><strong>S7</strong><strong> برنامه نویسی می شود مثلا زبان برنامه نویسی </strong><strong>LADDER</strong><strong> و</strong><strong>CSF</strong><strong> یا </strong><strong>FBD S5</strong><strong> و </strong><strong>S7</strong><strong> کاملا شبیه زبان برنامه نویسی </strong><strong>LADDER</strong><strong> و </strong><strong>FBD , LOGO</strong><strong> است منتهی </strong><strong>LOGO</strong><strong> قدری کوچکتر از یک </strong><strong>PLC</strong><strong> است و قدرت </strong><strong>cpu</strong><strong> آن کمتر و تعداد ورودی و خروجی های کمتری دارد البته به همان نسبت نیز </strong><strong>LOGO</strong><strong> ارزانتر از یک </strong><strong>PLC</strong><strong> است . </strong><strong> </strong></p>
<p><strong>LOGO</strong><strong> دارای کاربردهای عملی زیادی است که هم در مصارف صنعتی و هم در مصارف خانگی مورد استفاده قرار می گیرد. صدها و هزاران </strong><strong>LOGO</strong><strong> در حال حاضر در تمام نقاط مختلف جهان مورد استفاده قرار می گیرد و تمام کسانی که از آن استفاده کرده اند کاملا راضی هستند. از آنجا که روش برنامه نویسی </strong><strong>LOGO</strong><strong> آسان است کاربران آن روز به روز بیشتر افزایش می یابند. ساختار ماژولی و مدلهای مختلف برای ولتاژهای مختلف باعث شده یک قابلیت انعطاف پذیر برای انجام همه نوع کارها فراهم کند. </strong><strong> </strong></p>
<p><strong>خصوصیات ذکر شده برای </strong><strong>LOG</strong><strong> آنرا برای اتوماسیون پروسه های کوچک ومتوسط بسیار مناسب ساخته است چون هم هزینه هارا کاهش می دهدو هم به راحتی برنامه نویسی می شود از این رو در سطح استان که صنعت نوپایی دارد و اکثر پروسه ها به پروسه های متوسط و کوچک ختم می شودو استفاده از </strong><strong>PLC</strong><strong> در چنین پروسه هایی اصلاً معقول و مقرون به صرفه نیست </strong><strong>LOGO</strong><strong> بی نظیر است و زمینه های کاری فراوانی می تواندداشته باشدو این مزیت </strong><strong>LOGO</strong><strong>نسبت به </strong><strong>PLC</strong><strong> است . از طرفی </strong><strong>LOGO</strong><strong> چون دقیقا با همان منطق </strong><strong>PLC</strong><strong> برنامه ریزی می شود یادگیری </strong><strong>LOGO</strong><strong> بستر بسیار مناسبی برای یادگیری </strong><strong>PLC</strong><strong> های </strong><strong>S5</strong><strong> و </strong><strong>S7</strong><strong> باشد. </strong><strong> </strong></p>
<p><strong>با استفاده از نرم افزار</strong><strong>LOGO SOFT COMFORT</strong><strong> به راحتی می توانیم طرح مدارمان را قبل از </strong><strong>load</strong><strong> شدن روی دستگاه ببینیم و با استفاده از </strong><strong>simulation</strong><strong> نحوه عملکرد آن را تست کنیم و بعد از مطمئن شدن و بر طرف کردن خطاها و مشکلات آن را روی دستگاه </strong><strong>load</strong><strong> کنیم و ورودی-خروجی ها را به آن متصل کنیم. </strong><strong></strong></p>
<p><strong> </strong><strong></strong></p>
<p><strong> </strong><strong></strong></p>
<p><strong> </strong><strong></strong></p>
<p><strong> </strong><strong></strong></p>
<p><strong> </strong><strong></strong></p>
<p><strong>LOGO</strong><strong> دارای کاربردهای صنعتی و خانگی فراوانی است که در ادامه تعدادی از این کاربردها بیان می شود. </strong><strong></strong></p>
<p><strong> </strong><strong></strong></p>
<p><strong>نمونه هایی از کاربردهای صنعتی </strong><strong>LOGO</strong><strong> : </strong><strong></strong></p>
<p><strong>1. </strong><strong>کنترل بویلر ها</strong><strong> </strong><strong></strong></p>
<p><strong>2. </strong><strong>سیستمهای گرم کننده , سرد</strong><strong> </strong><strong>کننده و عوض کننده شرایط هوایی</strong><strong> </strong><strong></strong></p>
<p><strong>3. </strong><strong>سیستمهای اندازه گیری سطح</strong><strong> </strong><strong></strong></p>
<p><strong>4. </strong><strong>کنترل نوار نقاله</strong><strong> </strong><strong></strong></p>
<p><strong>5. </strong><strong>ماشینهای برش دهنده</strong><strong> </strong><strong></strong></p>
<p><strong>6. </strong><strong>ماشینهای الکترولیز و پاک</strong><strong> </strong><strong>سازی</strong><strong> </strong><strong></strong></p>
<p><strong>7. </strong><strong>کنترل پمپها و دریچه ها و</strong><strong> </strong><strong>موتور ها</strong><strong> </strong><strong></strong></p>
<p><strong>8. </strong><strong>زیرمجموعه</strong><strong> </strong><strong>هوشمند در شبکه</strong><strong><br />
As-interface </strong><strong></strong></p>
<p><strong>9. </strong><strong>کنترل چراغهای</strong><strong> </strong><strong>راهنمایی و رانندگی</strong><strong> </strong><strong></strong></p>
<p><strong>10. </strong><strong>کنترل انبار های</strong><strong> </strong><strong>بزرگ ( سیلو ها</strong><strong> ) </strong><strong></strong></p>
<p><strong>11. </strong><strong>ماشینهای</strong><strong> </strong><strong>جوشکاری</strong><strong> </strong><strong></strong></p>
<p><strong>12. </strong><strong>سکو های پرتاپ</strong><strong> </strong><strong></strong></p>
<p><strong>نمونه هایی از کاربردهای خانگی </strong><strong>LOGO</strong><strong> :</strong><strong> </strong><strong></strong></p>
<p><strong>1. </strong><strong>سیستمهای کنترل</strong><strong> </strong><strong>گلخانه</strong><strong> </strong><strong></strong></p>
<p><strong>2. </strong><strong>اتاق های</strong><strong> </strong><strong>خورشیدی</strong><strong> </strong><strong></strong></p>
<p><strong>3. </strong><strong>سیستمهای آبیاری</strong><strong> </strong><strong>و بذر افشانی</strong><strong> </strong><strong></strong></p>
<p><strong>4. </strong><strong>کنترل دربها و</strong><strong> </strong><strong>دروازه های بزرگ صنعتی</strong><strong> </strong><strong></strong></p>
<p><strong>5. </strong><strong>زنگ های خطر و</strong><strong> </strong><strong>هشدار دهنده</strong><strong> </strong><strong></strong></p>
<p><strong>6. </strong><strong>سیستمهای</strong><strong> </strong><strong>گرمادهی و تهویه</strong><strong> </strong><strong></strong></p>
<p><strong>7. </strong><strong>مدارهای روشنایی</strong><strong> </strong><strong>فلئورسنت</strong><strong> </strong><strong></strong></p>
<p><strong>8. </strong><strong>کنترل روشنایی</strong><strong> </strong><strong>در آپارتمانها , راه پله ها , ویترین ها , خیابانها</strong><strong> </strong><strong></strong></p>
<p><strong>LOGO</strong><strong> برای تمام محیط ها مناسب است. یعنی با شرایط دمایی و رطوبتی نیز سازگار است. در روی دریاهای آزاد ( در ساختار کشتی ها و زیردریایی ها ) مورد استفاده قرار می گیرد. زمانی که مجبور به کار در شرایطی باشیم که احتیاج به مقاومت نوسانی یا سازگاری الکترومغناطیسی یا شرایط آب و هوایی خاص مثل رطوبت داریم </strong><strong>LOGO</strong><strong> نیاز ما را برطرف می کند. </strong><strong></strong></p>
<p><strong>نکته مهم دیگر اینکه از اختلالات رادیویی جلوگیری می کند. قابلیت حذف نویز را دارد. به همین علت در ساختمان میکسر ها مورد استفاده قرار می گیرد. </strong><strong></strong></p>
<p><strong>آنچه در این مقاله ذکر شد مقدمه ای کوتاه جهت معرفی علم اتوماسیون و </strong><strong>PLC</strong><strong> بود امیدواریم هر روز شاهد رشد روز افزون این علم در سطح استان و کشور باشیم . </strong><strong></strong></p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d9%81%d9%86%d8%a7%d9%88%d8%b1%db%8c-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa/'>فناوری اطلاعات</a>, <a href='http://ehgroup.wordpress.com/category/education/'>آموزش</a>, <a href='http://ehgroup.wordpress.com/category/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/'>آموزش کامپیوتر</a>, <a href='http://ehgroup.wordpress.com/category/internet-education/'>آموزش اینترنت</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/421/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=421&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/09/plc-logo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>مفاهیم برنامه نویسی شیئ گرا (OOP-Object Oriented Programming):</title>
		<link>http://ehgroup.wordpress.com/2010/12/09/%d9%85%d9%81%d8%a7%d9%87%db%8c%d9%85-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%b4%db%8c%d8%a6-%da%af%d8%b1%d8%a7-oop-object-oriented-programming/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/09/%d9%85%d9%81%d8%a7%d9%87%db%8c%d9%85-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%b4%db%8c%d8%a6-%da%af%d8%b1%d8%a7-oop-object-oriented-programming/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 20:49:15 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[فناوری اطلاعات]]></category>
		<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش کامپیوتر]]></category>
		<category><![CDATA[آموزش اینترنت]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=418</guid>
		<description><![CDATA[در دنیای ما، هر شیئی (Object)، مثل صندلی، میز، دیوار و &#8230; خلاصه همه اشیایی که ما دور و بر خودمون می بینیم، دارای صفاتی (Property) هستن که البته در بسیاری موارد تغییرپذیر هم هستن. برای اینکه منظورم رو بهتر بفهمید، یه مثال کوچک می زنم: مثلاً، صندلی یکی از اشیا هست و برخی صفات [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=418&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>در دنیای ما، هر شیئی (Object)، مثل صندلی، میز، دیوار و &#8230; خلاصه همه اشیایی که ما دور و بر خودمون می بینیم، دارای صفاتی (Property) هستن که البته در بسیاری موارد تغییرپذیر هم هستن. برای اینکه منظورم رو بهتر بفهمید، یه مثال کوچک می زنم: مثلاً، صندلی یکی از اشیا هست و برخی صفات اون مثل :رنگ، شکل و &#8230; تغییر پذیرند، مثلاً ما می تونیم به صندلی هر رنگی که بخوایم بزنیم. همچنین ما می تونیم اگه در یه جایی از خونه، صندلی لازم داشتیم، صندلی قبل رو اونجا ببریم و استفاده لازم رو از اون بکنیم، بدون اینکه صندلی دیگه ای ساخته باشیم. بنابراین، حتی زندگی ما نیز از جهاتی به برنامه نویسی شیئ گرا شباهت داره. در برنامه نویسی به این شیوه نیز، برنامه ی ما به قطعات کوچکتری تقسیم می شه که هم کنترل برنامه آسون تر می شه و خوانایی برنامه برای برنامه نویس بیشتر می شه. همچنین ما می تونیم از شیئی که قبلاً در برنامه ساختیم، در برنامه های دیگر هم استفاده کنیم، بدون اینکه دوباره نیاز به کلی برنامه نویسی برای ساختن دوباره شیئ داشته باشیم. بذارید مثالی هم از کاربرد اشیا بزنم: مثلاً شما در برنامه ای یک نوع کنترل، مانند دکمه، ولی با این فرق که کار دیگه رو انجام بده، می سازید. شما می تونید از این کنترلی که ساختید، مثلاً همان دکمه بخصوص، در برنامه های دیگرتون هم استفاده کنید، بدون اینکه دوباره اون رو تعریف کنید یا براش کد بنویسید، مثلاً در هر برنامه ای که کتنرل خودتون رو نیاز داشتید، این کنترل (در VB)، مانند کنترل های دیگه به جعبه ابزار اضافه می شه و می تونید اون مانند یه دکمه خود VB روی فرم قرار بدید و از اون استفاده کنید. برای نمونه، من یک کنترل ساعت درست کرده بودم که در برنامه هایی که نیاز به ساعت داشنتد، اون از جعبه ابزار کشیده در یه جای خوب روی فرم قرار می دادم و ازش مانند کنترل های دیگه استفاده می کردم. بعداً در بخش کاربردی VB، نحوه ساخت و ایجاد اشیا و کنترل های جدید رو به تفصیل شرح خواهم داد. البته این بخش رو هم ساده و در حد مبتدی شرح دادم که امیدوارم که منظورم رو فهمیده باشید.</p>
<p>بعد از خود این اشیا، به تعریف صفات اشیا می پردازیم. در بالا گفتیم که اشیا دارای صفاتی هم هستند که گاه صفاتی تنها مختص آن شیئ، و گاهی اشیا در برخی صفات مشترک هستن. به طور مثال، یک شیئ دکمه فرمان (Command Button)، می تواند صفاتی همچون: رنگ، متن درون آن، رنگ قلم، نوع فونت و&#8230; باشد که هریک قابل تغییراند، یا در زمان اجرای برنامه، یا در زمان طراحی برنامه. در VB، برای دسترسی به صفات یک شیئ به بخش Properties هر شیئ یا کنترل مراجعه می کنیم. البته این کار در هنگام طراحی شکل برنامه امکانپذیره. خوب حالا شاید یه برنامه نویس خواست مثلاً در هنگام اجرای برنامه، مثلاً وقتی کاربر روی یه دکمه کلیک کرد، رنگ پس زمینه فرم رو، که یکی از صفات یا ویژگی های فرمه، تغییر بده. پس باید چکار کنه؟ باید این حالت رو در بخش کدنویسی پیاده سازی کرد. در بخش کدنویسی VB، برای دسترسی به ویژگی های یک کنترل، از قراردادن نقطه (.) پس از نام کنترل یا شیئ استفاده می کنیم. مانند:</p>
<p>&nbsp;</p>
<p>Label1.BackColor</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>در مثال بالا، ما خواسته ایم که به صفت یا ویژگی رنگ پس زمینه یا BackColor شیئ Label1، دسترسی پیدا کنیم و اون رو تغییر بدیم. مثلاً BackColor رو مساوی یه رنگ دلخواه قرار بدیم:</p>
<p>&nbsp;</p>
<p>Label1.BackColor=Color.Red</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>در این جا، ما خاصیت رنگ پس زمینه Label رو مساوی قرمز قرار دادیم. ضمناً بگم که این مثال ها رو فقط در ذهن خودتون برای یادگیری به خاطر بسپارید و الا من این مثال ها رو برای درک بهتر زدم، چون این خط کدها به تنهایی در VB کاربردی ندارن.<br />
مفاهیم کلی (Event,Method, Procedure, Variable, Constant):</p>
<p>&nbsp;</p>
<p>فکر می کنم فعلاً همین اندازه مفاهیم در سطح شما کافی باشه. بقیه مفهوم ها رو در طول دروس به تفصیل شرح میدم.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>رویداد (Event): به هر عملی که از سوی کاربر بر روی یکی از کنترل ها یا اشیا برنامه صادر می شه، یک رویداد می گن. در VB، کنترل ها می تونن نسبت به رویداد های مختلفی از جمله کلیک، بارگذاری، تغییر و &#8230; واکنش های متفاوتی رو نشون بدن. مثلاً یه تکست باکس رو (Text Box)، می توان اون رو جوری کدنویسی کرد که اگر روی آن کلیک شد یه پیغام نشون بده، و در عین حال می توان به رویدادی غیر از کلیک، مانند تغییر، کدی رو نوشت که همان کنترلی که با کلیک، پیغام نشون می داد، با تغییر کردن متن درون آن، مثلاً جمع دو عدد رو نشون بده. پس زبان VB، در بعضی موارد، بسیار انعطاف پذیر هم هست.</p>
<p>&nbsp;</p>
<p>متد (Method): در VB، دستوالعمل ها و توابع به دو دسته تقسیم می شوند: دسته اول، دستورالعمل ها و توابع کلی هستن و دسته دوم، دستورالعمل ها و توابعی هستند که بر روی شیئ یا عنصر خاصی، اعمال میشن. به این دستورالعمل ها، که نحوه دستیابی به آن ها مانند ویژگی هاست، متد یا صفات اجرایی  می گویند.</p>
<p>&nbsp;</p>
<p>روال (Procedure): در VB، هر رویدادی روال مربوط به خودش را دارد. به مجموعه دستورالعمل هایی که با رخ دادن یک رویداد، به طور خودکار اجرا می شوند، روال یا زیربرنامه می گویند.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>متغیر(Variable): به مکان هایی از حافظه که نوعی داده رو در خود ذخیره می کنن، متغیر می گن. این داده ها در طول برنامه قابل تغییر هستند. یادتون باشه برنامه نویسی بدون متغیر، تقریباً امکان پذیر نیست. نحوه تعریف متغیر ها و انتساب یک نوع داده  رو به اون، بعداً شرح می دم.</p>
<p>&nbsp;</p>
<p>ثابت(Constant): آنچیز که عیان است، چه حاجت به بیان است! از اسمش معلومه که نقطه مقابل متغیره، یعنی این هم داده ها رو با انوع معلومی نگه داری می کنه، اما با این تفاوت که داده های این نوع در طول برنامه قابل تغییر نیست. یعنی داده ها که انواع ذخیره می کنند، توسط خطای ناآگاهانه برنامه نویس که ممکنه رخ بده، هیچ تغییری نمی کنه. مثلاً در یک برنامه ای می خواهیم عدد پی (pi=3.14) رو در برنامه، برای استفاده بعدی از اون، ذخیره کنیم. قطعاً متغیر ها انتخاب خوبی نیستند، چون ممکنه برنامه نویس در اثر یک اشتباه، مقداری رو، هر چند ناچیز، به متغیری که پی رو نگه داری می کنه، اضافه یا کم کنه؛ اون وقته که فاجعه پیش میاد و تمام محاسبات، اشتباه از آب در میاد. اما اگر همین داده رو با استفاده از ثابت ها ذخیره کنیم، دیگه جایی برای اشتباه نمی مونه، چون حتی اگر به طور عمدی هم بخواهیم مقداری رو به اون اضافه یا کم کنیم، زبان برنامه نویسی مورد نظر، در خطایی برای ما اعلام می کنه که شما سعی براین داشته اید که مقدای رو به ثابتی منتسب نمایید.</p>
<p>&nbsp;</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d9%81%d9%86%d8%a7%d9%88%d8%b1%db%8c-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa/'>فناوری اطلاعات</a>, <a href='http://ehgroup.wordpress.com/category/education/'>آموزش</a>, <a href='http://ehgroup.wordpress.com/category/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/'>آموزش کامپیوتر</a>, <a href='http://ehgroup.wordpress.com/category/internet-education/'>آموزش اینترنت</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/418/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/418/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/418/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=418&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/09/%d9%85%d9%81%d8%a7%d9%87%db%8c%d9%85-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%b4%db%8c%d8%a6-%da%af%d8%b1%d8%a7-oop-object-oriented-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>چـرا بـرنامه نویـسی همـروند ؟ (4)</title>
		<link>http://ehgroup.wordpress.com/2010/12/09/%da%86%d9%80%d8%b1%d8%a7-%d8%a8%d9%80%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d9%80%d8%b3%db%8c-%d9%87%d9%85%d9%80%d8%b1%d9%88%d9%86%d8%af-%d8%9f-3-2/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/09/%da%86%d9%80%d8%b1%d8%a7-%d8%a8%d9%80%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d9%80%d8%b3%db%8c-%d9%87%d9%85%d9%80%d8%b1%d9%88%d9%86%d8%af-%d8%9f-3-2/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 20:47:32 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[فناوری اطلاعات]]></category>
		<category><![CDATA[آموزش]]></category>
		<category><![CDATA[آموزش کامپیوتر]]></category>
		<category><![CDATA[آموزش اینترنت]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=416</guid>
		<description><![CDATA[استفاده از مدل MPI در برنامه نویسی موازی امروزه مشخص شده كه محاسبات موازی پاسخی است براِی نِیاز وسِیع ما به قدرت محاسباتی بالا و می دانِیم كه اِین امر با معماری های معمول و تك پردازندها قابل دستِیابی نمی باشد. بسیاری از کمپانی ها درمعماری های چند پردازنده ها سرمایه گذاری کردند وبسیاری از [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=416&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>استفاده از</strong><strong> مدل</strong><strong> </strong><strong>MPI</strong><strong> در برنامه نویسی موازی</strong><strong> </strong></p>
<p>امروزه مشخص شده كه محاسبات موازی پاسخی است براِی نِیاز وسِیع ما به قدرت محاسباتی بالا و می دانِیم كه اِین امر با معماری های معمول و تك پردازندها قابل دستِیابی نمی باشد.</p>
<p>بسیاری از کمپانی ها درمعماری های چند پردازنده ها سرمایه گذاری کردند وبسیاری از کالج ها و دانشگاه ها ازمحاسبات موازی در مطالاتشان بهره می گیرند.</p>
<p>افزاِیش استفاده از محاسبات موازی با توسعه استانداردها برای سِیستم های برنامه نوِیسی موازی تسرِیع بخشِیده شده است. اكنون Developer ها می توانند برنامه های موازی قابل انتقال بنوِیسنداز اِین رو انتظار می رود پروژه های وسِیع نرم افزاری به طور موازی قابل پِیاده سازی باشند.</p>
<p><strong><em>واسط انتقال پِیام (</em></strong><strong><em>(MPI</em></strong><strong><em> چِیست؟</em></strong></p>
<p>واسط یا سطح میانی انتقال پِیام Message Passing Interface &#8211; MPI)) ِیك استاندارد قابل انتقال روِی كامپِیوترهای با قابلِیت برنامه نوِیسی موازی می باشد.MPI ازالگوهای انتقال پِیام استفاده می كند كه براِی محاسبات روی ماشِین های با حافظه توزِیع شده مناسب است.البته انتقال پِیام می تواند روی مالتی پروسسورهای با حافظه اشتراكی نِیز به كار برده شود.</p>
<p>مقایسه دیگر سیستم های انتقال پیام MPI بسیار شبیه مقایسه یک مجموعه ی بزرگ و یک زیر مجموعه است.زیرا تغییر برنامه ها به MPI از دیگر سیستم های انتقال پیام به نسبت معمولا ً آسان تر است. MPIمعمولا ً برای افراد مبتدی که تازه قصد شروع کردن دارند راحت تر است ، بسیاری از حالت های این گروه ها نیازی به برنامه های موازی ساده ندارد. MPI همچنین طراحی شده برای آنکه به نحو بهتری اجرا شود ، بنابراین برنامه های  MPI روی سیستم های مطمئن استفاده می شوندوباید بتوانند نسبتا ً سریع روی سیستم های دیگر اجرا شوند.</p>
<p>به طور کلی واسط انتقال پیغام ها و پیام ها یا MPI به طور گسترده ای دراستاندارد های جدید مورد استفاده قرار می گیرد. واسط انتقال پِیام یک برنامه واسط (Interface) و كتابخانه ای  (Library) است از زِیر برنامه هاِیی كه می توانند توسط برخی از زبان های برنامه نوِیسی مانند …,C , FORTRAN 77 فراخوانده شوند و وظیفه آن برقراری ارتباط بین کامپیوترها می باشد.واسط انتقال پِیام به دقت برای استفاده وسِیع و بالاترِین سطح كاراِیی در سِیستم های گوناگون تعرِیف شده است.MPI بر پاِیه انتقال پِیام (message-passing)  طراحی شده كه ِیكی از وسِیع ترِین و قدرتمندترِین الگوهای مورد استفاده برای سِیستم های برنامه نوِیسی موازی می باشد.</p>
<p>MPI به وسیله ی انجمنی ملی مرکب از نماینده هایی از بخش های آزمایشگاهی صنایع ، آکادمی ها و دولت توسعه پیدا کرد. آن  به سرعت همه جا منتشر شد و مورد پردازش قرار گرفت زیرا به دقت طراحی شده بود و برای اجرا روی سیستم های مختلف مجوز داشت، MPI بر پاِیه انتقال پِیام (message-passing)  طراحی شده كه ِیكی از وسِیع ترِین و قدرتمندترِین الگوهای مورد استفاده برای سِیستم های برنامه نوِیسی موازی می باشد.</p>
<p>معرفی استاندارد MPI سبب می شود تا Developerهای نرم افزارهای موازی بتوانند كتابخانه هاِیی از برنامه های موازی بنوِیسندكه هم قابل انتقال(portable) و هم كارامد باشند.</p>
<p>حال آنكه مزِیت استفاده از اِین كتابخانه ها اِین است كه باعث پنهان شدن بسِیاری از جزئِیات دشوار برنامه نوِیسی موازی از دِید كاربر شده و در نتِیجه عملِیات و محاسبات موازی را برای استفاده دانشجوِیان و مهندسان و متخصصان تمامی شاخه های علوم آسان تر و قابل دسترسی تر می سازد.</p>
<p>محاسبات موازی بیشتر درمیان مسیرهای اصلی حرکت می کنند،به متن هایی برای معرفی برنامه نویسی موازی نیازاست ، متن هایی که دانش آموزان و افرادی که در حرفه های دیگری مشغول هستند بتوانند ازآنها استفاده کنند وخیلی تخصصی نباشد. اما کسانی که قصد دارند اطلاعات کافی ومناسبی در این رابطه داشته باشند می توانند با استفاده از سیستم های کامپیوتری به گونه ای وسیع و قدرتمند در مورد انجام محاسبات عمل کنند.</p>
<p>واسط انتقال پیام یا MPI تنها برای حل و ازبین بردن این مشکلات به وجود آمد وهدف این متن هااین است که بتوانند دانش آموزان ، آموزگاران وافراد دیگر رابا ابزار هایی که می توانند به نحوی ساده ترباعث تغییرمسیرهای مختلف تکنولوژی شود آشنا کند.</p>
<p>برنامه نویسی موازی با <em>MPI</em> یا <em> PPMP </em> اولین وپیشرفته ترین عملیاتی ست که برای برنامه نویسی سیستم های موازی معرفی می شود<em>PPMPI</em> .  مقدمه ای از<em>MPI</em> و عناصرمعرفی برنامه نویسی موازی را تهیه  کرده است. این توضیحات همه ی حالت های مختلف  <em>MPI</em> را در بر می گیرد به صورت مختصری محاسبات موازی را پشتیبانی می کند و موضوعی در رابطه با اشکال زدایی موازی را بیان می کند.برنامه های موازی طراحی شده وتوسعه پیدا کردندو تحلیل شده و به مرحله ی اجرا در آمدند.</p>
<p><strong><em>در مورد انتقال پیام </em></strong></p>
<p>عبور پیام از نظر فهم و یادگیری ، برنامه های مشکلی نیستند،برای اینکه بشر می تواند در هر زمانی عمل انتقال پیام را انجام دهد. دو دلیل برای نیاز به انتقال پیام ها نیاز است:یکی  برای تغییر داده ها بین عمل ها و وظایف موازی به آنها نیاز داریم ودیگری برای سنکرون کردن و همزمانی وظایف از آن ها استفاده می شود.اگر همه ی وظایف به صورت کامل ازهم مستقل باشند هیچ پیامی برای عبور یا کنترل موازی سازی ضروری نیست. در این حالت صحبت کردن در مورد برنامه نویسی موازی کاری نادرست است.</p>
<p>زمانی که از برنامه های موازی درمورد درخواست های بزرگ استفاده میشود برنامه عبور پیام اغلب نسبتا ًمشکل است.برنامه نویسی صد ها یا دوازده وظیفه همزمان پروژه ای بسیار مشکل برای طراحی ست. در پروژه های انسانی ممکن است بحث کردن در موردحالت های وظایف مختلف به صورت اشتراکی باشد ،اما در کامپیوتر ها همه تصمیم ها پیشاپیش توسط برنامه نویس گرفته می شود ،اشکال زدایی برنامه های موازی نیز برای هیچ کسی جالب نیست.</p>
<p>اگرانتقال پیام روش ساده ای برای برنامه نیست چرا ازآن استفاده می شود؟</p>
<p>روش های دیگری برای برنامه های موازی کامپیوتر ها وجود دارد،برای نمونه داده های موازی زبان برنامه نویسی High-Performance Fortran (HPF) .در داده های موازی زبان ها معمولا ًبه هیچ برنامه نویسی برای انتقال پیام نیاز نیست.متاسفانه برنامه نویسی داده های موازی فقط برای زیر مجموعه های الگوریتم ها استفاده می شود. درمورد فواید عبور پیام به طور کلی مدل message-passing می تواند در الگوریتم هایی که شما می خواهید  استفاده شود وبا بیشتر سیستم های کامپیوتری سرو کار داشته باشد.</p>
<p>در آغاز به عنوان یادآوری بایدگفته شود MPI شبیه تحولی ترکیبی از سیستم های پیشین message-passing می باشد.وبرای یک برنامه نویس به معنی بسیاری از برنامه های مفید و وابسته ی سطح بالاست.</p>
<p>به دلیل اینکه استاندارد MPI یک استاندارد باز است هر کسی می تواند یک اجرا از آن را در اختیار ودر دسترس خود داشته باشد.چندین بخش عمومی از این ها به صورت متداول وجود دارد که می توان اطلاعات را از بین آنها انتخاب کردونیز بسیاری از فروشنده های  ابرکامپیوترهاترجمه ها وتفسیر هایی را ارائه دادند.</p>
<p>به علت دسترسی گسترده به MPI قابلیت حمل ونقل برنامه های موازی نباید دچار اشکال شود.همچنین به سبب طبقه بندی های MPI برنامه نویس نمی تواند مراقب ترجمه ها ی سیستم انتقال پیامی که استفاده می شوند باشند،بنابراین در این حالت از سیستم های PVM(ماشین های مجازی موازی) که مربوط به دوره های قبل می شوند استفاده می شود.</p>
<p>هرچند MPI برنامه نویسی محیطی موازی نیست برخی صورت های محاسبات موازی شامل استاندارد ها هستند.در نتیجه MPI شامل امکانات وتسهیلاتی برای کنترل فرایند های پویا ،ورودی و خروجی های موازی و نیز آغاز وظایف موازی ندارد.زیرا که این صورت های جاری خارج از سطح استاندارد ها هستند هر اجرایی از MPI پیشنهادی برای برنامه نویسی محیط موازی ست.</p>
<p><strong><em>صورت های ویژه ای از </em></strong><strong><em>MPI</em></strong><strong><em> </em></strong></p>
<p>پیشنهادMPI مجموعه غنی ای از توابع برای انجام ارتباطات نقطه به نقطه</p>
<p>point-to-point)) است.در مجموع می توان به ساده گی وظایف را درمیان گروه ها تقسیم کرد تا بخش هایی از محاسبات به این نحو انجام شود.همچنین امکاناتی برای انجام محاسبات زیاد وجود دارد ،برای مثال پیدا کردن بیشترین مقدار یک مجموعه یا برگزیدن فعالیتی که باید بعدا ً انجام شود.برنامه نویس می تواندوظایف را درتوپولوژی های مجازی سازماندهی کند برای نمونه ارتباطات نزدیک همسایه ها در یک شبکه مربعی یک برنامه خیلی سرراست است.</p>
<p>اجرای MPI صورت های آغازین درک برنامه نویس است.اول از هر چیز درMPI قابلیت اطمینان برای انتقال پیام ها مهم است.همچنین پیام ها ازوظایف ویژهای فرستاده می شوندو بخشی از آنها که ارسال شدندبه کارهای دیگری می رسند بنابراین لزومی ندارد برنامه نویس کارهای ساماندهی خسته کننده و نیز چک کردن را انجام بدهد.</p>
<p>شاید پیشرفت بسیاری کهMPI    داشته تصویر کلی ای از اشخاص در تماس باشد.ساخت آن ممکن است باعث مجزا شدن ارتباطات باشد که فقط  کارهایی که در آنها بخشی از پیام های عبوری را می گیرد انجام می دهد.این ساخت ممکن است کاربرد ها و زیرروال کتابخانه ها را بنویسد که این ارتباطات به صورت نامرئی در جهان باقی مانده.درنتیجه انتقال پیام در بعضی از بسته بندی های نرم افزاری انجام می شود بدون اینکه با دیگر پیام های انتقالی ای که توسط بخش های دیگر انجام می شوندقاطی شود.اجرای آن خیلی ضروری ست برای مثال یک حل کننده موازی برای معادله های خطی که می توانند به وسیله برنامه فراخوانی شوندو MPI برای انجام کارهای موازی انجام می شود.</p>
<p>دربیشتر نمونه ها MPI قابلیت توسه پذیری را دارد.MPI ممکن است توسعه پیدا کندبرای مثال پیوستگی درخواست ویژه ی یک لایه از محاسبا ت اولیه روی MPI .همچنین اشکالزدایی ،برجسته سازی و تجسم فکری برنامه های موازی ممکن است مهارت ساخت در استاندارد MPI را استفاده کند.برای نمونه درک شکل های همرا ه را می توان نام برد.</p>
<p><strong><em>چگونگی برنامه نویسی با </em></strong><strong><em>MPI</em></strong></p>
<p>بخش مهمی از برنامه نویسی موازی معمولا ً پیدا کردن الگوریتم موازی سازی ست،نه انتخاب کردن ابزار های موازی سازی.غالبا ً الگوریتم های سری کار آمد و مفید بهترین حالت برای محاسبات موازی نیستند.</p>
<p>مسئله مهم این که در پی پیدا کردن یک الگوریتم قابل قیاس باید در مورد کدبندی برنامه فکر کرد.اگر برنامه نویسی عبور پیام مدلی مناسب وکاربردی به نظر برسددز این حالت است که MPI می تواند یک انتخاب خوب برای اجرای حالت های موازی باشد.بهترین راه برای شروع برنامه نویسی MPI استفاده از یک مثال است.نمونه های مناسبی به عنوان مثال برای MPI در اینترنت به صورت مجموعه گرد آوری شده.اجرا هایی که از MPI در دسترس است ممکن است مجموعه ای از این نمونه ها باشد و چک کردن برنامه ها که می تواند الگویی برای برنامه ها باشد.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Distributed Computingمحاسبات توزیع شده </strong></p>
<p><strong> </strong></p>
<p>Distributed Computing  :یك سرِی محاسبات موازِی است كه از چندین كامپِیوتر مستقل كه در یك شبكه با هم مكاتبه می كنند استفاده میکند تا یك هدف مشترك ِیا كارِی را انجام دهد.</p>
<p>نوع سخت افزار ، زبان برنامه نوِیسی ، سیستم عامل و منابع  دِیگر ممكن است در تنوع ساختن آن  اثر زِیادِی بگذارد. اِین مسئله مثل اِین است كه چند دسته كامپِیوتر را كه از نظر منابع با هم متفاوت هستند در كنار هم قرار دهِیم تا ِیك كار واحد را سرِیعتر انجام دهند.</p>
<p><em> </em></p>
<p><strong><em>Organization</em></strong><strong><em>سازمان </em></strong><strong><em> </em></strong></p>
<p>سازمان اثر متقابل بِین هر كامپِیوتر ِیك شروع با اهمِیت است ، بدِین معنِی كه نوع ِیاچگونگِی ارتباط بِین هر دو كامپِیوتر براِی ما مهم است، تا بتوانِیم از گستره ِی وسِیع و موجود كامپِیوتر‌هاِی گوناگون استفاده كنِیم.</p>
<p>پروتكل ِیا كانال ارتباطِی نباِید شامل اطلاعاتِی باشد كه توسط ماشِین اصلِی فهمِیده نشود و نباِید از اِین اطلاعات استفاده كند. توجه وِیژه اِی لازم است تا پِیغام ها به درستِی تحوِیل داده شوند و پِیغام هاِی باطل پذِیرفته نشوند، در غِیر اِینصورت اِین پِیغام ها باعث خرابِی سِیستم  و ساِیر كامپِیوترهاِی  موجود در شبكه مِی شوند.</p>
<p>عامل مهم دِیگر ، تواناِیِی فرستادن نرم افزار بر روِی كامپِیوتر در ِیك راه قابل حمل است، بنابراِین ممكن است اِین نرم افزار ها بوسِیله شبكه موجود اجرا شده و نماِیش داده شو ند.</p>
<p>ممکن است اجرا شدن نرم افزارها زمانِی كه از سخت افزار هاِی متفاوت و منابع دِیگر استفاده مِی كنِیم ممكن نباشد بنابراِین باِید از روش هاِی دِیگر مثل گردآورِی ضربدرِی (Cross &#8211; compiling) ِیا حمل كتاب راهنماِی اِین نرم افزار (manually porting) استفاده شود.</p>
<p><em> </em></p>
<p><em> </em></p>
<p><em> </em></p>
<p><strong><em>هدف از طراحی</em></strong><strong><em> </em></strong></p>
<p>گونه هاِی بسِیار متفاوتِی براِی distributed computing وجود دارند و همچنِین براِی طراحِی ِیك نمونه ِی موفق آن رقابت هاِی زِیادِی وجود دارد.</p>
<p>هدف اصلِی سِیستم محاسبات تقسِیم شده است كه مصرف كنندگان و منابع را از طرِیق ِیك راه شفاف ، باز و قابل قِیاس به هم وصل كند. اِین سِیستم ها ،‌به اِین گونه بسِیار قوِی تر و موثر تر از سِیستم هاِی كامپِیوترِی هستند كه در انها كامپِیوترهاِی مجزا را به هم وصل مِی كنِیم.</p>
<p>امروزه سروِیس هاِی وب ِیك پروتكل استاندارد را براِی اتصال اِین سِیستم ها (سِیستم  هاِی گروهِی) به ِیكدِیگر فراهم مِی كنند.</p>
<p>ِیك مثال براِی distributed system ، شبكه جهانِی وب (اِینترنت) است. وقتِی شما ِیكِی از صفحات وب را مِی خوانِید شما در اصل از ِیك distributed system كه شامل ساِیت مربوطه است استفاده مِی‌كنِید. زمانِی كه شما در وب جستجو مِی كنِید، جستجو گر وب كه روِی كامپِیوتر شما اجرا مِی شود با سِیستم هاِی وب مختلف كه صفحه وب را فراهم كرده اند در ارتباط است.</p>
<p>ممكن است مرورگر از ِیك سرور نماِینده استفاده كند تا بتواند اطلاعات ذخِیره شده روِی سرورهاِی وب را سرِیع تر و اِیمن تر برساند. براِی پِیدا كردن اِین سرورها همچنِین از اسم سِیستم تقسِیم شده (distrubuted domain Name system) استفاده مِی شود.</p>
<p>مرورگر وب شما با همه ِی سرورهاِی موجود در اِینترنت از طرِیق ِیك سِیستم متشكل از راه پِیماها(Routers) كه خودشان ِیك قسمت از distributed system وسیع است ارتباط برقرار میکند.</p>
<p><strong><em> Scalability </em></strong></p>
<p>موضوع اصلی:توانایی(قابلیت)</p>
<p>یک سیستم توانا سیستمی است که به راحتی بتواند خود را با تغییراتی از قبیل تعداد مصرف کنندگان منابع و محاسبات وفق دهد.</p>
<p>توانایی میتواند در سه اندازه ی متفاوت اندازه گیری شود:</p>
<p>Load scalability:یک distributed system باِید گسترش و استفاده از منابع اشتراكِی را براِی ما آسان كند تا هم Load هاِی قوِی و هم Load  هاِی ضعِیف بتوانند خود را با آن وفق دهند.</p>
<p>Geogtaphic scalability (تواناِیِی جغرافِیاِیِی) : ِیك سِیستم تواناِیِ جغرافِیاِیِی سِیستمِی است كه سود ها و قابلِیت استفاده خود را صرف نظر از اِینكه مصرف كنندگان  ِیا منابع چقدر با آن فاصله دارند حفظ كند .</p>
<p>Administrative scalability (تواناِیِی اجراِیِی) : اِین مهم نِیست كه چند سازمان متفاوت نِیاز دارند تا ِیك سِیستم تقسِیم شده را به اشتراك بگذارند بلكه اِین سِیستم باِید همواره به آسانِی قابل استفاده باشند. چند خسارت اجراِیِی مِی تواند براِی سِیستمِی كه ِیك ِیا چند تا از خصوصِیات بالا را ندارند اتفاق بِیفتد.</p>
<p><strong><em>Multiprocessor</em></strong><strong><em>مالتی پروسسور </em></strong></p>
<p>سِیستم چند پردازنده اِی بطور ساده ِیك كامپِیوتر است كه بِیش از ِیك cpu در روِی مادربورد خود دارد. اگر ِیك سِیستم عامل به گونه اِی ساخته شده است كه از اِین روش سود ببرد، مِی‌تواند process هاِی متفاوتِی را روِی cpu هاِی متفاوتِی اجرا كند. چند پردازنده اِی هاِی متفاوتِی در طول اِین سالها براِی استفاده در سِیستم‌هاِی تقسِیم شده كشف شده اند.</p>
<p>شركت inter در cpu هاِی خود از ِیك تكنولوژِی به نام   Hyperthreadingاستفاده كرده است كه اجازه مِی دهد تا بِیش از ِیك thread (ِیا بعضِی وقت ها دو) روِی ِیك cpu اجرا شوند.</p>
<p>بِیشترِین درخشندگِی اخِیر چند پردازنده اِی ها مربوط به : _UltraSPARK TL2× 64 Athlon _ pentium D شركت inter است كه سعِی در افزایش تعدادTHREAD  هاِی جارِی كه مِی توانند اجرا شوند دارند.</p>
<p><strong><em>Multicomputer system</em></strong><strong><em>مالتی کامپیوتر </em></strong><strong><em> </em></strong></p>
<p>یك سِیستم چند كامپِیوترِی سِیستمِی است كه از چندِین كامپِیوتر مستقل كه به وسِیله مخابرات تلفن بهم وصل شده اند تشكِیل شده است.</p>
<p>سِیستم هاِی چند كامپِیوترِی مِی توانند همگن (ِیكسان) و ِیا ناهمگن (غِیر ِیكسان) باشند. ِیك distributed system همگن سِیستمِی است كه در ان همه cpu ها ِیكسان است و به وسِیله ِی ِیك شبكه ِی ِیكسان به هم وصل شده اند. اغلب براِی محاسبات موازِی كه نمونه اِی از distributed computing  است استفاده مِی شود، كه در آن‌هر كامپِیوتر روِی ِیك بخش از ِیك مشكل خاص كار مِی كند.</p>
<p>در مقابل distributed system نا همگن سِیستمِی است كه مِیتواند از گونه هاِی مختلف كامپِیوتر با حافظه هاِی بسِیار متفاوتِی از لحاظ اندازه و همچنِین پردازنده هاِی متفاوتِی از لحاظ قدرت و طرز ساخت، ساخته شود. اِین ها امروزه در حجم وسِیعِی بوسِیله ِی بسِیارِی از شركت هاِی سازنده ساخته مِی شوند تا بتوانند به كامپِیوترهاِیشان به وسِیله سخت افزارهاِیِی كه كهنه شده اند سرعت بخشِیده و قِیمت آن  را به طور همزمان بالا ببرند.</p>
<p><strong><em>انواع معماری</em></strong></p>
<p>معمارِی هاِی سخت افزارِی و نرم افزارِی متنوعِی و جود دارد كه معمولاً براِی محاسبات تقسِیم شده استفاده مِی شده است . در ِیك سطح پاِیِین، بهم وصل كردن چند cpu به وسِیله شبكه الزامِی است، صرف نظر از اِینكه آن شبكه روِی برد متشكل از مدار منتشر شده است و ِیا اِینكه از چندِین زوج سست وسِیله ها و كابل ها تشِیكل شده است. در ِیك سطح بالا، بهم وصل كردن (پِیوستن) چند پراسس كه روِی آن cpu ها اجرا مِی شوند به وسِیله سِیستم ارتباطِی الزامِی است.</p>
<p>Client-server: ِیك client كد باهوش براِی گرفتن اطلاعات (داده ها) با سرور تماس برقرار مِی‌كند و سپس اِین اطلاعات را به user (استفاده كننده) نشان مِی دهد. هرگونه تغِیِیرِی در وروِی به سرور گزارش شده و اِین تغِیِیرات اعمال مِی شود.</p>
<p>3-tire architecture  : سِیستم سه tire (صف) ، هوش client را به وسط tire انتقال مِی دهد سپس client هاِیِی كه جاِی مشخصِی ندارند مِی توانند استفاده شوند. اِین مسئله تقاضاهاِی گسترده را ساده و مختصر مِی كند . اكثر تقاضاهاِی وب سه tire هستند.</p>
<p>N-tiet architecture : n ردِیفها به عنوان نمونه به تقاضاهاِی وب بر مِیگردد كه تقاضاهاِیشان را به سروِیسهاِی دِیگر مِی فرستند. اِین نوع تقاضا ِیك از مسئولِترِین هاِی موفقِیت سرور‌هاِی متقاضِی است.</p>
<p>Tightly coupled : به عنوان نمونه به ِیك دسته ماشِین هاِیِی بر مِی گردد كه پراسس هاِی ِیكسان را به صورت موازِی انجام مِی دهند و كار را بِین هركدام از آن ها به صورت مجزا تقسِیم مِی كند و سپس نتاِیج هرِیك را گرفته و در كنار هم قرار مِی دهد تا نتِیجه نهاِیِی را بسازد و اعلام كند.</p>
<p>Peer &#8211; to &#8211; peer  : ِیك ساختار است زمانِی كه ِیك ماشِین ِیا ماشِین هاِی خاصِی كه ِیك سروِیس را براِی منابع شبكه سروِیس دهِی ِیا اداره مِی كنند وجود نداشته باشد. در عوض همه ِی مسئولِیت هاِیِی كه به طور ِیكسان بِین ماشِینها تقسِیم شده است آن را به عنوان preers (صفت ها ) مِی شناسند.</p>
<p>Service oriented : زمانِی است كه سِیستم به عنوان سروِیس هاِی قابل استفاده مجدد طراحِی شده و با معِیارهاِی معِینِی مِی توان دوباره از آن تقاضا كرد.</p>
<p>Mobile code : مبتنِی بر ِیك طراحِی اصولِی براِی حركت نزدِیك ترِین پردازش به منبع ِیك داده است .</p>
<p>:  Replicated repository   جاِیی كه اِین مخزن بِین distributed system براِی حماِیت پراسس‌هاِی offline و Online تكرار شده است ، فراهم شدن اِین تأخِیر در به روز رسانِی داده قابل قبول است.</p>
<p>:<strong><em>Concurrency</em></strong><em> </em></p>
<p>اجرا كردن distributed computing ِیك نوع از همزمانِی است.</p>
<p>:<strong><em>Computing taxonomies</em></strong></p>
<p>نوع هاِی distributed computers بر اساس طبقه بندِی Flynn است، كه به شرح زِیر است :</p>
<p>SISD (Single instruction, single data)</p>
<p>MISD (multilpe instruction, single data)</p>
<p>SIMD (Single instruction, multiple data)</p>
<p>MIMD(multiple instruction ,multiple data)</p>
<p><strong>فهرست منابع</strong><strong>:</strong></p>
<p>1.تناوش  مهرداد  اشنائی با سبک برنامه نویسی موازی  چاپ اول  تهران  ناقوس  1382</p>
<p>2. http://www.gup.uni-linz.ac.at/thesis/diploma/christian_schaubschlaeger/html/chapter02a4.html</p>
<p>3.http://www.llnl.gov/computing/tutorials/parallel_comp/http://www.di.unipi.it/Evaluation/vannesch.html</p>
<p>4.http://www.csc.fi/math_topics/Publ/mpi.html</p>
<p>5.http://www.cs.usfca.edu/mpi/preface.html</p>
<p>6. http://en.wikipedia.org/wiki/Concurrent_programming</p>
<p>7.http://en.wikipedia.org/wiki/Distributed_programming</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/%d9%81%d9%86%d8%a7%d9%88%d8%b1%db%8c-%d8%a7%d8%b7%d9%84%d8%a7%d8%b9%d8%a7%d8%aa/'>فناوری اطلاعات</a>, <a href='http://ehgroup.wordpress.com/category/education/'>آموزش</a>, <a href='http://ehgroup.wordpress.com/category/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%a7%d9%85%d9%be%db%8c%d9%88%d8%aa%d8%b1/'>آموزش کامپیوتر</a>, <a href='http://ehgroup.wordpress.com/category/internet-education/'>آموزش اینترنت</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/416/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=416&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/09/%da%86%d9%80%d8%b1%d8%a7-%d8%a8%d9%80%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d9%80%d8%b3%db%8c-%d9%87%d9%85%d9%80%d8%b1%d9%88%d9%86%d8%af-%d8%9f-3-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
		<item>
		<title>چـرا بـرنامه نویـسی همـروند ؟ (3)</title>
		<link>http://ehgroup.wordpress.com/2010/12/09/%da%86%d9%80%d8%b1%d8%a7-%d8%a8%d9%80%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d9%80%d8%b3%db%8c-%d9%87%d9%85%d9%80%d8%b1%d9%88%d9%86%d8%af-%d8%9f-3/</link>
		<comments>http://ehgroup.wordpress.com/2010/12/09/%da%86%d9%80%d8%b1%d8%a7-%d8%a8%d9%80%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d9%80%d8%b3%db%8c-%d9%87%d9%85%d9%80%d8%b1%d9%88%d9%86%d8%af-%d8%9f-3/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 20:45:45 +0000</pubDate>
		<dc:creator>احسان احسانپور</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ehgroup.wordpress.com/?p=414</guid>
		<description><![CDATA[سیستم های مبتنی بر گذرگاه در یك سیستم كامپیوتری تك پرازنده منطبق بودن سرعت حافظه با سرعت پردازنده مهم است .یك حافظه كند باعث می شود كه پردازنده زمان زیادی را معطل مانده و بنابراین قابلیت اجراییی كامپیوتر كاهش یابد برای بهبود نسبی قابلیت اجرایی حافظه مكانیزم های گوناگون و خاصی از قبیل حافظه پنهان [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=414&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>سیستم های مبتنی بر گذرگاه </em></strong></p>
<p>در یك سیستم كامپیوتری تك پرازنده منطبق بودن سرعت حافظه با سرعت پردازنده مهم است .یك حافظه كند باعث می شود كه پردازنده زمان زیادی را معطل مانده و بنابراین قابلیت اجراییی كامپیوتر كاهش یابد برای بهبود نسبی قابلیت اجرایی حافظه مكانیزم های گوناگون و خاصی از قبیل حافظه پنهان و ثبات های ریز پردازنده استفاده می شود كه هر دوی آنها دارای مزیت لوكالیتی دسترسی به حافظه بوده تا دسترسی به داده های حافظه را كاهش دهند به طور مشابه در كامپیوترهای همروند به منظور اجتناب از تاخیر دسترسی به سرعت حافظه و پردازنده باید با یكدیگر بالانس شود در سیستم های مالتی پروسسور با توجه به این كه همه پردازنده ها از یك حافظه اشتراكی سراسری استفاده می كنند این مساله مخصوصا تشدید می شود. چنانچه پردازنده های زیادی به طور همزمان به حافظه اشتراكی دسترسی پیدا كنند. برخی از پردازنده ها ممكن است دچار تاخیر شوند .هنگامی كه این تاخیرات بیش از اندازه شود به آن ازدحام حافظه اطلاق می شود ازدحام حافظه به طور زیادی به معماری حافظه مالتی پروسسورها و به الگوهای دسترسی به حافظه  توسط برنامه هایی كه اجرا می شوند بستگی دارد .برخی از برنامه های موازی ممكن است روی برخی از مالتی پروسسورها مساله ازدحام حافظه را داشته باشند یا نداشته باشند اما برخی موارد در برنامه های موازی وجود دارد كه باعث ایجاد ازدحام حافظه روی هر مالتی پروسسوری می شود.</p>
<p>یادآوری می كنیم كه اساس معماری یك كامپیوتر تك پردازنده ای شامل یك پردازنده و حافظه با یك گذرگاه است كه آنها را به یكدیگر متصل می كند .</p>
<p>گذرگاه یك مسیر برای جریان یافتن داده ها بین پردازنده و حافظه می باشد این معماری مبتنی بر گذرگاه ، می تواند به چند پردازنده نیز تعمیم یابد.</p>
<p>گذرگاه مشترك توسط همه پردازنده ها به اشتراك گذاشته شده و برای دسترسی به ماجول حافظه اشتراكی استفاده می شود گذرگاه و حافظه تنها می توانند در یك لحظه به یك درخواست سرویس دهند برای دسترسی به هر سلول حافظه ، پردازنده ها نیاز به استفاده انحصاری از گذرگاه برای یك دوره كوتاهی زمانی دارند بنابراین ماكزیمم سرعت گذرگاه و یا پهنای گذرگاه تعداد پردازنده های را كه می توانند به طور كارآ از حافظه اشتراكی استفاده كنند ، محدود می كند برای مثال اگر پهنای گذرگاه 50 مگاهرتز باشد و متوسط نرخ دسترسی پردازنده ها به حافظه 5 مگاهرتز باشد آنگاه گذرگاه با 10 پردازنده اشباع می شود حتی در یك سیستم كه دارای بالانس خوبی باشد كه در آن پهنای گذرگاه از نرخ دسترسی پردازنده ها به حافظه بیشتر باشد هنوز احتمال ازدحام حافظه توسط محاسبات متراكمی كه توسط بسیاری از پردازنده ها ممكن است انجام شده و نیاز به دسترسی به حافظه داشته باشد وجود دارد . گذرگاه ها به صورت الكتریكی عمل می كنند و بنابراین گذرگاه ها با سرعت بالا نیاز به تغییرات بسیار سریع ولتاژ و جریان دارند. محدودیت های فیزیكی برای اینكه چگونه مواد سریع می توانند ولتاژها و جریانهایشان را تغییر دهند وجود دارد .</p>
<p>این محدودیت ها اثر خود را روی ماكزیمم سرعت گذرگاه می گذارند هر چه پردازنده های بیشتری به باس اضافه شود توان الكتریكی بیشتری نیاز خواهد بود كه همچنین زمان سوئیچ كردن مولفه های فیزیكی را افزایش می دهد یك تكنیك كه به افزایش سرعت ماكزیمم كمك می كند این است كه گذرگاه از نظر فیزیكی كوچك باشد زیرا در آن صورت با توجه به كوچك شدن مسافتها ، تغییرات ولتاژها و جریانها می توانند سریع تر انجام شود مالتی پروسسورهای مبتنی بر گذرگاه ها تا سال 1993 محدود به 20 الی 30 پردازنده می باشد علت آن محدود بودن سرعت گذرگاه است در آینده ممكن است این توانایی به 50 الی 100  پردازنده افزایش یابد اما افزایش برای ماورای این مقدار نیاز به تغییرات در تكنولوژی گذرگاه خواهد داشت .</p>
<p><strong> </strong></p>
<h5>حافظه پنهان</h5>
<h6><em>1.</em><em>حافظه های پنهان تك پردازنده</em><em> </em></h6>
<p>در سیستم های تك پردازنده ای یك تكنیك مهم برای كاهش نرخ دسترسی پردازنده به حافظه ، استفاده از حافظه پنهان است یك حافظه پنهان یك حافظه كوچك با سرعت بسیار بالاست كه مستقیماً به پردازنده متصل شده است. مقادیر داده ای كه به طور مكرر مورد دسترسی قرار می گیرند. در حافظه پنهان ذخیره می شوند و در اینجا دسترسی به مقادیر داده ای می تواند بسیار سریع تر از حافظه حافظه اصلی انجام شود اندازه حافظه اصلی در سیستم های كامپیوتری با مگابایت سنجیده می شود، در حالی كه اندازه حافظه پنهان با كیلوبایت سنجیده می شود. نظر به این كه حافظه پنهان كوچكتر است ، می تواند با هزینه گرانتر اما با تكنولوژی سخت افزاری سریع تر از حافظه اصلی ساخته شود اصول اساسی در حافظه پنهان در یك سیستم تك پردازنده ای در شکل زیر نشان داده شده است .</p>
<p><strong> </strong></p>
<p>شکل 5 ) حافظه پنهان در كامپیوترهای تك پردازنده ای<strong> </strong></p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="335" height="11"></td>
</tr>
<tr>
<td></td>
<td width="138" height="69" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p><strong>MAIN</strong><strong> </strong></p>
<p><strong>MEMORY</strong><strong> </strong></p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="174" height="30" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p><strong> DATA </strong><strong> </strong><strong>ADDRESS</strong><strong> </strong></p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><strong> </strong></p>
<p><strong> </strong></p>
<div>
<table dir="rtl" border="1" cellspacing="0" cellpadding="0" align="right">
<tbody>
<tr>
<td width="71">72</td>
<td width="71">1000</td>
</tr>
<tr>
<td width="71">2</td>
<td width="71">3500</td>
</tr>
<tr>
<td width="71">276</td>
<td width="71">101</td>
</tr>
<tr>
<td width="71">12</td>
<td width="71">6832</td>
</tr>
<tr>
<td width="71">56</td>
<td width="71">2016</td>
</tr>
<tr>
<td width="71">.</p>
<p>.</p>
<p>.</td>
<td width="71">.</p>
<p>.</p>
<p>.</td>
</tr>
</tbody>
</table>
</div>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>CACHE</strong></p>
<p><strong>MEMORY</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="316" height="14"></td>
<td width="80"></td>
<td width="12"></td>
<td width="82"></td>
</tr>
<tr>
<td height="42"></td>
<td></td>
<td align="left" valign="top"></td>
</tr>
<tr>
<td height="5"></td>
</tr>
<tr>
<td height="42"></td>
<td colspan="3" width="174" height="42" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p><strong>PROCESSOR</strong><strong> </strong></p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>هر ورودی در حافظه پنهان شامل یك زوج داده ـ آدرس است. آدرس ، متناظر با برخی آدرس های حقیقی در حافظه اصلی است و داده محتوای آن ، سلول حافظه اصلی را مشخص می كند. برای مثال در شکل بالا اولین موجودیت حافظه پنهان دلالت بر این دارد كه آدرس 1000 در حافظه اصلی شامل مقدار داده ای 75 است. این موجودیت های حافظه پنهان شامل كپی هایی از تعداد كمی از سلول های حافظه در حافظه اصلی است هنگامی كه یك پردازنده ، یك دسترسی به حافظه را انجام می دهد ابتدا محتوای حافظه پنهان را جهت بررسی اینكه آیا مقدار درخواستی در آنجا ذخیره شده است یا خیر را بررسی می كند چنانچه این مقدار در حافظه پنهان بود آنرا با سرعت بالا بازیابی می كند. نظر به اینكه حافظه پنهان دارای ساختمانی مشاركتی می باشد موجودیت های داخل آن می تواند با یك عملیات به طور بسیار سریع مورد جستجو واقع شود . هنگامی كه یك رجوع ویژه به حافظه توسط یك پردازنده به حافظه پنهان رخ می دهد، آنرا را یك هیت یا موفقیت حافظه پنهان می نامند. اگر رجوع به حافظه مربوط به حافظه پنهان نباشد ، بنابراین باید به حافظه اصلی برویم كه اصطلاحا به آن میس یا عدم موفقیت حافظه پنهان گویند. حافظه پنهان دارای یك اندازه محدود است و نمی تواند كپی همه مكانهای حافظه اصلی را كه توسط یك برنامه استفاده می شود، نگهداری نماید. بنابراین برخی از میس های حافظه پنهان اجتناب ناپذیر است .</p>
<p>مطالعات نشان می دهد كه برنامه های كامپیوتری یك خاصیت به نام لوكالیتی دسترسی به حافظه را از خود نشان می دهند . این بدین معنی است كه سلول های حافظه ای كه در چند لحظه قبل یا گذشته نزدیك مورد دسترسی قرار گرفته اند محتملا در چند لحظه بعد یا آینده نزدیك نیز مورد دسترسی واقع خواهند شد. حافظه پنهان این خاصیت از لوكالیتی را با مرتب كردن آخرین مقادیر حافظه واقع در حافظه پنهان بكار می گیرد ،زیرا اینها همانهایی هستند كه احتمالا در آینده نزدیك مورد استفاده واقع می شوند. این كار احتمال یك هیت روی حافظه پنهان را هر عمل رجوع به حافظه افزایش می دهد سیستم های كامپیوتری تك پردازنده ای تا 90% هیت را انجام می دهند این بدین معنی است كه تنها 10% از ارجاعات پردازنده به حافظه نیاز به حافظه اصلی دارد. بنابراین متوسط زمان دسترسی به حافظه بسیار كاهش می یابد. هنگامی كه یك میس حافظه پنهان اتفاق می افتد حافظه اصلی باید مورد دسترسی قرار گیرد و در این صورت یك كپی از یك سلول حافظه اصلی به داخل حافظه پنهان انتقال یافته و با یك موجودیت از حافظه پنهان كه اخیرا مورد دسترسی قرار نگرفته جایگزین می شود حافظه پنهان برای اعمال خواندن حافظه مفیدتر از اعمال نوشتن حافظه است .هر جزء داده ای در حافظه پنهان یك كپی از سلول های حافظه در حافظه اصلی است هنگامی كه یك عمل نوشتن در حافظه پنهان رخ می دهد مقدار اولیه در حافظه اصلی ، قدیمی می شود. دو راه عمومی برای برطرف كردن این اشكال در طراحی حافظه های پنهان وجود دارد یك راه این است كه هنگامی كه یك مقدار در حافظه پنهان با عمل نوشتن بهنگام می شود بلافاصله مقدار نظیر آن در حافظه اصلی نیز بهنگام می شود این عمل نوشتن یكسره نامند .</p>
<p>را دیگر این است كه موقتاً حافظه اصلی بهنگام نشود. هنگامی كه سلول بهنگام شده در حافظه پنهان دیگر مورد استفاده واقع نشد كپی متناظر آن در حافظه اصلی بهنگام شود كه به آن عمل نوشتن پسرو گویند.هر گونه نوشتن به حافظه اصلی باعث اتلاف وقت می گردد. البته در اكثر كامپیوترها تنها 20 درصد از كل اعمال دسترسی به حافظه را اعمال نوشتن و 80 درصد بقیه را اعمال خواندن تشكیل می دهد .</p>
<p>این نگرش ساده از عملكرد حافظه پنهان برای فهم روی اجرای برنامه ها كافی می باشد.</p>
<p>&nbsp;</p>
<p><strong><em>.</em></strong><em>2</em><em> حافظه پنهان مالتی پروسسورها </em><em> </em></p>
<p>استفاده از حافظه های پنهان می تواند به سیستم های مالتی پروسسورها توسعه یابد همانگونه كه در شکل زیر نشان داده شده است :</p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="66" height="10"></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>BUS</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong> </strong></p>
<p>شکل 6 ) حافظه پنهان در مالتی پروسسورها</p>
<p>&nbsp;</p>
<p>در این سیستم تنها یك حافظه اشتراكی با یك گذرگاه مشترك آنرا به همه پردازنده ها متصل می كند، وجود دارد. اما اكنون هر پردازنده همچنین دارای حافظه پنهان مختص خود می باشد كه می تواند مقادیر اخیر استفاده شده را در خود ذخیره كند تنها در حالت تك پردازنده ای است یك پردازنده دسترسی به حافظه را انجام می دهد برای این كار ابتدا حافظه موقتی پنهان خود را بررسی می كند تا ببیند كه آیا سلول حافظه مورد درخواست، در آنجا وجود دارد یا خیر و تنها در صورت عدم یافتن آن در حافظه پنهان محلی خود سعی می كند كه از طریق گذرگاه به حافظه اشتراكی اصلی دسترسی یابد. این حافظه های پنهان محلی مساله ازدحام حافظه ، برای حافظه اشتراكی را تا حد بسیار زیادی كاهش می دهد . اگر هر پردازنده دارای هیت 80% در حافظه پنهان محلی خود باشد، آنگاه متوسط نرخ دسترسی به حافظه اشتراكی تا ضریبی از 5 كاهش می یابد . این نحوه بسیار زیادی شانس ازدحام حافظه را كاهش داده و اجازه می دهد كه پردازنده های بیشتری بدون وجود سربار زمانی به باس متصل شوند ایده زیربنایی استفاده از حافظه پنهان در مالتی پروسسورها بر همان اساس تك پردازنده ها می باشد هر حافظه پنهان یك حافظه كوچك با سرعت بسیار بالا شامل زوج های داده – آدرس می باشد هر رجوع به حافظه توسط یك پردازنده ابتدا با جستجو برای آدرس های حافظه در حافظه پنهان محلی انجام می شود و تنها در حالتی كه آدرس موردنیاز در حافظه پنهان یافت نشد پردازنده نیاز به استفاده از گذرگاه برای دسترسی به حافظه را دارد .</p>
<p>همان طور كه این جزء از حافظه ، اشتراكی خوانده می شود ، به طور همزمان یك كپی از آن به داخل حافظه پنهان محلی می رود. بنابراین می تواند برای این پردازنده مورد استفاده واقع شود یكی از مسایل جالب در حافظه پنهان مالتی پروسسورها این است كه چندین كپی از یك سلول حافظه ممكن است در حافظه های پنهان متفاوت ظاهر شود. برای مثال فرض كنید پردازنده 1 آدرس 1000 حافظه را از حافظه اشتراكی می خواند آنگاه یك كپی از آن به داخل حافظه پنهان محلی پردازنده 1 انتقال  می یابد اگر پردازنده های 2 و 3 نیز همچنین آدرس 1000 حافظه را از حافظه اشتراكی بخوانند، آنگاه حافظه پنهان آنها نیز همچنین شامل یك كپی از آن خواهد بود .بنابراین 4 كپی متفاوت از یك سلول حافظه اشتراكی با آدرس 1000 وجود خواهد داشت. یعنی یك كپی در حافظه اشتراكی و 3 كپی اضافی  در حافظه های پنهان پردازنده های 1و2و3 .</p>
<p>در مدتی كه همه دسترسی ها به آدرس 1000 تنها عمل خواندن است وجود كپی های چندگانه مساله ای را بوجود نمی آورد هر پردازنده می تواند اعمال خواندن را با استفاده از كپی واقع در حافظه پنهان خود را انجام دهد بدون این كه هیچ گونه نیازی برای دسترسی به حافظه اشتراكی داشته باشد. اما اگر یك پردازنده بخواهد یك عمل نوشتن به سلول 1000 از حافظه اشتراكی انجام دهد ، آنگاه یك مساله بوجود می آید ، یعنی همه كپی ها باید یكسان باقی بماند. این قابل قبول نیست كه تنها یك كپی تغییر كند در حالی كه دیگر كپی ها دست نخورده باقی بماند ، با توجه به اینكه     كپی های چندگانه ، مربوط به  یك سلول حافظه می باشند آنها باید با هم سازگار باشند .</p>
<p>این مساله عمومی اصطلاحاً مساله چسبندگی حافظه پنهان نامیده می شود. بسیاری از راه حلها برای این مساله وجود دارد كه در كامپیوترهای مالتی پروسسور گوناگون آزمایشی و تجاری پیاده سازی شده است .اما همه راه حلها شامل برخی سربارها در سیستم است و بنابراین تا اندازه ای قابلیت اجرا را كاهش می دهد . در سیستم های مبتنی بر گذرگاه یك راه حل مساله چسبندگی حافظه نیاز به این دارد كه هر عمل نوشتن توسط هر پردازنده به صورت داده پراكنی روی گذرگاه اشتراكی انجام شود. هر حافظه پنهان محلی به طور دائم ، گذرگاه اشتراكی را بررسی می كند تا ببیند كه آیا سلول های حافظه اش توسط دیگر پردازنده ها تحت عمل نوشتن قرار گرفته است یا خیر ؟ بنابراین چنانچه یك عمل نوشتن توسط هر پردازنده ای انجام شود ، همه حافظه های پنهان فوراً آنرا می یابند و كپی مربوط به حافظه خود را بهنگام می كنند. نظر به این كه همه حافظه های پنهان به گذرگاه اشتراكی متصل هستند، داده پراكنی عمل نوشتن ، در سیستم های مبتنی بر گذرگاه بسیار ساده است . در واقع چنانچه حافظه پنهان از استراتژی نوشتن یكسره پیروی كند ، آنگاه هر عمل نوشتن فوراً توسط گذرگاه به حافظه اصلی نیز انجام می شود حافظه های پنهان دیگر می توانند به سادگی با نظارت بر ترافیك گذرگاه متوجه آن شده و مقدار متناظر حافظه خود را بهنگام می سازند .</p>
<p><strong><em> </em></strong></p>
<p><strong><em> شبكه های دورن ارتباطی از حافظه ـ پردازنده </em></strong><strong><em> </em></strong></p>
<p>خواص ازدحام حافظه مربوط به مالتی پروسسورها ، همچنین به ویژگی شبكه درون ارتباطی بین پردازنده ـ حافظه بستگی دارد. با رجوع به دیاگرام معمارگونه زیر انشعاب حافظه اشتراكی داخل ماجول های چندگانه به نحو زیادی شانس ازدحام حافظه را كاهش می دهد. اما تراكم و انباشتگی ممكن است در ارتباطات سخت افزاری حتی هنگامی كه پردازنده ها به ماجول های متفاوتی رجوع   می كنند، اتفاق افتد .</p>
<p>یكسری تحقیقات عملی  و تئوری در زمینه طراحی شبكه های درون ارتباطی بین پردازنده – حافظه برای مالتی پروسسورها ارائه شده است شکل 7 یك شبكه عرضی ارتباطی بین 8 پردازنده و 8 ماجول حافظه را نشان می دهد :</p>
<p>&nbsp;</p>
<p>شکل 7) شبکه عرضی حافظه – پردازنده</p>
<p>&nbsp;</p>
<p>هر ماجول حافظه می تواند در یك لحظه تنها به یك درخواست سرویس دهد. بنابراین      درخواست های همزمان به یك ماجول حافظه توسط چندین پردازنده منجر به ازدحام حافظه خواهد شد. اما شبكه عرضی دارای خواص مهمی است كه باعث می شود ازدحام در شبكه دورن ارتباطی هرگز روی ندهد شبكه عرضی می تواند همه پردازنده را به طور همزمان به حافظه های مختلف متصل كند سوییچ ها می توانند تنظیم شوند تا اجازه دهند كه هر الگوی ممكن از ارتباطات پردازنده – حافظه به طور همزمان اتفاق افتد البته به شرطی كه پردازنده ها به یك ماجول یكسان رجوع نكنند. به این علت است كه در شبكه عرضی ، هر زوج پردازنده – حافظه دارای سوئیچ مختص به خود     می باشد بنابراین برای n پردازده n ماجول حافظه شبكه عرضی ، نیاز به n2 سوئیچ داریم و بنابراین دارای هزینه O(n2)  است . اگر تعداد پردازنده ها زیاد باشد. هزینه O(n2)  مقرون به صرفه نمی باشد.</p>
<p>برای كاهش این هزینه شبكه های بسیاری با هزینه O(nlog n) توسعه داده شده اند كه از حمله آنها می تواند به شبكه پروانه ای كه در شکل 8 نشان داده شده است اشاره داشت .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>شکل 8)شبکه درون ارتباطی پروانه ای</p>
<p>&nbsp;</p>
<p>رجوع دارند ،در سوئیچ های ارتباطی ازدحام روی می دهد .شبكه پروانه ای نامش را از بالهای پروانه برگرفته است كه در هر مرحله از شبكه ظاهر شده است. بالهای پروانه در هر مرحله متوالی است شبكه از چپ به راست توسط فاكتور 2 افزایش می یابد در حالت عمومی تعداد مراحل مورد نیاز برای n پردازنده log n است و هر مرحله دارای n/2 سوئیچ می باشد بنابراین كل تعداد سوئیچ های موردنیاز log n× n/2 است در شکل بالا 16 پردازنده با استفاده از 32 سوئیچ برای 16 ماجول حافظه متصل شده اند ،شبكه عرضی برای این تعداد پردازنده نیاز به 256=16×16 سوئیچ دارد. شبكه سوئیچ دار دیگری با هزینه O(nlogn) به نام مبادله به هم آمیخته وجود دارد كه در شکل 9 نشان داده شده است .</p>
<p>&nbsp;</p>
<p>شکل 9) شبکه مبادله بهم ریخته</p>
<p>&nbsp;</p>
<p>همانند شبكه پروانه ای این شبكه دارای مسیرهای زیادی بین پردازنده ها و حافظه ها می باشد كه اجازه می دهد پردازنده ها بتوانند به طور همزمان دسترسی مكرری به حافظه داشته باشند همچنین همانند شبكه پروانه ای در این شبكه نیز احتمال ازدحام حافظه وجود دارد. حتی اگر پردازنده ها به ماجول های متفاوت حافظه رجوع نماید .</p>
<p>در هر دو شبكه مذكور هر رجوع به حافظه مستقیماً به داخل شبكه درون ارتباطی فرستاده می شود كه به طور اتوماتیك توسط سوئیچ ها به ماجول های حافظه صحیح ، راهنمایی می شود . وقتی كه یك پردازنده ، یك آدرس حافظه را داخل یك شبكه راهگزین قرار می دهد ، سوئیچ ها با استفاده از بیت های آدرس دو دوئی ، پیام را به مسیر صحیح كه منتهی به ماجول حافظه مقصد می شود راهنمایی می كنند .</p>
<p>هنگامی كه درخواست ، به ماجول های حافظه مورد نظر رسید دسترسی به آدرس صحیح حافظه  انجام می شود ، در اینجا یك عمل خواندن روی حافظه انجام شده و سپس مقدار داده از طریق شبكه راهگزین یا سوئیچ دار ، در طول همان مسیر به پردازنده مبدا برگشت داده می شود .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>معماری مالتی كامپیوترها </strong><strong> </strong></p>
<p><strong> </strong></p>
<p>معماری كامپیوترهای موازی یا همروند اغلب به دو دسته بزرگ تقسیم می شود مالتی پروسسورها و مالتی كامپیوترها نامیده می شود .یك مالتی پروسسور توسط یك حافظه اشتراكی كه یك فضای آدرس دهی اشتراكی حافظه می باشد و مورد استفاده همه پردازنده ها واقع می گردد ، تعیین و مشخص می شود .</p>
<p>در یك مالتی كامپیوتر هر پردازنده دارای حافظه محلی مختص به خود می باشد و تعامل بین پردازنده ها از طریق انتقال پیام انجام می شود . در یك مالتی پروسسورها همه داد هایی كه توسط یك برنامه مورد استفاده قرار می گیرد ، در حافظه اشتراكی ذخیره شده است و همه پردازنده ها با آنها دسترسی دارند اما در یك مالتی كامپیوتر ،  داده ها باید بین حافظه محلی پردازنده ها توزیع گردند .</p>
<p>یك پردازنده نمی تواند مستقیما به حافظه محلی پردازنده های دیگر دسترسی پیدا نماید اما می تواند بلاكهایی از داده ها را با استفاده از شبكه های دورن ارتباطی پردازنده ها با پردازنده های دیگر ارسال كند و یا آنها دریافت كند .</p>
<p>نظر به اینكه دسترسی پردازنده ها به حافظه محلی خودشان چندین مرتبه سریعتر از تاخیر زمان شبكه است ،  قابلیت اجرای یك برنامه به طور ویژه ای بستگی به مكان داده ها در حافظه های محلی گوناگون دارد ، برای نوشتن یك برنامه كارا روی یك مالتی كامپیوتر ، لازم است كه اطلاعات جامعه ای از معماری سخت افزاری داشته باشیم.</p>
<p>اگر به سادگی سخن بگوییم باید اذعان نماییم كه چنانچه یك برنامه كارآ و خوب را روی یك مالتی پروسسور داشته باشیم و آنرا روی یك مالتی كامپیوتر اجرا نماییم ، معمولاً قابلیت اجرای آن ضعیف خواهد بود تواناییهای اساسی یك زبان و تكنیكهای برنامه نویسی كه روی یك مالتی پروسسورها استفاده می شود ، می تواند در برنامه نویسی مالتی كامپیوترها بكار رود ، اما این كار نیاز به فهم ارگانیزم عمومی سخت افزاری مالتی كامپیوتر ها و چگونگی تفاوت آنها از یك مالتی پروسسور دارد .در یك مالتی كامپیوتر هر پردازنده دارای حافظه فیزیكی اختصاصی خود می باشد كه برای ذخیره بازیابی داده ها در حین محاسبات مورد استفاده قرار می دهد . به علاوه هر پردازنده دارای یك اتصال یا بیشتر به پردازنده های دیگر می باشد كه از طریق آن داده می تواند انتقال یابد.</p>
<p>اگر یك پردازنده دارای ارتباط مستقیم با پردازنده دیگری نباشد ، هنوز می تواند با مجبور كردن پردازنده های میانی جهت انتقال داده ها به سمت جلو ، با پردازنده های دیگر ارتباط برقرار نماید ، انتقال داده ها بین پردازند ه ها نیاز به صرف زمان قابل ملاحظه ای دارد . انتقال داده ها به سمت جلو در بین پردازنده ها،حتی نیاز به زمان بیشتری دارد. بنابراین  اگر ارتباط متعددی بین    پردازنده ها در مدت اجرای یك برنامه وجود داشته باشد تاخیر ارتباطی حاصل ممكن است زمان اجرای برنامه را به نحوه چشمگیری افزایش دهد الگوی ارتباطات مستقیم بین پردازنده ها ، معمولاً توپولوژی مالتی كامپیوتر نامیده می شود ، برای یك الگو ریتم ویژه تاخیرات زمانی ناشی از ارتباطات ، بستگی به توپولوژی مورد استفاده دارد .دو پارامتر مهم جهت توصیف كردن ویژگیهای هر توپولوژی عبارتند از درجه اتصال كه تعداد اتصالات مستقیم در هر پردازنده است و قطر كه ماكزیمم تعداد ارتباطات میانی مورد نیاز برای ارتباط بین پردازنده های دور می باشد درجه اتصال به علت اینكه در هزینه سخت افزار تاثیر می گذارد ، اهمیت دارد .</p>
<p><strong><em> </em></strong></p>
<p><strong><em>ارتباطات پردازنده ای</em></strong><strong><em> </em></strong></p>
<p>در یك مالتی كامپیوتر ، هر پردازنده دارای ماجول حافظه محلی جداگانه ای جهت ذخیره كردن داده ها و كد برنامه می باشد .</p>
<p>پردازنده ها همراه با حافظه خود ، تشكیل یك كامپیوتر كوچك خودكفا را می دهند قلب و مركز هر كامپیوتر عادی ترتیبی ، تنها از یك حافظه و پردازنده تشكیل یافته است .</p>
<p>فعالیت هر زوج پردازنده ـ حافظه در یك مالتی كامپیوتر خیلی شبیه به یك كامپیوتر ترتیبی عادی است. پردازنده یك سری از دستوالعمل ها را توسط كد برنامه كه در حافظه ذخیره شده است، اجرا می كند. هر دستور العمل ممكن است شامل خواندن و نوشتن مقادیر داده ای روی حافظه باشد این شباهت از هر زوج پردازنده – حافظه با یك كامپیوتر كامل ، منشا نام ”مالتی كامپیوتر“ می باشد .</p>
<p><em> </em></p>
<p><em>1.</em><em> پیوند ارتباطی </em><em> </em></p>
<p>به منظور اینكه همه زوجهای مشتكل از پردازنده ـ حافظه بتواند روی یك مسئله محاسباتی با یكدیگر كار نمایند ، آنها باید قادر به ارتباط و مبادله داده ها با یكدیگر در حین انجام محاسبات باشند. این كار توسط یك شبكه ارتباطی سخت افزاری كه پردازنده ها را به یكدیگر متصل می كند، انجام می شود كه این شبكه اجازه می دهد كه داده ها بین پردازنده ها ، از یكی به دیگری انتقال یابد .</p>
<p>بلوك اساسی در ساختمان این شبكه ارتباطی ، یك پیوند مستقیم پردازنده به پردازنده می باشد كه در شکل زیر نشان داده شده است :</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Communication</p>
<p>Link</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>شکل 10) پیوند ارتباطی پردازنده ای</p>
<p>&nbsp;</p>
<p>هر  زوج پردازنده – حافظه به واسطه ارتباطی خود متصل است كه جزئی از قابلیت سخت افزاری جهت ارسال و دریافت داده ها ، از طریق پیوند ارتباطی می باشد .</p>
<p>عمل یك واسط ارتباطی با در نظر گرفتن یك پردازنده شبیه به یك واسط ورودی / خروجی (I/O) در یك كامپیوتر عادی می باشد واسط ورودی / خروجی داده ها را از یك پردازنده دریافت و یا به یك پردازنده می فرستد و آنگاه با یك وسیله ویژه مانند یك چاپگر یا دیسكران ، جهت حمل دستورات و ارسال یا دریافت داده ها ارتباط برقرار می كند. واسط ورودی / خروجی ، یك پردازنده را از كار با با جزئیات سطح پایین سخت افزاری جهت كنترل وسایل ورودی / خروجی بی نیاز می كند و بنابراین باعث می شود كه پردازنده ها در حالی كه اعمال ورودی و خروجی در حال انجام است به محاسبات خود ادامه دهند .</p>
<p>واسط ورودی / خروجی اغلب دارای دسترسی مستقیم به حافظه است كه اجازه می دهد عمل خواندن یا نوشتن روی حافظه بدون هیچگونه توجهی از سوی پردازنده به طور مستقیم انجام شود عمل یك واسط ارتباطی در یك مالتی كامپیوتر نیز شبیه عمل یك واسط ورودی / خروجی است یعنی اینكه فقط یك نوع جدیدی از واسطهای ورودی / خروجی می باشد .</p>
<p>تنها تفاوت بین اینها این است كه داده ها بجای اینكه به یك وسیله ورودی / خروجی فرستاده شوند ، به یك پیوند ارتباطی فرستاده می شوند . با رجوع به شکل 10  می توان دید كه یك پیوند ارتباطی دارای ارتباط دو طرفه می باشد كه بدین معنی است كه داده  می تواند در هر دو جهت جریان یابد .هر واسط ارتباطی قادر است كه هم داده ها را دریافت كرده و هم انتقال دهد پیوند ارتباطی یك ارتباط الكترونیكی ساده است كه قادر است دنباله ای از بیتها را از یك واسط ارتباطی به دیگری حمل نماید ممكن است یك پیوند را به صورت یك لوله ، تصور نماییم كه بیتها یك به یك در یك سر آن وارد شده و سپس از طریق این لوله جریان یافته و نهایتاً وارد انتخای دیگر لوله     می شوند ، برای هر زمان داده شده یكی از واسطهای ارتباطی ، گیرنده و دیگری فرستنده می باشد واحد اساسی یك ارتباط را اصطلاحاً بسته یا پیام نامند، كه شامل تعدادی از بیتهای داده ای           می باشد. فرستنده بیتهای یك پیام را یكی یكی از طریق یك پیوند ارتباطی منتقل می كند  تا اینكه همه آنها در یك انتها به طور صحیح دریافت شوند .</p>
<p>این بدیهی است كه جهت انتقال هر پیام ، زمانی تلف خواهد شد پیوند ارتباطی دارای یك پهنای باند ماكزیمم معینی است كه معمولاً بر حسب بیت در ثانیه اندازه گیری می شود .پهنای شاخصی برای یك چنین پیوند ارتباطی ممكن است 10 مگابیت در ثانیه باشد اگر یك پیام بسته بندی شده شامل 50 بایت باشد ، آنگاه برای انتقال نیاز به 40 میكرو ثانیه خواهد داشت این زمان وقتی كه با سرعت یك پردازنده كه حدوداً برای اجرای یك دستورالعمل از 1 تا 10 میكروثانیه نیاز دارد ، مقایسه می شود قابل توجه می باشد علاوه بر این برای انتقال فیزیكی بیتهای داده ای واسط ارتباطی باید اعمال دیگری را انجام دهد تا از ارسال و دریافت داده به طور صحیح اطمینان حاصل نماید. بیتهای داده ای خام و غیر پردازش شده از یك پیام در داخل یك بسته قرار می گیرند كه یك سرآیند جهت تشخیص اطلاعات و یك مجموع مقایسه ای در انتهای آن برای آشكار سازی خطا قرار دارد. بنابراین در دو واسط ارتباطی زمانهایی جهت ایجاد و رمز گشایی این سرآیند و مجموع مقابله ای تلف خواهد گردید. اگر یك خطای انتقال تصادفی ناشی از پارازیت در رسانه الكترونیكی از پیوند ارتباط ایجاد شود ، آنگاه گیرنده ارسال مجدد پیام را درخواست خواهد كرد .این آشكار سازی و تصحیح خطا ممكن است متوسط تاخیر ارتباطی را افزایش دهد .</p>
<p><em>2.</em><em> مسیریابی و ازدحام </em><em> </em></p>
<p>هر واسط ارتباطی ممكن است دارای چندین پیوند باشد كه آن را به چندین پردازنده متصل می كند. همانند مثالی كه در شکل  زیر آمده است :</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>شکل 11) شبکه ارتباطی</p>
<p>پردازنده واقع در مركز شکل ، دارای چهار پیوند ارتباطی مستقیم به پردازنده های دیگر می باشد پردازنده های دیگر دارای پیوند مستقیم به پردازنده های اضافی می باشند این 9 زوج پردازنده – حافظه ، همراه با همه پیوندهای ارتباطی اشاره شده تشكیل یك شبكه ارتباطی را می دهند .</p>
<p>هر پردازنده ممكن است مستقیماً با همسایه های مجاورش با استفاده از پیوندهای ارتباطی مستقیم اتصال داشته باشد. پردازنده هایی كه با یكدیگر به طور مستقیم اتصال ندارند نیز می توانند با استفاده از انتقال پیامها در واسطه های ارتباطی میانی ، با یكدیگر ارتباط برقرار نمایند.</p>
<p>برای مثال 0 می تواند یك پیام را با فرستادن آن به طور مستقیم به واسط ارتباطی پردازنده 1 كه آن را رو به جلو و به سمت واسط ارتباطی پردازنده 2 حركت می دهد ، به پردازنده 2 ارسال دارد .</p>
<p>بنابراین اگر زمان انتقال از طریق یك پیوند ارتباطی منفرد ، T واحد زمانی باشد آنگاه كل زمان لازم برای انتقال یك پیام از پردازنده 0 به پردازنده 2 ، 2T واحد زمانی خواهد بود .</p>
<p>برای برخی از زوج پردازنده ها ممكن است همچنین مسیرهای متناوبی در شبكه وجود داشته باشد P0 می تواند یك پیام را با استفاده از هر كدام از مسیرهای زیر به P5 انتقال دهد .</p>
<p>P0-P1-P2-P5 . P0-P1-P4-P5 . P0-P3-P4-P5</p>
<p>همه این مسیرهای ممكن ، نیاز دارند كه پیام از میان سه پیوند ارتباطی بتواند عبور نماید بنابراین كل تاخیر زمانی جهت ارسال پیام از P0 به P5 ، 3T واحد زمانی خواهد بود .</p>
<p>به منظور اینكه اجازه دهیم هر پیام به طور صحیح به مقصد خود فرستاده شود. هر بسته باید شامل یك عدد پردازنده مقصد به عنوان قسمتی از سرآیند باشد .</p>
<p>قالب عمومی یك بسته از یك پیام در شکل 12 نشان داده شده است :</p>
<p>&nbsp;</p>
<p>شکل 12) قالب یک بسته از یک پیام</p>
<p>&nbsp;</p>
<p><strong><em> </em></strong></p>
<p><strong>توپولوژی مالتی كامپیوترها</strong><strong> </strong></p>
<p><strong><em> </em></strong></p>
<p>در همه معماری های كامپیوتری جهت طراحی شبكه ارتباطی پردازنده های یك مالتی كامپیوتر ، اصولاً یك مبادله بین هزینه و قابلیت اجرا موجود است. تاخیر بوجود آمده توسط یك پیام درانتقال بین پردازنده ها بستگی به متوسط تاخیر ارتباطی مورد نیاز برای انتقال در طول هر پیوند ارتباطی و همچنین به كل تعداد پیوندهایی كه پیام با عبور از آنها از مبدا به مقصد می رسد ، دارد . تعداد پیوندهای مسیری كه پیام ازآن عبور می كند وابسته به توسعه ساختمان كلی شبكه ارتباطی دارد كه برخی اوقات توپولوژی ارتباطی مالتی كامپیوتر نامیده می شود یك پارامتر مهم از یك توپولوژی مالتی كامپیوتر تعداد پیوندهای منتشره روی هر واسط می باشد كه درجه اتصال توپولوژی نامیده می شود. این یك فاكتور مهم در تعیین هزینه یك شبكه می باشد. پارامتر مهم دیگر قطر توپولوژی است كه ماكزیمم تعداد پیوندهای موردنیاز جهت انتقال یك پیام بین دورترین پردازنده ها ، تعریف می شود قطر یك فاكتور مهم در تعیین قابلیت اجرای یك شبكه می باشد این بخش توپولوژی های گوناگونی از مالتی كامپیوترها را با افزایش درجه پیچیدگی آنها توصیف می كند. ساده ترین توپولوژی دارای كمترین درجه اتصال و بنابراین دارای قطر بیشتری است پیچیده ترین توپولوژیها دارای بالاترین درجه اتصال و بنابراین كمترین قطر می باشد .توپولوژیها به طور سلسله مراتبی از نظر هزینه و از نظر اصلاح قابلیت اجرایی ، افزایش دارند.</p>
<p>بسیار مهم است كه برنامه نویسان همروند با این عوامل و رفتار توپولوژیهای گوناگون مالتی كامپیوتر ، آشنا باشند. هر توپولوژی دارای ویژگیهای اجرایی مختص خود می باشد و الگوریتم همروند باید برای حصول ماكزیمم قابلیت اجرا ،به فرم درخور شایسته برای یك توپولوژی درآید. همه این توپولوژی های مالتی كامپیوتر كه دراین بخش توصیف می گردد، در سیستم تعاملی مالتی پاسكال قابل استفاده می باشد .</p>
<p><strong><em> </em></strong></p>
<p><strong><em> توپولوژی خطی و حلقوی</em></strong><strong><em> و فوق مکعب</em></strong></p>
<p>در یك توپولوژی خطی از یك مالتی كامپیوتر ، واسطهای ارتباطی در یك خط راست همانگونه كه در شکل زیر نشان داده شده است به یكدیگر متصل شده اند :</p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="30" height="20"></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>شکل 13) توپولوژی خطی</p>
<p>&nbsp;</p>
<p>دراین شکل فرض بر این است كه هر دایره شماره گذاری شده ، شامل یك پردازنده ، یك حافظه و واسط ارتباطی می باشد. هر خط بین یك زوج از دایره ها نمایانگر یك پیوند ارتباطی مستقیم در شبكه می باشد جزئیات داخلی هر كدام از مولفه های شبكه در اینجا و همین طور در دیاگرامهای آتی، حذف شده است. تنهادوایر عددگذاری شده كه توسط خطوط به یكدیگر متصل اند دردیاگرامها نشان داده شده است. نظر به اینكه مبدا و مقصد واقعی هر پیام ، پردازنده ها می باشند بنابراین هنگامی كه از ارتباطات یا اتصالات صحبت می كنیم رجوع ما برای این اصطلاحات مربوط به پردازنده ها می باشد  . هنگامیكه این اصطلاحات استفاده می شود فرض بر این است كه در واقعیت نیز واسطهای ارتباطی به طور فیزیكی به یكدیگر متصل می باشند. وقتی دو پردازنده در یك توپولوژی مستقیماً به یكدیگر مرتبط اند ، اصطلاحاً به آنها پردازنده های متصل گفته می شود. برای مقایسه نسبی ویژگیهای قابلیت اجرای توپولوژی های مختلف ، فرض بر این است كه تاخیرات ارتباطی زمانی برای پردازنده های متصل در همه توپولوژی ها كوچك است. بنابراین قابلیت اجرای نسبی فقط بستگی به مسافت بین پردازنده ها دارد. مسافت بین هر زوج از پردازنده ها در هر توپولوژی داده شده عبارت است از مسیر بین پردازنده ها وقطر یك توپولوژی بزرگترین مسافت بین پردازنده ها در شبكه تعریف شده است در توپولوژی خطی از شکل 13 كه از 8 پردازنده تشكیل شده ، قطر آن 7 می باشند .</p>
<p>در حالت عمومی ، یك توپولوژی خطی با n پردازنده ، دارای درجه اتصال 2 و قطر n-1                  می باشدمسافت بین هر دو پردازنده I و j همیشه (I-j )است اگر تاخیر ارتباطی اساسی برای پردازنده های متصل T باشد ،زمان فرستادن یك پیام از پردازنده I به پردازنده J به سادگی T(I-j) می باشد بدون افزایش هزینه ، قابلیت اجرای یك توپولوژی خطی می تواند به سادگی با اضافه كردن یك و یا بیشتر از پیوندهای ارتباطی از اولین پردازنده به آخرین پردازنده تا حد زیادی اصلاح شود. نتیجه یك توپولوژی حلقوی نامیده می شود كه در شکل زیر آمده است :</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>شکل 14) توپولوژی حلقوی</p>
<p>&nbsp;</p>
<p>این یك ارتباط اضافی است كه متوسط مسافت بین پردازنده ها را با فاكتوری از 2 كاهش می دهد. یك توپولوژی حلقوی n پرازنده های دارای قطر N/2 می باشد .</p>
<p>درشکل بالا ماكزیمم مسافت ، مربوط به پردازنده هایی است كه در مقابل یكدیگر قرار دارند بنابراین در توپولوژی حلقوی یك پیام برای رسیدن به پردازنده مقصد خود ، حداكثر نصف طول حلقه را می پیماید در حالی كه در یك توپولوژی خطی ، ممكن است كه یك پیام ناچار باشد كه برای رسیدن به پردازنده مقصد از تمام ارتباطی عبور نماید .</p>
<p>با افزایش تعداد پیوندهای ارتباطی متصل به هر پردازنده این امكان وجود دارد كه قطر شبكه و متوسط تاخیر ارتباطی در شبكه را كاهش دهیم یكی از چنین توپولوژیهایی مش دو بعدی می باشد كه در شکل 15 زیر مثال زده شده است:</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>شکل 15 ) توپولوژی مش دو بعدی</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>شکل 15) توپولوژی مش دوبعدی</p>
<p>&nbsp;</p>
<p>این توپولوژی از مالتی كامپیوترها ، شامل پردازنده هایی است كه آرایش آنها مانند یك آرایه دو بعدی صورت گرفته است برای یك پردازنده داده شده در سطر I و ستون j این پردازنده به 4 پردازنده همسایه مجاور خود واقع در چپ ، راست ، بالا و پایین كه به ترتیب در مكانهای (I-1.j)، (I+1.j) قرار دارند ، متصل شده است. همانگونه كه در شکل 15 نشان داده شده است ، ارتباطات بین ستونهای مجاور ، افقی و ارتباطات بین سطرهای مجاور به فرم عمودی می باشد. هیچ ارتباط قطری وجود ندارد پردازنده های مرزی تنها دارای 2 یا 3 همسایه متصل می باشند در عددگذاری پردازنده ها از شکل 15 پردازنده ها به ترتیب به طور سطری عددگذاری شده اند و گوشه سمت چپ ، پردازنده صفر قرار دارد. این نوع عددگذاری را ترتیب افزایشی سطری می نامند. پیامها بین پردازنده ها در حركت بوده و باید در طول مسیرهای افقی یا عمودی بین پردازنده های متوالی حركت كنند. برای مثال یك پیام كه از پردازنده ها 6 به 13 انتقال می یابد ،باید اول به پردازنده 11 و آنگاه به پردازنده 12 و نهایتاً به 13 برسد كه به طور كلی سه مرحله دارد. یك پیام ممكن است همچنین مسیرهای دیگری مانند 6-7-8-13 و یا 6-7-12-13 را انتخاب نماید، اما تعداد مراحل هنوز 3 خواهد بود .</p>
<p>بین هر زوج از پردازنده ها ،یك مسیر با طول می نیمم وجود دارد كه با مجموع مسافت سطر و ستونهای آن اندازه گیری می شود.اگر تاخیر ارتباطی برای پردازنده های متصل T باشد. آنگاه زمان ارتباطی دورن – پردازنده ای برای هر زوج از پردازنده ها عبارت است از طول این مسیر می نیمم ضربدر T ،برای هر مش M×M قطر شبكه ، همان طول مسیر می نیمم بین دو پردازنده واقع در دو گوشه مخالف مش است ، كه این همیشه 2(M-1) است .</p>
<p>در یك توپولوژی مش ، هر سطر و ستون با یك توپولوژی خطی است . همانگونه كه توپولوژی خطی می تواند با اضافه كردن یك ارتباط درانتهای آن به فرم یك حلقه درآید، قابلیت اجرای توپولوژی مش نیز می تواند با اضافه كردن چنین ارتباطی به انتهای هر سطر و هر ستون انجام شود. این در شکل 16 مثال شده است. هر پردازنده در مرز سمت چپ به نقطه مرزی مقابل خود در سمت راست متصل شده است. بطور مشابه هر پردازنده در مرز بالای مش مستقیماً به نقطه مرزی مقابل خود در پایین مش متصل شده است .</p>
<p>&nbsp;</p>
<p>شکل 16) توپولوژی تورس</p>
<p>توپولوژی كه به این طریق بدست می آید .تورس نامیده می شود ، درجه اتصال چنین توپولوژی همیشه 4 است نظر به اینكه هر پردازنده اكنون دقیقاً 4 پیوندارتباطی را دارا می باشد همانند توپولوژی خطی كه به توپولوژی حلقوی تبدیل شد ، بنابراین كاهش قطر در اینجا نیز فاكتوری از 2 خواهد بود این اصلاح در قابلیت اجرا وقتی كه توپولوژی با اضافه كردن همه اتصالات كمربندی لازم به توپولوژی تورس تبدیل می شود  ، روی می دهد بدیهی است كه در این توپولوژی پردازنده های واقع در گوشه های مخالف ،‌با مسافتی به طول 2 از یكدیگر جدا شده اند ماكزیمم مسافت دراین تورس بین گوشه ها و مركز تورس می باشد بنابراین در یك توپولوژی تورس m×m ، قطر ، m می باشد این الگوی مش  به حالت 3 بعدی تبدیل شود .</p>
<p>توجه كنید كه هر پردازنده دارای 4 اتصال به دیگر پردازنده ها می باشد.</p>
<p>&nbsp;</p>
<p>شکل 17 ) توپولوژی فوق مکعب با بعد 4</p>
<p>&nbsp;</p>
<p>یك فوق مكعب با 128 پردازنده دارای بعد 7 می باشد بنابراین هر پردازنده دارای 7 اتصال مستقیم است. اتصالات اضافی در فوق مكعبهای با ابعاد بالاتر ، متوسط تاخیر زمانی را در توپولوژی مش ، كاهش می دهد. مسافت بین پردازنده ها در یك فوق مكعب دقیقاً برابر بیتهایی است كه این پردازنده ها با یكدیگر تفاوت دارند. برای مثال پردازنده 000، 2 گام از پردازنده 011 تفاوت دارد.</p>
<p>برای اینكه پردازنده 000با 011 ارتباط برقرار نماید. ابتدا باید یك پیام را به همسایه متوالی خود یعنی 001 ارسال كند و سپس این پردازنده پیام را به همسایه مجاور خود، یعنی 011 انتقال دهد .بنابراین ارتباط بین 000 و 011 حاوی 2گام است برای d=3 هر پردازنده دارای 3 همسایه مجاور می باشد و ماكزیمم مسافت بین پردازنده ها 3 گام است به طور كلی در یك فوق مكعب با بعد d پردازنده ها دارای d همسایه مجاور می باشند و ماكزیمم مسافت بین هر دو پردازنده ای ، d  می باشد.بنابراین درجه اتصال شبكه d و قطر شبكه نیز d است یك توپولوژی فوق مكعب ممكن است به صورت یك قانون بازگشتی ساده تعریف شود. یك فوق مكعب با بعد یك به صورت دو پردازنده تعریف می شود كه با عدد 0 و 1 شماره گذاری شده اند و یك اتصال خطی ساده بین آنها وجود دارد.یك فوق مكعب با بعد d+1 بطور بازگشتی بااستفاده از رویه ساختمانی زیر بدست می آید :</p>
<p>1)ایجاد یك فوق مكعب با بعد d ، شبیه فوق مكعب اولیه كه شامل اعداد پردازنده ها می باشد كه اصطلاحاً به آن نسخه ثانویه فوق مكعب گوییم .</p>
<p>2)ایجاد یك اتصال مستقیم بین پردازنده های با عدد یكسان در نسخه اولیه و نسخه ثانویه فوق مكعب</p>
<p>3)اضافه كردن رقم دودویی 1 به سمت چپ هر كدام از عدد پردازنده ها در نسخه ثانویه و رقم دودویی 0 به سمت چپ هر كدام از عدد پردازنده ها در نسخه اولیه.</p>
<p>این ساختمان بازگشتی برای ابعاد 1 الی 3 در شکل 16-7 مثال زده شده است :</p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="66" height="3"></td>
<td width="154"></td>
<td width="188"></td>
<td width="7"></td>
</tr>
<tr>
<td height="45"></td>
<td colspan="2" align="left" valign="top"></td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr>
<td height="146"></td>
<td></td>
<td colspan="2" align="left" valign="top"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td width="66" height="2"></td>
<td width="150"></td>
<td width="5"></td>
<td width="42"></td>
<td width="105"></td>
<td width="49"></td>
</tr>
<tr>
<td height="30"></td>
<td width="150" height="30" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p><strong>Dimension2:</strong></p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td height="59"></td>
</tr>
<tr>
<td height="30"></td>
<td colspan="2"></td>
<td width="42" height="30" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>10</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
<td></td>
<td width="49" height="30" bgcolor="white">
<table cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<div>
<p>11</p>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>شکل 18) ساختمان بازگشتی فوق مکعب</p>
<p>برای ایجاد یك فوق مكعب از بعد 4 ، قانون می گوید كه یك الگوی تكراری دو گانه برای بعد 3 ایجاد كرده و هر مكان متناظر دو نسخه اول فوق مكعب و نسخه دوم فوق مكعب ( نسخه ثانویه ) را به یكدیگر متصل نماییم این در شکل 17 نیز نشان داده شده است. این قانون ساختمانی بازگشتی چشم اندازهایی از ساختمان فوق مكعب ها را ارائه می دهد كه بعداً در طراحی الگوریتم های كارآمد جهت اجرا روی مالتی كامپیوترهای فوق مكعبی مفید می باشند .جدول زیر دو ویژگی توپولوژیهای مالتی كامپیوتری را كه درجه اتصال و قطر می باشد، نشان می دهد .</p>
<div>
<table dir="rtl" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="110">Diameter</td>
<td width="107">Connectivity</td>
<td width="104">Topology</td>
</tr>
<tr>
<td width="110">n-1</td>
<td width="107">2</td>
<td width="104">Line</td>
</tr>
<tr>
<td width="110">N/2</td>
<td width="107">2</td>
<td width="104">Ring</td>
</tr>
<tr>
<td width="110">2(n1/2-1)</td>
<td width="107">2-4</td>
<td width="104">2D-Mesh</td>
</tr>
<tr>
<td width="110">n1/2</td>
<td width="107">4</td>
<td width="104">Turos</td>
</tr>
<tr>
<td width="110">3(n1/3-1)</td>
<td width="107">3-6</td>
<td width="104">3D-Mesh</td>
</tr>
<tr>
<td width="110">Logn</td>
<td width="107">Logn</td>
<td width="104">Hypercube</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>درجه اتصال،اندازه ، هزینه نسبی توپولوژی ها و قطر ، اندازه قابلیت اجرای نسبی را نشان می دهد.</p>
<p>به منظور مقایسه کردن،فرض شده است که هر توپولوژی دارای n پردازنده می باشد.این نوع توپولوژی ها در یک ترتیب صعودی بر حسب هزینه و قابلیت اجرا در لیست بالا نشان داده شده است.</p>
<br />دسته‌بندی شده در: <a href='http://ehgroup.wordpress.com/category/uncategorized/'>Uncategorized</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ehgroup.wordpress.com/414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ehgroup.wordpress.com/414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ehgroup.wordpress.com/414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ehgroup.wordpress.com/414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ehgroup.wordpress.com/414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ehgroup.wordpress.com/414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ehgroup.wordpress.com/414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ehgroup.wordpress.com/414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ehgroup.wordpress.com/414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ehgroup.wordpress.com/414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ehgroup.wordpress.com/414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ehgroup.wordpress.com/414/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ehgroup.wordpress.com/414/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ehgroup.wordpress.com/414/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ehgroup.wordpress.com&amp;blog=1775693&amp;post=414&amp;subd=ehgroup&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ehgroup.wordpress.com/2010/12/09/%da%86%d9%80%d8%b1%d8%a7-%d8%a8%d9%80%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d9%80%d8%b3%db%8c-%d9%87%d9%85%d9%80%d8%b1%d9%88%d9%86%d8%af-%d8%9f-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e1bb710e14b1abf5dc3e02ff331f3c2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">احسیر سافت</media:title>
		</media:content>
	</item>
	</channel>
</rss>
