گزارش 2 پروژه ریموت کنترل

برای درک مفهوم میکرو کنترلر همین بس که بدانیم میکرو یک کامپیوتر کوچک شده در یک آی سی است که از طریق کامپیوتر برنامه ریزی می شود و ما می توانیم تمامی مداراتی را که تابحال به کمک ده ها اسیلاتور و تایمر و گیت های منطقی پیاده سازی می کردیم، با نوشتن چند خط برنامه و سپس آپلود آن در حافظه میکرو، مدار مورد نظر را بسازیم.تاریخچه:
  اولین نسل میکروی شناخته در ایران 8051 می باشد که با زبان اسمبلی برنامه ریزی می شود و قدرت چندانی ندارد. دومین و پرقدرت ترین میکرو  ( البته از دیدگاه ما) میکروی AVR می باشد که آموزش آن فوق العاده راحت بوده و با زبان ساده بیسیک برنامه ریزی می شود (هر چند 8051 نیز با بیسیک برنامه ریزی می شود).   سری آخر میکروها نوع PIC  محصول شرکت میکرو چیپ می باشند که صنعتی ترین نوع میکرو کنترلر است. در قفل مرکزی اتومبیل که معدن نویز و بی ثباتی ولتاژ است میکرو های PIC حضور چشمگیری دارند و این خود دلیل بر نویز پذیر نبودن این میکرو است. این میکرو ها از 8051 پر قدرت ترند و بنا به اظهار عده ای از AVR نیز قوی ترند. معروف ترین مدل آن PIC16F84 می باشد.
