Petoi Doc Center
🇨🇳中文版
🇨🇳中文版
  • 欢迎查阅派拓艺文档中心
  • 快速上手指南
  • Petoi 机器人关节序号
  • 蓝牙连接
  • 上传固件
  • 关节校准
  • 红外遥控
    • 遥控器
  • 手机应用
    • 总览
    • 关节校准
    • 控制面板
  • 桌面应用
    • 总览
    • 固件上载
    • 关节校准
    • 技能创作坊
    • 调试器
  • 图形化编程
    • Petoi 编程积木
    • Mind+中的Python代码模式
    • Arduino UNO 编程积木
  • Arduino IDE
    • 为NyBoard上传程序
    • 为BiBoard上传程序
    • 使用Arduino IDE校准舵机
    • 串口监视器
  • API
    • 🖇️串口协议
    • 🐍Python serialMaster使用指南
    • 🐛MicroPython控制器
      • MicroPython上手玩
      • 配置WebREPL
      • 使用ESP-NOW协议
    • 🍓通过树莓派控制机器人
    • 🤖ROS
  • NYBOARD
    • 总述
    • NyBoard V1_0
    • NyBoard V1_1 & NyBoard V1_2
  • BiBoard
    • BiBoard V0 快速上手指南
    • 例程介绍
      • 1. GPIO例程
      • 2. 串口
      • 3. 模拟-数字转换器
      • 4. 数字-模拟转换器
      • 5. EEPROM(电擦除存储器)
      • 6. 陀螺仪IMU(MPU6050)
      • 7. 红外遥控
      • 8. PWM
      • 9. 舵机(施工)
      • 10. 经典蓝牙串口SPP
      • 11. 蓝牙低功耗(BLE)串口透传
      • 12. 文件系统SPIFFS
      • 13. Arduino IDE增加硬件分区配置选项
      • 14. 播放MP3
      • 15. WiFi和OTA的使用
    • BiBoard V1 用户指南
  • 通信模块
    • 通信模块概要说明
    • USB上载模块(CH340C)
    • 双模蓝牙模块
    • WiFi模块(ESP8266)
      • 使用ESP8266 + Python 脚本实现无线群控
  • 扩展模块
    • 扩展模块概要说明
    • MU摄像头模块
    • 超声波传感器
    • 光强传感器
    • 触摸传感器
    • 手势传感器
    • 人体移动探测器
    • 语音指令模块
    • Petoi AI Vision摄像头模块
    • 深度开发应用AI视觉模块
      • 🏋️模型训练
      • ⚖️模型量化
      • 🏌️模型部署
      • COCO数据集DIY训练
    • 机械臂
      • 升级旧款 Bittle/Bittle X
    • Micro:bit 游戏手柄
  • 应用实例
    • 技能创作
    • 姿势模仿教程
    • 可编程木偶角色
  • 历史文档
    • 为NyBoard上传1.0版本程序
  • 技术支持
    • 🛠️配套应用软件
    • 🙋‍♂️常见问题 (FAQ)
    • 烧录Bootloader
  • 资源链接 🕸
    • 🔭Official Site of Petoi
    • 💿GitHub of OpenCat
    • 📀GitHub of OpenCatEsp32
    • 🎪PetoiCamp (Forum)
Powered by GitBook
On this page
  • 1. 直接运行脚本
  • 2. 使用.py文件运行程序
  • 3. 将.py文件下载到WiFi模块上
  • 4. 写一个python程序让机器人顺序执行动作
  • 5. 上电自动运行

Was this helpful?

Export as PDF
  1. API
  2. MicroPython控制器

MicroPython上手玩

PreviousMicroPython控制器Next配置WebREPL

Last updated 2 years ago

Was this helpful?

在完成烧录MicroPython固件后,我们就可以使用它了。

1. 直接运行脚本

我们直接在解释器中输入python语句即可执行。

# 示例代码:
print("Hello MicroPython")

2. 使用.py文件运行程序

NyBoard WiFi模块使用了ESP8266的IO2与一个红色LED连接,用来指示连接状态。这个LED是可编程的。 写一个简单的python blink程序:

from machine import Pin
import time

# GPIO LED IO2
def blink():
    
    led = machine.Pin(2, machine.Pin.OUT)     # Pin 2 ,Output mode
    
    while(True):			# loop
        led.on()			# light on LED
        time.sleep(1)		# delay 1s
        led.off()			# light off LED
        time.sleep(1)		# delay 1s

if __name__ == "__main__":
    blink()

按下工具栏上绿色的开始运行按钮,程序会通过串口发送到WiFi模块上, 由ESP8266内置的MicroPython解释器解释后运行。 因为案例程序是死循环,需要停止时,按下红色的停止键即可完成程序中断和复位。

3. 将.py文件下载到WiFi模块上

我们点击View -> File打开文件工具栏, Thonny左侧显示了文件。上部为本机的目录,下部为MicroPython设备中存储的文件。 默认情况下只有一个boot.py文件,这个文件请不要删除,是MicroPython设备的启动文件。

我们将刚刚的点灯程序保存为blink.py保存在本机后,右键点击文件,选择Upload to / :

在弹出窗口选择MicroPython device:

在设备上就有了一个blink.py的文件。这样文件就保存在设备上。

4. 写一个python程序让机器人顺序执行动作

WiFi模块通过串口向NyBoard发送指令进行控制。我们只需要写一个简单的串口发送程序,向NyBoard发送一系列串口指令, 就可以让机器狗执行序列动作。

from machine import UART
import time

uart = UART(0, baudrate=115200,timeout=5)

# walk
def walk(time_ms):
    print("walk")
    uart.write("kwkF")      # walk cmd
    time.sleep_ms(time_ms)  # keep time
    uart.write("d")         # stop
    time.sleep_ms(1500)
    
# backward
def back(time_ms):
    print("back")
    uart.write("kbk")
    time.sleep_ms(time_ms)
    uart.write("d")
    time.sleep_ms(1500)

# stop
def stop():
    uart.write("d")
    
def initConnection():
    connected = False
    while True:
        uart.write("d")
        for t in range(30):
            uos.dupterm(None, 1)        # disable REPL on UART(0), detach the REPL from UART0
            time.sleep_ms(5)            #delay is a must
            result = uart.read(1)
            uos.dupterm(uart, 1)        # enable REPL on UART(0), reattach REPL

            if result != None:
#                 uart.write(result)    # for debug
                if result == b"d":

                    connected = True
                    break
            time.sleep_ms(10)

        if connected:
            break

    uart.write("b22 4 24 4 26 4")
 

def actSeq():
    initConnection()
    time.sleep_ms(2000)
    walk(3000)
    back(3000)
    uart.write("m0 90")
    time.sleep_ms(3000)
    uart.write("i8 -20 9 -60")
    time.sleep_ms(2000)
    uart.write("b26 4 24 4 20 4")
    time.sleep_ms(1000)
    uart.write("d")
    uos.dupterm(None, 1)        # disable REPL on UART(0), detach the REPL from UART0

    
if __name__ == "__main__":
    actSeq()
    

当我们执行actSeq()函数时,就可以通过串口输出一系列指令。使用串口监视器我们可以进行调试。 使用串口监视器监控输出如下(为了方便阅读我使用了串口调试器的自动断帧,实际上是没有自动换行的)

5. 上电自动运行

当我们调试完序列动作后,将WiFi模块拔下,插上NyBoard后,机器狗没有任何反应,因为actSeq()函数并没有运行。 我们希望上电自动运行程序,有以下2种方法:

  1. 请将文件名更改成“main.py”并存到设备(这个是最简单的)

  2. 修改boot.py启动文件

🐛