為mblock開發(fā)L293D電機驅動板

最近在整理小學信息技術教材的套件,其中有一課用到了電機,于是采用了電機驅動板,但是L293D驅動板用起來比較復雜,mblock又沒有相應的 擴展,只好自己動手豐衣足食.
雖然官方擴展開發(fā)指導說擴展的開發(fā)沒有想象中的難,但是想說愛真的不容易,簡單的功能很容易實現但是復雜的功能需要經過反復調試.

Arduino下面的電機速度設定

用上述辦法控制任意一個電機轉動是沒有問題的,另外我注意到L293D的1,3號電機可以正轉反轉,而2,4號電機只能正轉,不知道是我程序的問題,還是接線的問題,還是其他原因.

深入認識mblock

Scratch模式

最開始的時候,mblock往往單純被當做是Scratch軟件的替代品,此為第一境界;或者單純作為Arduino IDE的圖形化編程替代品,后來才知道Arduino功能很強大,我去年10月份一直想找一款類似于Scratch 1.4下S4A的軟件,一直沒有找到,后來接觸到了ScratchPi(樹上科技),以及諾丁科技都在開發(fā)類似的產品,直到前陣子我才意識到,原來mblock支持刷入固件實時交互,***舞臺上的角色可以實時說出傳感器的讀數.

Scratch模式
Scratch模式和Arduino模式

Arduino模式

Arduino模式

這種模式跟傳統(tǒng)的Arduino IDE的使用方法類似,不過使用Scratch圖形化編程方式編程.

L293D電機驅動板

介紹

擴展開發(fā)

通過閱讀擴展開發(fā)指導,我照葫蘆畫瓢做出了L293D驅動擴展模塊.并且為了跟mBot的電機類似,我在c代碼里面做了一定出力,根據用戶設定的速度正負,自動正轉或者反轉.

["w", 
        "設置電機 %d.motors 速度為 %d.motorspeed",
        "runMotor", 
        "1", 
        "255",
        {"encode":"{d0}{d1}",
        "setup":" int motorspeed = {1} ;\n  if( motorspeed >= 0){\n    motor.setSpeed(motorspeed);\n
 
  motor.run(FORWARD);\n    }\n   if (motorspeed <0 ){\n  motor.setSpeed(motorspeed);\n  motor.run(BACKWARD);\n
    }\n   ",
        "inc":"#include  <AFMotor.h>\n",
        "def":"AF_DCMotor motor({0});\n",
        "work":"",
        "loop":""}],

說明

encode,代表是參數,與你在代碼塊外觀設定的要一致.
setup對應了Arduino c代碼中的setup中的內容,inc代表了要引入的庫
def是在setup之前定義的代碼
work是不斷執(zhí)行的代碼
我覺得Arduino離線模式的代碼擴展比較容易,就是通過這個json串來定義生成的c代碼的對應關系,或者定義生成c代碼的規(guī)則,比較容易;但是同時如果你規(guī)則定義的不夠合理,那么你的程序也就存在很大的問題

存在問題

雖然這個擴展能夠驅動電機,但是當我需要同時讓多個電機轉動的時候就無能為力了.

控制1個電機

然而我需要控制兩個電機的時候就存在問題:

控制多個電機存在問題

可以看到當我們拖入兩個控制電機的代碼塊的時候,

#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

#include  <AFMotor.h>

double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
AF_DCMotor motor(1);
AF_DCMotor motor(2);
# 這里聲明了兩個電機

void setup(){
# 但是setup函數中只控制了一個
     int motorspeed = 255 ;
      if( motorspeed >= 0){
            motor.setSpeed(motorspeed);
          motor.run(FORWARD);
        }
       if (motorspeed <0 ){
          motor.setSpeed(motorspeed);
          motor.run(BACKWARD);
        }
}

void loop(){
    _loop();
}

void _delay(float seconds){
    long endTime = millis() + seconds * 1000;
    while(millis() < endTime)_loop();
}

void _loop(){
}

依次執(zhí)行代碼

如何依次讓電機轉動,寫驅動看似容易,但是實際上很容易犯錯誤.

改進

理論上,c能夠控制的,通過擴展的方式mblock也可以,但是要注意擴展的書寫方式,不然人容易出錯.

而且Scratch模式下的擴展開發(fā)則更為復雜,因為涉及到固件的通訊協(xié)議.
繼續(xù)完善.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咒锻,隨后出現的幾起案子冷冗,更是在濱河造成了極大的恐慌,老刑警劉巖惑艇,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒿辙,死亡現場離奇詭異,居然都是意外死亡滨巴,警方通過查閱死者的電腦和手機思灌,發(fā)現死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恭取,“玉大人泰偿,你說我怎么就攤上這事◎诳澹” “怎么了耗跛?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長攒发。 經常有香客問我调塌,道長,這世上最難降的妖魔是什么惠猿? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任羔砾,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘蜒茄。我一直安慰自己唉擂,他們只是感情好,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布檀葛。 她就那樣靜靜地躺著玩祟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪屿聋。 梳的紋絲不亂的頭發(fā)上空扎,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音润讥,去河邊找鬼转锈。 笑死,一個胖子當著我的面吹牛楚殿,可吹牛的內容都是我干的撮慨。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼脆粥,長吁一口氣:“原來是場噩夢啊……” “哼砌溺!你這毒婦竟也來了?” 一聲冷哼從身側響起变隔,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤规伐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后匣缘,有當地人在樹林里發(fā)現了一具尸體猖闪,經...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年肌厨,在試婚紗的時候發(fā)現自己被綠了培慌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡夏哭,死狀恐怖检柬,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情竖配,我是刑警寧澤何址,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站进胯,受9級特大地震影響用爪,放射性物質發(fā)生泄漏。R本人自食惡果不足惜胁镐,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一偎血、第九天 我趴在偏房一處隱蔽的房頂上張望诸衔。 院中可真熱鬧,春花似錦颇玷、人聲如沸笨农。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谒亦。三九已至,卻和暖如春空郊,著一層夾襖步出監(jiān)牢的瞬間份招,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工狞甚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锁摔,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓哼审,卻偏偏與公主長得像谐腰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子涩盾,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內容