Robofun 機器人論壇
標題:
請問一下RM-G144與rb-100的連接
[打印本頁]
作者:
miaoichi
時間:
2010-6-14 09:53
標題:
請問一下RM-G144與rb-100的連接
有沒有大大可以教一下,
怎麼接RM-G144與rb-100。
原廠附的線好像不能直接接上rb-100
謝謝
作者:
mzw2008
時間:
2010-6-14 14:45
R-110可以直接接
R100就是看文件自己做線去接了
http://www.roboard.com/Files/G144/RoBoard_RM-G144.pdf
第11頁
和R100的I2C那邊一條一條(pin對pin)自己接上去
VCC/GNC/SDA/SCL 四條不要接錯
原廠的範例程式是可以直接動的
作者:
lucrece_lu
時間:
2010-6-14 15:15
把黑色那頭的pin 挑出來 就可以 單 pin 接了
GND 可以接到 PWM的 GND
Vcc, SCL, SCA 接到 SPI/I2C 那邊的 2,4,6 Pin
作者:
mzw2008
時間:
2010-6-14 15:33
本帖最後由 mzw2008 於 2010-6-14 15:35 編輯
啊...哈哈, 倒是沒注意腳位可以這樣對準上去
用美工刀就可以把黑線挑出來喔
可別重焊XD
R100 的I2C定義在
http://www.roboard.com/Files/RB-100/RoBoard_Training_HW.pdf
第29頁
作者:
lucrece_lu
時間:
2010-6-14 16:01
當初那黑色 1x5 是克意加上去的
不然出貨時打算是 裸 pin
但怕 pin 腳去弄壞材
才多扣上黑色 connector 做保護用
作者:
miaoichi
時間:
2010-6-14 18:59
我本來也是這樣想,果然一樣
謝謝了
作者:
miaoichi
時間:
2010-6-14 22:28
另外請問一下,原廠sample code放在哪?
我找不到
作者:
mzw2008
時間:
2010-6-14 23:00
本帖最後由 mzw2008 於 2010-6-14 23:02 編輯
sample code在sensor寄到那天晚上我就寄給你了啊
這是基本的I2C介面控制程式
小修改就能變成用arduino控制了, 相關的規格在這裡,
Address 在官網裡面都有答案, 請自行查詢(打開文件搜尋address)
http://www.roboard.com/Files/G144/HMC5843.pdf
http://www.roboard.com/Files/G144/ADXL345.pdf
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <roboard.h>
int main(void){
unsigned char d1,d2,d3,d4,d5,d6;
unsigned long i2c_clock = 400000L;
unsigned int i2c_address = 0x53;
if (i2c_Initialize(I2CIRQ_DISABLE) == false)
{
printf("FALSE!! %s\n", roboio_GetErrMsg());
return -1;
}
i2c0_SetSpeed(I2CMODE_FAST, i2c_clock);
i2c0master_StartN(i2c_address,I2C_WRITE,2);//write 2 byte
i2c0master_WriteN(0x2d); //Pwoer_Control register
i2c0master_WriteN(0x28); //link and measure mode
delay(100);
i2c0master_StartN(i2c_address,I2C_WRITE,2);//write 2 byte
i2c0master_WriteN(0x31); //Data_Format register
i2c0master_WriteN(0x08); //Full_Resolution
delay(100);
i2c0master_StartN(i2c_address,I2C_WRITE,2);//write 2 byte
i2c0master_WriteN(0x38); //FIFO_Control register
i2c0master_WriteN(0x00); //bypass mode
delay(100);
do
{
i2c0master_StartN(i2c_address, I2C_WRITE, 1);
i2c0master_SetRestartN(I2C_READ, 6);
i2c0master_WriteN(0x32); //Read from X register (Address : 0x32)
d1 = i2c0master_ReadN();//X LSB
d2 = i2c0master_ReadN();//X MSB
d3 = i2c0master_ReadN();//Y LSB
d4 = i2c0master_ReadN();//Y MSB
d5 = i2c0master_ReadN();//Z LSB
d6 = i2c0master_ReadN();//Z MSB
//Data : 10 bits
printf("Acceleration of X-axis :%d\n", (d2 & 0x02) ? ~(0xFFFF ^ (d2*256+d1)) : d2*256+d1);
printf("Acceleration of Y-axis :%d\n", (d4 & 0x02) ? ~(0xFFFF ^ (d4*256+d3)) : d4*256+d3);
printf("Acceleration of Z-axis :%d\n", (d6 & 0x02) ? ~(0xFFFF ^ (d6*256+d5)) : d6*256+d5);
delay(100);
}while(getch() != 27);
i2c_Close();
return 0;
}
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2