0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ROS主控与STM32的硬件连接和软件连接

麦辣鸡腿堡 来源:古月居 作者:月照银海似蛟龙 2023-11-26 17:45 次阅读

硬件连接

ROS主控通过usb线连接到一个TTL电平转换芯片,再由这个电平转换芯片连接STM32芯片

电平转换芯片可以通过PCB设计在STM32芯片的电路板上,也可以使用一个USB转TTL的模块。

为什么两个控制器之间需要电平转换芯片?

因为两个控制器之间通信层次逻辑是不同的,所有需要电平转换芯片。相当于两个主控是两种不同语言的人,电平转换芯片相当于一个翻译。

电平转换芯片可以是:

  • cp2102
  • ch340
  • PL2303
  • FT232RL

软件设置

硬件连接上之后,需要一个软件设置

需要软件设置原因:

ROS主控可能接入多个USB设备,或者接入两个型号一样的电平转换芯片。

不同USB设备占用的ROS主控的端口号在每次上电时可能会不一致,这样需要手动修改代码中的配置参数,比较麻烦,也无法做到自启动。

如果存在多个USB设备,但是每种USB设备的电平转换芯片不一样,那么我们可以根据芯片名称来知道端口 号,但是如果有两个芯片一样的电平转换芯片,则无法区分,这时候想做自启动那么必须要进行下面步骤的软件设置

软件设置分为两步:

  • 第一步是更改电平转换芯片的serial,
  • 第二步是创建设备别名

更新电平转换芯片的serial

首先在win环境下安装更改芯片serial的软件

CP21xx Customization Utility.exe

打开这个软件,然后将芯片连接电脑的USB

图片

然后将圆圈位置改为0002

然后点击Program Device点完之后要等下,在Status Logging窗口中出现下面信息,才说明修改好了

图片

创建设备别名

需要创建设备别名原因:

在运行一个ros程序的时候需要提供一个端口名,这个端口名一般是ttyUSBx,设备每次插拔对应的这个端口名它都会不一样,需要创建一个设备别名,就是要将这个端口名来给它固定住。

图片

重新插拔 USB1端口的设备后,变为:

图片

可以看到变成了/dev/ttyUSB2

端口号发生了变化

创建设备别名需要写一个脚本文件,如下:

echo  'KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60",ATTRS{serial}=="0002", MODE:="0777", GROUP:="dialout", SYMLINK+="stm32_controller"' >/etc/udev/rules.d/stm32_controller.rules
echo  'KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60",ATTRS{serial}=="0001", MODE:="0777", GROUP:="dialout", SYMLINK+="2d_lidar"' >/etc/udev/rules.d/2d_lidar.rules


service udev reload
sleep 2
service udev restart

解释下上面的代码

KERNEL==”ttyUSB* 不管是USB几的设备都进行判断

ATTRS{idVendor}==”10c4” 这里的idVendor ,在前面win上修改 serial的时候出现过,就是10c4

图片

ATTRS{idProduct}==”ea60” 这里的idProduct,在前面win上修改 serial的时候出现过,就是ea60

图片

ATTRS{serial}==”0002” 这里的serial,就是前面我们改过的,这里就根据这个值的不同,定义不同的设备别名

MODE:=”0777” 就是端口的权限

SYMLINK+=”stm32_controller” 这里的stm32_controller,就是取的设备别名。

所有上面第一行代码的功能就是,将满足这些条件的端口的设备名称改为定义的设备别名。

脚本的文件名称,取名为change_udev.sh。在执行前需要给这个脚本文件赋予权限。

sudo chmod 777 change_udev.sh

赋予权限后,再运行这个脚本

sudo ./change_udev.sh

这样就运行了设备别名的设置,之后不管怎么插拔这两个USB设备,系统都将会自动的将这两个设备去给它赋予设置的设备别名。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2270

    文章

    10890

    浏览量

    355636
  • 硬件
    +关注

    关注

    11

    文章

    3308

    浏览量

    66191
  • 软件
    +关注

    关注

    69

    文章

    4906

    浏览量

    87361
  • ROS
    ROS
    +关注

    关注

    1

    文章

    277

    浏览量

    16999
