您現在的位置是:首頁 > 攝影首頁攝影

構建基於樹莓派cm4的機器人控制系統的執行環境

由 華友高科 發表于 攝影2023-02-03
簡介5binarm-linux-gnueabihf- -sysroot optraspisysroot -opensource -confirm-license -reduce-exports -make libs -prefix

codefieh是什麼相機

構建基於樹莓派cm4的機器人控制系統的執行環境

構建基於樹莓派cm4的機器人控制系統的執行環境

測試硬體使用

codepi

基於樹莓派

CM4

模組。

硬體連結:

https://item。taobao。com/item。htm?spm=a230r。1。14。16。6879160ehlKqAX&id=635013789059&ns=1&abbucket=1#detail

首先根據

codepi

說明書,安裝好廠商提供的原始映象。

1安裝依賴庫:

1)Qt安裝:

使用

linaro7。5

編譯工具

參考

https://www。jianshu。com/p/0b86b42eed71

。/configure -release -opengl es2 -device linux-rasp-pi4-v3d-g++ -device-option CROSS_COMPILE=/opt/linaro7。5/bin/arm-linux-gnueabihf- -sysroot /opt/raspi/sysroot -opensource -confirm-license -reduce-exports -make libs -prefix /usr/local/qt5pi -extprefix /opt/raspi/qt5pi -hostprefix /opt/raspi/qt5pi-host -v

經驗:

1

)樹莓派上面安裝

sudo apt get install libgles2mesadev libgbmdev

不成功。缺少該庫會導致編譯

qt

時,

qmake

不成功。

在樹莓派上面

apt-get qt

時,預設安裝的是

5。11。3

,就不需要手動安裝

libgles2 libgbmdev

了。但是安裝

qtcreator

不成功。

2

apt-cache search qt5apt-cache show qt5-default

sudo apt-get install qt5-default

x86

主機上面完成交叉編譯。

2)Opencv

參考

https://blog。csdn。net/ett_qin/article/details/88116899

1

) 在樹莓派上面編譯

opencv

cv2。cpp

需要修改程式碼新增

(char *)

python

資料轉換相關。),然後將庫複製到

ubuntu

qtcreator

編譯程式時,由於兩個平臺的編譯器不一樣,會導致一個報錯。所以必須在

ubuntu

上面進行交叉編譯。

2

)參考進行交叉編譯

cmake-gui

配置,不需要依賴樹莓派任何路徑。需要遮蔽

protocol cuda,

否則編譯報錯。

cmake-catchlist

需要配置一個引數,否則編譯報錯。

3)

編譯完成的庫,需要複製到

/lib

路徑下面,否則找不到庫,宣告庫路徑也不行。放在可執行檔案的上

2

級目錄

lib

下面。

3)Eigen3

apt-get install eigen3-dev

樹莓派環境安裝

ccmake

用於預編譯

kdl

apt-get install cmake-curses-gui

4)Libmodbus 3。0。8

參考

https://libmodbus。org/documentation/

在樹莓派環境編譯

modbus 3。0。8

5)KDL

樹莓派環境安裝

ccmake

用於預編譯

kdl

apt-get install cmake-curses-gui

在樹莓派環境編譯

kdl

2編譯更換RT核心

下載帶

RT

補丁的核心

https://github。com/kdoren/linux

X86

上面編譯:

交叉編譯:

https://blog。csdn。net/u014695839/article/details/83720145

RT

樹莓派核心原始碼:

https://github。com/kdoren/linux

CM4

修改:

make ARCH=arm CROSS_COMPILE=。。/tools-master/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf- bcm2711_defconfig

KERNEL=kernel7l

make ARCH=arm CROSS_COMPILE=。。/tools-master/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf- menuconfig

需要改為

RT

核心選項。

make ARCH=arm CROSS_COMPILE=。。/tools-master/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -j4 deb-pkg

生成

DEB

安裝包

複製

deb

包到樹莓派:

apt install 。/linux-image-5。10。73-rt54-v7l+_5。10。73-1_armhf。deb # 32-bit kernel

