کار با ماژول M66 - قسمت اول - کار با OpenCpu

کار با ماژول M66 - قسمت اول - کار با OpenCpu

کار با ماژول M66 - قسمت اول - کار با OpenCpu
کار با ماژول M66 - قسمت اول - کار با OpenCpu

هستند پروژه‌هایی که توی اونها دسترسی مستقیمی به برد نداریم ولی لازم هست که اطلاعاتی رو برای بردمون ارسال یا از اون دریافت کنیم. بهترین راه (و شاید تنها راه) برای اینکار استفاده از ماژول‌های gsm هست، ماژول‌هایی که سیم‌کارت می‌خورند و میتونند به شبکه تلفن همراه متصل بشند، میشه از طریق پیامک با اونها در ارتباط بود و یا زنگ زد بهشون و دستور بهشون داد یا اون زنگ بزنه به ما و حال و احوالش رو بگه?(خارج از شوخی این توی خیلی پروژه‌ها استفاده میشه و جذاب هم هست)، یا توی یه مرحله بالاتر به یک سرور اینترنتی متصل بشند و دیتاها رو برای سرور ارسال کنند. توی ایران اکثراً ماژول‌های gsm رو به ماژول sim800 و هم‌خانواده هاش می‌شناسند ولا غیر، اما مدت زیادی هست که ماژول‌های شرکت کوییکتل هم وارد بازار ایران شدند و امکانات خیلی خوبی هم دارند؛ یکی از اصلی‌ترین این ویژگی‌ها قابلیت OpenCpu بودن این ماژول‌ها هست که به ما این امکان رو می‌ده که کد موردنظرمون رو روی خود ماژول بریزیم و اجرا کنیم و دیگه نیاز به کنترل کننده خارجی نداشته باشیم.

پس با سیسوگ همراه باشید.

 

قابلیت OpenCpu

اگر که دقیق تر به این موضوع نگاه کنیم میبینیم، می بینیم که OpenCpu که خیلی به دردمون میخوره! میتونه هزینمون رو کاهش بده، پیچیدگی طراحی برد رو کم کنه و کدنویسی رو راحت تر کنه (البته اگه بخوبی بتونیم یادش بگیریم) . قبلا توی سایت سیسوگ مطالبی برای کار با ماژول های شرکت کوییکتل نوشته شده که میتونید از اونها استفاده کنید ، یکی از اونها ماژول mc60 بوده که علاوه بر gsm قابلیت gps هم داشته. اما ممکنه توی پروژه ما gps نیاز نباشه ، پس بهتره که از ماژولی که gps نداره و ارزون تر هست استفاده کنیم. توی این سری مطالب میخوایم استفاده از ماژول m66 رو به صورت OpenCpu یاد بگیریم و چندتا پروژه کاربردی هم باهاش انجام بدیم.

 

نرم افزار QNavigator

قبل از اینکه وارد بحث OpenCpu بشیم باید بگم که اگر میخواید با ماژول به صورت at command ارتباط بگیرید میتونید از نرم افزار QNavigator استفاده کنید که در پایین محیط این نرم افزار رو میبینید.

با کمک نرم افزار qnavigator تست دستورات at command خیلی راحت هست و به تست شما سرعت میده. در پایین مطلب هم لینک داکیومنت های ماژول m66 قرار داده شده که لیست at command ها هم جزو اون هست.

برای کار با OpenCpu در M66 (و مابقی ماژول های کویکتل) شما دوتا روش رو میتونید استفاده کنید. یکی استفاده مستقیم از کامپایلر هست که در این صورت شما IDE ندارید و باید دستورات کامپایل رو در ترمینال وارد کنید و از ادیتور دلخواه خودتون برای ویرایش کدها استفاده کنید ؛ روش دوم استفاده از IDE ایکلیپس هست که میتونید راحت تر کد رو دیباگ و کامپایل کنید ، اما در نهایت هر دو روش یک فایل خروجی به شما میدند که باید اون رو با کمک نرم افزار QFlash و توسط رابط سریال روی ماژول بریزید.

 

استفاده مستقیم از GCC

اول از همه لازم هست که کامپایلر رو از این لینک دانلود و نصب کنیم . اگر که ویندوز 10 داشته باشید احتمالا هنگام نصب کامپایلر با ارور مواجه میشید که لازم هست مراحل زیر رو قبل اون طی کنید:

