magiccar 發表於 2009-8-27 16:55

遙控科學魔法車

https://www.youtube.com/watch?v=fMdWD_ihcZA
加了利基的單板電腦,科學魔法車的法力瞬間暴增,才剛完成紅外線 感應車,現在把塵封已久的遙控器拿出來用,真的很速配。除了前進 、後退,左右轉,原地迴轉統統能做到,重要的是速度還可比例控制 ,真是太好玩了....

如果把遙控器控制+紅外線自動閃避電路=?
這是一個非常捧的專題,請同學提供一個合適的專題名稱,一起來完成吧!

magiccar 發表於 2009-8-27 17:44

這是利基Basic Commander的程式碼,非常容易撰寫

Sub MAIN()

Dim POWER As Word
Dim F_B,L_R As Word
Do
'前進及後退控制程式
Pulsein(9,1,F_B)    '取得接收機的前進後退信號(210~390,中點在300)
POWER=Float2word(Abs(Word2float(F_B)-300)*100)   '計算偏移值
If F_B > 310 Then '假如控制桿在290~310的位置,車不動,大於則前進,反之後退
   go_front(POWER)
Elseif F_B < 290 Then
   go_back(POWER)
End IF
'左轉及右轉控制程式
Pulsein(10,1,L_R)   '取得接收機的左右轉向信號(210~390,中點在300)
POWER=Float2word(Abs(Word2float(L_R)-300)*100)    '計算偏移值
If L_R > 310 Then'假如控制桿在290~310的位置,車不動,大於則左轉,反之右轉
   go_left(POWER)
Elseif L_R < 290 Then
   go_right(POWER)
End IF
Loop
End Sub
'==========魔法車動作副程式區(TA7291P)===========
'左右馬達各用一顆TA7291P來控制
'左馬達TA7291P的IN1、IN2分別接到BC2的P0、P1
'左馬達TA7291P的IN1、IN2分別接到BC2的P2、P3
'透過POWER變數傳到動作副程式,來控制脈波寬度,達到速制的目的

Sub go_front(p As Word)   '前進副程式
    Low 0
    Low 1
    Low 2
    Low 3
    Pulseout 0,p'對左輪控制IC的IN1送出脈波,產生正轉動作
    Pulseout 2,p'對右輪控制IC的IN1送出脈波,產生正轉動作
End Sub

Sub go_back(p As Word)   '後退副程式
    Low 0
    Low 1
    Low 2
    Low 3
    Pulseout 1,p'對左輪控制IC的IN2送出脈波,產生逆轉動作
    Pulseout 3,p'對右輪控制IC的IN2送出脈波,產生逆轉動作
End Sub

Sub go_right(p As Word)'右轉副程式
    Low 0
    Low 1
    Low 2
    Low 3
    Pulseout 0,p
    Pulseout 3,p
End Sub

Sub go_left(p As Word)   '左轉副程式
    Low 0
    Low 1
    Low 2
    Low 3
    Pulseout 1,p
    Pulseout 2,p
End Sub

v751953789 發表於 2011-2-22 14:12

利基的單板電腦應該不便宜吧!

magiccar 發表於 2011-2-23 10:34

可以用 EV8 ,一樣是用innoBasic的語言喔!
頁: [1]
查看完整版本: 遙控科學魔法車