قبل از این که بخوایم به Opencpu بپردازیم بذارید مقداری در مورد شرکت کویکتل کنجکاوی کنیم . شرکت Quectel واقعا پیدا کردن معادل فارسی براش سخته، حالت های مختلفی مثل « کوییکتل » یا « کویکتل » یا « کوئکتل » یا « کوئیکتل ». حالا شکل جدای همه اینا رو هم فرض کنید مثل « کوئکتل » ؛ خوب حالا واقعا تکلیف چیه واقعا چه نوشتاری منطقیه که روی Quectel بذاریم ! این شرکت توی ایران به اسم « کویکتل » بیشتر شناخته میشه ! که به نظرم زیاد منطقی نیست ‘ ue ‘ رو نمیشه با ‘ یـ ‘ نشون داد و شاید استفاده از ‘ ئـ ‘ بهتر و منطقی تر باشه حتی ‘ ییـ ‘ هم بهتر از یک ‘ یـ ‘ است !
فکر میکنم انتخاب منطقی برای نوشتار فارسی Quectel همین کوئکتل باشه ! اگر فکر میکنید اشتباه میکنم و پیشنهاد بهتری دارید خوشحال میشوم حتما که بهمون کامنت بدید. ممکنه فکر کنید اینقدر استدلال در خصوص شکل نوشتاری یک واژه زیاده روی باشه ولی باور کنید اینطور نیست این مساله واقعا مهمه مثل این میمونه که یکی بیاد ARM رو به شکل « ای آر ام» بنویسه در صورتی که « آرم» شکل صحیح نوشتاری اون است.
و صد البته و متاسفانه چون نوشتار کویکتل هم ساده تر و هم عمومی تر هست فکر کنم ما هم مجبوریم از این نوع نحوه نگارش استفاده کنیم.
خوب بگذریم اما شرکت کوئکتل از کی و کجا سر کله اش پیدا شد و چکار کرد که این روزها اینقدر محبوب شده ؛ از طرفی محصولات شرکت کوئکتل واقعا ویژگیهایی دارند که باعث شگفتی شما خواهند شد ؛ انشالله برای معرفی هر کدوم از قابلیت های منحصر بفرد محصولاتش وقت میذاریم و آنها را معرفی میکنیم . توی این مقاله قصد داریم یکی از قابلیت های خارق العاده برخی محصولات این شرکت به اسم OpenCPU را بررسی کنیم. پس با سیسوگ همراه باشید.
سر و کله شرکت کوئکتل ( Quectel ) از کجا پیدا شد ؟
معمولا اگر کسی توی ایران میخواست از شبکه های همراه استفاده کنه ؛ تنها انتخابی که داشت محصولات شرکت SimCom بود! شرکت سیمکام یه شرکت چینی است که توی حوزه محصولات مخابراتی فعالیت داشت و داره؛ البته تا یکی دو سال پیش تنوع زیادی توی محصولاتش نداشت و شناخته شده ترین محصولش توی ایران ماژول Sim900 بود که البته اوایل کار محصول SIM300CZ خیلی معروف بود که بعد از چند روز کارکرد مداوم کاملا هنگ میکرد و تنها راه نجات ریست سخت افزاری بود 🙂
هم اکنون دیگه این سری ها تولید نمیشه و جایگزین شده با محصول sim800 و ورژن های مشخص دیگه. محصولات سیم کام به لحاظ طراحی و کیفیت در حد قابل قبولی هستند. اما اگر دنبال محصولی با کیفیت ساخت و طراحی بهتری بودید شاید این محصول رو انتخاب نمی کردید و در عوض حق انتخاب زیادی هم نداشتید یا باید سراغ Ublox میرفتید یا Siemens ! که خوب مشخصه احتمالا باید خیلی هزینه می کردید.
اما در سال 2010 همه چیز تغییر کرد ! اونم با به وجود اومدن شرکت کویکتل ، شرکت کویکتل ( Quectel ) یکی از بزرگترین تولید کنندگان بزرگ ماژولهای GSM/GPRS, UMTS/HSPA(+), LTE, LPWA and GNSS modules در جهان است.
بله درسته شرکت کویکتل هم یه شرکت چینی است اما با رویکرد جهانی ! درک این مطلب چندان سخت نیست ، تنها لازمه داکیومنت های تهیه شده توسط کویکتل رو با دایکومنت های سیم کام مقایسه کنید! احتمالا شگفت زده میشوید ؛ دقیقا حسی که من برای اولین بار هنگام خواندن داکیومنت هاش داشتم؛ اونم بعد از کلی سر و کله زدن با ماژولهای 3G سیم کام. حتی با نگاه کردن به محصولات تولیدی به سادگی میتونید متوجه نوع نگاه و رویکرد شرکت بشید !
شک ندارم که شما هم بعد از بررسی های لازم شکی نخواهید داشت که محصولات این شرکت چینی واقعا یک چیز دیگه است ؛ و صد البته نمیشه منکر بازار گسترده و برخی برتریهای شرکت SIMCOM هم شد.
اگر از شرکت کویکتل خوشتون اومده یا در موردش کنجکاو شدید و میخواید اطلاعات بیشتری در این خصوص کسب کنید ؛ قبلا توی سیسوگ یه صفحه برای معرفی شرکت کوئکتل درست کردیم که میتونید بهش مراجعه کنید.
اما OpenCPU چیست ؟
قابلیت OpenCPU ؛ در واقع به کاربر اجازه میده که کد و عملکرد دلخواه خودش رو بتونه توی یک سیستم Embedded جاسازی کنه و قادر باشه عملکرد دلخواه خودش را در سیستم طراحی کنه ! خوب حالا این یعنی چی ؟ ؛ بگذارید با مثال مقداری به روشن شدن این موضوع کمک کنم ؛ فرض کنید شما در حال طراحی یک دستگاه کارت خوان (POS) هستید ؛ برای طراحی به چه اجزایی نیاز دارید؟ احتمالا یه نمایشگر مناسب ؛ سنسور قرائت کارت ؛ ماژول GSM برای ارتباط با شبکه همراه و از همه مهم تر یه پردازنده مرکزی که قادر باشه تمام کارهای لازم رو مدیریت کنه !
اما فرض کنید بتونید برنامه دلخواه خودتون رو توی ماژول GSM برنامه ریزی کنید به نحوی که LCD و سنسور کارت خوان مستقیما به ماژول GSM متصل بشه و بتونید برنامه رو داخل خود ماژول GSM بنویسید! و پردازنده اصلی رو کلا حذف کنید.
چنین امکانی واقعا خارق العاده است؛ و البته خیلی دور از دسترس و فانتری است ؛ کدوم شرکت تولید کننده ای میآد اجازه چنین کاری رو به کاربرهاش میده ؛ ممکنه هزاران مساله پیش بیاد که مدیریت کردن و خطا یابیش کار ساده ای نباشه !
اما شرکت کوئکتل چنین کرده ؛ و این چنین قابلیتی رو توی محصولاتش گذاشته ! 🙂
خیلی خودمونی بخوام بگم ، چیزی مثل ماژول ESP8266 که میتونید برنامه تون رو داخلش بنویسید اینم همونطوره ولی پیشرفته تر ؛ هیچم بعید نیست چند ماه دیگه کتابخانه آردوینو براش بیرون بیاد 🙂
چرا OpenCPU فوقالعاده است ؟
احتمالا اگر مثل من نیاز به چنین قابلیتی رو احساس کرده باشید ؛ خیلی خوشحال شدید که شرکت کوئکتل چنین قابلیتی رو توی محصولاتش قرار داده ؛ واقعا چرا این قابلیت تا این اندازه مهمه!
خیلی ساده است فکر کنید توی خیلی از طرح هایی که طراحی میکنید و لازمه توی طرح یه مودم GSM هم وجود داشته باشه میتونید هم هزینه طراحی رو کاهش بدید ؛ هم این که مدار رو تا جای ممکن کوچک و کم مصرف طراحی کنید ؛ همه اینها میسر میشه چون لازم نیست یک CPU مجزا توی طراحیتون قرار بدید ؛
از طرفی دردسر های راه اندازی لایه های سخت افزاری رو ندارید چون قبلا همه این کار ها به شکل SDK در اختیارتون قرار گرفته و میتونید از اونها بهره ببرید و دچار پیچیدگی های نرم افزاری راه اندازی اونها نشید.
بگذارید یه مثال ساده بزنم:
فرض کنید در یک GSM Modem وقتی یک پیامک دریافت میشه، قراره پیامک بررسی بشه و جوابی داده بشه. بنابراین شما لازمه بصورت اینتراپتی یا بصورت سرکشی وجود پیامک را بررسی کنید و سپس بصورت Text متن را گرفته و دیکد کنید و جواب بدید!
وقتی از ساختار OPEN CPU و توابع اصطلاحا RIL استفاده میکنید به محض دریافت پیامک تابعی فراخونده میشه و شماره و متن دریافتی به داخل تابع پاس داده میشه! و شما میتونید به راحتی با کمترین کد و در کوتاه ترین زمان ممکن پاسخ مناسب را اعمال کنید.
به عنوان نمونه ماژول MC60 یکی از محصولات کوئکتل است، با امکانات و قابلیت های مناسب که دارای OpenCPU نیز هست. این ماژول را هم اکنون می توانید از فروشگاه سیسوگ تهیه کنید. ماژول MC60 ماژولی است که هم دارای GSM و هم دارای GNSS است و همچین Bluetooth ورژن 3 را پشتیبانی میکند و شاید بهترین انتخاب برای یک دستگاه Iot باشد.
در زیر منابع و پورتهای مشخصی که در این ماژول در اختیار شما قرار میگیره را میتونید مشاهده کنید.
• CPU 32-BIT ARM7EJ-STM RISC 260MHz
• MEMORY (4MB Flash + 4MB RAM)
• Code Region: 320KB space for App image bin
• RAM: 100KB static memory and 500KB dynamic memory
• UFS Region: 120KB space
لایه های سخت افزاری OpenCPU پیشنهادهای خوبی را برای شما دارند. تقریبا بیشتر رابط های استاندارد، سخت افزار لازم برای ارتباط با انواع سنسورها و سخت افزارها رو به صورت آماده در اختیارتون قرار میده، به نحوی که شاید به سخت افزار اضافهای نیاز نداشته باشید. همچنین لایه های نرم افزاری آماده بسیاری نیز هستند و جهت تست هر کدام نیز سمپل های بسیار عالی و مناسبی نوشته شده است.
در زیر فایل معرفی قابلیت OPEN CPU برای ماژول MC60 نیز جهت دانلود قرار گرفته است؛ همچنین ماژول M66 نیز قابلیت OpenCPU را دارا هست.
Quectel MC60 OpenCPU Solution Presentation V1.1.pdf
از این لینک میتونید به سری آموزش هایی که در رابطه با کار با قابلیت OpenCpu در ماژول MC60 در سایت سیسوگ تهیه شده دسترسی پیدا کنید.
سلام
ببخشید من یک سری سوال درباره opencpu برای هندل کردن بین task هارو دارم
کسی هست که بتونم ارتباط مستقیم بگیرم؟
سلام سوالتون را همینجام مطرح کنید دوستان پاسخ خواهند داد به شما
سوالم اینه ک من اگر بخوام یک تسک داشته باشم که دائم ی کاری را بدون هیچ تاخیری انجام بده باید چیکار کنم؟
مثلا دما رو از سنسور دائم بخونه
بدون استفاده از Qlsleep یا getmessage
میخوایم دائم اجرا شه
در این آموزش نحوه اضافه کردن تسک توضیح داده شده
https://sisoog.com/2021/02/25/کار-با-ماژول-تمام-عیار-mc60-قسمت-چهارم/
شما میتونید به همین صورت یک تسک اضافه کنید و در اون تاخیری قرار ندید.
با سلام
تشکر از مطالب خوبتون ، ایا همه محصولات کویکتل قابلیت open cpu را دارند
من ماژول ec200t رو خریدم ، همچین قابلیتی داره ؟
سلام دوست عزیز
این ماژول متاسفانه چنین قابلیتی را نداره ولی انشاله بزودی این قابلیت به این ماژول هم اضافه خواهد شد
تشکر
با سلام
لطفا در مورد چگونگی برنامه نویسی opencpu این ماژول توضیح مختصری بفرمایید(با چه برنامه ای و رابط سخت افزاری و فایل های راهنما)
با آیدی تلگرام سیسوگ در ارتباط باشید
با سلام و تشکر از مطلبتون
ماژول های سیم کام هم این ویژگی را که از پردازنده خودشون استفاده کنید و برنامه باهاشون بنویسید دارند ولی همونطور که گفتید اصلا (تاکید میکنم اصلا) مستندات ندارند.
یه مدتی خیلی دنبال این بودم و حتی به نظر من توهین به مصرف کننده است که هیج مستنداتی نداشته باشند (هم از طرف سازنده و هم از طرف مصرف کننده)
خوشحال شدم شنیدم این شرکت مستندات داره، باید برم بیشتر بررسی کنم.
ممنون ازتون
راستی این امکان در سیم کام تحت عنوان EAT(Embedded AT Command( شناخته میشه
سلام دقیقا دلیل افت فروش سیم کام و پیشرفت کویکتل هم تو همین موضوع هست
سلام
ماژول هایی مثه AIR200 هم هستن که با زبان LUA کار میکنن. کلا سورس باز طراحی شدن و قیمت مناسبی دارند.
تنها مشکلش رجیستر کردنش تو سامانه همتا هس که نمیدونم چجوریه.
سلام البته شخصا اون را استفاده نکردم و نمیتونم با این قابلیت و زبان برنامه نویسی C++ مقایسش کنم
ولی GSM Modem ها در طرح رجیستری نیستند و اگر مشکلی داره میتونید حتما با سامانه همتا این موضوع را مطرح کنید
ممنون از مطالب مفیدتون میشه لطفا نحوه ی راه اندازی این ماژول بدون EVB رو هم توضیح بدید؟
شاید در آینده سعی کردیم این قابلیت را بیشتر توضیج بدیم و وارد فاز اجرایی اون بشیم
ولی هم اکنون هم میتونید به ای دی تلگرام سیسوگ پیغام بدید تا داکیومنت های عالی اون را براتون ارسال کنیم
خیلی چیزه جالبیه!
ولی خوب اگه قرار باشه هر ماژولی برای خودش پردازنده داشته باشه و یه عالم دم و دستک درست کنه که نمیشه ….!
هزینه بالا میره! مصرف زیاد میشه! کنترل نهایی سخت تر میشه!!
باید به فکر راه حل دیگه ای بود!!
این پردازنده قسمتی از پردازنده اصلی هست و به صورت مجزا نیست
و در ضمن هم هزینه های طراحی کلی را شدیدا کاهش مشده هم کنترل سخت افزار را با توجه به توابع خودش کاهش میدده
وقتی طراحی هم کامل میشه مطمئن باشید مصرف انرژی هم کاهش پیدا میکنه
در کل ایجاد چنین ساختارهایی میتونه خیلی کارها را بهینه کنه
و صد البته نه برای همه ماژولها