More Related Content Similar to RoBoard 與 Lego NXT Sensors 之連接 Similar to RoBoard 與 Lego NXT Sensors 之連接 (20) RoBoard 與 Lego NXT Sensors 之連接3. RoBoard
• 24 PWM ⇒ 控制 PWM servo
• 4 serial ports ⇒ 控制 serial servo
• I2
C/ADC port ⇒ 各種 sensor, LEGO NXT
• USB port ⇒ Camera, Wii, Kinect
• Computing Power ⇒ 複雜的控制演算法
4. RoBoard 的附加價值
• 上網 , 打 BBS, MSN
– 雖然 不動跑 YouTube
• 動物機
– 超低功耗 (2W), P2P 極品
• 打 Word, 做投影片
5. OutLine
• RoBoard <--> NXT sensors 轉接線材製作
• RoBoard 控制 NXT Touch Sensor 原理
• RoBoard 控制 NXT Light Sensor 原理
• RoBoard 控制 NXT Sound Sensor 原理
• RoBoard 控制 NXT Ultrasonic Sensor 原理
• RoBoard 控制 NXT Motor 原理
6. NXT Sensors
Pin Number Color Name(Sensor)
1 White Anx
2 Black GND
3 Red GND
4 Green IPOWERx
5 Yellow DIGIxI0
6 Blue DIGIxI1
8. NXT Motor
Pin Number Color Name(Motor)
1 White Mx1
2 Black Mx2
3 Red GND
4 Green POWERMx
5 Yellow TACHOx0
6 Blue TACHOx1
9. • RoBoard 連接 NXT 轉接頭線材之製作
準備材料 : LEGO NXT 轉接頭 1( 可由翰尼斯購得 )
線材 6( 一般材料行購得 )
RoBoard <--> NXT 轉接線材製作 (1)
LEGO NXT 轉接頭
11. • 製作 AD 使用的連接線 ( 包含 10KΩ pull-up
resistor )
準備材料 : 10KΩ 電阻 1 ( 一般材料行購得 )
線材 2 ( 一般材料行購得 )
RoBoard <--> NXT sensors 轉接線材製作 (1)
10(9+1) kΩ 電阻
15. • Touch Sensor 與 RoBoard 的連接
RoBoard 控制 NXT Touch Sensor 原理
(2)
Touch Sensor
VCC(5V)
AD-VINx
GND
GND
RoBoard
with a 10KΩ pull-up resistor
17. • Touch Sensor 在 RoBoard 上的回傳值定義
RoBoard 控制 NXT Touch Sensor 原理
(4)
18. • RoBoard 控制 NXT Touch Sensor 範例 :
int val;
roboio_SetRBVer(RB_100); // 設定 RoBoard 版本
spi_Init(SPICLK_21400KHZ); // 初始化 SPI
val = adc_ReadCH(0); // 讀取 AD CH0 的值
if (val == ADC_READFAIL)
printf("ERROR: fail to read ADC value on channel 0!n");
else
printf("ADC value on channel 0 = %4dr", val);
RoBoard 控制 NXT Touch Sensor 原理
(5)
21. • Light Sensor 與 RoBoard 的連接
RoBoard 控制 NXT Light Sensor 原理 (2)
VCC(5V)
AD-VINx
GND
VCC(5V)
GPIO
with a 10KΩ pull-up resistor
RoBoard
Light Sensor
23. • Light Sensor 在 RoBoard 上回傳值的定義
RoBoard 控制 NXT Light Sensor 原理 (4)
當光線亮度較高時,回傳值會
較低。
當光線亮度較低時,回傳值會
較高。
PS: 另外紅色燈光的部分可藉由 GPIO 控制 : GPIO 1 ⇒
亮
GPIO 0 ⇒ 暗
24. RoBoard 控制 NXT Light Sensor 原理 (5)
• RoBoard 控制 NXT Light Sensor 範例 :
int val;
roboio_SetRBVer(RB_100); // 設定 RoBoard 版本
spi_Init(SPICLK_21400KHZ); //init SPI lib for accessing the A/D converter
rcservo_Init(RCSERVO_USENOPIN); // 設定為 GPIO 模式
val = adc_ReadCH(0); // 讀取 AD CH0 的值
if (val > 600)
rcservo_OutPin(RCSERVO_PINS6, 0); // 關掉紅燈
else
rcservo_OutPin(RCSERVO_PINS6, 1); // 開啟紅燈
25. NXT Sound Sensor
• 聲音感測器用來偵測週遭聲音大小,其測
量單位分為 dB( 分貝 ) 和 dBA( 調整分貝 ) 兩
種。
• 在機器人的應用上可以用來記錄聲音的聲
紋,進而做比對、辨識的應用。
27. RoBoard 控制 NXT Sound Sensor 原理
(2)
• Sound Sensor 與 RoBoard 的連接
VCC(5V)
AD-VINx
GND
VCC(5V)
GPIO
GPIO
with a 10KΩ pull-up resistor
RoBoard
Sound Sensor
29. • Light Sensor 在 RoBoard 上回傳值的定義
測量單位分為 dB( 分貝 ) 和 dBA( 調整分貝 ) 兩種 ( 利用
GPIO 改變 PIN5, PIN6 的 high, low 來控制測量單位 )
RoBoard 控制 NXT Sound Sensor 原理
(4)
聲音較大時回傳值較低 ; 聲音較小時,回傳值較高
。
30. RoBoard 控制 NXT Sound Sensor 原理
(5)
• RoBoard 控制 NXT Light Sensor 範例 :
int val;
roboio_SetRBVer(RB_100); // 設定 RoBoard 版本
spi_Init(SPICLK_21400KHZ); //init SPI lib for accessing the A/D converter
rcservo_Init(RCSERVO_USENOPIN); // 設定為 GPIO 模式
rcservo_OutPin(RCSERVO_PINS6, 0); // 設定測量單位 (dB or dBA)
rcservo_OutPin(RCSERVO_PINS7, 1); //(dB:1, 0 ; dBA:0, 1)
val = adc_ReadCH(1); // 讀取 AD CH1 的值
if (val == ADC_READFAIL)
printf("ERROR: fail to read Sound sensor on channel 1!n");
else
printf("Sound sensor return val = %4dr", val);
34. RoBoard 控制 NXT Ultrasonic Sensor 原理
(2)
• Ultrasonic Sensor 與 RoBoard 的連接
VCC(9V)
GND
GND
VCC(5V)
SCL
SDA
RoBoard
Ultrasonic Sensor
36. RoBoard 控制 NXT Ultrasonic Sensor 原理
(4)
• Ultrasoni Sensor 在 RoBoard 上回傳值的定義
當回傳的值越低時,代表離障礙物距離越短。
37. RoBoard 控制 NXT Ultrasonic Sensor 原理
(5)
• RoBoard 控制 NXT Ultrasonic Sensor 範例 :
unsigned char data[1] = {0};
roboio_SetRBVer(RB_100); // 設定 RoBoard 版本
i2c_InitSW(I2CSW_LEGO, 100); // 設定 I2C 為 LEGO Mode, clock delay 100ms
i2c_SensorRead(0x02 >> 1, 0x42, data, 1); // 讀取 Ultrasonic Sensor 的值
printf("data = %8dr", data[0]); // 讀取 AD CH1 的值
38. NXT Motor
• NXT Motor 可做為驅動車子的馬達,或是應用於需要
旋轉的關節等等。使用者可以控制馬達的轉向、轉動
角度與轉動速度。
39. RoBoard 控制 NXT Motor 原理
(1)
馬達
編碼器
NXT Motor
• NXT Motor 為直流馬達與編碼器所組成,跟伺服馬達相比
,少了控制器。
馬達
編碼器
Servo Motor
控制器
44. PIN Color Name
1 White Mx1
2 Black Mx2
3 Red GND
4 Green POWERx
5 Yellow TACHOx0
6 Blue TACHOx1
Motor
Encoder
NXT Motor
RoBoard 控制 NXT Motor 原理 (6)
• NXT Motor 訊號腳位 :
45. RoBoard 控制 NXT Motor 原理 (7)
• RoBoard 、 H-Bridge IC 和 Motor 的連接 ( 無回朔 )
IN1
IN2
OUT1
OUT2
GND
VCC
PIN Color Name
1 White Mx1
2 Black Mx2
PWM
PWM
GND
Vxx
GPIO
GPIO
H-Bridge RoBoard
NXT Motor
47. RoBoard 控制 NXT Motor 原理 (9)
• RoBoard 控制 NXT 範例 :
Unsigned long duty = 60L, period = 128L;
roboio_SetRBVer(RB_100);
rcservo_Init(RCSERVO_USEPINS3 + RCSERVO_USEPINS4);
rcservo_EnterPWMMode();
rcservo_SendCPWM(RCSERVO_PINS3, period, duty); // Clockwise
rcservo_StopPWM(RCSERVO_PINS3);
rcservo_SendCPWM(RCSERVO_PINS4, period, duty); // Counterclockwise
rcservo_StopPWM(RCSERVO_PINS4);
rcservo_Close();
49. PIN Case 1 Case 2 Case 3 Case 4
PIN5 H → H H → L L → L L → H
PIN6 L → H H → H H → L L → L
• 回朔訊號 : 逆時針旋轉
RoBoard 控制 NXT Motor 原理 (11)
PIN5
PIN6
50. PIN Case 1 Case 2 Case 3 Case 4
PIN5 H → H H → L L → L L → H
PIN6 H → L L → L L → H H → H
RoBoard 控制 NXT Motor 原理 (12)
• 回朔訊號 : 順時針旋轉
PIN6
PIN5
51. RoBoard 控制 NXT Motor 原理 (13)
• H-Bridge IC 的電流回朔功能,偵測直流馬達的的電
流大小。
簡易直流馬達等效電
路
52. RoBoard 控制 NXT Motor 原理 (14)
• RoBoard 、 H-Bridge IC 和 Motor 的連接 ( 有回朔 )
IN1
IN2
OUT1
OUT2
GND
VCC
PIN Color
1 White
2 Black
3 Red
4 Green
5
Yello
w
6 Blue
NXT Motor
H-Bridge
PWM
PWM
GND
VCC(5V)
GPIO
GPIO
RoBoard
GPIO
54. RoBoard 控制 NXT Motor 原理 (16)
• RoBoard 讀取 NXT Motor 回授範例 :
int count = 0; // 周期數
unsigned long data, pre_data;
roboio_SetRBVer(RB_100);
pre_data = rcservo_Inps(RCSERVO_USEPINS1 + RCSERVO_USEPINS2);
while(!kbhit()){ // 監控 PIN 腳的電位變化
data = rcservo_Inps(RCSERVO_USEPINS1 + RCSERVO_USEPINS2);
if(pre_data == 1L && data == 3L) // 1 : PIN5 = 1, PIN6 = 0
count -= 1; // 3 : PIN5 = PIN6 = 1
else if(pre_data == 3L && data == 1L)
count += 1;
pre_data = data;
}
Printf(“%dn”, count);
Editor's Notes dBA , dBB , dBC 這三組濾波電路是針對人耳對於低頻的感觀在某個音壓下,會有不同的聆聽表現, 舉例當我們聆聽小聲的音樂電平時,對於低頻的反應是不靈敏,然後就量測麥克風儀器而言, 在任何音壓裡,對於低頻應有的能量取得是一樣的靈敏,這樣會造成在小音壓底下,麥克風量到的 與耳朵聽到的會不一致,為了讓人耳這樣的等響曲線與量測的曲線相似,在音壓量計上,或是量測曲線儀上,都會提供大約 2~3 個不同音壓範圍的曲線濾波選擇。 聲壓位準在 20~55 dB SPL 範圍內,建議使用 A 加權曲線網路 . 聲壓位準在 55~85 dB SPL 範圍內,建議使用 B 加權曲線網路 . 聲壓位準在 85~140 dB SPL 範圍內,建議使用 C 加權曲線網路