matlab新增arduino類庫

2021-09-03 02:37:13 字數 3141 閱讀 2742

matlab新增arduino類庫

參照官網教程:create a helloworld addon

教程結果檢驗**:

將自己寫的類庫匯入,首先需要有個寫好的感測器驅動庫,以電機驅動模組l298n為例,具體步驟如下:

1.寫好庫檔案,l298n.cpp和l298n.h將其放入資料夾l298n中.

2.找到matlab安裝的arduino硬體擴充套件包原始檔所在的位置,我的在:c:\matlab\supportpackages\r2016a ,裡邊有個資料夾arduino-1.6.1(沒錯,這個就是arduino的官方編譯器),開啟它把,l298n資料夾放入其中的libraries資料夾中。

3.回到,在create a helloworld addon教程中建立好的「+arduinoioaddons」資料夾中,與之類似,建立「+l298naddon」資料夾,包括:「src\l298n_.h」,l298n_.m。

l298n_.h**如下:

#include "libraybase.h"

#include "l298n.h"

#define create_l298n

0x01

#define delete_l298n

0x02

#define motor_run_forward

0x03

//測試

class

l298n_

:public librarybase

//覆蓋命令處理程式

//為載入項在arduino裝置上每個命令建立乙個switch case

//在l298n_.m中用sendcommand來執行命令

void

commandhandler

(byte cmdid, byte *inputs, unsigned int payload_size)if(

sizeof

(inputs)

/sizeof

(inputs[0]

)==6)

break;}

case

delete_l298n

:case

motor_run_forward

:default:}

//命令id必須與新增到matlab的附加庫操作相匹配

//debugprint用於將其它訊息從arduino裝置中傳遞到matlab命令列

};

l298n_.m**如下:

classdef l298n_

< arduinoio.librarybase

%命令與l298n_

.h中的命令對應

properties

(access=

private

,constant=

true

)create_l298n

=hex2dec

('01'

)delete_l298n

=hex2dec

('02'

)motor_run_forward

=hex2dec

('03'

) end

%配置properties

(access=

protected

,constant=

true

) libraryname =

'l298naddon/l298n'

dependentlibraries =

arduinolibraryheaderfiles =

%原始庫檔案的標頭檔案

cppheaderfile =

fullfile

(arduinoio.

filepath

(mfilename

('fullpath'))

,'src'

,'l298n_.h'

) cppclassname =

'l298n_'

endmethods

function obj =

l298n_

(parentobj,

pin)

%建構函式,

pin為對應的引腳

obj.parent = parentobj;

%pin=[

...]

obj.pins =

pin;

end

end%函式與voidcommandhandler中的case對應

methods

function

createl298nsensor

(obj)

cmdid = obj.

create_l298n

; data =

getterminalsfrompins

(obj.parent, obj.pins)

;sendcommand

(obj, obj.libraryname, cmdid, data)

; end

function

deletel298nsensor

(obj)

cmdid = obj.

delete_l298n

;sendcommand

(obj, obj.libraryname, cmdid,

);end

function

motor_run_forward

(obj)

%case motor_run_forward

cmdid = obj.

motor_run_forward

;sendcommand

(obj, obj.libraryname, cmdid, inputs)

; end

endend

注意以上**是我根據自己寫的l298n類庫給出的檔案**,當你需要新增別庫的時還需要具體問題,具體分析。在下水平有限,還是去參照官網教程為好!

Arduino掃盲 持續新增中

arduino火的很,很大一點在於,他基本透明掉了硬體電子部分,只剩下軟體部分,通過把電子部分包裝成黑箱,使得大量it人士,普通人,甚至小學生也能玩的來。2 arduino是乙個電子原型開發平台,51 arm是晶元,不能直接這麼比較。arduino本身也並沒有限定必須用哪種micro control...

MATLAB中新增SVM包

在本人最近無意中修改了matlab自帶的svmtrain.m檔案 其實就是之前這個檔案要修改的話,會顯示唯讀,不讓修改,但是我強行修改之後程式就報錯,重灌matlab也沒有用 安裝之後原本的問題就好了,很神奇 使用方法 2 解壓後放到d program files matlab r2009a too...

matlab新增高斯雜訊

高斯雜訊即呈正態分佈的干擾雜訊,用作增加光譜的擾動或影象的干擾。主要對光譜加噪進行分析。其實matlab本身就有比較成熟的加噪函式imnoise,y1 imnoise y,gaussian m,v y為原始光譜,gaussian為雜訊型別為高斯,m為擾動均值,v為方差。方差0.01為強雜訊,0.00...