FREE

ساخت سیستم امنیتی رمزدار توسط آردوینو

ساخت سیستم امنیتی رمزدار توسط آردوینو
ساخت سیستم امنیتی رمزدار توسط آردوینو

ساخت سیستم امنیتی رمزدار توسط آردوینو

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

ویژگیها و قابلیتهای پروژه:

  • آموزش کار با کیپد
  • آموزش کار با نمایشگر کاراکتری
  • آموزش کار با واحد EEPROM
  • ذخیره کردن پسورد در حافظه ی دائمی میکروکنترلر
  • قابلیت تغییر پسورد
  • قابلیت افزایش تعداد ارقام پسورد
  • تعبیه کردن رله در مدار جهت کنترل مدارات قدرت
  • تعبیه کردن بازر در مدار

فایلهای ارائه شده به همراه پروژه:

  • شماتیک مدار
  • سورس کد برنامه
  • توضیح خط به خط کدهای برنامه و بیان کلیه ی تکنیکهای کد نویسی(آموزش کامل)
  • تصاویر مدار
FREE

کنترل ربات توسط حرکات دست (رادیوکنترل)

کنترل ربات توسط حرکات دست (رادیوکنترل)

 

کنترل ربات توسط حرکات دست (رادیوکنترل)

کنترل ربات توسط حرکات دست (رادیوکنترل)

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

فایلهای همراه پروژه:

  • سورس کد برنامه های فرستنده و گیرنده
  • توضیح کامل و خط به خط برنامه های فرستنده و گیرنده
  • آموزش کار با سنسورها و ماژولهای استفاده شده
  • شماتیک مدار فرستنده و گیرنده
  • PCB مدار فرستنده

ویژگیهای رادیوکنترل ساخته شده:

  • 3 کاناله یا 6 کاناله بودن(بسته به نوع استفاده)
  • قابل استفاده برای هر نوع رباتی از جمله رباتهای زمینی و هوایی
  • قابلیت کنترل سرعت و جهت رباتها
  • قابل استفاده در دو حالت متفاوت(در فیلم تست رادیوکنترل بررسی شده است)
  • داشتن سایزی بسیار کوچک و وزنی بسیار پایین
  • عدم استفاده از کلیدها و جوی استیکها
  • قیمت تمام شده ی بسیار پایین
  • داشتن برد و امنیت بالا
FREE

آموزش کامل کار با MPU6050 همراه با فیلم آموزشی

آموزش کامل کار با MPU6050 همراه با فیلم آموزشی

 

آموزش کامل MPU6050

آموزش کامل MPU6050

توجه(آپدیت پروژه) : به این پروژه یک فیلم آموزشی(مدت زمان 20 دقیقه) اضافه شد.

آیا قصد دارید یک ربات self-balancing یا هواپیمای کنترل از راه دور ( drone ) مثلا کوادروتوری با قابلیت auto-level یا self-level (یعنی کوادروتور بتونه بصورت اتوماتیک خودش رو بصورت موازی افق در بیاره) بسازید؟ اندازه گیری زاویه ی شیب ربات(tilt angle) همیشه برای سازندگان آن یک چالش بزرگ بوده است. دقت زاویه ی شیب محاسبه شده برای برخی کاربردها نظیر رباتهای متعادل و مولتی روتورها بی نهایت مهم است. این دست از رباتها به سنسورهایی از قبیل شتابسنج، ژیروسکوپ و در کل یک IMU نیاز دارند. این المانهای MEMS کوچک و سبک، داخل ربات تعبیه می شوند تا اطلاعاتی در خصوص پدیده های مکانیکی مختلفی از قبیل شتاب، ویبره، شیب، موقعیت یا جهت در فضا، سرعت زاویه ای و چرخش را جهت پردازش و تولید دستورات لازم جهت کنترل ربات تولید کنند. در اینجا قصد داریم بطور کامل و جامع نحوه ی کار با IMU ها و روش دریافت دیتا از آنها و اعمال فیلتر روی داده های سنسورهایشان را آموزش بدهیم.IMUها کاربردهای بسیار گسترده ای دارند. IMU ی انتخابی ما MPU6050 می باشد. دلیل این انتخاب قیمت پایین و ویژگیهای جالب این IMU است . ولی آموزش طوری بیان شده که بتوان دیگر IMU ها را نیز راه اندازی کرد و با دیتاشیت آنها کار کرد و نیز بتوان فیلترهای آموزش داده شده را روی دیگر IMUها اعمال کرد.

