日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

毕业设计 树莓派视觉远程监控遥控小车设计与实现 - 嵌入式 物联网

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 毕业设计 树莓派视觉远程监控遥控小车设计与实现 - 嵌入式 物联网 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 0 前言
  • 1 簡介
  • 2 實現效果
  • 3 樹莓派視覺環境搭建
    • 3.1 樹莓派安裝系統
    • 3.2 設置靜態網絡
    • 3.3 更換鏡像源
    • 3.4 安裝中文輸入法
    • 3.5 電腦控制樹莓派
    • 3.6 OpenCV3.4.1安裝
    • 7.設置通用(UART)串口的方法
  • 4 部分核心代碼
  • 5 最后


0 前言

🔥 這兩年開始畢業設計和畢業答辯的要求和難度不斷提升,傳統的畢設題目缺少創新和亮點,往往達不到畢業答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統達不到老師的要求。

為了大家能夠順利以及最少的精力通過畢設,學長分享優質畢業設計項目,今天要分享的是

🚩 樹莓派視覺遠程監控遙控小車設計與實現

🥇學長這里給一個題目綜合評分(每項滿分5分)

  • 難度系數:4分
  • 工作量:4分
  • 創新點:3分

🧿 選題指導, 項目分享:

https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md


1 簡介

基于樹莓派的視覺小車,完成視覺識別和驅動代碼

2 實現效果

3 樹莓派視覺環境搭建

主要有以下步驟

  • 樹莓派安裝系統
  • 設置靜態網絡
  • 更換鏡像源
  • 安裝中文輸入法
  • 電腦控制樹莓派
  • OpenCV3.4.1安裝
  • 設置通用(UART)串口

3.1 樹莓派安裝系統

  • 下載你所要的樹莓派系統
https://www.raspberrypi.org/downloads/

RASPBIAN——>RASPBIAN STRETCH WITH DESKTOP

  • 下載格式化磁盤軟件,將你的磁盤格式化
https://www.sdcard.org/chs/index.html

?

  • 完成安裝并進行U盤格式化操作

  • 將你樹莓派的內存卡插在電腦上,打開軟件

  • 下載etcher,將系統導入到你的內存卡中

https://etcher.io/

選擇好你下載的系統壓縮包,你的樹莓派內存卡,點擊Flash!
etcher提示成功后,就可以將內存卡取下插入樹莓派

  • 樹莓派Raspbian系統默認密碼為raspberry,ubuntu mate默認密碼為ubuntu

3.2 設置靜態網絡

樹莓派自帶無線網卡,開機后按照提示鏈接WiFi熱點輸入密碼上網。我們可以在終端查看網絡連接情況:

?
? ifconfig


默認情況下樹莓派的IP是DHCP動態配置的,為了下文使用VNC登錄方便,通常做法是將IP改為靜態地址。

  • 打開/etc/dhcpcd.conf

sudo vi /etc/dhcpcd.conf

  • 在末尾添加以下內容
interface eth0static ip_address=192.168.0.142/24static routers=192.168.199.1static domain_name_servers=114.114.114.114 8.8.8.8

static ip_address是樹莓派的IP地址
static routers是路由器地址
/24表示為子網掩碼255.255.255.0
114.114.114.114是國內的較快速的DNS服務器
8.8.8.8 是谷歌的DNS服務器

  • 重啟
reboot

3.3 更換鏡像源

  • 使用管理員權限(經由sudo),編輯/etc/apt/sources.list文件。參考命令行為:
sudo nano /etc/apt/sources.list

用#注釋掉原文件內容,用以下內容取代:

?
? deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
? deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

  • 編輯/etc/apt/sources.list.d/raspi.list文件
sudo nano /etc/apt/sources.list.d/raspi.list

用#注釋掉原文件內容,用以下內容取代:

?
? deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
? deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui

  • 更新文件
sudo apt-get update sudo apt-get upgrade

3.4 安裝中文輸入法

  • 安裝中文字體
sudo apt-get install ttf-wqy-zenhei
  • 安裝中文輸入法
sudo apt-get install scim-pinyin

