文章目录

  • 引言
  • 一、产品功能介绍
  • 二、硬件清单
  • 三、软件设计
    • 1. RASC
    • 2. Keil
    • 2. Qt
  • 四、视频展示

引言

很高兴能够加入“野火”这个大家庭中,且能有机会参加第一期的【瑞萨RA MCU创意氛围赛】,在此之前,我竟都没能了解瑞萨这个产品,是野火这个大家庭给予了我这个机会,让我又一次在新的领域不断探索前进,从申请到板子至今,近一个月的时间,在好奇心的不断驱使下,我对瑞萨RA系列这块认知领域上不断学习研究,终完成自己的第一个小项目 ---- “Qt遥控小车”,展示给大家参考学习,若有含糊错误的地方,欢迎大家批评指正,具体如下:

一、产品功能介绍

本产品启动方式为“电容按键”一键启动,用过触发电容按键初始化板载的ESP8266 WiFi模块,服务端为Qt Android开发后的app下载到安卓手机上,在打开服务器之后,WiFi模块即能成功连接并发出响应信号,同时在手机上实时显示小车状态(如直行、左转、右转、后退、左右轮相对速度等等),可在手机上远程控制小车转向及左右轮的速度值,若匀速安全行驶的情况下,板载的LED灯显示绿色表示正常行驶,若出现速度过快或左右轮相差极大板载的LED灯显示蓝色代表警示,如在超出一定速度值,将会强制停车防止意外事故的发生。

  • 产品图如下:
  • 手机遥控界面如下:

二、硬件清单

  1. 本次产品使用的是野火启明RA6M5开发板,主控芯片为R7FA6M5BH3CFC
  2. 小车底盘是自己3D建模打印而成,且按照3轮车标准构建,每个螺孔都是M3的尺寸,中间几个大孔方便布线排版。
  3. 电机和轮胎选用的是tt直流减速电机和麦克纳姆轮
  4. 电机驱动模块,我选用的是L298N
  5. 电池及电池槽,我选用的是18650锂电池及三节电池槽
  6. LM2596S DC-DC稳压模块

三、软件设计

本项目可分为RASC、Keil和Qt三个部分进行设计。

1. RASC

(1) PWM定时器设计,设计GPT 配置引脚,将指定通道的输出信号连接到相应引脚,再初始化GPT模块 。

(2) ESP8266 WiFi设计,选择通道和对应的引脚以及模式,配置串口通信。

(3) 电机驱动部分,在RASC里面配置四个引脚输出用作为电机驱动。

2. Keil

在Keil部分主要是对野火启明RA6M5这个开发板进行开发设计,本文采用FSP开发,简要步骤如下:
①在Keil上配置RASC工具,方便配置芯片和生成FSP库代码;
②打开官方提供的例程模板,在Keil中进入好的RASC工具配置芯片初始化,生成FSP代码;
③对生成后的初始化代码进行设计处理,开发自己所想产品;
④将编译生成的hex文件通过Renesas Flash Programmer烧入开发板中。

串口接收中断,在这里根据接收到服务器发过来的数据进行判断,各个信息做出相应动作。

2. Qt

在此部分主要运用的是套接字和信号与槽机制进行数据的处理与收发,在UI界面中创建不同按钮并各自命名代表不同功能(如前进、后退、左右转向等),并添加几个label和Text用于显示小车连接状态和行驶与速度值情况。
①套接字通信示例代码如下:

    tcpserver=nullptr;tcpsocket=nullptr;//创建监听套接字tcpserver=new QTcpServer(this);//指定父对象 回收空间//bind+listentcpserver->listen(QHostAddress::Any,8080);//绑定当前网卡所有的ip 绑定端口 也就是设置服务器地址和端口号//服务器建立连接connect(tcpserver,&QTcpServer::newConnection,[=](){//取出连接好的套接字tcpsocket=tcpserver->nextPendingConnection();//获得通信套接字的控制信息QString ip=tcpsocket->peerAddress().toString();//获取连接的 ip地址quint16 port=tcpsocket->peerPort();//获取连接的 端口号QString temp=QString("[%1:%2] 客服端连接成功").arg(ip).arg(port);//显示连接成功ui->textEditRead->setText(temp);

