مایکسدوینو Sipeed Maixduino Kit for RISC-V AI + IoT با دوربین OV2640
مایکسدوینو SIPEED MAIXDUINO KIT FOR RISC-V AI + IOT با دوربین OV2640 و نمایشگر
برد مایکسیدوینو Maixduino یک برد توسعهیافته بر پایهی میکروکنترلر ESP32 و پردازندهی هوش مصنوعی Kendryte K210 است. این برد توانایی پردازش تصویر و شناسایی الگو، تشخیص چهره، تشخیص صدا، پردازش گفتار و اجرای الگوریتمهای هوش مصنوعی را داراست. Maixduino دارای یک دوربین با کیفیت VGA، میکروفون و اتصالات ورودی و خروجی مختلفی است که میتوان از آن به عنوان یک سیستم هوشمند و پردازش تصویر استفاده کرد. همچنین Maixduino دارای اتصالات WiFi و Bluetooth است و میتواند با ابزارهای مانند بلوتوث وایرلس و دیگر دستگاههای IoT ارتباط برقرار کند.کاربردهای Maixduino شامل تشخیص چهره در سیستمهای حفاظتی، رباتیک، پردازش تصویر و ویدئو، کنترل صوتی و تشخیص حرکت در سیستمهای IoT است. همچنین میتوان از آن برای آموزش و توسعهی الگوریتمهای هوش مصنوعی و شبکههای عصبی استفاده کرد.
مشخصات فنی و ویژگی های کلی برد MAIXDUINO
- دارای واحد FPU
- دارای واحد پردازش صوت
- دارای واحد پردازش تصویر
- دارای فرکانس کاری 600 مگاهرتز
- دارای رجیسترهای 64 بیتی
- دارای نمایشگر 2.4 اینچی TFT
- دارای طراحی دقیقا مطابق برد آردوینو UNO از لحاظ ظاهری
- دارای میکروفن MEMS جهت تشخیص صوت
- دارای دوربین با قابلیت 60FPS جهت فیلمبرداری
کاربردهای برد MAIXDUINO
- طراحی و پیاده سازی سیستم های هوشمند نظیر ربات ها
- طراحی و پیاده سازی سیستم های هوشمند اینترنت اشیا
- طراحی و پیاده سازی سیستم های هوشمند مبتنی بر تشخیص صوت
- طراحی و پیاده سازی سیستم های پلاک خوان
- طراحی و پیاده سازی سیستم های تشخیص چهره
چه پروژه هایی با Maixduino قابل اجرا است؟
Maixduino یک برد توسعهیافته بر پایهی میکروکنترلر ESP32 و پردازندهی هوش مصنوعی Kendryte K210 است و میتوان از آن برای پروژههای مختلفی استفاده کرد. در زیر چند مثال از پروژههایی که میتوان با استفاده از Maixduino انجام داد، آورده شده است:
- سیستمهای حفاظتی با استفاده از دوربین موجود در Maixduino و قابلیت شناسایی الگو و تشخیص چهره، میتوان سیستمهای حفاظتی هوشمندی را طراحی کرد.
- رباتیک: میتوان با استفاده از امکانات Maixduino به رباتهای هوشمندی که قابلیت شناسایی و پردازش تصویر را دارند، زندگی بخشید.
- پردازش تصویر و ویدئو با استفاده از Maixduino میتوان پروژههای پردازش تصویر و ویدئویی مانند شناسایی شیء و شناسایی تشخیص حرکت را اجرا کرد.
- کنترل صوتی Maixduino با وجود میکروفون موجود در آن، قابلیت کنترل صوتی را دارد. میتوان با استفاده از این قابلیت، پروژههایی مانند کنترل خانه هوشمند را انجام داد.
- سیستمهای IoT با استفاده از اتصالات WiFi و Bluetooth موجود در Maixduino، میتوان این برد را به عنوان قسمتی از سیستمهای IoT مورد استفاده قرار داد و دادههای مختلفی از جمله دادههای حسگرهای مختلف را جمعآوری و پردازش کرد.
- آموزش و توسعهی الگوریتمهای هوش مصنوعی با استفاده از امکانات Maixduino میتوان برای توسعهی الگوریتمهای هوش م
- سیستمهای تشخیص اشیا Maixduino با قابلیت شناسایی الگو و تشخیص شیء، قابلیت طراحی سیستمهای تشخیص اشیاء را دارد. مثلا میتوان از آن در پروژههای راهیابی کمکی برای نابینایان استفاده کرد.
- پردازش گفتار و ترجمه زبان: با استفاده از میکروفون و امکانات پردازش صوتی Maixduino، میتوان از آن برای پروژههایی مانند پردازش گفتار و ترجمه زبان استفاده کرد.
- بازیابی اطلاعات با استفاده از قابلیتهای Maixduino میتوان در پروژههای بازیابی اطلاعاتی مانند تشخیص نقشه و تصاویر، که در پروژههای گسترده مثل معدنکاری و حوزه امنیت مورد استفاده قرار میگیرد، استفاده کرد.
با توجه به قابلیتهای گستردهی Maixduino، میتوان آن را در پروژههای مختلفی از جمله رباتیک، پردازش تصویر و ویدئو، کنترل خانه هوشمند، سیستمهای حفاظتی، سیستمهای IoT و آموزش و تحقیقاتی مورد استفاده قرار داد.
راه اندازی Maixduino با Arduino IDE
در ابتدا باید کتابخانه Maixduino در Arduino IDE را نصب کنید. برای این کار میتوانید از لینک زیر استفاده کنید:
https://github.com/sipeed/Maixduino/archive/master.zip
- اتصال برد Maixduino به کامپیوتر خود با استفاده از کابل USB
- باز کردن نرم افزار Arduino IDE و انتخاب برد Maixduino از منوی Tools > Board > Sipeed Maixduino
- انتخاب پورت سریال برد Maixduino از منوی Tools > Port
- شروع نوشتن کد. در این مرحله میتوانید از کتابخانه Maixduino استفاده کنید تا برد Maixduino را برنامهریزی کنید
- کامپایل و آپلود کد بر روی برد Maixduino با استفاده از دکمه Upload در نرم افزار Arduino IDE
بعد از آپلود کد، Maixduino شما اجرا خواهد شد و قادر به انجام عملیات برنامهریزی شده خواهد بود. برای شروع برنامه نویسی، میتوانید با نوشتن کد سادهای مانند کد بالا شروع کنید و برای تست عملکرد برد، آن را روی Maixduino آپلود کنید.همچنین، میتوانید از ابزارهایی مانند ماژول دوربین و بلوتوث که برای Maixduino توسعه داده شدهاند، استفاده کنید و پروژههای پیشرفتهتری را ایجاد کنید. برای توسعه پروژههای بزرگتر، میتوانید از سایر زبانهای برنامهنویسی مانند Python و C/C++ نیز استفاده کنید. برای این کار، باید کتابخانههای مربوطه را نصب و پروژههای خود را با استفاده از آنها برنامهریزی کنید.
واحد پردازش تصویر برد Maixduino
بر روی برد Maixduino سوکت جهت اتصال دوربین با ۲۴ پین تعبیه شده است. این سوکت با فرمت FPV قادر به اتصال دوربین DVP است. از طرف دیگر، با توجه به قابلیت اجرای الگوریتم های هوش مصنوعی و پردازش تصویر، برد Maixduino قادر به تشخیص اشیا و طبقه بندی آن است. برد Maixduin قادر به نمونه برداری و تشخیص تصویری در مدهای QVGA و VGA است. در مد QVGA برد قادر به پردازش تصاویر با سرعت ۶۰FPS و VGA با سرعت ۳۰FPS است. همچنین این برد قادر به اجرای مدل MOBILENET بر روی خود است. جهت راه اندازی و کار با دوربین برد Maixduino، کتابخانه تحت آردوینو توسعه یافته است.
#include <Sipeed_OV2640.h> //کتابخانه دوربین
#include <Sipeed_ST7789.h> //کتابخانه نمایشگر که به همراه دوربین باید تعریف گردد.
SPIClass spi_(SPI0);
Sipeed_ST7789 lcd(320, 240, spi_); //ارتباط SPI نمایشگر با برد Maixduino
Sipeed_OV2640 camera(FRAMESIZE_QVGA, PIXFORMAT_RGB565); //تعریف شی از کلاس کتابخانه
void setup()
{
Serial.begin(115200);
lcd.begin(15000000, COLOR_RED); //راه اندازی نمایشگر
if(!camera.begin())
Serial.printf("camera init fail\n");
else
Serial.printf("camera init success\n");
camera.run(true);
}
void loop()
{
uint8_t *data = camera.snapshot();
if(data == nullptr || data==0)
Serial.printf("snap fail\n");
else{
for(int i=0; i<255;i++){
Serial.print(data[i]);
Serial.flush();
}
Serial.println("");
delay(5000); //هر ۵ ثانیه عکس گرفته شود
}
}
مشخصات
- کاربری
- مناسب برای استفاده صنعتی
- نوع ماژول
- AI IOT
- سطح تجربه مورد نیاز
- فوق حرفه ای
- ابعاد
- 65x53mm
- ولتاژ مورد نياز
- 4.8 تا 5.2 ولت DC
- ولتاژ ورودی
- 6 تا 12 ولت
- ولتاژ خروجی
- 5 ولت
- دمای کاری
- - 30 تا +85 درجه سانتی گراد
- فرکانس
- 2400Mhz - 2483.5Mhz
- کلاس بلوتوث
- 4.2
- حافظه SRAM
- 8MB
- خروجی صدا
- DAC+PA: TM8211:16 bit dynamic range;Low harmonic distortion NS4150:3W output power;Up to 90% efficiency;
- تعداد پورت USB
- USB Type-C
- پردازنده
- ESP32, SIPEED M1
- نوع پردازنده
- RISC-V Dual Core 64bit
- فرکانس آی سی
- 400MHz
- سایر توضیحات
- QVGA@60FPS/VGA@30FPS پردازش تصویر
- سایر قابلیتها
- دارای IPEX 3.0x3.0mm
- ورژن وای فای
- 802.11 b/g/n
- نوع برد هوش مصنوعی
- بدون سیستم عامل
- SWDCLK- پین ساعت SWD
- SWDIO- پین داده SWD
- SWDRST - پین ریست SWD
- برد ESP8266 یا ESP32: مانند NodeMCU, WeMos D1 Mini, ESP32 DevKitC
- کابل USB: برای اتصال برد ESP به کامپیوتر
- IDE برنامه نویسی: مانند Thonny, MicroPython IDE, Visual Studio Code
- نصب فریمور میکروپایتون: بر روی برد ESP
- میکروپایتون: از زبان برنامه نویسی پایتون استفاده می کند که خواندن و نوشتن آن آسان است و برای مبتدیان مناسب تر است.
- آردوینو: از زبان برنامه نویسی مبتنی بر C++ استفاده می کند که پیچیده تر است و به دانش برنامه نویسی بیشتری نیاز دارد.
- میکروپایتون: می تواند بر روی بردهای مختلف میکروکنترلر، از جمله ESP8266، ESP32 و Raspberry Pi Pico اجرا شود.
- آردوینو: پلتفرمی با مجموعه ای از بردهای توسعه خود است که هر کدام ویژگی ها و قابلیت های خاص خود را دارند.
- میکروپایتون: به طور پیش فرض از بسیاری از کتابخانه های مفید مانند GPIO، ADC، PWM، I2C، SPI و Wi-Fi پشتیبانی می کند.
- آردوینو: برای استفاده از بسیاری از این کتابخانه ها، نیاز به نصب کتابخانه های خارجی دارید.
- میکروپایتون: جامعه ای رو به رشد دارد، اما به اندازه جامعه آردوینو بزرگ نیست.
- آردوینو: جامعه ای بزرگ و فعال با پشتیبانی گسترده و منابع آموزشی فراوان دارد.
- میکروپایتون: به طور کلی سریعتر از آردوینو است.
- آردوینو: برای پروژه های مبتنی بر الکترونیک و سخت افزار مناسب تر است.
- سطح تجربه شما در برنامه نویسی: اگر مبتدی هستید، میکروپایتون انتخاب آسان تری است.
- نوع پروژه ای که می خواهید انجام دهید: اگر به دنبال پروژه ای مبتنی بر الکترونیک هستید، آردوینو انتخاب مناسب تری است.
- ESP8266: محبوب ترین برد ESP برای میکروپایتون است. این برد ارزان قیمت، کم مصرف و دارای Wi-Fi داخلی است.
- ESP32: قدرتمندتر از ESP8266 است و دارای دو هسته CPU، Wi-Fi، بلوتوث و BLE است.
- ESP-WROOM-02: یک ماژول ESP8266 با Wi-Fi داخلی است که می توان از آن به عنوان یک برد توسعه برای میکروپایتون استفاده کرد.
- ESP-WROOM-03: مشابه ESP-WROOM-02 است، اما دارای بلوتوث و BLE نیز می باشد.
- NodeMCU: یک برد توسعه محبوب برای ESP8266 است که دارای GPIO، ADC، PWM، I2C، SPI و Wi-Fi است.
- WeMos D1 Mini: یک برد توسعه محبوب دیگر برای ESP8266 است که دارای GPIO، ADC، PWM، I2C، SPI و Wi-Fi است.
- Adafruit Feather HUZZAH ESP8266: یک برد توسعه با ESP8266، Wi-Fi و USB است که می توان از آن به عنوان یک برد توسعه برای میکروپایتون استفاده کرد.
- SparkFun Thing Plus: یک برد توسعه با ESP8266، Wi-Fi و USB است که می توان از آن به عنوان یک برد توسعه برای میکروپایتون استفاده کرد.
- ESP32 دارای دو هسته پردازنده 32 بیتی Xtensa LX106 با فرکانس 240 مگاهرتز است.
- ESP8266 دارای یک هسته پردازنده 32 بیتی Tensilica Xtensa LX106 با فرکانس 80 مگاهرتز است.
- ESP32 در مدلهای مختلف با حافظههای رم 4، 8 و 16 مگابایت و حافظه فلش 4، 8، 16 و 32 مگابایت ارائه میشود.
- ESP8266 در مدلهای مختلف با حافظههای رم 80، 128 و 256 کیلوبایت و حافظه فلش 4 مگابایت ارائه میشود.
- ESP32 دارای بلوتوث داخلی، 10 پین ADC، 2 پین DAC، 4 پین SPI، 2 پین I2C، 1 پین UART و 1 پین USB است.
- ESP8266 فاقد بلوتوث داخلی است و فقط دارای 1 پین ADC، 1 پین DAC، 1 پین SPI، 1 پین I2C و 1 پین UART است.
- ورودی دیجیتال: میتوان از پینهای GPIO برای خواندن ولتاژ دیجیتال از یک سنسور یا دکمه استفاده کرد.
- خروجی دیجیتال: میتوان از پینهای GPIO برای کنترل ولتاژ دیجیتال یک LED یا موتور استفاده کرد.
- PWM (مدولاسیون پهنای پالس): میتوان از برخی از پینهای GPIO برای تولید سیگنال PWM برای کنترل سرعت موتور یا روشنایی LED استفاده کرد.
- ADC (مبدل آنالوگ به دیجیتال): میتوان از برخی از پینهای GPIO برای تبدیل سیگنالهای آنالوگ به دیجیتال استفاده کرد.
- SPI (رابط سریال محیطی): میتوان از برخی از پینهای GPIO برای ارتباط با دستگاههای SPI مانند کارت حافظه SD استفاده کرد.
- I2C (مدار مجتمع بین-تراشهای): میتوان از برخی از پینهای GPIO برای ارتباط با دستگاههای I2C مانند سنسورها استفاده کرد.
- پرکاربردترین پروتکل برای اتصال ESP32 به اینترنت است.
- به ESP32 اجازه می دهد به روتر Wi-Fi موجود متصل شود.
- از نظر سرعت و برد مناسب است.
- برای پروژه های IoT که نیاز به اتصال دائمی به اینترنت دارند، مانند خانه های هوشمند، ایده آل است.
- برای اتصال ESP32 به دستگاه های دیگر مانند گوشی های هوشمند، تبلت ها و سایر دستگاه های BLE استفاده می شود.
- مصرف انرژی پایینی دارد.
- برای پروژه های IoT که نیاز به تبادل داده با دستگاه های دیگر در محدوده کوتاه دارند، مانند پوشیدنی ها، ایده آل است.
- برای ارسال و دریافت داده ها بین ESP32 و سرور IoT استفاده می شود.
- از نظر وزن سبک و کارآمد است.
- برای پروژه های IoT که نیاز به ارسال و دریافت داده های حسگر به صورت بلادرنگ دارند، مانند سیستم های مانیتورینگ، ایده آل است.
- برای ارسال و دریافت داده ها بین ESP32 و سرور وب استفاده می شود.
- پروتکلی شناخته شده و汎用ی است.
- برای پروژه های IoT که نیاز به تبادل داده با صفحات وب دارند، مانند سیستم های کنترل، ایده آل است.
- برای اتصال ESP32 به شبکه های LoRaWAN استفاده می شود.
- برد و نفوذپذیری بالایی دارد.
- برای پروژه های IoT که نیاز به اتصال در مناطق دور افتاده یا با موانع دارند، مانند کشاورزی هوشمند، ایده آل است.
- در برنامه ESP32 خود، کتابخانه OTA را اضافه کنید.
- تابع ArduinoOTA.begin() را با اطلاعات مربوط به سرور OTA خود پیکربندی کنید.
- تابع ArduinoOTA.setPort() را برای تنظیم پورت OTA (به طور پیش فرض 8266) استفاده کنید.
- تابع ArduinoOTA.setPassword() را برای تنظیم رمز عبور OTA (اختیاری) استفاده کنید.
- برنامه ESP32 خود را با فعال بودن OTA آپلود کنید.
- پس از آپلود، ESP32 شما به طور خودکار به دنبال آپدیت در سرور OTA خواهد بود.
- برنامه آپدیت شده ESP32 خود را به عنوان یک فایل bin. کامپایل کنید.
- فایل bin. را به سرور OTA خود آپلود کنید.
- ESP32 شما به طور خودکار آپدیت را در سرور OTA شناسایی می کند.
- برای نصب آپدیت، دکمه "Update" را در رابط کاربری OTA فشار دهید.
- قبل از استفاده از OTA، باید یک سرور OTA را پیکربندی کنید.
- می توانید از سرور OTA خودتان یا از یک سرویس OTA شخص ثالث استفاده کنید.
- برای امنیت بیشتر، می توانید از رمز عبور برای OTA استفاده کنید.
- هنگام آپدیت برنامه ESP32 خود، از قطع شدن برق یا اتصال WiFi خودداری کنید.
دوربین IMX219 یک دوربین با رابط MIPI CSI-2 است که اکثرا با بردهای توسعهی مبتنی بر پردازندههای ARM که دارای رابط CSI-2 هستند، سازگاری دارد. برخی از این بردها شامل Raspberry Pi، Jetson Nano، Odroid و Orange Pi is هستند. با این حال، برای استفاده از دوربین IMX219 با هر برد دیگری، باید بررسی کنید که آیا برد شما دارای رابط MIPI CSI-2 است یا خیر. CSI2 یک رابط سریال پایدار برای انتقال داده های تصویری از سنسورهای تصویری به پردازنده ها است. برخی از بردهایی که دارای CSI2 هستند عبارتند از:
1- Raspberry Pi CM4
2- Nvidia Jetson Nano
3- Orange Pi
4- BeagleBone Black
5- Coral Dev Board
6- Qualcomm DragonBoard
7- HiKey 960
و بسیاری بردهای دیگر با پردازنده های مختلف از جمله ARM و x86.
لازم به ذکر است که برخی از این بردها ممکن است نیاز به ماژول تبدیل CSI2 به HDMI یا USB داشته باشند تا بتوانند با دوربین های دیگری که از رابط های HDMI یا USB استفاده می کنند سازگاری پیدا کنند.
بردهای ESP تا به امروز در دو مدل ESP8266 و ESP32 طراحی و تولید شدهاند. این دو مدل تراشه دارای وای فای هستند و در عین حال قابلیتهای یک میکروکنترلر را هم دارند. تراشههای ESP32 نسخهی به روز رسانی شده و دارای بلوتوث هم هستند. موارد اصلی مصرف بردهای ESP در پروژه های اینترنت اشیا هستند. با توجه به ابعاد کوچک، مصرف انرژی کم، قیمت اقتصادی و دارای بودن میکروکنترلر داخلی امکان بهره برداری از آن در پروژه های مختلفی فراهم است.
به طور کلی در هر پروژهای که نیازمندی به ارتباط بیسیم وای فای و یا بلوتوث نیاز است، میتوان از تراشه های esp استفاده کرد.
کیتهای آردوینو نوعی از کیت الکترونیکی پیشرفته هستند. کیت الکترونیکی پرورش دهندهی خلاقیت و سرگرمی فوق العادهای است. کیت های آردوینو عموما دارای آموزش راه اندازی و سورس برنامه نویسی هستند. در دانشجو کیت انواع کیت آردوینو را میتوانید بررسی و خرید کنید. کلیه این کیتها توسط دانشجو کیت طراحی و تولید میشوند. جهت خرید و بررسی کیت آردوینو از شاخههای اصلی در نوار آبی رنگ بالای سایت قسمت بردهای توسعه را انتخاب کنید. (کافیست نشانگر موس را بر روی برد های توسعه قرار دهید.) سپس گزینه کیت آردوینو را انتخاب نمایید.
جهت سهولت در انتخاب کیت و کابرد مورد نظر در نوار سمت راست سایت امکان جستجو و فیلتر در دسترس کاربران قرار گرفته است. اولین گزینه انتخاب نوع کیت است، که کیت ها بر اساس بردهای مصرفی و همچنین مونتاژ دسته بندی شده اند. به تصویر زیر دقت کنید.
فیلتر بعدی رنج سنی است که با این فیلتر میتوان کیت آردوینو متناسب با رنج سنی کاربر تهیه کرد. رنج سنی یک شاخص کلی برای محدود کردن انتخابها برای خرید کیت آردوینو است.
فیلتر بعدی خرید بر اساس نوع نمایشگر مورد استفاده است. نمایشگر در کیت آردوینو کمک میکند تا اطلاعات مورد نظر را روی آن نمایش دهید. از اینجا میتوانید کیت های آردوینو براساس نوع نمایشگر را فیلتر کنید.
فیلتر بعدی خرید کیت آردوینو بر اساس برد آردوینو مورد استفاده است. بردهای آردوینو انواع مختلفی دارند، میتوانید از این بخش گزینه مورد نظر را فیلتر کنید.
فیلتر آموزش راه اندازی در جهت سهولت دسترسی کاربر به کیت های همراه یا فاقد آموزش(خود آموز) قرار گرفته است. دارا بودن آموزش برای یک کیت آردوینو گزینهی مهمی است. بنابراین اگر تمایل به خرید کیت آردوینو دارای آموزش را دارید، از این بخش استفاده کنید. به تصویر زیر دقت کنید.
با استفاده از فرمت آموزش میتوان نوع آموزش مورد نظر خود را به راحتی انتخاب کرد که به دو صورت تصویری و کتبی در دسترس قرار میگیرد.
فیلتر بعدی بر اساس میزان فرکانس RFID است. اگر کیت مورد نظر براساس نوع RFID باشد میتوانید فرکانس آنرا از این بخش انتخاب کنید.
با استفاده از فیلتر سنسور میتوان کیت آردوینو مورد نظر خود را بر اساس نوع سنسور به کار رفته انتخاب کرد.
فیلتر بعدی معماری پردازنده است که با استفاده از این فیلتر میتوان نوع پردازنده کیت را انتخاب کرد. شاید بخواهید کیت مورد نظرتان براساس تراشهای خاص باشد که از اینجا میتوانید انتخاب کنید.
با استفاده از این فیلتر میتوان پهنای باند اینترنت را انتخاب کرد. اگر کیت آردوینو مورد نظر دارای ماژول سیم کارتی باشد، میتوانید پهنای باند آنرا مشخص کنید. کیتهای ارزان قیمت معمولا دارای پهنای باند 2g هستند.
با استفاده از این فیلتر میتوان کیت های آردوینو را بر اساس نوع باتری مورد استفاده انتخاب کرد.
با این گزینه میتوان کیت مورد نظر و مصرفی خود را بر اساس برند مورد استفاده انتخاب کرد. ما در فروشگاه دانشجو کیت علاوه براینکه کالاهای تولیدی خودمان را به فروش میرسانیم کالاهای دیگر تولید کنندگان ایرانی را هم به فروش میرسانیم. بنابراین از این بخش میتوانید از برندهای معتبر تولید داخل استفاده کنید.
گزینه بعدی محدوده قیمتی است که با این گزینه میتوان به راحتی کیت آردوینو با بودجه مورد نظر را تهیه کرد.
روند ثبت سفارش کیت آردوینو از فروشگاه دانشجو کیت با موبایل
برای ثبت سفارش از طریق تلفن همراه برای دسترسی به شاخه محصولات باید در صفحه اصلی در قسمت بالا صفحه از سه خط افقی استفاده کرد. در ادامه کلیه روند خرید کیت آردوینو با موبایل را شرح دادهایم.
در فهرست شاخههای اصلی اولین گزینه بردهای توسعه است که برای باز کردن آن روی قسمت پلاس میزنیم.
در زیر مجموعه بردهای توسعه اولین گزینه آردوینو است که دوباره برای دیدن زیر مجموعه آن باید روی گزینه پلاس کلیک کرد.
سپس اولین گزینه کیت آردوینو را انتخاب کنید.
در تلفن همراه برای فیلتر محصولات ابتدا باید روی گزینه خرید سریع رفته تا فیلتر محصولات نمایش داده شود.
جهت سهولت در انتخاب کیت و کابرد مورد نظر در نوار سمت راست سایت امکان جستجو و فیلتر در دسترس کاربران قرار گرفته است. اولین گزینه انتخاب نوع کیت است، که کیت ها بر اساس بردهای مصرفی و همچنین مونتاژ دسته بندی شده اند.
فیلتر بعدی رنج سنی است که با این فیلتر میتوان کیت آردوینو متناسب با رنج سنی کاربر تهیه کرد.
گزینه بعدی نسخه رزبری پای و خرید کیت بر اساس برد رزبری پای است. اگر کیت مورد نظر براساس بردهای میکروکنترلر رزبری پای باشد، میتوانید از اینجا نوع برد را انتخاب کنید.
فیلتر بعدی خرید بر اساس نوع نمایشگر مورد استفاده است.
فیلتر بعدی خرید کیت آردوینو بر اساس برد آردوینو مورد استفاده است.
فیلتر آموزش راه اندازی در جهت سهولت دسترسی کاربر به کیت های همراه یا فاقد آموزش(خود آموز) قرار گرفته است.
با استفاده از فرمت آموزش میتوان نوع آموزش مورد نظر خود را به راحتی انتخاب کرد که به دو صورت تصویری و کتبی در دسترس قرار میگیرد.
فیلتر بعدی بر اساس میزان فرکانس RFID است.
با استفاده از فیلتر سنسور میتوان کیت آردوینو مورد نظر خود را بر اساس نوع سنسور به کار رفته انتخاب کرد.
فیلتر بعدی معماری پردازنده است که با استفاده از این فیلتر میتوان نوع پردازنده کیت را انتخاب کرد.
با استفاده از این فیلتر میتوان کیت های آردوینو را بر اساس نوع باتری مورد استفاده انتخاب کرد.
نوع فرکانس مصرفی در کیت را میتوان با این فیلتر تعیین کرد.
با این گزینه میتوان کیت مورد نظر و مصرفی خود را بر اساس برند مورد استفاده انتخاب کرد.
گزینه بعدی محدوده قیمتی است که با این گزینه میتوان به راحتی کیت آردوینو با بودجه مورد نظر را تهیه کرد.
گزینه آخر نوع کانکتور و جامپر و پین هر مصرفی است.
اگر نسخه 4 از Thonny IDE بر روی ویندوز 7 برای شما مشکلساز است و به دنبال جایگزینی مناسب برای توسعه میکروپایتون هستید، میتوانید از محیطهای توسعه دیگری استفاده کنید.
Mu: Mu یک محیط توسعه سبک و کم حجم برای میکروپایتون است. این نرمافزار بر روی ویندوز 7 نصب و اجرا میشود و ویژگیهای ساده و کاربرپسندی دارد.
IDLE (Integrated Development and Learning Environment): IDLE یک IDE رسمی برای میکروپایتون است و به صورت پیشفرض در همراه با نصب پایتون نصب میشود. این IDE از ورژنهای مختلف میکروپایتون پشتیبانی میکند.
Visual Studio Code (VS Code): اگر از یک IDE قدرتمند و انعطافپذیر برای توسعه میکروپایتون بهره میبرید، میتوانید از VS Code با استفاده از افزونههای مرتبط با میکروپایتون استفاده کنید. این IDE روی ویندوز 7 نیز عملکرد مناسبی دارد.
PyCharm Community Edition: اگر به دنبال یک IDE حرفهای برای توسعه پروژههای میکروپایتون هستید، میتوانید از نسخه رایگان PyCharm Community Edition استفاده کنید. این IDE ویژگیهای بسیار زیادی دارد و بر روی ویندوز 7 نیز قابل نصب است.
برد ESP8266 NodeMCU دارای تعداد محدودی پین دیجیتال و آنالوگ است و تعداد این پینها از پیش تعیین شده است.
استفاده از ماژولهای I2C (I2C Expanders):
میتوانید از ماژولهای I2C مانند MCP23017 یا PCF8574 استفاده کنید تا تعداد پورتهای دیجیتال اضافی را به NodeMCU اضافه کنید. این ماژولها به وسیله اتصال به پورت I2C برد NodeMCU و افزودن پورتهای دیجیتال ورودی و خروجی امکانپذیر میشوند.
استفاده از شیلدهای آماده:
برای افزایش تعداد پورتهای ورودی و خروجی میتوانید از شیلدهای آماده برای NodeMCU استفاده کنید. این شیلدها به طور معمول پورتهای ورودی و خروجی اضافی، مانند شیلدهای Relay، شیلدهای GPIO اضافی و غیره را ارائه میدهند.
استفاده از اتصالات Serial (UART):
میتوانید از پورتهای UART برای ارتباط با دیگر دستگاهها و میکروکنترلرها استفاده کنید. با این روش، میتوانید دستگاههای جانبی را به NodeMCU متصل کرده و از آنها به عنوان پورتهای ورودی و خروجی استفاده کنید.
ارور "MPY: soft reboot" در میکروپایتون (MicroPython) به مشکلات مربوط به کد یا اشتباهات در اجرای برنامه اشاره دارد. همچنین، ارور "ImportError: can't import name pin" نیز به نشانه این است که درخواست به ایمپورت ماژول pin ناموفق بوده است.
ابتدا باید کدی که اجرا میشود را بررسی کنید. ممکن است در کد خود از ماژول pin به نادرستی استفاده کرده باشید یا اینکه این ماژول در محیط میکروپایتون مورد تعریف نشده باشد.اطمینان حاصل کنید که ماژول pin در میکروپایتون به درستی تعریف شده و موجود است. در برخی از نسخههای میکروپایتون، این ماژول ممکن است به نام machine تعریف شده باشد. بنابراین، باید از machine به جای pin استفاده کنید.
اگر از میکروکنترلر مخصوصی مثل ESP8266 یا ESP32 استفاده میکنید،در نرم افزار Thonny، برو به منو "View" و "Python Shell" را انتخاب کنید.
پس از باز شدن پنجره Python Shell، شما میتوانید کدهای میکروپایتون خود را در اینجا وارد کنید. از منوی "Device" در پنجره Python Shell، پورت میکروکنترلر خود را انتخاب کنید. معمولاً این پورتها با "/dev/ttyUSB0" یا "/COMx" برای ویندوز نشان داده میشوند.سرعت انتقال (Baud Rate) را به مقدار معمولی 115200 تنظیم کنید. این تنظیمات به کنترل ارتباط بین کامپیوتر و میکروکنترلر کمک میکند. کدهای میکروپایتون خود را در پنجره Python Shell وارد کرده یا از یک فایل Python با پسوند ".py" بارگذاری کنید.برای اجرای کد، میتوانید دکمه "Run" در پنجره Python Shell را کلیک کنید. کد شما در میکروکنترلر اجرا میشود و نتایج به پنجره Python Shell باز میگردند.
برای اتصال به شبکه وای فای دستورات زیر را وارد کنید.
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("نام_شبکه_Wi-Fi", "رمز_عبور")
while not wlan.isconnected():
pass
برای کنترل یک پایه GPIO، ابتدا یک شیء از کلاس Pin بسازید و به عنوان ورودی شماره پایه GPIO را بدهید. به عنوان مثال برای پایه GPIO 5:
from machine import Pin
gpio_pin = Pin(5, Pin.OUT) # شماره پایه و حالت خروجی (OUT) را تعیین کنید
gpio_pin.value(1) # تنظیم پایه به حالت HIGH (برق)
gpio_pin.value(0) # تنظیم پایه به حالت LOW (عدم برق)
current_state = gpio_pin.value() # دریافت وضعیت فعلی پایه
print(current_state)
MicroPython برای اجرا بر روی میکروکنترلرهای مختلف از جمله ESP8266، ESP32، STM32 و غیره طراحی شده است. وبسایت رسمی MicroPython یک لیست از پلتفرمهای پشتیبانیشده را ارائه میدهد.
برای تعریف یک تابع در MicroPython، از کلیدواژه def استفاده کنید. به عنوان مثال:
def greet(name):
print("Hello, " + name + "!")
بله، MicroPython از توابع با تعداد متغیرهای از آرگومانها پشتیبانی میکند. شما میتوانید تعداد دلخواهی از آرگومانها به یک تابع ارسال کنید
بله، MicroPython از توابع داخلی معمول Python مانند print(), len(), و range() پشتیبانی میکند. این توابع به صورت پیشفرض در MicroPython فراهم شدهاند.
میتوانید یک فایل متنی جدید ایجاد کرده و توابع را در آنجا تعریف کنید. سپس با استفاده از دستور import، آن فایل را به کد اصلیتان وارد کنید.
برای صدا زدن یک تابع از یک ماژول دیگر در MicroPython، ابتدا ماژول را با استفاده از دستور import وارد کنید، سپس نام تابع را با نام ماژول مرتبط فراخوانی کنید.
# در فایل ماژول مثلاً به نام mymodule.py
def my_function():
print("Hello from my_module!")
# در فایل اصلی
import mymodule
mymodule.my_function()
برای فراخوانی یک تابع یک تابع از یک کلاس در MicroPython، ابتدا یک نمونه از کلاس بسازید و سپس تابع را از طریق آن نمونه فراخوانی کنید.
class MyClass:
def my_method(self):
print("Hello from my method!")
my_instance = MyClass()
my_instance.my_method()
بله، MicroPython از برخی از ماژولهای تصویری پشتیبانی میکند. برای استفاده از دوربینها یا ماژولهای تصویری دیگر، شما نیاز به فلش کردن کتابخانهها و ماژولهای مربوطه دارید.
// تعریف تابع
void myFunction() {
// بدنه تابع (کد اجرایی)
}
void setup() {
// کد تنظیمات...
}
void loop() {
// کد اجرایی...
myFunction(); // فراخوانی تابع
}
میکروپروسسور یک تراشه کلی است که اجزای مختلف سیستم را در خود جای داده است، در حالی که میکروکنترلر، یک نوع ویژه از میکروپروسسور است که اجزای کنترلی و ورودی/خروجی را برای اجرای برنامههای کنترلی دارد.
برای اتصال به اینترنت با برد میکروکنترلر ESP32، میتوانید از کتابخانه WiFi.h استفاده کنید. این کتابخانه شامل توابعی برای اتصال به شبکههای Wi-Fi و ارسال و دریافت دادهها از طریق Wi-Fi است.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.
برای یادگیری آردوینو، نیازی به دانش قبلی در زمینه الکترونیک یا برنامهنویسی ندارید. با این حال، داشتن دانش پایه در این زمینهها میتواند به شما کمک کند تا یادگیری آردوینو را سریعتر و آسانتر انجام دهید. اگر دانش پایهای در زمینه الکترونیک ندارید، میتوانید با مطالعه دیجی اسپارک، مقالات و دورههای آموزشی آنلاین و متنی، این دانش را به دست آورید. اگر دانش پایهای در زمینه برنامهنویسی ندارید، میتوانید با یادگیری زبان برنامهنویسی C/C++، شروع به یادگیری آردوینو کنید.
برای کدنویسی در آردوینو، باید از زبان برنامهنویسی C/C++ استفاده کنید. کدهای آردوینو در فایلهای متنی با پسوند .ino ذخیره میشوند. برای نوشتن کدهای آردوینو، میتوانید از نرمافزار Arduino IDE استفاده کنید. در نرم افزار نمونه کد ساده برای شروع قرار گرفته شده است اما میتوانید با مراجعه به سایت دیجی اسپارک از سری آموزشهای مقدماتی و رایگان بهره ببرید.
جهت دسترسی به پروژههای آردوینو از سایت دیجی اسپارک استفاده کنید. طی سالیان گذشته تا به امروز هر روز آموزشهای جدید در جهت توسعه و یادگیری برنامهنویسی آردوینو منتشر شده است. همچنین در سایت دانشجوکیت در بخش کیتهای آردوینو و پروژه های آردوینو، پروژههای متنوعی در اختیار کاربران قرار گرفته شده است تا به روزترین آموزشها را دریافت کنن.
برای شروع کار با آردوینو، نیازی به دانش قبلی در زمینه الکترونیک یا برنامهنویسی ندارید. با این حال، داشتن دانش پایه در این زمینهها میتواند به شما کمک کند تا یادگیری آردوینو را سریعتر و آسانتر انجام دهید.
برای شروع کار با آردوینو، به یک برد آردوینو ترجیحا مدل UNO R3 و یا R4، کابل Type Bو یک سیستم نیاز دارید. از نرمافزار Arduino IDE برای نوشتن و کامپایل کردن کدهای آردوینو و برنامهنویسی استفاده کنید. برای خرید قطعات کیت سنسور انتخاب خوبی برای شروع برنامه نویسی میکروکنترلرهاست و به مجموعهای از سنسورهای کاربردی دسترسی خواهید داشت.
digitalRead برای خواندن وضعیت یک پین دیجیتال (HIGH یا LOW) و analogRead برای خواندن ولتاژ از یک پین آنالوگ استفاده میشود.
Serial.print داده را به صورت ASCII به سریال ارسال میکند، در حالیکه Serial.write داده را به صورت بایتی ارسال میکند.
آردوینو به صورت پیشفرض thread است. برای پیادهسازی چندنخی، میتوان از توابع اینتراپت و مدیریت توابع کالبک (callback functions) استفاده کرد.
در این خصوص پیشنهاد میشود از فول پک سنسور استفاده کنید.
در ادامه لینک کالا قرار گرفته شده است.
برای عیب یابی کد خود در نرم افزار آردوینو می توانید از بخش Debug استفاده کنید. برای این کار، ابتدا باید گزینه Debug را از منوی Tools انتخاب کنید. سپس، کد خود را به صورت مرحله ای اجرا کنید و مقادیر متغیرها را مشاهده کنید. برای این کار، می توانید از دکمه های Step Into، Step Over، Step Out، و Run استفاده کنید.
در Arduino IDE، خروجی Serial Monitor به عنوان یک ابزار برای مشاهده لاگها به کار میرود. اما در آینده، ابزارهای دیگر ممکن است این امکانات را گسترش دهند.
با استفاده از یک دوربین و الگوریتمهای پردازش تصویر برای تشخیص چهره میتوانید این سیستم را پیادهسازی کنید.
همچنین از برد مایکسیدوینو برای پردازش تصویر میتوانید استفاده کنید.
پین SWD در Arduino UNO R4 برای اشکال زدایی پیشرفته استفاده میشود. SWD مخفف Serial Wire Debug است و یک پروتکل ارتباطی است که برای اتصال یک ابزار اشکال زدایی به یک میکروکنترلر استفاده میشود. با استفاده از پین های SWD، می توان کد میکروکنترلر را در حین اجرا مشاهده کرد، مقادیر حافظه را خواند و نوشت، و نقاط وقفه را تنظیم کرد. این می تواند برای عیب یابی مشکلات در کد میکروکنترلر بسیار مفید باشد.
در Arduino UNO R4، پین های SWD در زیر برد قرار دارند و به شرح زیر نامگذاری شده اند:
Arduino uno R3 بر اساس میکروکنترلر ATmega328P ساخته شده است، در حالی که Arduino uno r4 RA4M1 بر اساس میکروکنترلر RA4M1 از شرکت Renesas ساخته شده است. این دو میکروکنترلر از نظر عملکرد و ویژگیهای کلی شباهتهای زیادی دارند، اما تفاوتهایی نیز با یکدیگر دارند. برخی از تفاوتهای اصلی عبارتند از:
میکروکنترلر RA4M1 دارای حافظه بیشتری، سرعت کلاک بالاتر و پشتیبانی از ویژگیهای جدیدی مانند CAN bus است.
Arduino uno r4 RA4M1 دارای یک منبع تغذیه داخلی 5 ولت است، در حالی که Arduino uno R3 نیاز به یک منبع تغذیه خارجی دارد.
Arduino uno r4 RA4M1 دارای یک پورت سریال جدید به نام JTAG است که برای عیبیابی استفاده می شود.
Arduino uno R3 گزینه بهتری برای مبتدیان است زیرا ارزان تر و سادهتر است. همچنین دارای یک کتابخانه گسترده تر از کدها و مثال ها است که برای مبتدیان مفید است.
Arduino uno r4 RA4M1 گزینه بهتری برای کاربران پیشرفته است زیرا دارای ویژگی ها و عملکردهای بیشتری است. همچنین می تواند برای پروژه هایی که نیاز به حافظه بیشتر، سرعت کلاک بالاتر یا پشتیبانی از ویژگی های جدید مانند CAN bus دارند، استفاده شود.
برای اتصال برد آردوینو uno r4 به کابل تایپ C نیاز دارید. برای برقراری ارتباط ابتدا نرمافزار آردوینو arduino ide را نصب کنید. سپس پکیج UNO R4 را نصب کنید. با استفاده از کابل تایپ C اتصال برد به سیستم را برقرار کنید.
برای نصب برد Arduino Uno R4 Minima RA4M1 در نرمافزار Arduino، ابتدا باید نرمافزار Arduino را از وبسایت رسمی Arduino دانلود و نصب کنید. پس از نصب نرمافزار Arduino، مراحل زیر را دنبال کنید:
۱. در نرمافزار Arduino، به منوی File > Preferences بروید.
۲. در پنجره باز شده، به بخش Boards Manager بروید.
۳. در کادر جستجو، عبارت Arduino Uno R4 Minima RA4M1 را تایپ کنید.
۴. پس از یافتن برد Arduino Uno R4 Minima RA4M1، روی دکمه Install کلیک کنید.
پس از نصب برد Arduino Uno R4 Minima RA4M1، میتوانید آن را در پروژههای خود استفاده کنید.
میکروپایتون یک زیر مجموعه از زبان برنامه نویسی پایتون است که برای میکروکنترلرها مانند ESP8266 و ESP32 بهینه شده است. این زبان به شما امکان می دهد تا برنامه های پیچیده را با استفاده از دستورات ساده و خوانا پیاده سازی کنید. تفاوت اصلی میکروپایتون با پایتون در این است که برای اجرا بر روی سخت افزارهای کم مصرف مانند میکروکنترلرها طراحی شده است.
سادگی: میکروپایتون از نحو ساده و خوانایی مشابه پایتون استفاده میکند که یادگیری و استفاده از آن را آسان میکند.
قدرت: میکروپایتون از کتابخانه های قدرتمندی برای انجام وظایف مختلف مانند کنترل GPIO، شبکه، و سنسورها پشتیبانی میکند.
انعطاف پذیری: میکروپایتون میتواند برای طیف وسیعی از پروژه ها از جمله اینترنت اشیا، رباتیک، و اتوماسیون خانگی استفاده شود.
جامعه کاربری فعال: میکروپایتون از جامعه ی بزرگی از کاربران و توسعه دهندگان فعال پشتیبانی میکند که میتوانند در حل مشکلات و ارائهی راهنمایی به شما کمک کنند.
برای شروع برنامه نویسی میکروپایتون با ESP8266 و ESP32، به موارد زیر نیاز دارید:
سپس برای شروع برنامه نویسی از آموزشهای میکروپایتون در دیجیاسپارک میتوانید استفاده کنید.
برای دسترسی به پین های GPIO در میکروپایتون، می توانید از ماژول machine استفاده کنید. این ماژول شامل توابعی برای تنظیم پین ها به عنوان ورودی یا خروجی، خواندن و نوشتن مقادیر دیجیتال، و فعال کردن وقفه ها است. نمونه:
from machine import Pin
led = Pin(25, Pin.OUT)
برای کنترل موتورها در میکروپایتون، میتوانید از ماژول machine و پینهای PWM استفاده کنید. ماژول machine شامل توابعی برای تولید سیگنالهای PWM است که می تواند برای کنترل سرعت و جهت موتورها استفاده شود.
آردوینو یک پلتفرم توسعه است که شامل یک IDE (محیط توسعه یکپارچه) و یک زبان برنامه نویسی مبتنی بر C++ است. میکروپایتون یک زبان برنامه نویسی است که می تواند بر روی بردهای آردوینو با تراشه ESP, RP2040 و همچنین سایر میکروکنترلرها مثل ESP, STM استفاده شود.
تفاوت های کلیدی بین میکروپایتون و آردوینو:
زبان برنامه نویسی:
سخت افزار:
قابلیت ها:
جامعه:
موارد دیگر:
انتخاب بین میکروپایتون و آردوینو به عوامل مختلفی بستگی دارد:
بردهای ESP سازگار با میکروپایتون:
ESP32 از دو هسته پردازنده Xtensa LX106 با فرکانس حداکثر 240 مگاهرتز استفاده میکند.
ESP32 در مدل های مختلف با حافظه های مختلف ارائه میشود، به طور مثال مدل ESP32-WROOM-02 دارای 4 مگابایت حافظه رم و 32 مگابایت حافظه فلش داخلی است.
ESP32 از Wi-Fi 802.11 b/g/n و بلوتوث 4.2 BLE پشتیبانی می کند
ESP32 از نظر قدرت پردازش، حافظه و امکانات جانبی مانند بلوتوث، قویتر از ESP8266 است.
پردازنده:
حافظه:
امکانات جانبی:
ESP32 در مدلهای مختلف با حافظههای رم 4، 8 و 16 مگابایت و حافظه فلش 4، 8، 16 و 32 مگابایت ارائه میشود.
پینهای GPIO در ESP32:
ESP32 دارای 32 پین GPIO (ورودی/خروجی دیجیتال) است که میتوان از آنها به عنوان ورودی یا خروجی دیجیتال استفاده کرد. این پینها با نامهای GPIO0 تا GPIO39 شناخته میشوند.
توابع پینهای GPIO:
پروتکل های رایج برای اتصال ESP32 به اینترنت در IoT:
1. Wi-Fi:
2. BLE (Bluetooth Low Energy):
3. MQTT (Message Queuing Telemetry Transport):
4. HTTP (Hypertext Transfer Protocol):
5. LoRaWAN (Long Range Wide Area Network):
آپدیت برنامه ESP32 با استفاده از OTA (Over-the-Air):
OTA (Over-the-Air) روشی برای آپدیت برنامه ESP32 بدون نیاز به اتصال فیزیکی به دستگاه است. این کار از طریق WiFi انجام می شود و می تواند برای آپدیت برنامه، رفع اشکال و اضافه کردن ویژگی های جدید به ESP32 شما مفید باشد.
مراحل آپدیت برنامه ESP32 با استفاده از OTA:
1. فعال کردن OTA:
2. آپلود برنامه:
3. ارسال آپدیت:
4. نصب آپدیت:
نکاتی در مورد OTA:
از کتابخانه OTA برای آپدیت برنامه ESP32 از طریق WiFi استفاده کنید. قبل از استفاده از OTA، باید سرور OTA را پیکربندی کنید.