安裝好拼音輸入法后,可以直接命令行輸入scim激活,下次啟動是會自動啟動的。快捷鍵是Ctrl+空格。或者直接點擊屏幕右上角的輸入法圖標選擇。

  • 配置中文操作系統
sudo raspi-config

進行系統設置。選擇Internationalisation Options–>Change
Locale–>zh_CN.UTF-8–>OK,然后重啟系統,設置為中文操作系統。

3.5 電腦控制樹莓派

SSH只能使用命令行控制樹莓派,而VNC可遠程登錄樹莓派圖形界面系統。VNC包括服務端(VNC server)和客戶端(VNC viewer)。
安裝VNC官方參考文檔:https://www.realvnc.com/en/connect/docs/raspberry-pi.html#raspberry-pi-setup

  • 在樹莓派上安裝VNC server
sudo apt-get updatesudo apt-get install realvnc-vnc-server
  • 打開VNC service服務
sudo raspi-config

找到 Interfacing Options > VNC and select Yes.
設置完成后,樹莓派啟動時,VNC service將自動啟動。

  • 獲取樹莓派IP地址
ifconfig

  • 電腦端安裝VNC Viewer
    下載地址:https://www.realvnc.com/en/connect/download/viewer/

?

安裝后打開VNC Viewer

File ——> New connection

紅色部分輸入樹莓派的IP地址,點擊OK添加。
選擇連接之后輸入樹莓派的登錄用戶名密碼,初始用戶名 pi,密碼為進入樹莓派系統時設置的密碼(如果沒有設置,樹莓派初始密碼為
raspberry)。確認之后即可進入樹莓派的遠程桌面!

3.6 OpenCV3.4.1安裝

  • 軟件更新
// 軟件源更新sudo apt-get update // 升級本地所有安裝包,最新系統可以不升級,版本過高反而需要降級才能安裝sudo apt-get upgrade// 升級樹莓派固件,固件比較新或者是Ubuntu則不用執行sudo rpi-update
  • 安裝構建OpenCV的相關工具:
// 安裝build-essential、cmake、git和pkg-config sudo apt-get install build-essential cmake git pkg-config
  • 安裝常用圖像工具包
// 安裝jpeg格式圖像工具包sudo apt-get install libjpeg8-dev // 安裝tif格式圖像工具包sudo apt-get install libtiff5-dev // 安裝JPEG-2000圖像工具包sudo apt-get install libjasper-dev // 安裝png圖像工具包sudo apt-get install libpng12-dev
  • 安裝視頻I/O包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
  • 安裝gtk2.0
sudo apt-get install libgtk2.0-dev
  • 優化函數包
sudo apt-get install libatlas-base-dev gfortran
  • 編譯OpenCV源代碼
// 使用wget下載OpenCV源碼,覺得慢的話可以到https://github.com/opencv/opencv/releases下載OpenCV的源代碼 // tar.gz格式,需要解壓好,放到用戶目錄下 // 但是OpenCV_contrib請大家使用wget,親測直接到Github下載zip文件的話,會有編譯問題// 下載OpenCV wget -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip // 解壓OpenCV unzip opencv-3.4.1.zip // 下載OpenCV_contrib庫: wget -O opencv_contrib-3.4.1.zip https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip // 解壓OpenCV_contrib庫: unzip opencv_contrib-3.4.1.zip

找到你下載的源碼文件夾并打開,tar.gz解壓后文件夾名應該是opencv-3.4.1(版本號可能會變化),git方式下載的文件夾名應該是opencv。之后我們新建一個名為release的文件夾用來存放cmake編譯時產生的臨時文件:

?

// 打開源碼文件夾,這里以我修改文章時最新的3.4.1為例 cd opencv-3.4.1 // 新建release文件夾 mkdir release // 進入release文件夾 cd release

設置cmake編譯參數,安裝目錄默認為/usr/local ,注意參數名、等號和參數值之間不能有空格,但每行末尾“\”之前有空格,參數值最后是兩個英文的點:

?

