广告

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

2019-5-16 21:41 765 5 5 分类: 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://www.mianbaoban.cn/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-07-17 08:49
【零基础】量子纠缠图像问世,简单解读实验原理
量子纠缠图像问世  量子纠缠是量子力学领域的基本现象之一,指两个粒子相互作用并瞬间共享其物理状态。所谓“量子纠缠”,是指一对粒子属性完全相反,如一个粒子自旋向上,则另一个自旋向下,并且当一个粒子的属性...
毛大闲 2019-07-16 16:45
【零基础】一文读懂CPU(从二极管到超大规模集成电路)
一、前言  我们都知道芯片,也知道芯片技术在21世纪是最重要的技术之一,但很少有人能知道芯片技术的一些细节,如芯片是如何构造的、为什么它可以运行程序、芯片又是如何被设计制造出来的等等。本文就尝试从最底...
毛大闲 2019-07-15 13:55
【零基础】搞定LAMP(linux、apache、mysql、php)环境安装图文教程(基于centos7) ...
一、前言  LAMP即:Linux、Apache、Mysql、Php,也就是在linux系统下运行php网站代码,使用的数据库是mysql、web服务软件是apache。之所以存在LAMP这种说法,倒...
毛大闲 2019-07-14 15:08
【零基础】Selenium:Webdriver图文入门教程java篇(附相关包下载) ... ...
一、selenium2.0简述  与一般的浏览器测试框架(爬虫框架)不同,Selenium2.0实际上由两个部分组成Selenium+webdriver,Selenium负责用户指令的解释(code)...
毛大闲 2019-07-12 22:25
【零基础】快速入门爬虫框架HtmlUnit
迅速的HtmlUnit  htmlunit是一款开源的web页面分析工具,理论上来说htmlunit应用于网页的自动化测试,但是相对来说更多人使用它来进行小型爬虫的快速开发。使用htmlunit进行爬...
毛大闲 2019-07-07 11:33
【零基础】speech driven animation中文安装使用指南
注:原项目名叫Speech-Driven Animation,所以我这里就简称为SDA 开局一张图,后面自动编  相信前段时间爆火的DeepNude(AI扒衣)让很多人惊掉了大牙,AI还能干...
我要评论
3
5
广告
关闭 热点推荐上一条 /2 下一条