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...