Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz

要如何讓馬達動呢?

查看數: 8833 | 評論數: 21 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發佈時間: 2010-5-16 12:16

正文摘要:

目前可以開始寫程式了,但是要如何讓馬達動呢? 我裝了一個servo在第0個位置,然後寫了下面的code 但看了文件,好像還不會讓它動起來~~~ 請問有人可以教一下嗎? 謝謝 #include <stdio.h> #include <stdlib.h> #inclu ...

回復

mzw2008 發表於 2010-5-20 16:13:06
天啊...風扇, 哈哈.....

roboard的特異功能還多著哩
DMP這家公司就專搞嵌入系統的
就是專門應用在一些奇怪的應用領域的啊
寫好的程式要run就是丟到啟動或是弄成service而已

但是不接VGA卡 , 其實對省電來講幫助不大...
我主要是看中他不接以後, 板子的體積會變小
miaoichi 發表於 2010-5-20 07:04:03
原來要貼散熱片呀~~~好幾次都覺得爆熱的,都用大台電風扇直接吹,還好沒熱掉。

不用插卡也可以開喔??那如果寫好的程式要run
也可以自動執行嗎?
mzw2008 發表於 2010-5-19 23:46:01
散熱片我就是去買電腦專門貼在RAM上面那種小片的而已
只要有貼就好
不用管是不是很大片
但要小心旁邊的零件比晶片高了一點點
散熱片貼的時候小心不要碰到

耗電的問題
板子: 5V*400mA 約是2W
VGA: 5V * 80mA =0.4W
其實...一顆SERVO就超過他了, 何況你一台機器人裝了十多顆SERVO, 所以其實還好,
而且硬要省電可以連VGA卡都拔掉不用裝, 一樣可以用
miaoichi 發表於 2010-5-19 22:28:23
= = 果然可以動了~~~~~感謝樓上諸位大大~~~
miaoichi 發表於 2010-5-19 15:50:12
對呀,我的vga很熱~~~~~不知要貼哪一種的~~~~~還有
roboard好像會很耗電。我的2400mAh的很快就沒電了
mzw2008 發表於 2010-5-19 13:56:04
忽然發現你的VGA沒有貼散熱片喔...
快去貼一片吧
這樣用還滿危險
mzw2008 發表於 2010-5-19 13:55:20
哈哈哈....我昨天講的位置你沒仔細看喔
果然有圖有真相
真的是接錯
其實板上就有標示, 仔細看清楚喔
miaoichi 發表於 2010-5-19 10:32:44
原來0 和 1 是與 其他14個是分開的喔~~~~,害我一直以為那個就是第1個~~~
晚上再來試試~~~謝謝喔
acen2008 發表於 2010-5-19 10:03:12
HI~
圖中你的馬達接到channel 2了(S3)
請換到channel 0和1應該就可以了
另一種方法,你將程式中的channel改為channel 2也可以:)
lucrece_lu 發表於 2010-5-19 08:06:34
S1 = channel 0
你再確認一下你有沒有接錯吧
還是你照起來 這樣也許快一點
mzw2008 發表於 2010-5-19 01:01:08
聽起來就超怪
應該要會動了哩

板子電壓給多少?
miaoichi 發表於 2010-5-19 00:42:28
看起來我接的PWM位置沒錯,但是還是沒有動起來~~~~
還有沒有什麼可能??
mzw2008 發表於 2010-5-18 23:30:47
http://www.roboard.com/Files/RB-100/RoBoard_RB-100_v2r0A.pdf
第七頁
S1從SPI右邊那個開始往"上"算
USB右邊那個是S16
板子上面也有標示喔
miaoichi 發表於 2010-5-18 23:01:17
回復 4# acen2008


    我將你的code整個貼上,然後執行,還是沒有反應~~~~~
另外偷偷問一下, pwm第一個是哪一邊呀??看了文件好像沒有說得很清楚`~~
mzw2008 發表於 2010-5-18 17:39:03
com 1...那是要外接吧
我是說板子上的部份耶
外接等於是要多少都有了啊
像我用com接出來...上百顆都能接了---> 應用在遊樂場的跑馬台
miaoichi 發表於 2010-5-18 16:46:01
原廠文件有說
可使用 25~32 pwm -> 利用com1來改
mzw2008 發表於 2010-5-18 16:21:57
HI~
rcservo_SendPWMPulses和rcservo_SetServo是設定單一channel的函數
所以channel參數只能輸入0、1、2、 ...
acen2008 發表於 2010-5-18 13:41

咦?! 請教一下喔
Roboard不就24組PWM而已嗎?
為何會說要設定到24以上還需要另外的花樣?
哪來的24以上?
acen2008 發表於 2010-5-18 13:41:31
本帖最後由 acen2008 於 2010-5-18 14:21 編輯

HI~
rcservo_SendPWMPulses和rcservo_SetServo是設定單一channel的函數
所以channel參數只能輸入0、1、2、3...、23喔 (要使用到23以上要小改一下RoBoard)
而rcservo_Initialize()中的channel是可設定為複數的,假如你要使用channel 0、1、4
輸出PWM,則channel = RCSERVO_USECHANNEL0 + RCSERVO_USECHANNEL1 +
RCSERVO_USECHANNEL4,假如只要用到channel 1的話,
channel = RCSERVO_USECHANNEL1 就可以了。

下面的code是我測過可動的,不妨參考一下:)

#include <stdio.h>
#include <conio.h>
#include <roboard.h>

int main(void)
{
        //使用的Library是V1.6版要呼叫roboio_SetRBVer(),不是則不用
        //使用的硬體是RB100,輸入參數=RB_100,使用RB110,輸入參數=RB_110
        //Note : RB110只有16組PWM
        roboio_SetRBVer(RB_100);
       
        //rcservo_SetServo是設定單一channel的函數,channel = 0 ~ 23
        //必須在rcservo_Initialize之前呼叫
        rcservo_SetServo(0, RCSERVO_SERVO_DEFAULT_NOFB);
        rcservo_SetServo(1, RCSERVO_SERVO_DEFAULT_NOFB);

        //初始化:把Channel 0和1切換成PWM輸出,其他channel為GPIO
        if(rcservo_Initialize(RCSERVO_USECHANNEL0 +
                                       RCSERVO_USECHANNEL1) == false)
        {
                //初始化失敗則印出錯誤訊息
                printf("%s",roboio_GetErrMsg());
                rcservo_Close();
                return -1;
        }

        //進入PWM Mode
        rcservo_EnterPWMMode();
       
        //將period = 10000us,duty = 1500us,count = 50 次的PWM從channel 0 輸出
        //將period = 10000us,duty = 1700us,count = 10 次的PWM從channel 1 輸出
        //rcservo_SendPWMPulses是設定單一channel的函數,channel = 0 ~ 23
        rcservo_SendPWMPulses(0,10000L,1500L,50L);
        rcservo_SendPWMPulses(1,10000L,1700L,10L);

        printf("Send PWM pulse.\n");

        //等channel 0 的PWM送完
        while (rcservo_IsPWMCompleted(0) == false);

        //結束程式
        rcservo_Close();
        return 0;
}

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-11 01:49 , Processed in 0.235451 second(s), 11 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表