RoboMaster TT 无人机microPython编程.3

只是积木的功能少而已,事实上,代码编写是少不了的。

这里我们用vscode来编写


  • 设备快速连接(串口、网络、USB)

  • 支持基于 MicroPython 的代码智能补全与语法检查

  • 支持 MicroPython REPL 交互环境

  • 提供丰富的代码示例与 demo 程序

  • 提供工程同步功能

  • 支持下载单个文件或文件夹至开发板

  • 支持在内存中快速运行代码文件功能

  • 支持运行代码片段功能

  • 支持多款主流 MicroPython 开发板

  • 支持 Windows、Ubuntu、Mac 操作系统

这里给出了一些关于此插件好用的功能,自动补全无疑是很诱人的

我们这篇文章算是对前面两篇的查漏补缺

这个是屏幕的驱动方式,I2C

下面是mpy的参数表

然后作为参考

https://www.cnpython.com/pypi/micropython-machine
https://www.cnpython.com/pypi/micropython-machine/dl-micropython-machine-0.2.tar.gz

这是专门为micropython标准库重新实现的模块, 以高效和精益的设计理念。

里面的内容不多,可以作为学习的资料

之后先新建一个项目才可以写和run

这里链接好以后,tt的终端会在这里显示

def main(): print("Welcome to TT") if __name__ == '__main__': main()

这里用Alt+Q来执行

下面会输出这个命令行

help之下会有这么多的输出

然后输入这个help会输出一些东西

# MindPlus# telloesp32from machine import *from RMTTLib import *

led = RMTTLedCtrl()led.start()
i2c = I2C(0, scl=Pin(26), sda=Pin(27), freq=400000)
matrix = RMTTMledCtrl(i2c)

led.normal(0, 0, 255)matrix.normal( '000rr00000r0rr000r0r0rr0r0r0r0rrrr0r0r0r0rr0r0r000rr0r00000rr000')while True:    pass

就这样成功了

通过自动补全,我们发现TT的很多新鲜玩意儿

打印出这么多的方法

方法很多,我们就说不多的几个。首先是对硬件的一些功能。

Pin,RTC,SDcard等,都有了

在方法的后面有一些我们之前看见的方法,有Tof的传感器,三个RGB的灯,控制功能,已经led的控制和小屏幕的控制

print(dir(RMTTProtocol))

这个是打印出得方法,和C++得版本具有一致性

我就是好奇,这些个方法的参数说明

可能没有doc把

from machine import Pinp0 = Pin(0, Pin.OUT) # GPIO0设置为输出模式p0.value(1) # p0输出高电平p0.value(0) # p0输出低电平p0.value() # 当前p0设置的电平p2 = Pin(2, Pin.IN) # GPIO2设置为输入模式p2.value() # p2的电平p3 = Pin(3, Pin.IN, Pin.PULL_UP) # GPIO3设置为上拉的输入模式p4 = Pin(4, Pin.OUT, value=1) # 创建Pin对象同时设置初始电平

比如我们最主要的引脚控制功能

  1. 首先是引脚的定义,初始书

  2. 引脚的基本控制

  3. 以及控制一串pin对象等

from machine import Pin, PWMpwm0 = PWM(Pin(0)) # 通过Pin对象来创建PWM对象pwm0.freq() # 获得当前的PWM频率pwm0.freq(1000) # 设置PWM频率pwm0.duty() # 获得当前的PWM占空比pwm0.duty(200) # 设置占空比pwm0.deinit() # 关闭PWMpwm2 = PWM(Pin(2), freq=500, duty=512) # 创建PWM同时设置参数

PWM

from machine import ADCadc = ADC(0) # 在ADC引脚上创建ADC对象adc.read() # 获取ADC值,范围是0-1024

ADC

from machine import Pin, SPIspi = SPI(-1, baudrate=100000, polarity=1, phase=0, sck=Pin(0), mosi=Pin(2), miso=Pin(4)) # 创建SPI对象spi.init(baudrate=200000) # 设置波特率spi.read(10) # 读取10字节spi.read(10, 0xff) # 读取十字节,并写出0xffbuf = bytearray(50) # 创建一个缓冲字节流spi.readinto(buf) # 读入到这个字节流spi.readinto(buf, 0xff) # 读入字节流并发送0xffspi.write(b'12345') # 发送5个字节buf = bytearray(4) spi.write_readinto(b'1234', buf) # 发送并读取到bufspi.write_readinto(buf, buf) # 发送buf并读取到buf

软SPI

from machine import Pin, SPIhspi = SPI(1, baudrate=80000000, polarity=0, phase=0)

硬SPI:构造方法和串口的一样

i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)i2c.readfrom(0x3a, 4) # 从0x3a读取4字节i2c.writeto(0x3a, '12') # 发送12到0x3abuf = bytearray(10) # 创建十字节的缓冲字节流i2c.writeto(0x3a, buf) # 发送字节流到0x3a

I2C的所有引脚都适用

import machine# 配置RTC.ALARM0来唤醒设备rtc = machine.RTC()rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)# 检查是否reset是否是由唤醒引起的if machine.reset_cause() == machine.DEEPSLEEP_RESET: print('woke from a deep sleep')# 设置RTC.ALARM0在10秒后唤醒设备rtc.alarm(rtc.ALARM0, 10000)# 设备进入深度睡眠machine.deepsleep()

深度唤醒