KERN=5。10。73-rt54-v7l+ # 32-bit kernel

mkdir -p /boot/$KERN/overlays/

cp -d /usr/lib/linux-image-$KERN/overlays/* /boot/$KERN/overlays/

cp -dr /usr/lib/linux-image-$KERN/* /boot/$KERN/

[[ -d /usr/lib/linux-image-$KERN/broadcom ]] && cp -d /usr/lib/linux-image-$KERN/broadcom/* /boot/$KERN/

touch /boot/$KERN/overlays/README

mv /boot/vmlinuz-$KERN /boot/$KERN/

mv /boot/initrd。img-$KERN /boot/$KERN/

mv /boot/System。map-$KERN /boot/$KERN/

cp /boot/config-$KERN /boot/$KERN/

修改檔案

/boot/config。txt

,在末尾替換追加。

cat >> /boot/config。txt << EOF

[all]

kernel=vmlinuz-$KERN

# initramfs initrd。img-$KERN

os_prefix=$KERN/

overlay_prefix=overlays/$(if [[ “$KERN” =~ ‘v8’ ]]; then echo -e “\narm_64bit=1”; fi)

EOF

3編譯IGH

樹莓派環境編譯

IGH

時,

make modules

會報錯。

x86

環境下交叉編譯

。/configure ——prefix=/agvwork/igh/ethercat-stable-1。5/etherlab ——with-linux-dir=/opt/linux-headers-5。4。75-rt41-v7l ——enable-8139too=no ——enable-generic=yes

make ARCH=arm CROSS_COMPILE=/opt/raspberry/tools-master/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -j4

4常用命令

1)檢視網絡卡速度

iftop

2)

檢視網路配置和設定網絡卡模式

mii-tool

https://blog。csdn。net/chinalinux 。。。 7Edefault-1。baidujs

3)關閉codesys

SSH

連上或用

ALT+F4

關閉介面,然後編輯

/etc/xdg/lxsession/LXDE-pi/autostart

,把

chromium

那行刪掉就可以

sudo apt-get ——purge remove codesyscontrol*

4)擴大系統UDP緩衝區大小,解決resend問題。

sysctl net。core。rmem_max

su

echo 16777216 > /proc/sys/net/core/rmem_max

sudo nano /etc/rc。local

新增引數配置

echo 16777216 > /proc/sys/net/core/rmem_max

5)CPU頻率:

vcgencmd measure_clock arm

6)溫度:

vcgencmd measure_temp

7)1000m網口相容100m網線

sudo ethtool –s eth0 speed 100 duplex full autoneg off

編輯

/etc/rc。local

,在

exit0

之前插入這個命令就會自動生效

8)開機自動啟動程式

建立檔案加

autostart

mkdir ~/。config/autostart

1

sudo vim ~/。config/autostart/myprogram。desktop

1

然後輸入下面命令

[Desktop Entry]

Encoding=UTF-8

Type=Application

Name=myprogram

Exec=lxterminal -e bash -c ‘python3 /home/pi/Desktop/test。py;$SHELL’

Terminal=true

1

其中

python3 /home/pi/Desktop/test。py

為需要執行的程式碼,使用時替換成自己需要的執行的命令即可,注意不要刪掉前面的

和後面的

$SHELL

是為了保證開啟的終端會一直顯示,如果刪掉的話執行該句程式碼後就會

kill

掉這個程序,等於程式沒有執行。

最後設定許可權:

sudo chmod a+r ~/。config/autostart/myprogram。desktop

5 系統備份和恢復

備份:外部接

U

盤,使用

backup。sh

指令碼生成

img

檔案到

u

恢復:先插

micro USB

再插供電,在電腦上執行

rpiboot

後用

win32diskimager

燒寫

github。com/feecat/codepi/blob/main/docs/3-PowerUP_ZH-CN。md

作者:華磊

(有償提供

ethercat

主站或運動控制系統技術支援和服務)

微信:

18820959358