اول روی اون راست کلیک کرده و گزینه properties رو انتخاب کنید ، بعد از اون توی تب compatibility بخش compatibility mode تیک Run this program in compatibility mode for رو بزنید و ویندوز 7 رو انتخاب کنید (مثل تصویر پایین).

بعد از اون هم next next و تمام…

با اجرای دستور زیر در cmd میتونید مطمئن بشید که کامپایلر به درستی نصب شده.

 

حالا باید پوشه sdk رو از این لینک دانلود کنید. بعد از اکسترکت کردن چندتا پوشه دارید که شرح مختصرشون در ادامه هست:

  • build/gcc : فریمور ساخته شده توی این پوشه قرار میگیره
  •  custom/main.c : کدها رو داخل این فایل وارد میکنیم
  • example : این پوشه شامل نمونه کد های مختلفی هست که میتونید از اونا استفاده کنید
  • و پوشه های دیگه ای که کاربردشون از اسمشون مشخص هست

برای تست اول کد زیر رو داخل فایل main.c قرار میدیم تا یه چشمک زن ساده داشته باشیم.

 

برای کامپایل فایل MS-DOS رو باز کنید تا یک ترمینال براتون باز بشه حالا دستورات زیر رو وارد کنید تا کامپایل انجام بشه

 

در صورت کامپایل موفقیت آمیز باید چیزی شبیه این رو ببینید

 

اما اگر با این پیغام مواجه نشدید ارور کامپایلر رو میتونید در مسیر build\gcc\build.log مشاهده کنید.

برای آپلود فریمور نرم افزار qflash رو باز میکنیم (فایل نرم افزار داخل پوشه tools در پوشه sdk هست).

اول از همه فایل app_image_bin.cfg رو از مسیر \build\gcc انتخاب میکنیم بعد پورت سریال و سپس نوع ماژول رو انتخاب میکنیم. حالا تغذیه ماژول رو وصل کرده و پورت uart main اون رو توسط یک ماژول مبدل سریال به سیستم وصل میکنیم. حالا دکمه استارت رو میزنیم بعد از اون پیغام Waiting… نمایش داده میشه که شما باید دکمه پاور ماژول رو نگه داشته تا نرم افزار از حالت waiting در بیاد و شروع به پروگرام ماژول بکنه حالا میتونیم دکمه پاور رو رها کنیم.

در صورت پروگرام موفقیت آمیز با این پیغام مواجه میشید:

حالا باید تغذیه ماژول رو قطع و دوباره وصل کنیم تا شاهد چشمک زدن سربع led نت لایت باشیم.

برای استفاده از example هایی که توی sdk هست لازم هست که فایل make/gcc/gcc_makefile رو باز کرده و مقدار متغیر C_PREDEF رو تغییر بدید ، مثلا میتونید از این مقدار برای نمونه کد sms استفاده کنید

 

استفاده از eclipse برای OpenCpu ماژول M66

مرحله اول نصب JRE

اول از همه باید jre یا Java Runtime Environment رو نصب کنیم که بتونیم از ایکلیپس که توسط جاوا نوشته شده استفاده کنیم. برای اینکار نسخه 32 بیتی اون رو دانلود میکنیم ، دقت کنید 32 بیتی به دلیل اینکه نسخه ایکلیپس ما هم 32 بیتی هست. با سرچ “دانلود jre 8 32bit” میتونید از سایت های داخلی اون رو دانلود کنید.

بعد از نصب جاوا با اجرای دستور 

در cmd میتونیم از نصب اون مطمئن بشیم .

 

مرحله دوم نصب کامپایلر

به صورتی که در بالا توضیح داده شد کامپایلر رو نصب میکنیم

 

مرحله سوم نصب Eclipse

حالا باید eclipse رو از این لینک دانلود و نصب کنید. دقت کنید که ایکلیپس یک ide اوپن سورس هست و برای کاربرد های مختلف شخصی سازی میشه ، بنابراین همین نسخه فقط قابل استفاده هست و اگر نسخه دیگه ای برای کاربرد دیگه ای روی سیستمتون دارید نمیتونید از اون استفاده کنید.

ایکلیپس نیازی به نصب نداره و فقط کافیه فایل زیپ رو توی یه پوشه استخراج کنید ، چه بهتر که اون رو توی پوشه Program Files (x86) قرار بدید و یک شورتکات برای استفاده ازش درست کنید.

 

