資料介紹
描述
該項目使用步進電機拉下無花果樹枝,以嚇跑鳥類和松鼠。即搖肢。
我知道搖動肢體會很好地嚇唬鳥類和松鼠,因為我已經(jīng)使用附在肢體上的手動釣魚線這樣做了。
我對 MKR1000 進行了編程,使其以簡單的模式搖動肢體。
一個周期定義為步進電機在線路上下拉一次或向上釋放一次,即電機沿一個方向移動為下拉,另一個方向為向上釋放。
一對循環(huán)是肢體的一次下拉和一次向上釋放。
由于不同的挫折,我最初的計劃比我有時間進行的更廣泛。內(nèi)容如下。
循環(huán)將成組進行,例如每組 5 對,暫停,然后是另一組 5 對。
這將被稱為序列。我從經(jīng)驗中知道這種順序。
? 小時后,另一個序列發(fā)生。
將描述報告中提交的周期。
報告中提交的步進電機序列由八個方向變化和每個方向變化內(nèi)的四個步驟組成。
此序列構(gòu)成一次執(zhí)行。
每次執(zhí)行都是通過手動設(shè)置微控制器復(fù)位來開始的。
最初的計劃是由 MKR1000 控制的一系列執(zhí)行
方向和步進波形
上面的波形顯示方向。當電壓為 3.3 V 時電機逆時針旋轉(zhuǎn),當電壓為 0.0 V 時電機逆時針旋轉(zhuǎn)。下面的波形顯示了步驟。當電壓向正方向變化時,電機步進。我們可以?在每個方向觀察四個步驟。這張照片中的步長周期為 20 毫秒。(我最后用了 10 毫秒。)
開發(fā)設(shè)置
阿杜諾 MKR1000
數(shù)字輸入輸出
電機步進引腳 6
電機方向引腳 1
電機驅(qū)動器復(fù)位引腳 0
中斷引腳 A1 和 A2
更改參數(shù)以優(yōu)化驚嚇鳥類和松鼠的順序以及本報告中使用的值
? 步進時間 T0 = 5 ms
一個方向的時間 T1 = 80 ms
一個周期的時間 ??T2 = 1280 ms
材料清單
我的項目延遲的原因示例:
最初,我燒壞了兩個電機驅(qū)動芯片。當我訂購并安裝這兩個芯片時,兩周已經(jīng)過去了。
當我嘗試安裝中斷時,我通過論壇發(fā)現(xiàn)其中一個附加函數(shù)存在錯誤。那花了 1.5 天。
我花了很多時間來嘗試讓 Serial.print 工作。我終于放棄了。該論壇表示 serial.print 也沒有工作。
在另外兩個例子中,我按照所有的編碼指南編寫了一個程序,但結(jié)果是錯誤的。我有一種感覺,我違反了一些未記錄的錯誤。
過去,我使用 Atmega 16 微控制器的軟件編寫代碼來控制此步進電機。這是一個更通用的開發(fā)軟件,很好但超出了我們對這個 MKR100 項目的規(guī)則,更重要的是為了節(jié)省時間,它很穩(wěn)定。
但是,也許我們應(yīng)該預(yù)料到使用此 Beta 版 MKR1000 會出現(xiàn)錯誤。
源代碼?
/* Step and direction
Steps the motor in one direction, then steps it in the other direction.
the purpose of this code is a simple test of the power driver and MKR1000
The circuit:
STEP is from pin 6 to Allegro step.
DIRECTION is from pin 1.
RESET is from pin 0
created 3/29/16
by Art Wagner
*/
// constants won't change. Used here to set a pin number :
const int STEP6 = 6; // the number of the STEP pin
const int DIR1 = 1; // the number of the DIRECTION pin
const int RESET0 = 0; // the number of the RESET pin
// Variables will change : We are assigning initial digital values
int stepState = LOW;
int dirState = HIGH;
int resetState = HIGH;
unsigned long tT0; //previous time read for the step
unsigned long tT1; //previous time read for the directi
unsigned long tT2; //
const long T0 = 5; //T0 is the time between change in step signal. 10 10 5 2
const long T1 = 80; //T1 is the time between change in dir signal. 40 80 80 80
const long T2 = 1280; //T2 should give 4 direction changes 160 320 640 640 640
void setup() {
//start serial connection
Serial.begin(9600);
//the first t p.o. is 801 ms
// set the digital pins as outputs:
pinMode(STEP6, OUTPUT);
pinMode(DIR1, OUTPUT);
pinMode(RESET0, OUTPUT);
//Allows the driver to accept commands, begin this in setup
digitalWrite(RESET0, 0); //RESET = HIGH = OPERATE Keep RESET = 0 to inhibit current to motor
//Make sure step is low
digitalWrite(STEP6, stepState); //begin with step low
digitalWrite(DIR1, dirState); //begin with dir high
digitalWrite(RESET0, resetState); //begin with reset high
tT0 = millis(); //initialize for delta calc
tT1 = millis(); //initialize for delta calc
tT2 = millis(); //initialize for wait
}
void loop() {
//delay(3000); //allows me to remove my hand after resetting
//STEP
//Serial.println(11);
//Serial.println(millis());
//Serial.println(tT0);
//Serial.println(T0);
//ONE
if (millis() - tT0 >= T0) //greater than or equal to
{
// save the new reference for step change
tT0 = millis();
// reverse sign of stepState
if (stepState == LOW) {
stepState = HIGH;
} else {
stepState = LOW;
}
// set step pin with the current step state:
digitalWrite(STEP6, stepState); //doesn't do this until the if statement is TRUE
}
//DIRECTION
// TWO
if (millis() - tT1 >= T1)
{
// save the new reference for direction
tT1 = millis();
// reverse the sign of dirState:
if (dirState == LOW) {
dirState = HIGH;
} else {
dirState = LOW;
}
// set dir pin with the new dir state:
digitalWrite(DIR1, dirState);
}
//WAIT
// THREE
// if(millis() - tT2 >= T2){
// digitalWrite(RESET0,LOW);
// }
while(millis() - tT2 >= T2){
}
}
- 基于ML的鳥類和松鼠檢測器(Raspberry Pi和AWS)
- 步進電機資料匯總 37次下載
- 步進電機的原理與驅(qū)動綜述 22次下載
- 基于DSP的步進電機速度控制系統(tǒng) 29次下載
- 基于PLC步進電機控制系統(tǒng)的設(shè)計 108次下載
- 一種PLC控制步進電機的分度算法 8次下載
- 內(nèi)置譯碼器的微特步進電機驅(qū)動芯片ATD5984 20次下載
- 常用步進電機驅(qū)動芯片資料 73次下載
- 光譜導(dǎo)航技術(shù)在果樹果實定位中有什么樣的應(yīng)用 4次下載
- 如何使用FPGA實現(xiàn)步進電機控制器 27次下載
- 步進電機的基礎(chǔ)知識和使用51單片機控制步進電機的程序免費下載
- 步進電機的簡介和步進電機的驅(qū)動方式及代碼免費下載
- 直流疊加交流電壓下電樹枝的引發(fā)和生長特性 0次下載
- 步進電機控制系統(tǒng)的設(shè)計與實現(xiàn)
- 步進電機基礎(chǔ)
- 什么是步進電機?步進電機的類型和結(jié)構(gòu) 845次閱讀
- 如何正確選擇步進電機驅(qū)動器 1394次閱讀
- 步進電機的微步驅(qū)動原理是什么 1409次閱讀
- 什么是步進電機?步進電機單極和雙極的區(qū)別 1.4w次閱讀
- 步進電機控制器原理_步進電機控制器編程實例 1.6w次閱讀
- 什么是步進電機?步進電機的種類 5995次閱讀
- 什么是步進電機?步進電機的特點,分類與原理! 3.7w次閱讀
- 步進電機驅(qū)動芯片有哪些_六款步進電機驅(qū)動芯片 11w次閱讀
- 兩相步進電機和五相步進電機有什么區(qū)別 4.7w次閱讀
- 步進電機工作效率如何_步進電機的選擇方法 4567次閱讀
- 步進電機相序如何判斷_步進電機主要在哪些方面應(yīng)用 1.3w次閱讀
- 什么是混合式步進電機_混合式步進電機和反應(yīng)式步進電機的區(qū)別 1.6w次閱讀
- 步進電機原理、與伺服電機比較、特點、注意事項 1698次閱讀
- 步進電機的硬件電路設(shè)計,步進電機驅(qū)動原理及方法 3.2w次閱讀
- 步進電機解析,步進電機的類型分類及步進電機的制動原理 5680次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多