/** CMAKE_BUILD_TYPE是編譯方式 * CMAKE_INSTALL_PREFIX是安裝目錄 * OPENCV_EXTRA_MODULES_PATH是加載額外模塊 * INSTALL_PYTHON_EXAMPLES是安裝官方python例程 * BUILD_EXAMPLES是編譯例程(這兩個可以不加,不加編譯稍微快一點點,想要C語言的例程的話,在最后一行前加參數INSTALL_C_EXAMPLES=ON \) **/sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.1/modules \-D INSTALL_PYTHON_EXAMPLES=ON \-D BUILD_EXAMPLES=ON ..
  • 開始正式編譯
// 編譯,以管理員身份,否則容易出錯 sudo make // 安裝 sudo make install // 更新動態鏈接庫 sudo ldconfig
  • 查看安裝版本
pkg-config --modversion opencv
  • 測試安裝:
cd ~/opencv-3.4.1/release/bin ./opencv_test_core

7.設置通用(UART)串口的方法

  • 首先查看有沒有相關文件
cd /boot/overlaysls

查看是否存在README 和 pi3-miniuart-bt-overlay.dtb 或者是 pi3-miniuart-bt.dtb
(后面的缺了(overlay)但是在README中的解釋是相同的)。如果沒有的話,自行百度下載。

  • 查看并修改串口映射關系
ls -l /dev


這里已經配置好了,因此會有ttyAMA0和ttyS0兩個串口映射,最開始只有一個。下一步對文件進行修改。

?
? sudo nano /boot/config.txt

在該文件最后一行加入代碼

?
? dtoverlay=pi3-miniuart-bt

保存文件。

?
? sudo nano /boot/cmdline.txt

注釋掉原來的內容,將以下內容添加進去

?
? dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

保存文件。

  • 禁用串口的控制臺功能
sudo systemctl stop serial-getty@ttyAMA0.servicesudo systemctl disable serial-getty@ttyAMA0.service

最后,我們依次執行以下命令完成所有配置并重啟:

?
? sudo apt-get update
? sudo apt-get upgrade
? sudo reboot

4 部分核心代碼

def Motor_Init():global L_Motor, R_MotorL_Motor= GPIO.PWM(l_motor,100)R_Motor = GPIO.PWM(r_motor,100)L_Motor.start(0)R_Motor.start(0)def Direction_Init():GPIO.setup(left_back,GPIO.OUT)GPIO.setup(left_front,GPIO.OUT)GPIO.setup(l_motor,GPIO.OUT)GPIO.setup(right_front,GPIO.OUT)GPIO.setup(right_back,GPIO.OUT)GPIO.setup(r_motor,GPIO.OUT)def Servo_Init():global pwm_servopwm_servo=Adafruit_PCA9685.PCA9685()def Init():GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM)Direction_Init()Servo_Init()Motor_Init()

運動控制函數

def Front(speed):L_Motor.ChangeDutyCycle(speed)GPIO.output(left_front,1) #left_frontGPIO.output(left_back,0) #left_backR_Motor.ChangeDutyCycle(speed)GPIO.output(right_front,1) #right_frontGPIO.output(right_back,0) #right_backdef Back(speed):L_Motor.ChangeDutyCycle(speed)GPIO.output(left_front,0) #left_frontGPIO.output(left_back,1) #left_backR_Motor.ChangeDutyCycle(speed)GPIO.output(right_front,0) #right_frontGPIO.output(right_back,1) #right_backdef Left(speed):L_Motor.ChangeDutyCycle(speed)GPIO.output(left_front,0) #left_frontGPIO.output(left_back,1) #left_backR_Motor.ChangeDutyCycle(speed)GPIO.output(right_front,1) #right_frontGPIO.output(right_back,0) #right_backdef Right(speed):L_Motor.ChangeDutyCycle(speed)GPIO.output(left_front,1) #left_frontGPIO.output(left_back,0) #left_backR_Motor.ChangeDutyCycle(speed)GPIO.output(right_front,0) #right_frontGPIO.output(right_back,1) #right_backdef Stop():L_Motor.ChangeDutyCycle(0)GPIO.output(left_front,0) #left_frontGPIO.output(left_back,0) #left_backR_Motor.ChangeDutyCycle(0)GPIO.output(right_front,0) #right_frontGPIO.output(right_back,0) #right_back

5 最后

總結

以上是生活随笔為你收集整理的毕业设计 树莓派视觉远程监控遥控小车设计与实现 - 嵌入式 物联网的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。