OpenHarmony开源社区
直播中

zealsoft

3年用户 693经验值
擅长:可编程逻辑,嵌入式技术
私信 关注
[经验]

【小河狸创客格物开发板试用体验】使用App Inventor遥控转向小车

感谢“电子发烧友网”和小河狸创客科技有限公司提供了小河狸创客格物L3开发板的评测机会。
前面两次我们介绍了智能升降车飞机弹射器,这两个测试都是基于小河狸提供的编程环境,程序也比较简单。最后这次自由我们将测试小河狸创客的MicroPython编程能力,并借助App Inventor开发手机软件实现遥控转向小车。
一、   硬件组装
转向小车的后轮结构和智能升降车差不多,使用360度舵机驱动。
image001.jpg

前面的转向结构为经典的平行四边形结构。小河狸提供了齿条,但是太长了,不适合小车。所以直接使用180度舵机控制四边形结构的转动,实现左右各90度的旋转。格物板作为核心控制部件,编程控制2个舵机。
image002.jpg
二、   MicroPython编程
小河狸格物板处理支持类似Scratch的图形界面编程,还可以使用MicroPython进行软件编程控制。我们使用的编程工具是Mu Editor,它的优点是上手简单。

使用USB线连接电脑和格物板,然后在Mu Editor中选择模式为“ESP32 MicroPython”,再点击“REPL”就可以连接到板卡上了。点击“运行”按钮就可以在板子上执行MicroPython程序了。
image003.png

我们的控制方案是由格物板开启WiFi热点,热点SSID为yourSSID,密码为yourPASSWD。然后监听10086端口。由格物板开启WiFi热点可以避免繁琐的配网工作,适合各种场合的切换,特别是室外没有WiFi信号的情况。手机先连上格物板的WiFi热点,并向指定的端口发送简单的控制命令就可以完成对小车的控制,如FWD和BACK控制前后移动,LEFT和RIGHT控制左右转向。
完整的程序如下:
  1. # generated by GewuBit
  2. import gewu
  3. from wifi import *
  4. import network
  5. import socket

  6. iot_wifi = gewu_wifi()

  7. angle = 90

  8. def on_start():
  9.     global angle

  10.     iot_wifi.enable_APWiFi(str('yourSSID'), str('yourPASSWD'))
  11.     gewu.display.text(str('Hello world!'), 0, 0, 6)
  12.     gewu.display.show()
  13.     gewu.servo_p3.set_angle(angle)

  14.     listenSocket = None
  15.     port = 10086
  16.     listenSocket = socket.socket()  # create socket
  17.     print(listenSocket)
  18.     listenSocket.bind(('', port))  # bind ip and port
  19.     print("bind OK")
  20.     listenSocket.listen(1)
  21.     listenSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  22.     print("tcp waiting...")
  23.     while True:
  24.         print("accepting......")
  25.         conn, addr = listenSocket.accept()
  26.         print(addr, "connected")
  27.         while True:
  28.             data = conn.recv(1024)
  29.             if len(data) == 0:
  30.                 print("close socket")
  31.                 conn.close()
  32.                 break
  33.             data = data.decode()
  34.             print(data)
  35.             gewu.display.text(str(data), 0, 20, 6)
  36.             gewu.display.show()

  37.             #命令解析:
  38.             if data == "FWD":
  39.                 gewu.servo_p4.set_speed(-30)
  40.             if data == "BACK":
  41.                 gewu.servo_p4.set_speed(30)
  42.             elif data == "STOP":
  43.                 gewu.servo_p4.set_speed(0)
  44.             elif data == "RIGHT":
  45.                 angle += 15
  46.                 if angle > 180:
  47.                     angle = 0
  48.                 print(angle)
  49.                 gewu.servo_p3.set_angle(angle)
  50.             elif data == "LEFT":
  51.                 angle -= 15
  52.                 if angle < 0:
  53.                     angle = 0
  54.                 print(angle)
  55.                 gewu.servo_p3.set_angle(angle)
  56.             elif data == "ZERO":
  57.                 gewu.servo_p3.set_angle(0)

  58.             data=''

  59.             yield


  60. def repeat():
  61.     next(func_start)


  62. while True:
  63.     repeat()
  64.     gewu.sleep_ms(1)
三、   App Inventor编程
App Inventor 是谷歌推出一种软件工具,可以使用户更容易的为Android智能手机编写应用程序。该工具使用和小河狸编程工具类似的拖放代码块的图形方式。所以使用该工具开发手机App对于小河狸的用户应该是上手很快的。
Google App Inventor是一个完全在线开发的Android编程环境,国内用户一般使用离线版。有关App Inventor离线版的下载和使用请参考:https://blog.csdn.net/bemfa/article/details/119565437。

用户界面的设计比较简单,就是设计了5个按钮,方便用于发送控制命令。
image004.png

逻辑部分也是相当的简单。
image005.png
最后使用打包APK功能就可以得到在手机上安装的APK文件了。
四、   测试视频

最后看一下测试的视频吧,简单但是很有趣。

遥控小车

回帖(2)

jinglixixi

2022-11-26 10:52:51
挺不错的!!!
举报

jf_55450347

2023-9-8 17:08:08
clientsocketAI2ext扩展哪里下载
举报

更多回帖

发帖
×
20
完善资料,
赚取积分