نکات یک برنامه خوب:
   برنامه نویسی یعنی آموزش روش کار. فرض کنید به شخصی 1000 نهال می دهید و به او می گویید که این 1000 نهال را با فاصله های 5 متری از یکدیگر بکارد. اولین قدم معرفی ابزار کار است و مرحله بعد روش کار با ابزار کار. برای شروع کار شما می بایستی به طور دقیق و مرحله به مرحله روش کاشت یک نهال را برای شخص توضیح دهید. دقت کنید اگر برنامه نویسی شما "مبتدی" باشد برای هر 1000نهال باید کنار شخص بمانید و 1000 بار به او یاد دهید! ولی اگر برنامه نویسی شما "حرفه ای " باشد فقط یکبار کار را یاد می دهید و به فرد می گویید که این کار را 1000 بار تکرار کند ( دستور حلقه در برنامه نویسی Loop).   می دانیم که شخص مورد نظر یک انسان است و انسان متفکر است. اما هنگامی که شما با یک میکرو کار می کنید با شخصی سروکار دارید که به طور مثال اگر در حین کار فراموش کنید که به او بگویید "نفس بکشد" می میرد! برنامه نویسی میکرو و کامپیوتر اینگونه است و هنگام برنامه نویسی باید از تمام زوایا به قضیه نگاه کنید و تمام جوانب را در نظر بگیرید. مثلاً در هر خطی از برنامه که هستید با خود بگویید اگر در این لحظه برق میکرو قطع شود آیا اطلاعاتی از بین می روند؟ و آیا اگر شخص کنجکاوی تمام دکمه های کیبرد را نگه داشت چه اتفاقی می افتد؟و یا مثلاً فرض کنید با یک میکرو برنامه ای نوشته اید که یک تمام کولر های یک سوله را با افزایش دما یکی یکی روشن می کند، فرض کنید تمام کولر ها در طول روز یکی یکی و با فاصله زمانی روشن شده اند و در حال حاضر "همین حالا" 36 کولر روشن داریم؛ ناگهان برق سوله قطع می شود ( توجه کنید دما تغییری نکرده است و در ماکسیمم مقدار خود است) با وصل شدن مجدد برق چون دما بالا است به طور ناگهانی 36 کولر باهم روشن می شوند و سیم کشی آتش میگیرد!!    این نمونه کوچکی از یک اشتباه فوق العاده کوچک بود که فقط خسارت مالی به دنبال داشت ولی اگر بخواهید چنین اشتباهی را در ارتباط با یک پروژه ای که مربوط به یک اتومبیل است و انجام آن به عهده شما گذاشته شده مرتکب شوید؟؟ فرض کنید برنامه را هم نوشته و به تولید انبوه رسانده اید . بدون اینکه آنرا از تمام زوایا بررسی کنید به شرکت فروخته اید شرکت هم به مردم. نمونه آن مشکلات ناشی از طراحی غلط یک قطعه کوچک پژو 405 که نیازی به توضیح ندارد. دلیل اصلی اینکه ما اجناس شرقی را به سختی تایید می کنیم همین عدم کنترل کیفیت است. در صورتی که همه ما میدانیم اجناس تایید شده غربی با برچسب FCC از هر جنبه ایمن بوده و در شرایط گوناگون تست شده  و تمام مشکلات آنها برطرف شده است.   این از بحث امنیت، موضوع دوم در ساخت برنامه و یا هر دستگاه سخت افزاری، ساده بودن Interface دستگاه می باشد. یعنی اینکه ارتباط با دستگاه فوق العاده راحت باشد و یک فرد بیسواد و یک کودک هم بتوانند بدون آموزش با آن کار کنند قرار دادن 10 دکمه رنگی و LCD و کیبرد در جلوی یک پروژه هرگز کلاس کار را بالا نمی برد!! بلکه گاهی اوقات با یک دکمه می توان تمام عملیات راانجام داد (برای نمونه تایمری که روی "سرخ کن مولینکس" (یکی از وسایل آشپزخانه) قرار دارد با استفاده از یک کلید فشاری تمام عملیات تنظیم،ریست، روشن،خاموش، شروع تایمگیری و ... را انجام می دهد!   مورد بعدی در یک برنامه خوب کم حجم بودن آن است. نکته ای که اغلب افرار از توجه به آن غافل می مانند و برنامه خوب را بالاتر از 1000 خط می دانند!  سعی کنید برنامه ای که می نویسید هرگز از 200 یا 300 خط بیشتر نشود.
انتخاب کدام زبان برنامه نویسی؟
   برای اینکه به میکرو بگویید مثلاً پایه شماره 14 را یک کند( یک کردن یعنی در پایه مذکور 5+ ولت ظاهر شود و صفر کردن یعنی 0 ولت در پایه جاری شود) باید دستور مذکور را در حافظه فلش میکرو بنویسید.می توانید خیلی راحت یک Notepad باز کرده و دستور 11110101 (به طور مثال) را به طور باینری در آن بنویسید و به کمک برنامه واسط و پروگرمر (وسیله ای است که شامل یک سوکت برای نصب میکرو بوده و کابل آن به پورت پرینتر PC وصل می شود و با کمک آن برنامه را از کامپیوتر روی حافظه فلش میکرو آپلود می کنند ) برنامه را بر روی میکرو به اجرا درآورید.اما از آنجایی که Notepad قابلیت نمایش فایل باینری را ندارد و ثانیاً حفظ کردن تعداد زیادی 0 و 1 برای شما ممکن نخواهد بود. برای همین زبان های برنامه نویسی به وجود آمده اند که اولین آنها زبان اسمبلی می باشد. زبان معروف دیگر C بوده و ساده ترین آنها Basic می باشد.   با هر سه زبان می توانید برای همه میکرو ها برنامه نویسی کنید. ولی زبان اسمبلی جزئی تر می باشد و  برای آموزش طرز کار میکرو فوق العاده عالی است. مثلاً برای نوشتن برنامه ای که بتواند روی یک LCD متصل به میکرو حرف A را نشان دهد با اسمبلی باید از تمام رجیستر های Cpu گرفته تا آدرس های ثبات های Ram میکرو آگاهی داشته باشید و 10 الی 20 خط برنامه نویسی کنید در حالی که با بیسیک فقط می نویسید LCD A !  زبان C نیز چیزی بین این دو است.

  از لحاظ قدرت مسلماً اسمبلی قدرت بیشتری دارد و تسلط بیشتری بر برنامه داریم. با این حال بیسیک به نظر ساده تر می رسد ولی در نهایت فایلی که قرار است روی میکرو بار کنید در زبان اسمبلی یک دهم حجم بیسیک را دارد! ( در نتیجه سرعت میکرو در C و اسمبلی بالاتر است) دقت کنید که سرعت در برنامه های معمولی معنایی ندارد ولی در برنامه ای مثل فرکانس متر که باید در هر ثانیه 10 میلیون کار انجام شود اهمیت ویژه ای می یابد

/ 2 نظر / 19 بازدید
مهسا

نه عزیزم زیاتی عصابمو خورد کرده

مهرناز

www.mahsa68.blogfa.com mikhad maraz berize shoma jedi nagirin plz plz