from machine import Timertim = Timer(-1)tim.init(period=5000, mode=Timer.ONE_SHOT, callback=lambda t:print(1))tim.init(period=2000, mode=Timer.PERIODIC, callback=lambda t:print(2))

定时器

import timetime.sleep(1) # 延时一秒time.sleep_ms(500) # 延时500毫秒time.sleep_us(10) # 延时10微秒start = time.ticks_ms() # 得到内部计时的某个时间点delta = time.ticks_diff(time.ticks_ms(), start) # 计算过去的时间段的长度

计时

from machine import Pinimport onewireow = onewire.OneWire(Pin(12)) # 在GPIO12上创建单总线协议ow.scan() # 返回总线上的设备列表ow.reset() # 重置总线ow.readbyte() # 读取一个字节ow.writebyte(0x12) # 往总线写0x12ow.write('123') # 往总线写'123'ow.select_rom(b'12345678') # 选择特定设备

1-Wire协议

https://blog.csdn.net/solar_Lan/article/details/79265070

来源在此

Mind+里面上传一个mpy文件,是会重启一次机器

经测试,用vscode写的。是会在线执行,但是不是永久写入,断电会变成以前的状态。

(0)

相关推荐

  • 市场上热门的六款RK3399系列板卡大PK,你更支持谁?

    大家好,我是人见人爱.花见花开的小月月.今天来给大家推荐市场上六款"性能超凡"的RK3399板子,哪一款实力最强?你最喜爱哪一款?欢迎留言! 1.NanoPC-T4 NanoPC- ...

  • 在SensorTile上使用MicroPython(二)

    LPS22HB 的 Micropython 程序移植 前面介绍了传感器的接口.主要寄存器.参数计算等方面的内容,下面就介绍用MicroPython驱动LPS22HB的方法. 为了让程序具有通用性,以及 ...

  • 船模制作——遥控模块 基于stm32和nrf24l01(固件库开发)

    目录 nrf24l01介绍 引脚图 引脚功能介绍 模式配置方法 官方宏 stm32配置 引脚映射 初始化函数 SPI模拟通信函数 nrf24l01配置函数 nrf24l01发射和接收 nrf24l01 ...

  • 【MicroPython】移植到小钢炮开发板

    小钢炮(CANNON)开发板是最近比较热门的一个蓝牙开发板,它是XXXXX(为了避免广告,此处省略XX字).这里介绍小钢炮开发板,主要因为它使用了STM32F401RE这个MCU,而这个MCU是Mic ...

  • 在SensorTile上使用MicroPython

    前几天终于将SensorTile传感器部分的MicroPython驱动移植成功,因此就想将传感器的基本使用方法和大家讨论一下,顺便也写写MicroPython的移植方法.去年就有网友希望介绍移植方面的 ...

  • RoboMaster TT 无人机microPython编程.1

    感谢小马的美图 这个Mind+中有支持TT扩展件MicroPython实现,今日做个整理以及有一些实验要做: from machine import *from RMTTLib import *i2c ...

  • RoboMaster TT 无人机microPython编程.2

    还记得我们说的读取上次的状态吗,这个就是所有上次的状态 print(protocol.getTelloStatusWithName("temph")) print(protocol ...

  • 大疆推编程无人机RoboMaster TT、大疆将发布全新Osmo Mobile 4稳定器、俄展示新...

    热点资讯 1.大疆新推出编程无人机RoboMaster TT创造力套装 2.大疆即将发布全新Osmo Mobile 4稳定器 3.俄罗斯把无人机塞进远程火箭弹里 发射后能快速侦察目标 4.坦桑尼亚民航 ...

  • 关于RoboMaster TT Tello Talnet无人机资料(长更)

    脱离Arduino IDE的外部编译及上传模式 TT无人机解读 大疆特洛TELLO手柄盖世小鸡Gamesir-T1D蓝牙连接破解DIY TT拆解 Tello无人机SDK2.0与3.0异同 无人机飞行条 ...

  • TT无人机扩展模块库分析(default.ino)补篇2

    这个简单 请对照 因为源码在这里出现了和手柄相关的源码 设置tof传感器的超时时间(500)什么单位? 没有搜索到,我用SI了 搜索到了~有很多函数 定位位置 在这里 找到了,为什么我又回去了code ...

  • TT无人机扩展模块库分析(default.ino)补篇1

    昨天文章的最后着急的发表,没有好好分析最后这一个 我决定今天继续写一下 因为在具体的语句里面使用预处理命令是我第一次见的 平时都是在文件首有,今天在内部.值得说说 这个地方我在截图一下 在一个{ }内 ...

  • TT无人机扩展模块库分析(default.ino)补篇3

    处理有关矩阵的命令: 自定义回调函数的模板,先定义三个参数 下面写处理函数就行 WiFi更新功能 先定义一个cnt变量 注释写:将您的设置代码放在此处,即可运行一次 先设置一个串口波特率,开启的是Se ...

  • TT无人机扩展模块库分析(操控函数)1

    /** * Gamesir joystick control handling * - Receive command from the joystick * - Control the drone ...

  • TT无人机解读

    接下来的文章就是由我收集到的这些资料,加入自己的测试与理解做一些对无人机的解读,文章来源于官网,博客简书等.如有侵权,后台滴滴我~~~~~~~~~ 这个图是大疆官网的图,首先看的出来颜色真的太亮眼了, ...