制造商零件编号 K016-P
M5STICKC PLUS ESP32-PICO IOT KIT
M5Stack Technology Co., Ltd.
所订产品一般在 7-10个工作日 内送达中国,具体时间取决于收货地点。
最低订购金额为人民币 300 元,顺丰快递免运费配送。
当用人民币下单时,按照国际贸易条款 DDP(DigiKey 支付关税、海关费用和当地税款)方式结算。
电汇预付
更多来自全授权合作伙伴的产品
下单后,从合作伙伴发货平均需要时间 1-3 天,也可能产生额外运费。可能另外收取运费。 实际发货时间请留意产品详情页、购物车和结账页面上的说明。
国际贸易结算方式:CPT(交货时支付关税、海关费用和适用 VAT/应付税金)
有关详情,请访问帮助和支持
License: General Public License M5Stack
* Thanks for the source code and project information provided by @jason pilarski
This project is simply an experiment to move the stepper on the 6060 push using rs485. It uses the accelerometer to check the tilt direction and moves the stepper accordingly.
from m5stack import *
from m5ui import *
from uiflow import *
import imu
setScreenColor(0x111111)
imu0 = imu.IMU()
label1 = M5TextBox(74, 114, "Text", lcd.FONT_Default,0xFFFFFF, rotate=90)
rectangle0 = M5Rect(0, 0, 50, 10, 0xFFFFFF, 0xFFFFFF)
label0 = M5TextBox(33, 15, "Text", lcd.FONT_DejaVu24,0xFFFFFF, rotate=90)
name = None
move = None
message = None
uart_val = None
uart_int = None
uart = None
acc_dir = None
pos = None
prev_acc_dir = None
out = None
id_set = None
checked_pos = None
def get_serial_pos(name):
global move, message, uart_val, uart_int, uart, acc_dir, pos, prev_acc_dir, out, id_set, checked_pos
message = ('ID' + ((name + 'P')))
uart.write(str(message)+"\r\n")
uart_val = str((uart.readline()))
wait_ms(20)
uart_val = uart_val.replace("b'", '')
uart_val = uart_val.replace("\\r\\n'", '')
uart_val = uart_val.replace('ok', '')
uart_val = uart_val.strip()
label1.setText(str(uart_val))
return uart_val
def draw_screen():
global name, move, message, uart_val, uart_int, uart, acc_dir, pos, prev_acc_dir, out, id_set, checked_pos
label1.hide()
label0.hide()
label0.setColor(0x339999)
label0.setRotate(90)
label0.setFont(lcd.FONT_DejaVu18)
label1.setRotate(90)
rectangle0.setBgColor(0x339999)
rectangle0.setSize(50, 10)
rectangle0.setPosition(0, pos)
def check_id():
global name, move, message, uart_val, uart_int, uart, acc_dir, pos, prev_acc_dir, out, id_set, checked_pos
uart.write("ID"+"\r\n")
wait_ms(150)
def get_accel_dir():
global name, move, message, uart_val, uart_int, uart, acc_dir, pos, prev_acc_dir, out, id_set, checked_pos
acc_dir = imu0.acceleration[1]
if acc_dir > 0.32:
pos = pos + 1
wait_ms(120)
if pos >= 50:
pos = 50
if acc_dir < 0.12:
pos = pos - 1
wait_ms(120)
if pos <= 0:
pos = 0
label0.setPosition(y=(15 + (pos * 3)))
label0.setText(str(pos))
rectangle0.setSize(height=(10 + (pos * 3)))
return pos
def move_stepper(name, move):
global message, uart_val, uart_int, uart, acc_dir, pos, prev_acc_dir, out, id_set, checked_pos
move = str(move)
message = ('ID' + ((name + ':X')))
out = (message + move)
uart.write(str(out)+"\r\n")
wait_ms(20)
def set_id(name):
global move, message, uart_val, uart_int, uart, acc_dir, pos, prev_acc_dir, out, id_set, checked_pos
message = ('ID=' + name)
uart.write(str(id_set)+"\r\n")
wait_ms(150)
def move_home(name):
global move, message, uart_val, uart_int, uart, acc_dir, pos, prev_acc_dir, out, id_set, checked_pos
message = ('ID' + ((name + 'Z')))
uart.write(str(str(message))+"\r\n")
label1.setText('home')
wait(3)
uart_int = 0
pos = 0
prev_acc_dir = 0
uart = machine.UART(1, tx=0, rx=26)
uart.init(9600, bits=8, parity=None, stop=1)
name = '123'
draw_screen()
check_id()
set_id(name)
move_home(name)
checked_pos = get_serial_pos(name)
while True:
acc_dir = get_accel_dir()
checked_pos = get_serial_pos('123')
if acc_dir != prev_acc_dir:
move_stepper(name, acc_dir)
prev_acc_dir = acc_dir
wait_ms(2)
谢谢!
敬请关注收件箱中的 DigiKey 新闻与更新!
请输入电子邮件地址