mt3608(mt3608烧毁)

mt3608(mt3608烧毁)

关注“杰瑞大师”,每天更新!

前言

女士们先生们,好久不见!距离上次更新已经4个月左右了,也很久没有给大家输出干货了,所以今天杰瑞给大家带来一个利用4G模块完成无人车超遥控的实现过程。

生产过程分为三个步骤。因为篇幅不能太长,杰瑞打算分三篇文章给大家看。这三个步骤分别是:代码编写、硬件电路铺设、框架安装。

本文将为您解释代码编写部分。在阅读本文之前,你需要有一定的Python编程基础。如果没有呢?回答:关注“杰瑞大师”,编程教学每天更新!

前期准备

既然要做一个基于4G网络的超级遥控无人车,就要和硬件打交道,所以杰瑞在下面给大家列出了需要用到的硬件设备。

树莓派4B一台MicroSD卡一张(16GB或以上)读卡器杜邦线公头、母头(若干)L298N驱动板模块(一块)MT3608升压模块(一块)4G网络模块或迷你WIFI轮子若干云服务器一台(搭载windows server 2016并安装Python3.5)笔记本电脑或台式一台(安装Python3.5)

mt3608(mt3608烧毁)

树莓派4B覆盆子馅饼4B

mt3608(mt3608烧毁)

MT3608升压模块MT3608升压模块

mt3608(mt3608烧毁)

L298N电机驱动板模块L298N电机驱动板模块

整体设计理念遥控汽车并让它动起来非常简单。大家都没有技术含量吧?但是如果我们想让他实现远距离控制,比如10km控制,50km控制,甚至100KM以上的控制呢?在这里,大家一定会想到已经应用成熟的5G技术和4G技术。利用4G网络向车内发送控制代码,可以实现长距离低延时运行,但是据说,具体怎么实现呢?

杰里的计划如下:

mt3608(mt3608烧毁)

很好理解,首先用一个拥有独立公共ip的云服务器作为“中间人”,控制端将控制指令发送给“中间人”,“中间人”再转发给汽车,汽车再执行收到的指令。

这里有些读者会有疑问?为什么控制端不直接向汽车发送指令,而是通过“中间人”?这里需要注意的是,汽车和控制终端使用的公共网络没有独立的公网ip,导致汽车和控制终端无法直接通信。它必须经过一个中间服务器,因为这个服务器有自己独立的公网ip。

通信代码编写(Python版本)

车要写相应的程序,控制端和中间服务器也是,所以我们要写三个程序,受控端,转发端,控制端。

控制端程序设计

控制终端的使用场景显示:“使用键盘上的方向键控制前进、后退、左转、右转等。”。

我们把键盘方向键映射成四个数字:第一个数字是key.up,第二个数字是key.down,第三个数字是key.left,第四个数字是key.right当相应的键被按下时,其对应的数字为1,否则为0。

例如,如果按下方向键,并释放其他方向键,则指示为:& # 34;1000",如果向下方向键被按下,其他键被释放,这意味着:& # 34;0100"这是我们的汽车控制代码。总共有4位数。我们现在要做的是:“当我们按下或释放一个键时,将这四个方向键组合的控制码发送到转发端”。

mt3608(mt3608烧毁)

这里需要三个python库:time(计算延迟)、socket(网络通信)和pygame(键盘监控)。

下图是控制端的代码框架,可以实现方向键控制汽车的基本功能。

mt3608(mt3608烧毁)

mt3608(mt3608烧毁)

转发端程序设计

转发端程序要实现以下功能:“接收控制码,转发给受控端”。

实现转发端的思路是:第一,控制端和受控端都要主动连接到转发端,因为转发端无法主动找到受控端和控制端进行连接。当控制端和受控端连接后,我们将转发数据。以下是转发端程序源代码。

mt3608(mt3608烧毁)

mt3608(mt3608烧毁)

注意:使用控制台命令ipconfig查询云服务器内网的ipv4地址绑定端口。

被控端程序设计

不好意思,因为篇幅原因,受控端的编程会在下一篇文章中详细讲解。关注“杰瑞大师”即时获取更新文章!

文章源码关注并私信:“超遥控RC源码”可获取源码。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。系信息发布平台,仅提供信息存储空间服务。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

本文来自网络,若有侵权,请联系删除,作者:高龙,如若转载,请注明出处:

发表回复

登录后才能评论