雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • 最佳新人
  • E币:1802

MicroPython动手做(22)——掌控板之无线广播

1、掌控板无线广播主要函数
radio 模块提供无线广播功能,支持13 Channel,在相同的 Channel 内能接收到成员发出的广播消息,适合10米范围内的多板组网的通讯。

radio.on()
描述: 开启无线功能

radio.off()
描述: 关闭无线功能

radio.config(channel)
描述: 配置无线参数

参数:
channel (int) - 无线通道,范围1~13

radio.receive()
描述: 接收无线广播消息,消息以字符串形式返回。最大可接收250字节数据。如果没有接收到消息,则返回 None 。当 receive 内参数为 True ,即 receive(True) ,返回 (msg,mac) 的二元组。默认缺省 receive(False) ,即只返回 msg

radio.receive_bytes()
描述: 接收无线广播消息,消息以字节形式返回。其他同 radio.receive() 相同

radio.send()
描述: 发送无线广播消息,发送数据类型为字符串。当发送成功后返回 True,否则返回 False

radio.send_bytes()
描述: 发送无线广播消息,发送数据类型为字节。当发送成功后返回 True,否则返回 False

112820hocpo3qpt48mpcpn.gif

最新评论

楼层直达:

雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
2、无线广播的简单实验(需要二块掌控板)

#MicroPython动手做(22)——掌控板之无线广播
#无线广播发射端程序

  1. #MicroPython动手做(22)——掌控板之无线广播
  2. #无线广播发射端程序

  3. from mpython import *

  4. import time

  5. import radio
  6. oled.fill(0)
  7. oled.DispChar('        13频道广播哦', 0, 16, 1)
  8. oled.show()
  9. rgb[1] = (int(51), int(204), int(0))
  10. rgb.write()
  11. time.sleep_ms(1)
  12. while True:
  13.     radio.on()
  14.     radio.config(channel=13)
  15.     radio.send('msg')


雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
#MicroPython动手做(22)——掌控板之无线广播
#无线广播接收端程序


  1. #MicroPython动手做(22)——掌控板之无线广播
  2. #无线广播接收端程序

  3. import radio
  4. from mpython import *
  5. import time
  6. from machine import Timer
  7. import ubinascii

  8. def radio_recv(_msg):
  9.     rgb[1] = (int(255), int(0), int(0))
  10.     rgb.write()
  11.     time.sleep_ms(1)
  12.     oled.fill(0)
  13.     oled.DispChar("       收到13频道广播", 0, 16, 1)
  14.     oled.show()

  15. _radio_msg_list = []
  16. def radio_callback(_msg):
  17.     global _radio_msg_list
  18.     try: radio_recv(_msg)
  19.     except: pass
  20.     if _msg in _radio_msg_list:
  21.         eval('radio_recv_' + bytes.decode(ubinascii.hexlify(_msg)) + '()')

  22. tim13 = Timer(13)

  23. def timer13_tick(_):
  24.     _msg = radio.receive()
  25.     if not _msg: return
  26.     radio_callback(_msg)

  27. tim13.init(period=20, mode=Timer.PERIODIC, callback=timer13_tick)


  28. while True:
  29.     radio.on()
  30.     radio.config(channel=13)
  31.     oled.fill(0)
  32.     oled.DispChar("            接收状态", 0, 16, 1)
  33.     oled.show()
  34.     rgb.fill( (0, 0, 0) )
  35.     rgb.write()
  36.     time.sleep_ms(1)


雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
广告

雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
无线广播发射端程序(mPython 图形编程)

01.jpg

雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802

雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
3、AB键组网控制RGB灯


  1. #MicroPython动手做(22)——掌控板之无线广播
  2. # AB键组网控制RGB灯——控制端

  3. from mpython import *

  4. import time

  5. import radio
  6. rgb[1] = (int(0), int(102), int(0))
  7. rgb.write()
  8. time.sleep_ms(1)
  9. while True:
  10.     radio.on()
  11.     radio.config(channel=6)
  12.     if button_a.value() == 0:
  13.         radio.send('on')
  14.     if button_b.value() == 0:
  15.         radio.send('off')


雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
掌控板之无线广播工作时(发射)的串口信息如下


07.jpg
广告

雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802

雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
#MicroPython动手做(22)——掌控板之无线广播
# AB键组网控制RGB灯——接收端


  1. #MicroPython动手做(22)——掌控板之无线广播
  2. # AB键组网控制RGB灯——接收端

  3. import radio
  4. from mpython import *
  5. import time


  6. while True:
  7.     radio.on()
  8.     radio.config(channel=6)
  9.     rgb.fill( (0, 0, 0) )
  10.     rgb.write()
  11.     time.sleep_ms(1)
  12.     if radio.receive():
  13.         rgb.fill((int(102), int(0), int(0)))
  14.         rgb.write()
  15.         time.sleep_ms(1)
  16.     else:
  17.         rgb[1] = (int(0), int(102), int(0))
  18.         rgb.write()
  19.         time.sleep_ms(1)


雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
无线广播接收端程序(mPthon X 图形编程)

09.jpg

雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
广告

雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
4、A键打开绿灯,B键打开红灯

  1. #MicroPython动手做(22)——掌控板之无线广播
  2. #A键打开绿灯,B键打开红灯——控制端

  3. from mpython import *

  4. import time

  5. import radio
  6. rgb[1] = (int(0), int(102), int(0))
  7. rgb.write()
  8. time.sleep_ms(1)
  9. while True:
  10.     radio.on()
  11.     radio.config(channel=6)
  12.     if button_a.value() == 0:
  13.         radio.send('on')
  14.     if button_b.value() == 0:
  15.         radio.send('off')


雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
无线广播发射端程序(mPython 图形编程)

08.jpg

雕爷学编程

  • 24 主题
  • 685 帖子
  • 1848 积分
  • 身份:LV4 高级技术员
  • E币:1802
#MicroPython动手做(22)——掌控板之无线广播
#A键打开绿灯,B键打开红灯——接收端


  1. #MicroPython动手做(22)——掌控板之无线广播
  2. #A键打开绿灯,B键打开红灯——接收端

  3. import radio
  4. from mpython import *
  5. import time
  6. import music


  7. while True:
  8.     radio.on()
  9.     radio.config(channel=6)
  10.     oled.fill(0)
  11.     oled.show()
  12.     rgb.fill( (0, 0, 0) )
  13.     rgb.write()
  14.     time.sleep_ms(1)
  15.     if radio.receive() == "on":
  16.         rgb.fill((int(0), int(102), int(0)))
  17.         rgb.write()
  18.         time.sleep_ms(1)
  19.         music.pitch(440, 500)
  20.         oled.fill(0)
  21.         oled.DispChar("on 绿灯", 40, 22, 1)
  22.         oled.show()
  23.         time.sleep(1)
  24.     if radio.receive() == "off":
  25.         rgb.fill((int(102), int(0), int(0)))
  26.         rgb.write()
  27.         time.sleep_ms(1)
  28.         music.pitch(294, 500)
  29.         oled.fill(0)
  30.         oled.DispChar("off 红灯", 40, 22, 1)
  31.         oled.show()
  32.         time.sleep(1)


12下一页
我要评论
28
93
广告
关闭 热点推荐上一条 /3 下一条
快速回复 返回列表