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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

MBD(一)-下载包-getstart-raspberry串口设置问题

發布時間:2024/3/13 编程问答 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MBD(一)-下载包-getstart-raspberry串口设置问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

跟著官方文檔做

  • 1. matlab和simulink支持包下載
  • 2. matlab-樹莓派demo
    • 2.1-通過matlab命令控制LED燈閃爍
    • 2.2 matlab代碼部署到raspberry上
    • 2.3 引腳模式設置
    • 2.4 通過matlab命令執行linux終端指令
  • 3. Simulink-樹莓派demo
    • 3.1 用simulink做樹莓派燈閃爍demo
    • 3.2 simulink做樹莓派串口通信
  • 4.總結

matlab和simulink版本-2020b
樹莓派版本-3B+

最近接觸到基于模型的編程技術(MBD),即基于Matlab和simulink自動生成嵌入式C代碼,可以手動或通過TLC自動部署到嵌入式硬件上去,實驗室這邊常用的開發板是樹莓派和Jetson TX2,由于官方文檔有Matlab和simulink對樹莓派的支持包,所以這里記錄一下這兩天跟著官方文檔給出的示例程序做的時候會遇到的一些坑。

之后還要探究如何移植到其他板子上,本章內容簡要有:

  • 下載并設置matlab-raspberry包和simulink-raspberry包;
  • matlab文檔的例子;
  • simulink文檔的例子;
  • 樹莓派板子串口通信設置問題。

  • 1. matlab和simulink支持包下載

    所需硬件:

  • 樹莓派+sd卡;
  • 讀卡器;
  • 網線;
  • 路由器(夠得著的)
  • step1:matlab主界面上添加附加功能,下載這兩個包,這個過程基本上沒什么問題,下載完成后會讓你進行設置。

    step2: 樹莓派硬件設置-點上圖中那個齒輪圖標進入設置界面

    這里點next之后,下一個界面如下圖所示,這里是讓你選樹莓派要用的操作系統.

    • 第一個是mathwork官方給樹莓派提供的一個raspbian系統,安裝好了與matlab相關的庫;
    • 第二個用你的樹莓派現成的系統,但是要自己下載缺失的庫,包,這個參考https://github.com/mathworks/Raspbian_OS_Setup

    個人推薦使用第一種,省些時間,不過要重新刷樹莓派SD卡

    之后按照提示下載官方的系統鏡像(向導里有),也可以通過下面的鏈接下載,要與matlab版本對應,比如我是matlab2020b,下載版本就要是20開頭的
    https://github.com/mathworks/Raspbian_OS_Setup/releases
    tip: 可能會由于網絡原因下不下來,多試幾次或者…總之加油,我也是下了一上午才下下來的

    下下來之后按照提示刷寫SD卡,應該比較順利,提一下這一步:
    這一步選第一個,需要把樹莓派用網線連到路由器上,你的主機(裝了matlab的電腦)也要連到這個路由器上(最好也用網線連,wifi可不可以沒有試過)

    step3:查詢樹莓派網絡ip
    完成以上工作之后,將SD卡插到樹莓派上,連接屏幕(第一次為了連接wifi需要一個屏幕,連了一次之后會自動連接,就不需要屏幕了)

    查詢樹莓派ip,我是連的筆記本熱點,在筆記本上可以查到,當然linux系統查ip也可以通過命令:

    ifconfig

    step4: SSH連接
    matlab官方系統默認開啟了ssh,如果沒有默認開啟,需要下載xrdp,這個請自行搜索。

  • 用win10自帶的遠程連接可以連
  • win+r -> 輸入mstsc -> 輸入樹莓派ip -> 樹莓派用戶名密碼 默認: username: pi password: raspberry
  • Xshell軟件連
    這個我覺得比上面的方案好一些,Xshell非商業用途可以免費用,下載,使用這里不詳細說明了

    至此,matlab-simulink包下載和樹莓派系統就搞定了。
  • tip:simulink包和matlab包的設置一樣,都是給樹莓派下載系統用的,所以上面兩個包中只用設置一個就行了


    2. matlab-樹莓派demo

    這里跟著官方文檔做demo

    2.1-通過matlab命令控制LED燈閃爍

    該demo對應文檔中

    通過matlab命令行逐行執行:

    % 創建樹莓派操作對象 % raspi(ip_addr, username, password); 如果不寫參數,默認連上一次的 rpi = raspi('192.168.137.50', 'pi', 'raspberry') writeLED(rpi, 'LED0', 1); % 燈亮 writeLED(rpi, 'LED0', 0); % 燈滅

    以上實現了用代碼控制樹莓派上的LED燈亮滅,可以編寫一個m函數控制燈的閃爍行為:

    function blinkLED() %UNTITLED2 此處顯示有關此函數的摘要 % 此處顯示詳細說明 r = raspi('192.168.137.50', 'pi', 'raspberry');for count = 1:100% led onwriteLED(r, 'LED0', 1);pause(0.5);% led offwriteLED(r, 'LED0', 0);pause(0.5); end end

    之后在命令行或者編寫m腳本調用:

    clear rpi; blinkLED();

    就可以看到燈閃爍效果。這個demo實現起來還是比較順利的,效果是燈亮滅0.5s/次持續100s。

    2.2 matlab代碼部署到raspberry上

    2.1中通過命令行可以控制樹莓派的硬件,本質上是通過網絡通信傳信號的(本人對網絡TCP/IP也不太懂,總之是這個意思吧)。
    matlab支持包可以讓我們將m文件里要實現的功能編成C代碼并部署到樹莓派本地上,同時生成可執行文件。這里還是以2.1中的閃燈程序為例

    上圖中為工作空間的文件(沒有部署之前,只需要編寫blinkLED.m的代碼即可,代碼與2.1相同)
    matlab命令行執行命令:

    clear; rpi = raspi('192.168.137.50', 'pi', 'raspberry'); board = targetHardware('Raspberry Pi'); % 目標板對象 board.CoderConfig.GenCodeOnly = true; % 只生成代碼,不執行(可省,默認編譯執行) deploy(board, 'blinkLED'); % 部署代碼,第二個參數對應m函數名

    生成的代碼以及可執行文件的路徑為:
    在樹莓派終端執行

    sudo ./blinkLED.elf

    可以看到和2.1的燈閃爍相同的效果

    2.3 引腳模式設置

    給出m函數:

    function setPinExample() %UNTITLED 此處顯示有關此函數的摘要 % 此處顯示詳細說明 rpi = raspi('192.168.137.50', 'pi', 'raspberry');% 1.可用GPIO引腳 rpi.AvailableDigitalPins;% 2.顯示樹莓派的引腳圖 showPins(rpi);% 3.設置引腳模式 - pin4 input(讀入)模式 configurePin(rpi, 4, 'DigitalInupt');% 4.讀取引腳數據 - pin4 readDigitalPin(rpi, 4);% 5.設置引腳模式 - pin7 output()模式 configurePin(rpi, 7, 'DigitalOutput');% 6.寫引腳數據 - pin7 out 1 writeDigitalPin(rpi, 7, 1);end

    2.4 通過matlab命令執行linux終端指令

    這里列舉幾個常用的指令(文檔里也有,建議有事沒事查文檔,畢竟別人大公司弄出來成體系的東西還是比這種博客要具體全面得多,可惜matlab文檔的漢化工作還很不到位)
    1.system函數

    system(rpi, 'shell命令'); % 例如 system(rpi, 'ls'); % 獲取當前目錄下(默認/home/pi)的文件名稱 system(rpi, 'cat hello.txt'); % 獲取hello.txt文件的內容(前提是有)

    2.openShell函數
    system函數只能進行查看(讀),不能做創建用,如果要對樹莓派文件進行修改啥的,用openShell

    openShell(rpi);

    這將打開一個遠程連接ssh窗口(和XShell的窗口差不多,建議還是用XShell對樹莓派的文件進行編寫修改)

    3.getFile
    該函數將樹莓派里的指定文件拷貝到Matlab當前工作目錄下

    getFile(rpi, '/usr/share/pixmaps/debian-logo.png');

    4.putFile
    將PC機上的文件拷貝到樹莓派上

    putFile(rpi, 'debian-logo.png', '/home/pi/debian-logo.png.copy')

    5.deleteFile
    將樹莓派上指定文件刪除

    deleteFile(rpi, '/home/pi/debian-logo.png.copy');

    3. Simulink-樹莓派demo

    對應另一個文檔的內容
    設置simulink參數:
    step1. 設置目標板

    注意一下:matlab2020b的simulink界面和之前版本有很大不同,但大致功能是一樣的,如果是之前版本,Model Settings的位置和這里不一樣。

    step2:修改code generator(可以不做,建議設置)

    同樣在Model Settings下>>Code Generation>>Report把上圖中兩個選項選上,生成代碼后會有詳細報告。

    3.1 用simulink做樹莓派燈閃爍demo

    完成以上設置后,搭建模型,具體請參考這個Example

    搭好模型后,可以run一下看看,這里其實已經可以在樹莓派上看到效果了,但是由于仿真時間和現實時間可能不同步,觀察到的閃爍頻率和預期的不一致,但功能是有的。
    run一下主要是看模型會不會報錯。

    下一步:部署到樹莓派上
    這一步做的事情和2.2里做的是一樣的,只是用了simulink自動完成,并且可以看到編譯過程

    如果勾選了上面step2的生成報告,此時還會彈出生成的C代碼:

    同樣地,可執行文件部署樹莓派上和2.2中相同的文件位置

    使用m命令控制腳本的啟動,停止

    rpi = raspberrypi; % 查詢程序是否在跑 第二個參數對應 simulink模型名 1-是 0-否 isModelRunning(rpi, 'LED_blink01') % 停止程序 stopModel(r,'LED_blink01') % 開啟程序 runModel(r,'LED_blink01') % 查看log system(r,'cat LED_blink01.log') % copy log文件到matlab getFile(r,''LED_blink01'.log')

    3.2 simulink做樹莓派串口通信

    這里主要說明一下樹莓派的串口設置問題(每次用新的樹莓派都會遇到這個坑,記錄一下給自己長點記性)
    參考:樹莓派3B/3B+的串口使用

    step1: 開啟樹莓派串口功能
    matlab提供的樹莓派默認開啟了串口功能,這一步可以不做(保險起見,確認一下比較好)

    sudo raspi-configure


    選5.Interfacing Options >> 6.Serial >> No >> Yes
    意思是禁止串口作為ssh登錄口,而作為串口功能使用。

    tip: 還有一種方式是直接修改某個boot文件,其實是一樣的,上述操作的本質也是修改這個啟動文件,上述操作做完后,可能要求重啟(如果前后沒有改變的話就不會要你重啟),總之重啟就行。

    step2: 改變串口映射功能
    樹莓派里面有兩個串口,一個/dev/Serial0,一個/dev/ttyAMA0,默認使用第一個串口,通過shell命令,查詢串口映射關系

    ls -l /dev # 查映射關系的 ls /dev/tty* # 查串口設備的

    可以看到映射關系(這里是設置好以后的,初始狀態下,這里的serial0應該指ttyS0,serial1-ttyAMA0),應該把映射關系設置成下圖所示

    我們要調換映射關系,因為ttyAMA0的傳輸效率更高一些,默認給藍牙用的,這里禁用藍牙,設置為串口。

    # 這里vim是我下載的,用默認的nano也行 sudo vim /boot/config.txt # 用這個也行 sudo nano /boot/config.txt

    在文件最后添加一句

    dtoverlay=pi3-miniuart-bt


    保存文件后,再上面的命令查看映射關系應該就是step2里的樣子,ok

    step3: simulink串口通信
    目前只做到能傳數據,但是解析數據還在進一步學習
    所需硬件:

  • PC機(串口收發)
  • 導線;
  • USB-TTL模塊
  • 串口接線稍微提一下帶過了,PC端我的電腦是Ubuntu系統下的cutecom,如果是win10的話可以在應用商店搜索"串口調試助手",win10自帶的比網上下的小工具個人認為要高級一些。

    % 查詢樹莓派3B+的針腳功能 rpi = raspi(); showPins(rpi); raspTTL-USB
    TX--RX
    RX--TX
    GND--GND
    3.3V-3.3V(可以不接)

    simulink模型

    模塊在simulink的Library Browser - simulink raspberry Package里。
    搭好之后,run如果沒有報錯,此時在PC端的串口調試助手上可以收到東西了,用串口調試助手發數據simulink上的display模塊也能顯示。
    至此,實現了simulink和樹莓派的串口通信功能。

    4.總結

    本篇主要講了

  • matlab-simulink-樹莓派硬件支持包的下載,樹莓派系統下載及設置;
  • matlab-樹莓派的操作demo;
  • simulink-樹莓派的操作demo,重點樹莓派的串口設置。
  • 之后會看看怎么利用串口的數據。

    總結

    以上是生活随笔為你收集整理的MBD(一)-下载包-getstart-raspberry串口设置问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 涩涩资源网 | 日本黄色录像片 | 少妇熟女一区二区三区 | 精品日本一区二区三区 | 91福利在线免费观看 | 91精品国产乱码 | 中文在线最新版天堂 | 欧美国产日本 | 97色在线观看 | 国产成人精品一区二区三 | 欧美私人情侣网站 | www.毛片com | 中文字幕日韩精品无码内射 | 日日摸天天添天天添破 | 日韩精品人妻一区二区三区免费 | 91av国产在线| 亚洲熟女一区二区三区 | av片在线播放 | 性中国xxx极品hd | 黄色网免费观看 | 欧美黄色小视频 | 黄色高清免费 | 人人草人人草 | 精品电影在线观看 | 精品人妻一区二区三区久久夜夜嗨 | 720url在线观看免费版 | 影音先锋在线视频 | 国产美女视频一区二区 | 69久久精品无码一区二区 | 黑森林av导航 | 自拍视频第一页 | 网站黄在线| 欧美大片一区二区三区 | 色哟哟一区二区 | 38在线视频| 国外成人免费视频 | 国产伦精品一区二区三区精品 | 素人fc2av清纯18岁 | 成人国产av一区二区三区 | 三级小视频在线观看 | 日韩av影音先锋 | 人人做 | 性欧美在线视频观看 | 日韩精品人妻一区二区三区免费 | 国产乱码精品一区二区三区忘忧草 | 日韩av一卡二卡 | 国产精品3区 | 韩日av | 亚洲在线天堂 | 国产91精品一区二区 | 久久精品一区二区免费播放 | 成人性生活视频 | 91啦丨九色丨刺激 | 亚洲成人久久久 | 日韩欧美国产亚洲 | 手机在线观看毛片 | 91精品国产色综合久久不卡电影 | 九七在线视频 | 成人一二三四区 | 色批网站 | 青娱乐国产视频 | 国产精品一二三四五区 | aaaaaabbbbbb毛片 | 可以免费看的av | 国产偷拍一区二区 | 美女免费黄视频 | 天天干,天天干 | 美女上床网站 | 亚洲爱情岛论坛永久 | 男同av在线观看一区二区三区 | 欧美日在线观看 | 潘金莲三级80分钟 | 杏导航aⅴ福利网站 | 一区在线免费 | 国产精品人人妻人人爽人人牛 | 亚洲最新在线观看 | 毛片免费全部无码播放 | 国产chinasex麻豆videos | 999久久久免费精品国产 | 床戏高潮做进去大尺度视频 | av先锋资源 | 婷婷丁香社区 | 人人看超碰 | 最新在线视频 | 黄页免费视频 | 亚洲精品国产suv | 国产视色 | 91中文字幕在线视频 | 国产一区二区在线电影 | 美女隐私无遮挡免费 | 日韩福利小视频 | 捆绑束缚调教 | 丰满少妇av | 激情午夜天 | 欧美在线一二三区 | 久久受 | 亚洲av无码一区二区乱子仑 | 在线a视频 | 亚洲小视频在线播放 |