https://hardwarefun.com/projects/joystick-shield 这里是我们主要要加载的三个库,分别是软串口的库,wifi对于esp8266的支持库,还有游戏手柄的硬件支持库,GitHub上面下载就好了 这个是我解压过后的样子 全展开的样子,还有一些缺的库。稍等去下载 这个是原有项目里面,使用的硬件,这个地方放一下作为参考 用作无线的芯片,ESP8266 重点看这里的串口参数 功耗问题 硬件模组的电路连接情况 这个地方是我们本次要用的SDK命令,不多 主要是启动 起飞,降落 以及飞行的一些具体的距离,我其实觉得这个不好.我还是喜欢RC命令 用6个方向的角度值来控制飞机的运动 我们的文件库里面还缺一个IPAddress.h的头文件 我们去找一下,原来是Arduino的库 下载下来。我们研究用~ https://github.com/esp8266/Arduino 不算很大的一个库 这边可以看见已经是加载完成了 Arduino-master\cores\esp8266\IPAddress.cpp,这个是相对路径 注意一下,如果你在编辑器打开的情况下。直接复制相关的文件夹进去,code的数据库引擎是不会工作的,就是相关的跳转头文件,函数的功能是不可用的。建议关闭一次编辑器重新建立一次相关的文件的索引。 可以看见全部都是可以被索引到了,但是还有一个报错 看一下是什么错,是缺东西? 这边是它的建议 我直接搜索,没有个锤子库 把头文件报错直接关闭,巴适嗷 此时我想加一个Arduino的头文件,可以看到自带的自动补全真好用 加上的样子,我们说一下这些头文件的作用
这些地方都是对于遥控器的一些初始化的配置,我们以下会详细的解释。 Tello SSID,这个需要根据无人机的实际值进行修改,启动Tello无人机后,用电脑扫描一下WiFi网络,以TELLO开头的热点即是。后面pass是密码,可以看到没有一点加密的东西在里面,安全性是负数。后面我们来进行相关的攻击的抓包重放,那是比较靠后的故事了,想看的等着就行。 这个就是很简单了,wifi的状态, 我们看看这个的具体应用是怎么样的 在这里是最重要的代码 打开的样子
接着是一个1000ms的延时,用了稳定连接情况 打印一个wifi已经连接 这个地方是调用了一个函数,来打印WiFi和状态 void PrintWifiStatus() { // print the SSID of the network you're attached to: Serial.print("SSID: "); Serial.println(WiFi.SSID());
// print your WiFi shield's IP address: IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip);
// print the received signal strength: long rssi = WiFi.RSSI(); Serial.print("signal strength (RSSI):"); Serial.print(rssi); Serial.println(" dBm"); } 这个是函数的具体实现,可以看带其实啥也没有,就是一些打印店额语句 打印SSID接入点的名字 打印IP地址,这边还打印了一个WIFI的强度值,dBm是单位 void SendCommand(const char *command) { Udp.beginPacket(telloAddr, telloPort); Udp.write(command, strlen(command)); Udp.endPacket(); delay(1000); } 这个地方随便把发送的函数也看了 一开始初始化这个UDP协议,两个参数传进去(tello的地址,tello的端口) 8889网络编程,具体这个地方可以看我以前的文章. 接着就是UDP发包命令,后面是一个字符串计算的函数.后期看源码看看作用 然后断开连接,延时1000.这个值是一个经验的值,我不推荐这个数值.不流畅
|
|