مرحله چهارم پیکربندی Eclipse

بعد از باز کردن نرم افزار پروژه خودمون رو ایمپورت میکنیم (فایل پروژه رو از این لینک میتونید دانلود کنید) ، برای اینکار از منوی file گزینه import رو انتخاب کرده و بعد از قسمت general گزینه Existing project into Workspace رو انتخاب می کنیم.

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

 

حالا باید چیزی شبیه این داشته باشید:

و اگر ندارید از تون گوشه بالا سمت چپ این گزینه رو انتخاب کنید:

 

و حالا چند تنظیم دیگه که باید انجام بشه

1- گزینه project -> build configurations -> set Active -> Release رو انتخاب میکنیم (اگر گزینه فعال نیست اول از بخش project explorer پروژتون رو روش کلیک کنید تا انتخاب بشه)

2-تنظیم کامپایلر:

روی پروژتون راست کلیک کرده از  properties توی بخش C/C++ Build از قسمت Enviroment محل gcc رو مشخص کنید. (البته اگر محل نصب پیشفرض رو تغییر نداده باشید نیازی نیست کاری بکنید)

 

کامپایل کردن پروژه

برای اینکار از منوی project گزینه build project رو انتخاب میکنیم.

لازم هست که قبل از آپلود فایل خروجی روی ماژول یکسری اطلاعات هم اضافه بشه به فایل خروجی که برای اینکار باید از منوی project-> make target گزینه build رو انتخاب کنیم.

 

برای ریختن برنامه روی ماژول باید به همون صورتی که در بالا توضیح داده شد از نرم افزار qflash استفاده کرده و فایل app_image_bin.cfg رو که در پوشه Release هست روی ماژول پروگرام کنیم.

 

 

در این بخش میتونید به همه قسمت‌های سری آموزش ماژول m66 دسترسی پیدا کنید:

 

 

1 نفر

پــــســنــدیـده انـد

توجه

Mahdi.h  
Mahdi.h  

علاقه مند به سیستم های امبدد

دیدگاه ها

7 دیدگاه

  • علی
    ۲۹ شهریور ۱۴۰۱

    سلام در نرم افزار qflash بعد قرار طی مراحله بالا و طی شدن بخشی که برنامه را روی cpu قرار دهد با خطای زیر مواجه می شوم شما می دونید علتش چیه؟
    FAIL, META_FAT_Find_Start_r, [11], Operation timeout

    • Mahdi.h  
      Mahdi.h  
      ۲۹ شهریور ۱۴۰۱

      این ارور در زمان پروگرام هست و در نرم افزار پروگرامر نشان داده میشه ؟!
      ابتدا اتصال ماژول از طریق پورت سریال رو چک کنید و مطمئن بشید که بعد از زدن دکمه استارت در نرم افزار پروگرامر ، ماژول رو ریستارت میکنید تا پروگرام شروع بشه

  • محسن
    ۴ اردیبهشت ۱۴۰۱

    سلام. اگه خواسته باشیم بدون میکرو کنترلر، از open cpu استفاده کنیم. چگونه خود ماژول را پاور کنیم. چون در فایل طراحی برد گفته، باید به پایه PWR پالس داد. بدون میکرو خارجی چطور پالس به پایه PWR بدیم؟

    • Sisoog Os
      Sisoog Os
      ۴ اردیبهشت ۱۴۰۱

      سلام
      میتونید پایه PWR را به زمین وصل کنید به محض وصل شدن برق روشن میشه

      • محسن
        ۲۴ اردیبهشت ۱۴۰۱

        اگه دائم زمین باشه بین روشن شدن ماژول و انجام روال عادی و برنامه Open CPU و ریختن Firmware روی Open CPU تداخل رخ نمیده؟
        چون داخل داکیوکنت گفته برای آپدیت کردن برنامه نوشته شده یا همون Firmware باید پایه PWRKEY زمین بشه.

        • Mahdi.h  
          Mahdi.h  
          ۲۴ اردیبهشت ۱۴۰۱

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

          • محسن
            ۲۴ اردیبهشت ۱۴۰۱

            ممنون

            0

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش
ساخت ماینر با FPGA و ARM

ساخت ماینر با FPGA و ARM

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

Zeus ‌ Zeus ‌
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 2 سال پیش
سیـــســـوگ

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