一直有朋友問我,吉哥積木是否有循線感測器的積木,本來我想說,循線感測器不就是數位讀取某個腳位的資料不就可以達到這個功能了嗎?後來也是因為太多人問了,想想,如果有個可以設定腳位並且能方便指定讀取某個腳位資訊的積木,而且能更直覺的設定感測器偵測到黑色及白色,這樣也不錯,於是便設計了這個循線感測器的積木,它可以透過下拉選單的方式設定及讀取一到五路的循線感測器。我手邊只有各種不同廠牌的一路循線感測器,還有一個二路感測器,所以我沒測試過三路到五路的感測器,不過應該是沒有問題的。也可以把許多一路的感測器組合在一起,例如把三個一路感測器組合起來利用一個三路感測器積木一起控制。
積木的位置在「吉哥積木」→「模組」→「循線感測器」選單內,且適用所有開發板。有的感測器同時提供數位以及類比讀取的腳位,本積木只適用於數位式的感測器。
以下以二路循線感測器為例,將數位讀取到的資訊透過序列埠顯示在電腦螢幕。
先在初始化區塊設定循線感測器的腳位,以下的範例以二路循線器為例,不同廠商生產的循線感測器讀取到的數值會不同,有的感測器偵測到黑色時是1,偵測到白色時是0;有的感測器則正好相反,偵測到黑色時是0,偵測到白色時是1。所以在使用時要知道自己手中的循線感測器讀取的狀況。以下的範例,左邊和右邊的感測器不是同一個廠商的感測器,它們讀取到的值也剛好相反,開啟Putty後便能看到偵測到的資訊。
不同廠商生產的感測器,讀取數值不一樣,左邊的感測器偵測到白色的部份讀取到1,右邊的感測器偵測到白色的部份讀取到0。
不同廠商生產的感測器,讀取數值不一樣,左邊的感測器偵測到黑色的部份讀取到0,右邊的感測器偵測到黑色的部份讀取到1。
範例一感測器可以偵測到黑色以及白色,讀取的值為1或0,但是在寫程式的時候靠1和0不夠直覺,我只想知道是否偵測到了跑道(黑色),或是跑出了跑道(白色),以下的範例修改範例一,將黑色或白色的資訊透過序列埠顯示在電腦螢幕。積木的預設是如果讀取到1便會判定是黑色,讀取到0便會判定是白色,以下的範例,左邊的感測器感測結果和預設的情況相反,左邊感測器的積木便勾選「反相」就可以修正回來了!
透過感測到黑或白的積木,可以更直覺的使用循線感測器。如果碰到感測器偵測的結果剛好相反時,可以勾選「反相」便可以修正到想要的結果。以下的照片顯示偵測到白色區域時的結果。
透過感測到黑或白的積木,可以更直覺的使用循線感測器。如果碰到感測器偵測的結果剛好相反時,可以勾選「反相」便可以修正到想要的結果。以下的照片顯示偵測到黑色區域時的結果。
以下的範例以兩路的循線感測器為例,如果左右兩邊的感測器都是偵測到黑線是1,偵測到白色是0,因此偵測的積木不需要設定反相。
當左右兩邊都是偵測到黑色時,車輛直行。
當左邊偵測到白色時,車輛右轉。
當右邊偵測到白色時,車輛左轉。
如果搭配吉哥積木的L9110馬達驅動板積木的話,大概的範例就如同底下的截圖:
簡單的循線車範例