收藏 人收藏

    评论

    相关推荐

    [10.1.1]--5.1无弦琴硬件连接及系统软件设计_clip003

    软件设计连接
    李开鸿
    发布于 :2022年11月12日 00:47:35

    [10.1.1]--5.1无弦琴硬件连接及系统软件设计_clip004

    软件设计连接
    李开鸿
    发布于 :2022年11月12日 00:48:42

    RT-Thread如何使用串口或者无线和ROS连接

    这篇文档主要介绍 RT-Thread 如何使用串口或者无线和 ROS 连接,会包含这么些内容:第一部分:ROS 环境搭建第二部分:RT-Thread rosserial 软件包第二部分
    发表于 12-28 07:02

    ROSSTM32之间的联系

    、在ROS小车里面有两个核心控制器,一个是ROS主控,一个是stm32控制器3、ROS主控是树莓
    发表于 06-28 07:49

    ROS RIKIBOT基础--使用系列 第一章节】ROS机器人硬件系统 精选资料分享

    ROS RIKIBOT基础–使用系列】ROS机器人硬件介绍1.RIKIBOT机器人硬件介绍1.1硬件框架
    发表于 07-30 06:59

    ROS如何在代码层面去接收stm32发送过来的数据?

    如何实现ROSstm32之间的通信?ROSstm32发送过来的数据做了哪些处理?ROS主控
    发表于 10-12 08:17

    stm32cubemx的ST-link v2硬件连接软件设置如何去实现呢

    怎样去搭建一种stm32cubemx硬件底层+软件设置开发环境呢?stm32cubemx的ST-link v2硬件
    发表于 02-17 07:15

    STM32 SPI 软件NSS和硬件NSS解读

    [导读]SSM可以控制内部NSS引脚与SSI(一个寄存器,软件模式)相连,还是与NSS外部引脚(真正的STM32引脚,硬件模式)相连。真正作用的是内部NSS引脚(内部NSS引脚才真正连接
    发表于 12-22 19:12 14次下载
    <b class='flag-5'>STM32</b> SPI <b class='flag-5'>软件</b>NSS和<b class='flag-5'>硬件</b>NSS解读

    ROSSTM32通信

    ROSSTM32通信2020.8.1主要内容制作ROS包,将控制命令传给STM32,并将接收到的数据作为话题进行发布STM32接收数据并将
    发表于 12-24 19:00 11次下载
    <b class='flag-5'>ROS</b>与<b class='flag-5'>STM32</b>通信

    ROS小车STM32底层控制代码

    2.6 ROS小车STM32底层控制代码经过之前几篇文章,我相信大家一定对下面这些模块都已经有些了解了。今天,我们将编写ROS小车STM32单片机底层控制的最后一篇文章。我们将一起按照
    发表于 01-14 12:54 16次下载
    <b class='flag-5'>ROS</b>小车<b class='flag-5'>STM32</b>底层控制代码

    STM32F405为主控连接两颗MAX3051EKA CAN通讯芯片

    电子发烧友网站提供《以STM32F405为主控连接两颗MAX3051EKA CAN通讯芯片.zip》资料免费下载
    发表于 08-10 14:45 33次下载
    以<b class='flag-5'>STM32</b>F405为<b class='flag-5'>主控</b><b class='flag-5'>连接</b>两颗MAX3051EKA CAN通讯芯片

    DB4759 STM32 用于STM32CubeUSB的电源传输和UCSI(USB Type-C®连接器系统软件接口软件扩展

    DB4759 STM32 用于STM32CubeUSB的电源传输和UCSI(USB Type-C®连接器系统软件接口软件扩展
    发表于 11-23 08:28 0次下载
    DB4759 <b class='flag-5'>STM32</b> 用于<b class='flag-5'>STM32</b>CubeUSB的电源传输和UCSI(USB Type-C®<b class='flag-5'>连接</b>器系统<b class='flag-5'>软件</b>接口<b class='flag-5'>软件</b>扩展

    DB3582_面向STM32Cube的蜂窝连接软件扩展

    DB3582_面向STM32Cube的蜂窝连接软件扩展
    发表于 11-23 20:28 0次下载
    DB3582_面向<b class='flag-5'>STM32</b>Cube的蜂窝<b class='flag-5'>连接</b><b class='flag-5'>软件</b>扩展

    ROS主控STM32硬件连接软件设置

    硬件连接 ROS主控通过usb线连接到一个TTL电平转换芯片,再由这个电平转换芯片连接
    的头像 发表于 11-17 18:00 895次阅读
    <b class='flag-5'>ROS</b><b class='flag-5'>主控</b>与<b class='flag-5'>STM32</b>的<b class='flag-5'>硬件</b><b class='flag-5'>连接</b>和<b class='flag-5'>软件</b>设置

    ROS主控读取stm32发送的数据

    ROS主控读取stm32发送的数据 之后便可以通过 Stm32_Serial .read (Receive_Data_Pr,sizeof(Receive_Data_Pr)); read
    的头像 发表于 11-26 17:49 1057次阅读