مطالبی که در این آموزش پوشش داده شده اند:

  1. معرفی کامل MPU6050 و بررسی ویژگیها و قابلیتهای آن
  2. آموزش کار با دیتاشیت سنسورها
  3. آموزش کار با واحد DMP سنسور MPU6050
  4. ترجمه ی فارسی بخشهای موردنیاز و ضروری دیتاشیت
  5. آموزش اصطلاحات کاربردی مورد نیاز
  6. آموزش data fusion یا sensor fusion
  7. آموزش فیلترینگ داده ها و بیان دلایل استفاده از فیلتر
  8. آموزش فیلتر complementary یا فیلتر مکمل و بیان اصول و روابط آن
  9. پیاده سازی فیلتر complementary توسط کد
  10. اعمال فیلتر complementary روی داده های شتابسنج و ژیروسکوپ جهت دستیابی به زوایایی دقیق و قابل اعتماد
  11. اعمال فیلتر کالمن(Kalman filter) روی داده های سنسورها و انجام عمل sensor fusion برای محاسبه ی زوایا
  12. بیان معایب هر یک از سنسورهای شتابسنج و ژیروسکوپ بصورت کاملا عملی و مشهود و قابل درک
  13. ارائه ی روشهایی برای از بین بردن نقاط ضعف سنسورها
  14. بیان محاسن هر یک از سنسورها بصورت عملی و مشهود
  15. روش گرفتن دیتای خام از سنسورهای شتابسنج و ژیروسکوپ MPU6050 بدون استفاده از کتابخانه
  16. آموزش تعریف توابعی از قبیل تابع کانفیگ ماژول و تابع دریافت دیتا جهت ساده تر کردن و خواناتر کردن کدها
  17. آموزش کالیبره کردن سنسورهای ماژول MPU6050 بدون استفاده از کتابخانه به روش تعریف تابع کالیبراسیون
  18. روش محاسبه ی شتاب بر حسب g
  19. روش محاسبه ی سرعت زاویه ای بر حسب dps
  20. روش محاسبه ی زوایای سنسور در فضا با استفاده از شتابسنج بصورت مستقیم و بدون استفاده از کتابخانه
  21. روش محاسبه ی مقدار جابجایی زاویه ای با استفاده از ژیروسکوپ بصورت مستقیم و بدون استفاده از کتابخانه
  22. روش دریافت دیتای خام سنسورها با استفاده از کتابخانه
  23. روش کالیبره کردن سنسور با استفاده از کتابخانه
  24. روش محاسبه ی زوایای سنسور در فضا با استفاده از داده های شتابسنج توسط کتابخانه
  25. روش محاسبه ی مقدار جابجایی زاویه ای با استفاده از داده های ژیروسکوپ با استفاده از کتابخانه
  26. روش اندازه گیری دما توسط سنسور دمای داخلی MPU6050
Course

آموزش ساخت فلایت کنترل WLE (جلسه 21 کواد)

آموزش ساخت فلایت کنترل WLE (جلسه 21 کواد)
آموزش ساخت فلایت کنترل WLE

آموزش ساخت فلایت کنترل WLE