②遥控按钮设计示例代码如下:

void server::on_forward_clicked()
{if(tcpsocket==nullptr)  return ;QString str="F";ui->state->clear();ui->state->setText("Forward ing...");ui->Lspeed->setText(QString::number(target1));ui->Rspeed->setText(QString::number(target2));tcpsocket->write(str.toUtf8().data());
}void server::on_back_clicked()
{if(tcpsocket==nullptr)  return ;QString str="B";ui->state->clear();ui->state->setText("Back ing...");ui->Lspeed->setText(QString::number(target1));ui->Rspeed->setText(QString::number(target2));tcpsocket->write(str.toUtf8().data());
}void server::on_turn_left_clicked()
{if(tcpsocket==nullptr)  return ;QString str="L";ui->state->setText("Left ing...");ui->Lspeed->setText(QString::number(target1));ui->Rspeed->setText(QString::number(target2));tcpsocket->write(str.toUtf8().data());
}void server::on_turn_right_clicked()
{if(tcpsocket==nullptr)  return ;QString str="R";ui->state->setText("Right ing...");ui->Lspeed->setText(QString::number(target1));ui->Rspeed->setText(QString::number(target2));tcpsocket->write(str.toUtf8().data());
}void server::on_stop_clicked()
{if(tcpsocket==nullptr)  return ;QString str="S";ui->state->setText("Stop ing...");target1=0;target2=0;ui->Lspeed->setText(QString::number(target1));ui->Rspeed->setText(QString::number(target2));tcpsocket->write(str.toUtf8().data());
}void server::on_speed_up_clicked()   //L+
{if(tcpsocket==nullptr)  return ;QString str="A";target1+=2;ui->Lspeed->setText(QString::number(target1));tcpsocket->write(str.toUtf8().data());
}void server::on_speed_down_clicked()  //R+
{if(tcpsocket==nullptr)  return ;QString str="C";target2+=2;ui->Rspeed->setText(QString::number(target2));tcpsocket->write(str.toUtf8().data());
}void server::on_L_down_clicked()
{if(tcpsocket==nullptr)  return ;QString str="a";target1-=2;ui->Lspeed->setText(QString::number(target1));tcpsocket->write(str.toUtf8().data());
}void server::on_R_down_clicked()
{if(tcpsocket==nullptr)  return ;QString str="c";target2-=2;ui->Rspeed->setText(QString::number(target2));tcpsocket->write(str.toUtf8().data());
}

四、视频展示

基于瑞萨RA FSP库开发 --- Qt遥控小车

