原创 增加无人机控制距离的骚操作 - 4 不同网络下信息互通

2019-5-16 21:41 1241 7 1 分类: MCU/ 嵌入式 文集: 无人机

         前面一节我们实现了在安卓系统中同时使用wifi4G,现在我们要解决的问题是实现信号中转的具体功能。网络结构如下:

         这里使用socket编程在公网server与手机间建立tcp连接,同时在手机内部两个不同网络的python程序间也建立tcp连接,最后连接wifipython程序通过UDPTello发送指令。Socket结构如下图所示:

         如上图所示,手机中同时运行两个python程序,一个python程序使用QPython(可以直接运行python程序的安卓APP)执行,使用4G网络与公网服务器交互,另一个python程序使用LPythonlinux内运行的python)执行,使用wifi网络与Tello交互,QPythonLPython之间使用127.0.0.1建立TCP连接。

这里我们先实现基本的TCPClientTCPServer通信

QPython TCP Server

import socket

import os

import sys

import struct

 

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

s.bind(('127.0.0.1', 9999))        //绑定IP和端口

s.listen(10)       //最大队列数

 

while True:

         sock, addr = s.accept()    //开始监听

         buf = sock.recv(1024)       //读取收到的数据

         buf = buf.decode()    //bytestr

         print('recv ' + str(buf))

 

LPython TCP Client

import socket

import os

import sys

import struct

 

s = socket.socket()

sk.connect(('127.0.0.1',9999))         //连接服务端

s.send('hi')       //直接发送一个信息

 

         上述代码中,TCP Server运行在QPython(安卓系统直接运行python程序,使用的是4G网络),TCP Client运行在LPythonlinux系统中运行的python程序,使用的是WIFI网络),运行结果如下图所示:

         综上,我们使用几行简单的python代码实现了同一手机里两个不同网络python程序信息的交互。这一节就先到这里,下面我们要做的就是设计简单完备的信息传递模式,实现服务器到Tello无人机的双向信息通道。


作者: 毛大闲, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3887969.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论3条评论)

登录后参与讨论

curton 2019-5-22 08:13

学习

curton 2019-5-19 12:25

学习

测量无处不在 2019-5-17 12:47

学习+1
相关推荐阅读
毛大闲 2019-11-04 21:09
【零基础】使用Tensorflow实现神经网络
一、序言  前面已经逐步从单神经元慢慢“爬”到了神经网络并把常见的优化都逐个解析了,再往前走就是一些实际应用问题,所以在开始实际应用之前还得把“框架”翻出来,因为后面要做的工作需要我们将精力集中在业务...
毛大闲 2019-10-29 23:16
【零基础】神经网络优化之Adam
一、序言  Adam是神经网络优化的另一种方法,有点类似上一篇中的“动量梯度下降”,实际上是先提出了RMSprop(类似动量梯度下降的优化算法),而后结合RMSprop和动量梯度下降整出了Adam,所...
毛大闲 2019-10-29 11:25
【零基础】神经网络优化之动量梯度下降
一、序言  动量梯度下降也是一种神经网络的优化方法,我们知道在梯度下降的过程中,虽然损失的整体趋势是越来越接近0,但过程往往是非常曲折的,如下图所示:    特别是在使用mini-...
毛大闲 2019-10-27 23:15
【零基础】神经网络优化之mini-batch
一、前言  回顾一下前面讲过的两种解决过拟合的方法:  1)L0、L1、L2:在向前传播、反向传播后面加个小尾巴  2)dropout:训练时随机“删除”一部分神经元  本篇要介绍的优化方法叫mini...
毛大闲 2019-10-24 15:45
【零基础】神经网络优化之dropout和梯度校验
一、序言  dropout和L1、L2一样是一种解决过拟合的方法,梯度检验则是一种检验“反向传播”计算是否准确的方法,这里合并简单讲述,并在文末提供完整示例代码,代码中还包含了之前L2的示例,全都是在...
毛大闲 2019-10-18 13:01
【零基础】神经网络优化之L1、L2
一、序言  前面的文章中,我们逐步从单神经元、浅层网络到深层网络,并且大概搞懂了“向前传播”和“反向传播”的原理,比较而言深层网络做“手写数字”识别已经游刃有余了,但神经网络还存在很多问题,比如最常见...
广告
我要评论
3
7
广告
关闭 热点推荐上一条 /3 下一条