零基础制作一套FPV-RC遥控车(三):车手端代码

零基础制作一套FPV-RC遥控车(三):车手端代码

首页休闲益智RC赛车手更新时间:2024-04-21

图传部分只需要通过电路的连接即可使用,无需编码。

车手端的控制系统主要分为:

开发环境为visual studio 2017

1.解析罗技G29方向盘控制信息

引入(自行在罗技官网下载SDK)

#include "LogitechSteeringWheelLib.h" #pragma comment(lib,"ws2_32.lib") #pragma comment(lib, "LogitechSteeringWheelLib.lib") #pragma comment( linker, "/subsystem:\"console\" /entry:\"WinMainCRTStartup\"")

获取方向数据

主体逻辑

while (LogiUpdate() && LogiIsConnected(0)) { DIJOYSTATE2 * wheel = LogiGetState(0); int x = wheel->lX;//-32767至32767 左右 int y = wheel->lY;//-32767至32767,默认32767 前进 int z = wheel->lRz;//-32767至32767,默认32767 后退 }

2.通过蓝牙将控制信息发出去

定义端口

HANDLE hCom = CreateFile(L"\\\\\.\\COM4", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); //与HC-05/6建立无线连接,COM4是电脑的端口信息 if (hCom == INVALID_HANDLE_VALUE) { std::cout << "Port unavailable!" << std::endl; } else { printf("初始化成功!\n"); } //以下配置串口通信参数 DCB dcb; GetCommState(hCom, &dcb); dcb.BaudRate = 9600; dcb.ByteSize = DATABITS_8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; BOOL br = SetCommState(hCom, &dcb);

通过蓝牙发出

DWORD dwTransmitted; WriteFile(hCom, &sendInfo, 2, &dwTransmitted, NULL);//将方向信息赋值到变量sendinfo中

3.主体程序中对方向数据的处理

int x = wheel->lX;//-32767至32767 左右 int y = wheel->lY;//-32767至32767,默认32767 前进 int z = wheel->lRz;//-32767至32767,默认32767 后退

罗技SDK定义的方向数据范围是±32767,发送前需要映射到左右(0-180),前后(0-255),这样做的原因,我会在系列文章四中说明


下一篇展示赛车端的代码主体。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved