0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ROS主控與STM32的硬件連接和軟件連接

麥辣雞腿堡 ? 來源:古月居 ? 作者:月照銀海似蛟龍 ? 2023-11-26 17:45 ? 次閱讀

硬件連接

ROS主控通過usb線連接到一個(gè)TTL電平轉(zhuǎn)換芯片,再由這個(gè)電平轉(zhuǎn)換芯片連接STM32芯片

電平轉(zhuǎn)換芯片可以通過PCB設(shè)計(jì)在STM32芯片的電路板上,也可以使用一個(gè)USB轉(zhuǎn)TTL的模塊。

為什么兩個(gè)控制器之間需要電平轉(zhuǎn)換芯片?

因?yàn)閮蓚€(gè)控制器之間通信層次邏輯是不同的,所有需要電平轉(zhuǎn)換芯片。相當(dāng)于兩個(gè)主控是兩種不同語言的人,電平轉(zhuǎn)換芯片相當(dāng)于一個(gè)翻譯。

電平轉(zhuǎn)換芯片可以是:

  • cp2102
  • ch340
  • PL2303
  • FT232RL

軟件設(shè)置

硬件連接上之后,需要一個(gè)軟件設(shè)置

需要軟件設(shè)置原因:

ROS主控可能接入多個(gè)USB設(shè)備,或者接入兩個(gè)型號(hào)一樣的電平轉(zhuǎn)換芯片。

不同USB設(shè)備占用的ROS主控的端口號(hào)在每次上電時(shí)可能會(huì)不一致,這樣需要手動(dòng)修改代碼中的配置參數(shù),比較麻煩,也無法做到自啟動(dòng)。

如果存在多個(gè)USB設(shè)備,但是每種USB設(shè)備的電平轉(zhuǎn)換芯片不一樣,那么我們可以根據(jù)芯片名稱來知道端口 號(hào),但是如果有兩個(gè)芯片一樣的電平轉(zhuǎn)換芯片,則無法區(qū)分,這時(shí)候想做自啟動(dòng)那么必須要進(jìn)行下面步驟的軟件設(shè)置

軟件設(shè)置分為兩步:

  • 第一步是更改電平轉(zhuǎn)換芯片的serial,
  • 第二步是創(chuàng)建設(shè)備別名

更新電平轉(zhuǎn)換芯片的serial

首先在win環(huán)境下安裝更改芯片serial的軟件

CP21xx Customization Utility.exe

打開這個(gè)軟件,然后將芯片連接電腦的USB

圖片

然后將圓圈位置改為0002

然后點(diǎn)擊Program Device點(diǎn)完之后要等下,在Status Logging窗口中出現(xiàn)下面信息,才說明修改好了

圖片

創(chuàng)建設(shè)備別名

需要?jiǎng)?chuàng)建設(shè)備別名原因:

在運(yùn)行一個(gè)ros程序的時(shí)候需要提供一個(gè)端口名,這個(gè)端口名一般是ttyUSBx,設(shè)備每次插拔對(duì)應(yīng)的這個(gè)端口名它都會(huì)不一樣,需要?jiǎng)?chuàng)建一個(gè)設(shè)備別名,就是要將這個(gè)端口名來給它固定住。

圖片

重新插拔 USB1端口的設(shè)備后,變?yōu)椋?/p>

圖片

可以看到變成了/dev/ttyUSB2

端口號(hào)發(fā)生了變化

創(chuàng)建設(shè)備別名需要寫一個(gè)腳本文件,如下:

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幾的設(shè)備都進(jìn)行判斷

ATTRS{idVendor}==”10c4” 這里的idVendor ,在前面win上修改 serial的時(shí)候出現(xiàn)過,就是10c4

圖片

ATTRS{idProduct}==”ea60” 這里的idProduct,在前面win上修改 serial的時(shí)候出現(xiàn)過,就是ea60

圖片

ATTRS{serial}==”0002” 這里的serial,就是前面我們改過的,這里就根據(jù)這個(gè)值的不同,定義不同的設(shè)備別名

MODE:=”0777” 就是端口的權(quán)限

SYMLINK+=”stm32_controller” 這里的stm32_controller,就是取的設(shè)備別名。

所有上面第一行代碼的功能就是,將滿足這些條件的端口的設(shè)備名稱改為定義的設(shè)備別名。

腳本的文件名稱,取名為change_udev.sh。在執(zhí)行前需要給這個(gè)腳本文件賦予權(quán)限。

sudo chmod 777 change_udev.sh

賦予權(quán)限后,再運(yùn)行這個(gè)腳本

sudo ./change_udev.sh