در این بخش ساخت فلایت کنترل کوادکوپتر را آموزش می دهیم ، فلایت کنترل اصلی ترین بخش یک ربات پرنده است که وظیفه کنترل و هدایت ربات پرنده را به عهده دارد ، ساختن فلایت کنترل کار ساده ای نیست و طراحی فلایت کنترل به اطلاعات تخصصی و کاربردی در مورد دریافت اطلاعات از سنسور ها ، کنترل کننده های PID ، فیلتر ها ، تولید پالس و سایر موارد نیاز دارد ، در این بخش یک فلایت کنترل پایه ای طراحی می کنیم که دارای تعادل مناسبی است و در آن از تمام اصول کنترلی یک کنترل کننده استفاده شده است . اندازه این فلایت کنترل 5.5 در 5.5 سانتی متر است و بصورت در حالت X کانفیک شده است  . برای کنترل ربات از ماژول ژیرسکوپ L3G4200 استفاده شده است و هسته کنترلر آن یک میکروکنترلر ATMEGA328 است ، برای سهولت در برنامه نویسی روی میکرو بوتلودر آردوینو آپلود شده است و از طریق یک مبدل USB به TTL می توان فلایت کنترل WLE را پروگرام کرد (دقیقا مانند برد مولتی وی) ، در این آموزش بصورت کامل نحوه برنامه نویسی فلایت کنترل شرح داده شده است ، برنامه بخش بند شده و هر بخش بصورت مجزا توضیح داده شده است و در آخر برنامه کلی شرح داده شده است تا درک آن برای شما راحت تر باشد ، بعداز شرح برنامه نویسی ، به نحوه کار کرد فلایت و سوار کردن آن روی فریم پرداخته و عملکرد آن را بررسی می کنیم

مطالبی که در جلسه ساخت فلایت کنترل WLE ارائه می شود به شرح زیر است :

  1. نحوه دریافت دیتا از رسیور
  2. شیوه عملکرد پین های ورودی پالس
  3. نحوه استفاده از وقفه برای دریافت دیتا از رسیور
  4. توضیحاتی در مورد ماژول L3G4200 و بررسی دیتاشیت آن
  5. بررسی رجستر های ماژول L3G4200 و کاربرد هر کدام
  6. برنامه نویسی L3G4200 و نحوه دریافت دیتای خام از آن
  7. تبدیل دیتای خام L3G4200 به دیتای قابل استفاده برای فلایت
  8. کالیبره کردن ماژول L3G4200 جهت بهبود عملکرد ربات
  9. معرفی کنترل کننده PID و شرح عملکرد آن
  10. نحوه استفاده از PID در فلایت کنترل
  11. پیاده سازی PID با زبان آردوینو
  12. توضیح مختصری درباره فیلتر ها
  13. بررسی حالت های مختلف کنترل ربات (نحوه پرواز ، رفتن به چپ و راست و …)
  14. بررسی رفتار کانال های رادیو کنترل در حرکت ربات
  15. توضیح کلی برنامه نویسی فلایت کنترل
  16. جمع بندی کلی شرح نهایی برنامه نویسی
  17. بستن فلایت روی فریم و نحوه سیم کشی ها
  18. آموزش استفاده از فلایت کنترل (روشن ، خاموش ، پرواز و … )
FREE

پروگرم کردن میکروکنترلر بصورت بی سیم

پروگرم کردن میکروکنترلر بصورت بی سیم
پروگرم کردن بصورت بی سیم

پروگرم کردن بصورت بی سیم

