家中有養貓的主人們,當你出外工作或上課讓牠獨自在家裡時,是否會想起牠們、想念跟牠們進行互動,或者怕牠們無聊呢?沒問題,趣味逗貓器是能讓你利用雲教授App也能在外跟小貓們互動的物聯網神器,使用伺服馬達操控雷射光發射的位置,讓小貓們跟著你的雷射筆進行互動,也讓你在工作之餘產生一些娛樂性。
寵物是現代人生活中最重要的夥伴,透過CPF伺服馬達來打造一台兼具娛樂與實用性的逗貓器,讓主人可以再忙碌之時,也可以藉由逗貓器來陪伴自己生命中最重要的夥伴。
宏碁雲教授 - 1個
Leonardo 開發板 - 1個
Grove 擴充板 - 1個
雷射模組 - 1個
180度伺服馬達 - 1個
連接雲教授,開啟CPF Arduino,進入Lesson 8 插槽模式。
先將雲教授與相對應感應器連接至Grove擴充板,雷射模組連接上D2插槽,180度伺服馬達則是連接至D4插槽,如圖:
圖
點擊執行按鈕,可對目前感應器進行各別操作與顯示,D2欄位可以開關雷射模組,D4欄位則是可以控制180度伺服馬達的角度。
在開始撰寫程式碼之前,先來看一下本程式自訂的函式(function)介紹:
laserSensorSet()
利用D2欄位來控制雷射模組的開關。
servoAngleControl()
控制伺服馬達的轉動角度。
現在,要開始撰寫趣味逗貓器的程式碼,點擊修改按鈕進入程式碼編輯介面,將預設的程式碼全部刪除。
首先撰寫laserSensorSet()
函式來控制雷射光點的開與關。
var laserSensor;
function laserSensorSet(){
laserSensor = ui.get("socket d2");
cpf.set("socket d2", laserSensor);
return laserSensor;
}
程式解析:
laserSensorSet()
。laserSensorSet()
函數中,使用laserSensor變數來取得ui上D2區塊的開關數值。laserSensorSet()
函數中,使用laserSensor變數來控制雷射模組的開關。laserSensorSet()
函數中,回傳laserSensor變數。首先撰寫servoAngleControl()
函式,透過ui上的servo控制bar,來變換servo的角度。
var laserSensor;
var servo;
function laserSensorSet(){
laserSensor = ui.get("socket d2");
cpf.set("socket d2", laserSensor);
return laserSensor;
}
function servoAngleControl(){
servo = ui.get("socket d4");
cpf.set("socket d4", servo, 20);
}
程式解析:
servoAngleControl()
。servoAngleControl()
函數中,使用servo變數來取得ui上D4區塊的servo角度控制數值。servoAngleControl()
函數中,使用servo變數來控制D4的servo角度。開始撰寫主程式,當雷射光開啟時,便啟用D4的控制區塊控制伺服馬達轉動,當關閉時,停止伺服馬達的轉動。
var laserSensor;
var servo;
if(laserSensorSet() == 1){
servoAngleControl();
}else{
cpf.set("socket d4",0, 0);
}
function laserSensorSet(){
laserSensor = ui.get("socket d2");
cpf.set("socket d2", laserSensor);
return laserSensor;
}
function servoAngleControl(){
servo = ui.get("socket d4");
cpf.set("socket d4", servo, 20);
}
程式解析:
laserSensorSet()
函式時回傳數值為1時,呼叫servoAngleControl()
函式來啟動servo控制,並利用ui的D4區塊控制bar來控制servo角度。laserSensorSet()
函式時回傳數值不為1時,則設定D4插槽servo的角度及速度為0。以上已完成了程式碼的撰寫,最後在最後一行加上 cpf.repeat();
開啟迴圈進行重複執行的動作。
//趣味逗貓器//
var laserSensor;
var servo;
if(laserSensorSet() == 1){
servoAngleControl();
}else{
cpf.set("socket d4",0, 0);
}
function laserSensorSet(){
laserSensor = ui.get("socket d2");
cpf.set("socket d2", laserSensor);
return laserSensor;
}
function servoAngleControl(){
servo = ui.get("socket d4");
cpf.set("socket d4", servo, 20);
}
cpf.repeat();
趣味逗貓器是將物聯網技術發揮出來的一項應用,表示人們出門在外也能與家中寵物進行互動,而互動的方式有很多種,本文所介紹的是運用雷射光線與寵物貓進行的其中一項互動而已,你可以使用自走車、遙控車裝上逗貓棒,讓寵物貓可以追逐著遙控車,或者在趣味逗貓器加上聲音模組,叫出寵物的名字等等,還是平常都怎麼與自家寵物進行互動的呢?想像一下並加到雲教授中吧。