這樣就運(yùn)行了設(shè)備別名的設(shè)置,之后不管怎么插拔這兩個(gè)USB設(shè)備,系統(tǒng)都將會(huì)自動(dòng)的將這兩個(gè)設(shè)備去給它賦予設(shè)置的設(shè)備別名。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10847

    瀏覽量

    353775
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3164

    瀏覽量

    66006
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4614

    瀏覽量

    86992
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    276

    瀏覽量

    16919
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [10.1.1]--5.1無弦琴硬件連接及系統(tǒng)軟件設(shè)計(jì)_clip003

    軟件設(shè)計(jì)連接
    李開鴻
    發(fā)布于 :2022年11月12日 00:47:35

    [10.1.1]--5.1無弦琴硬件連接及系統(tǒng)軟件設(shè)計(jì)_clip004

    軟件設(shè)計(jì)連接
    李開鴻
    發(fā)布于 :2022年11月12日 00:48:42

    RT-Thread如何使用串口或者無線和ROS連接

    這篇文檔主要介紹 RT-Thread 如何使用串口或者無線和 ROS 連接,會(huì)包含這么些內(nèi)容:第一部分:ROS 環(huán)境搭建第二部分:RT-Thread rosserial 軟件包第二部分
    發(fā)表于 12-28 07:02

    ROSSTM32之間的聯(lián)系

    、在ROS小車?yán)锩嬗袃蓚€(gè)核心控制器,一個(gè)是ROS主控,一個(gè)是stm32控制器3、ROS主控是樹莓
    發(fā)表于 06-28 07:49

    ROS RIKIBOT基礎(chǔ)--使用系列 第一章節(jié)】ROS機(jī)器人硬件系統(tǒng) 精選資料分享

    ROS RIKIBOT基礎(chǔ)–使用系列】ROS機(jī)器人硬件介紹1.RIKIBOT機(jī)器人硬件介紹1.1硬件框架
    發(fā)表于 07-30 06:59

    ROS如何在代碼層面去接收stm32發(fā)送過來的數(shù)據(jù)?

    如何實(shí)現(xiàn)ROSstm32之間的通信?ROS對(duì)stm32發(fā)送過來的數(shù)據(jù)做了哪些處理?ROS主控
    發(fā)表于 10-12 08:17

    stm32cubemx的ST-link v2硬件連接軟件設(shè)置如何去實(shí)現(xiàn)呢

    怎樣去搭建一種stm32cubemx硬件底層+軟件設(shè)置開發(fā)環(huán)境呢?stm32cubemx的ST-link v2硬件
    發(fā)表于 02-17 07:15

    STM32 SPI 軟件NSS和硬件NSS解讀

    [導(dǎo)讀]SSM可以控制內(nèi)部NSS引腳與SSI(一個(gè)寄存器,軟件模式)相連,還是與NSS外部引腳(真正的STM32引腳,硬件模式)相連。真正作用的是內(nèi)部NSS引腳(內(nèi)部NSS引腳才真正連接
    發(fā)表于 12-22 19:12 ?13次下載
    <b class='flag-5'>STM32</b> SPI <b class='flag-5'>軟件</b>NSS和<b class='flag-5'>硬件</b>NSS解讀

    ROSSTM32通信

    ROSSTM32通信2020.8.1主要內(nèi)容制作ROS包,將控制命令傳給STM32,并將接收到的數(shù)據(jù)作為話題進(jìn)行發(fā)布STM32接收數(shù)據(jù)并將
    發(fā)表于 12-24 19:00 ?11次下載
    <b class='flag-5'>ROS</b>與<b class='flag-5'>STM32</b>通信

    ROS小車STM32底層控制代碼

    2.6 ROS小車STM32底層控制代碼經(jīng)過之前幾篇文章,我相信大家一定對(duì)下面這些模塊都已經(jīng)有些了解了。今天,我們將編寫ROS小車STM32單片機(jī)底層控制的最后一篇文章。我們將一起按照
    發(fā)表于 01-14 12:54 ?16次下載
    <b class='flag-5'>ROS</b>小車<b class='flag-5'>STM32</b>底層控制代碼

    STM32F405為主控連接兩顆MAX3051EKA CAN通訊芯片

    電子發(fā)燒友網(wǎng)站提供《以STM32F405為主控連接兩顆MAX3051EKA CAN通訊芯片.zip》資料免費(fèi)下載
    發(fā)表于 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?連接器系統(tǒng)軟件接口軟件擴(kuò)展

    DB4759 STM32 用于STM32CubeUSB的電源傳輸和UCSI(USB Type-C?連接器系統(tǒng)軟件接口軟件擴(kuò)展
    發(fā)表于 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>器系統(tǒng)<b class='flag-5'>軟件</b>接口<b class='flag-5'>軟件</b>擴(kuò)展

    DB3582_面向STM32Cube的蜂窩連接軟件擴(kuò)展

    DB3582_面向STM32Cube的蜂窩連接軟件擴(kuò)展
    發(fā)表于 11-23 20:28 ?0次下載
    DB3582_面向<b class='flag-5'>STM32</b>Cube的蜂窩<b class='flag-5'>連接</b><b class='flag-5'>軟件</b>擴(kuò)展

    ROS主控STM32硬件連接軟件設(shè)置

    硬件連接 ROS主控通過usb線連接到一個(gè)TTL電平轉(zhuǎn)換芯片,再由這個(gè)電平轉(zhuǎn)換芯片連接
    的頭像 發(fā)表于 11-17 18:00 ?781次閱讀
    <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>設(shè)置

    ROS主控讀取stm32發(fā)送的數(shù)據(jù)

    ROS主控讀取stm32發(fā)送的數(shù)據(jù) 之后便可以通過 Stm32_Serial .read (Receive_Data_Pr,sizeof(Receive_Data_Pr)); read
    的頭像 發(fā)表于 11-26 17:49 ?964次閱讀