تصورکنید بشه مدار رو ، یا بهتر بگم میکروکنترلر رو در هر مکانی بدون نیاز به PC و لپتاپ در حالی که روی مدار اصلیشه بدون جدا کردن از مدارش، بصورت بی سیم پروگرم کرد. خب باید بگم که این کار شدنیه و توسط مداری که در اینجا طراحی نموده ایم میتونید به این امر مهم دست بیابید. مداری که در تصویر مشاهده می کنید یک پروگرامر بیسیم است .  بیشتر مدارایی که طراحی شدن و نیاز به تغییر و ارتقا دارن یا اینکه portable نیستن (یعنی اینکه نمیشه برش داریم و ببریم تغییرش بدیم و بعد دوباره بذاریمش سر جاش) یا اینکه در فضای بسته امکان تست اونا وجود نداره. مثلا یه کوادروتور رو در نظر بگیرین. در این چنین رباتهایی معمولا کنترلر PID استفاده شده و میدونیم برای اینکه این کنترلر عملکرد قابل قبولی داشته باشه باید ضرائب PID یعنی Kp و Ki و Kd بارها و بارها تغییر داده بشن(که این عمل tunning نامیده میشه). بهترین روش برای تنظیم ضرایب هم آزمایش و خطا و تجربه هستش. فرض کنید در فضای بسته ضرایب رو طوری تنظیم کردین که ربات به خوبی پرواز میکنه. حالا اینکه تست کوادروتور داخل فضای بسته چه خطراتی به دنبال داره بماند.  همین که اون کوادروتور رو در فضای باز به پرواز در بیارین متوجه خواهید شد که پروازش چندان جالب هم نیست، چون تو فضای باز کوادروتور باید با یه سری نیروهای دیگه مثه نیروی حاصل از وزش باد سر و کله بزنه که به این مسائل حین تنظیم ضرایب توجهی نشده است. پس نیازه که ضرایبش رو در فضای باز و یک مکان امن تنظیم کنیم.این مدار بهترین گزینه برای حل همه ی مشکلات بالا است که امکان نصب کتابخانه و استفاده از آنها نیز وجود دارد.

همراه با این پروژه فایل های زیر جهت دانلود آماده شده اند:

  1.  سورس کد 
  2. شماتیک مدار
  3.  PCB طراحی شده برای مدار 
  4. آموزش سخت افزار 
  5. آموزش نرم افزار 
  6. آموزش نصب کتابخانه 
  7. برنامه های مورد نیاز 
  8. تصاویر مدار
FREE

ساخت رادیو کنترل توسط دسته بازی PlayStation2

ساخت رادیو کنترل توسط دسته بازی PlayStation2
ps2

ps2

 

یکی از بهترین راه ها برای کنترل وسایل به خصوص رباتها بوسیله ی ریموت کنترل، استفاده از دسته ی بازی Playstation2 است. این کنترلر دارای 17 کلید دیجیتال ( 4 کلید چپ و 4 کلید راست و 4 کلید پشت،L3, R3، Start, Select , analog) و 2 عدد جوی استیک(یعنی 4 کانال آنالوگ) است. پر واضح است که توسط این رادیو کنترل میتوان تعداد زیادی کانال برای انجام هر کار دلخواهی داشت. این کنترلر همچنین دارای دو موتور ویبره است که میتوان از آنها در برخی پروژه ها برای نشان دادن عکس العملهای خاص استفاده نمود.

قیمت این دسته نسبت به کارایی آن و ویژگی هایی که دارد بسیار پایین است، طوریکه قیمت آن تقریبا برابر است با قیمت دو عدد ماژول جوی استیک!

ما در انتخاب ماژول فرستنده و گیرنده ی رادیویی برای ساخت این رادیو کنترل انتخابهای زیادی داشتیم.بعنوان مثال میتوانستیم از ماژولهای وایرلس NRF یا ماژولهای HMR-HMT استفاده کنیم. ولی در ساخت این رادیو کنترل از ماژولهای ASK که فرکانس کاری 433 یا 315 مگاهرتز دارند استفاده نموده ایم. دلیل این انتخاب قیمت پایین این ماژولها و همچنین سایز کوچک آنها و خصوصا سایز کوچک ماژول فرستنده(که قرار است داخل دسته ی بازی قرار داده شود) و نیز نبودن منابع مناسب در خصوص راه اندازی این سری از ماژولها بود.

دلیل دیگر انتخاب ماژولهای رادیویی با فرکانس پایین این است که با افزایش فرکانس، میزان ضریب نفوذ موج افت پیدا می کند. در واقع با افزایش فرکانس، فرستنده و گیرنده می بایست به خط دید یکدیگر نزدیک شوند(یعنی در دید هم باشند) تا بتوانند با هم ارتباط بی نقصی برقرار کنند.