【瑞萨RA MCU创意氛围赛】基于FSP库开发 --- Qt遥控小车相关推荐

  1. 瑞萨 RA MCU 基础知识

    一.RA产品家族简介 RA 产品家族单片机 (MCU) 于 2019 年 10 月推出, 丰富了瑞萨的 32 位 MCU 系列产品. 在此之前,瑞萨拥有基于 Arm® Cortex®-M 内核的 Re ...

  2. 瑞萨RA MCU立创EDA训练营——自制瑞萨开发板

    自制瑞萨开发板 前言 硬件制作 照猫画虎原理图 电源电路 晶振电路 复位电路 MD(BOOT)选择电路 外设电路 原理图一览 PCB一览 焊接 代码调试 实物效果 总结 前言 本着学习(bai pia ...

  3. 【瑞萨RA系列FSP库开发】RASC+Keil的环境搭建

    文章目录 一.获取资源包 二.安装 Keil 软件.RA 芯片包和 RASC 三.RASC 集成到 Keil 四.使用 RASC 生成 Keil 工程 五.通过 Keil 打开 RASC 的 FSP ...

  4. 快速入手瑞萨RA系列MCU指南

    关注+星标公众号,不错过精彩内容 来源 | 野火电子 关于瑞萨RA系列MCU 瑞萨RA MCU基于32位Arm®Cortex®-M高性能处理器,提供强大的嵌入式安全功能.卓越的 CoreMark® 性 ...

  5. 【鲁班猫创意氛围赛】移植motion进行移动侦测抓拍录像

    [鲁班猫创意氛围赛]移植motion进行移动侦测抓拍录像 LubanCat-RK环境搭建 部署motion 配置motion的各项参数 进行局域网展示图像 LubanCat-RK环境搭建 环境搭建可参 ...

  6. 【致敬未来的攻城狮计划】— 连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下(文字上的初理解)

    系列文章目录 系列文章目录 前言 一.瑞萨MCU(CPK_RA2E1是瑞萨RA系列开发板)是什么? 首先引入是什么? 他的优势在哪? 瑞萨CPK_RA2E1 对标stm32 相似之处和不同之处? 瑞萨 ...

  7. 瑞萨RA系列 bootloader使用MCUBoot模块更新升级应用的实例

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 本文描述瑞萨RA系列 bootloader 使用MCUBoot模块以覆盖方式更新升级应用的实例. 一.设计Bootlo ...

  8. 【瑞萨RA系列FSP库开发】串口烧录(Renesas Flash Programmer)

    文章目录 一.瑞萨RA芯片的Boot模式 二.串口烧录配置(Renesas Flash Programmer) 1. 改变芯片DLM状态 2. 设置安全边界 三.烧录芯片程序 为节省学习成本,本人未购 ...

  9. 电子时钟制作(瑞萨RA)(3)----使用J-Link烧写程序到瑞萨芯片

    概述 这一节主要讲解如何使用J-Link对瑞萨RA芯片进行烧录. 硬件准备 首先需要准备一个开发板,这里我准备的是芯片型号R7FA2E1A72DFL的开发板: 视频教程 https://www.bil ...

最新文章

  1. 屏蔽微软的SignalR
  2. nodejs 中on 和 emit
  3. python制作工资计算器-Python实现扣除个人税后的工资计算器示例
  4. 图像处理之快速均值模糊(Box Blur)
  5. 中国二氧化碳激光器行业现状研究与可行性分析报告2022-2028年版
  6. 有返回值的多线程demo
  7. matlab中获取view,ios 怎么获取一个view的位置
  8. Java 进阶——自动装箱和自动拆箱
  9. 手机为什么取消了内存卡?
  10. esxi不能识别Intel 网卡怎么办
  11. PHP处理数据为echarts多条折线图格式
  12. Visual Basic 2010中文版从入门到精通pdf
  13. 高中数学建模优秀论文_数学建模论文 高中数学建模经典例题
  14. 《Web应用基础》课程结业报告
  15. 零成本学arduino教程——光敏电阻传感器
  16. win10系统,字体及软件内容特别小(亲试有效)
  17. 获取 pdf 中某个 关键字的位置
  18. 卖肉了也没火的十大悲催女星
  19. 【毕业设计】基于人脸登录的大学生快递系统
  20. java实现查询Word是否包含批注和修订内容

热门文章

  1. js数组反转的几种方法 #javaScript
  2. Brand{id=0, brandName=‘null‘, companyName=‘null‘, ordered=0, description=‘null‘, status=1}
  3. java 中文字体_Linux 添加中文字体库,解决Java 生成中文水印不显示问题
  4. Ubuntu更换默认terminal(nautilus更换右键菜单中的在终端中打开)
  5. OpenSSL安装升级
  6. tf 2.0 --activations--elu
  7. Mysql如何实现可重复读
  8. 为什么国产手机的文件夹都是英文,不能换成中文?
  9. 计算机跨学科 自然科学基金资助率,上海自然科学基金项目首设“原创探索类” 资助金额是一般项目的两倍半...
  10. 照片压缩怎么弄?教你几种一看就会的压缩方法