M5Stack UIFlow و برنامهنویسی Blockly چیست؟ (مبتدی)
M5Stack یک خانواده از ماژولهای ESP32 است که در یک جعبه کوچک با صفحهنمایش، دکمه، و پورتهای مختلف ارائه میشوند. مزیت بزرگ M5Stack محیط برنامهنویسی UIFlow است که بر پایه Blockly (مثل Scratch) کار میکند — بلوکهای رنگی را کنار هم میچینید و برنامه مینویسید بدون هیچ کد متنی!
ماژول LoRa 868/433MHz از خانواده M5Stack به راحتی به Core2 وصل میشود و با Blockly میتوان پکتهای RF ارسال و دریافت کرد. این پروژه یک کنترلر RC با دو جویاستیک M5Stack میسازد که سیگنالهای فرمان را به هواپیما یا UGV ارسال میکند.
محصولی که میسازید
یک کنترلر RC کامل با M5Stack + LoRa که با Blockly برنامهنویسی میشود — مناسب برای کسانی که هنوز کدنویسی یاد نگرفتهاند.
- هزینه: ۲ تا ۳.۵ میلیون تومان
- برد: ۵۰۰-۲۰۰۰ متر (LoRa 868MHz)
- برنامهنویسی: فقط Drag-and-Drop!
سختافزار مورد نیاز
| قطعه | نقش |
|---|---|
| M5Stack Core2 یا Core S3 | کنترلر TX — صفحه + WiFi + BT |
| M5Stack LoRa 868MHz Unit | ارسال RF TX |
| M5Stack Joystick Unit × ۲ | ورودی فرمان |
| TTGO LoRa32 (گیرنده RX) | RX روی هواپیما |
برنامه UIFlow Blockly — TX
// معادل Python تولیدشده توسط UIFlow Blockly:
from m5stack import *
from m5ui import *
from uiflow import *
import lora_unit
lora = lora_unit.get(unit.PORTA)
lora.set_frequency(868.5)
while True:
x = joystick.get_x() # -127 تا +127
y = joystick.get_y()
msg = str(x) + ',' + str(y)
lora.send(msg)
wait(0.05) # 20Hz
lcd.print(msg, 0, 0)
# در UIFlow: این کد با بلوکهای رنگی ساخته میشود!
# بلوک "LoRa Send" + بلوک "Joystick X" + بلوک "Wait 0.05s"
کد RX روی TTGO LoRa32 (Arduino)
#include <LoRa.h>
#include <Servo.h>
Servo aileron, elevator;
void setup() {
LoRa.begin(868.5E6);
aileron.attach(13);
elevator.attach(12);
}
void loop() {
int sz = LoRa.parsePacket();
if(sz > 0) {
String data = "";
while(LoRa.available()) data += char(LoRa.read());
// پارس: "x,y"
int comma = data.indexOf(',');
int x = data.substring(0,comma).toInt();
int y = data.substring(comma+1).toInt();
aileron.write(map(x, -127, 127, 45, 135));
elevator.write(map(y, -127, 127, 45, 135));
}
}
چکلیست راهاندازی UIFlow
| مرحله | توضیح |
|---|---|
| ۱. flash.m5stack.com را باز کنید | فریمور UIFlow را نصب کنید |
| ۲. flow.m5stack.com را باز کنید | محیط Blockly در مرورگر |
| ۳. API Key از صفحه M5Stack بخوانید | WiFi برای اتصال Online |
| ۴. بلوکهای LoRa را به برنامه اضافه کنید | Units → LoRa → Send |