2012-05-30
自走車避障
'InnobotLineTracker.inb: Innobot Follow The Black Line
#DEFINE NORMAL_SPEED 40 'Set Innobot Normal Speed
#DEFINE ERROR_1 60 'Define Error for each Sensor Value
#DEFINE ERROR_2 30
#DEFINE ERROR_3 10
#DEFINE ERROR_4 0
#DEFINE ERROR_5 -10
#DEFINE ERROR_6 -30
#DEFINE ERROR_7 -60
Peripheral MySonar As SonarA @ 3
Sub Main()
Dim Distance As Word =0
Dim I,J,K,H,A,Sensor As Byte
Dim R, L,M,N,d, Err As Integer
Dim B As Integer =0
Low 10: Low 11
DO
MySonar.Ranging()
MySonar.GetDistance(1,Distance)
Sensor=(In(7)<<2)+(In(8)<<1)+In(9)
If (Distance>25 Or Distance=0) Then '超音波偵測距離大於25或等於0時執行
Select Sensor
Case &B100
Err = ERROR_2
Case &B110
Err = ERROR_3
Case &B010
Err = ERROR_4
Case &B011
Err = ERROR_5
Case &B001
Err = ERROR_6
Case &B000
If Err<0 Then
Err = ERROR_7
Elseif Err>0 Then
Err = ERROR_1
End If
Case &B111
Err = ERROR_4
Pause(200)
n+=1 '從開始時路徑上偵測到次交叉點n就+1
If (m=1) Then '當m=1時執行蜂鳴器程序
For d=0 To n Step d+1 '從0迴圈到n次,n為偵測交叉點次數
Sound(12,500,768)
Next d
Pause(20000) '迴轉180度之後遇交叉點停下
End If
End Select
R = (300+NORMAL_SPEED) + Err
L = (300-NORMAL_SPEED) + Err
Pulseout(10,L): Pulseout(11,R): PAUSE(16)
Else '超音波偵測小於25時開始轉彎繞行
If(b=0) Then '變數b=0時執行此段繞行障礙
For J=1 TO 20 '左轉45度
Pulseout(10,230)
Pulseout(11,260)
Pause(20)
Next J
FOR H=1 TO 70 '左轉後直行
Pulseout(10,250)
Pulseout(11,350)
Pause(20)
Next H
For K=1 TO 58 '右轉90度
Pulseout(10,320)
Pulseout(11,360)
Pause(20)
Next K
FOR A=1 TO 70 '右轉後直行
Pulseout(10,265)
Pulseout(11,335)
Pause(20)
Next A
b=1 '執行過一次繞行後b=1,以便於第2次遇障礙物執行迴轉180度
Else
For K=1 TO 76 '第2次遇障礙物時迴轉180度
Pulseout(10,250)
Pulseout(11,250)
Pause(20)
Next K
m=1 '偵測到第2次而迴轉180度之後設定m=1
End If
End If
Loop
End Sub
2012-05-29
jquery 練習
前置作業 請到
滑鼠指到 minified 右鍵另存新檔
檔名: jqueryfirst.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<style type="text/css">
a.test { font-weight:bold; font-size:5em; } <!--當執行a時放大五倍-->
</style>
</head>
<body>
<a href="http://ffej1022.blogspot.com/">三明治筆記本</a>
</body>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="jquerytest.js"></script>
</html>
新開一個筆記本
檔名: jquerytest.js
$(document).ready(function(){
$("a").click(function(event){
alert("hello word");
$("a").addClass("test"); //當執行a時放大五倍
$(this).hide("slow"); //慢慢的隱藏
event.preventDefault(); //停止超連結預設的動作,也就是不要前往另一個網頁
});
2012-05-24
[隨筆] 報名 scjp 線上報名 part2
收到認證信之後
請到這個頁面
http://www.pearsonvue.com/
點選 sign in
----
請到這個頁面
http://www.pearsonvue.com/
點選 sign in
輸入完帳密
會來到這一頁
點選 MY Account
再次輸入他寄給你的email帳密
登入後在左邊功能列選擇Schedule Exams
1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam
選項打勾,這是Java SE6的考試
選擇試題語言(English)
報名費為$125塊美金
好了點選右下角的next
在Country地方選擇(Taiwan)台灣後按Nextcity
輸入縣市名字不然您也可以將find the closest 設大一點
如: 20 centers
會出現考場
第一個是台北、彰化縣、中壢市、嘉義、台中....等
假設我選Hsinchu(新竹)記得點選右下角的next
考試日期,建議離報名日後2周左右較合適日曆上若出現灰色的日期則無法預約那天選訂日期後,右邊會出現考試時間的選擇選好後,按下select Appointment便可確認是否預約成功
- 付款方式
若需付費,請輸入您帳單地址及信用卡相關資料,輸入確認無誤後,請點選“ Next ”,即完成考試報名
考試前2-3天打電話到考試中心確認是否預約成功,當天僅需要帶雙証件,一份要有英文簽名(護照之類)的証件,並提早15分鐘左右到考場,需要填寫一些資料,數位簽名及拍攝証照上的照片。恆逸/巨匠有提供上鎖的置物櫃,考試時手機要關機,進去後有一台電腦提供上機考試、一隻白板筆和一個白板。試題為60題單選/複選題/拖曳填空題,答對率要61%(36.6題)才通過,之後會印出一張成績單,上面有你錯誤的題目類型和答對率以及通過與否。
2012-05-09
[javascript] 身分證檢查
<script language="JavaScript">
var local=new Array(34)
local[10]='A'
local[11]='B'
local[12]='C'
local[13]='D'
local[14]='E'
local[15]='F'
local[16]='G'
local[17]='H'
local[34]='I'
local[18]='J'
local[19]='K'
local[20]='L'
local[21]='M'
local[22]='N'
local[35]='O'
local[23]='P'
local[24]='Q'
local[25]='R'
local[26]='S'
local[27]='T'
local[28]='U'
local[29]='V'
local[32]='W'
local[30]='X'
local[31]='Y'
local[33]='Z'
function checkID(ID){
ID=ID.toUpperCase()
if(lengtherr(ID)){
alert('輸入的字號長度有誤!')
document.CodeForm.ID.value="填入您的身分證字號"
}else if(firstlettererr(ID)){
alert('身分證第一碼查無此英文字母:'+ID.substring(0,1))
document.CodeForm.ID.value="填入您的身分證字號"
}else if(numerr(ID)){
alert('輸入的身分證後九碼應為數字!')
document.CodeForm.ID.value="填入您的身分證字號"
}else if(checkerr(ID)){
alert('您輸入的身分證檢查碼有誤!')
document.CodeForm.ID.value="填入您的身分證字號"
}
}
function lengtherr(ID){
if(ID.length<10)
return 1
else
return 0
}
function firstlettererr(ID){
var fl=ID.substring(0,1)
var haserr=1
for(i=10;i<=35;i++){
if(local[i]!=fl)
continue
else{
haserr=0
break
}
}
if(haserr==1)
return 1
else
return 0
}
function numerr(ID){
var haserr=0
for(i=1;i<=9;i++){
if(parseInt(ID.substring(i,i+1))>0 || ID.substring(i,i+1)=='0')
continue
else{
haserr=1
break
}
}
if(haserr==1)
return 1
else
return 0
}
function checkerr(ID){
var se=new Array(10)
var we=0
var checkcode=0
for(i=10;i<=35;i++){
if(local[i]==ID.substring(0,1)){
se[0]=parseInt((i+'0').substring(0,1))
se[1]=parseInt((i+'0').substring(1,2))
break
}
}
for(i=1;i<=9;i++){
se[i+1]=parseInt(ID.substring(i,i+1))
}
for(i=0;i<=9;i++){
if(i==0)
we=we+se[i]
else
we=we+(se[i]*(10-i))
}
if(mod(we,10)!=0)
checkcode=((10-mod(we,10)))
else
checkcode=0
if(checkcode!=ID.substring(9,10))
return 1
else
return 0
}
function mod(a,b){
var r
r=Math.round(a/b)
if((b*r)>a)
r-=1
return (a-(b*r))
}
</script>
</head>
<body>
<form name="f" onsubmit="checkid(document.f.ID.value)">
<input name="ID" id="ID" value='填入您的身分證字號'
onFocus="if (this.value=='填入您的身分證字號') this.value='';"
onblur="checkID(document.CodeForm.ID.value);document.CodeForm.ID.value=document.CodeForm.ID.value.toUpperCase()"
size="27" maxlength="10" style="float: left">
<input type="button" name="bname" value="確認身分證" onclick="checkID(document.f.ID.value)">
</form>
2012-05-08
2012-05-04
2012-05-03
2012-05-02
嵌入式 三個交叉點
第一個交叉點 畢一聲
第二個 轉180
第三個 停下來 畢三聲
'InnobotLineTracker.inb: Innobot Follow The Black Line
#DEFINE R_NORMAL_SPEED 80 'Set Innobot Normal Speed
#DEFINE L_NORMAL_SPEED 70
#DEFINE ERROR_1 90 'Define Error for each Sensor Value
#DEFINE ERROR_2 60
#DEFINE ERROR_3 40
#DEFINE ERROR_4 0
#DEFINE ERROR_5 -40
#DEFINE ERROR_6 -60
#DEFINE ERROR_7 -80
Const Frequency As Word = 1047
Sub Main()
Dim I,Sensor As Byte
Dim R, L, Err,j,k,a,b As Integer
Low 10: Low 11
DO
Sensor=(In(7)<<2)+(In(8)<<1)+In(9) 'Combine L,M,R Sensor State to Sensor Variable
Sensor=(~Sensor) AND &B00000111
Select Sensor 'Select Modified Parameter By Sensor
Case &B100
Err = ERROR_2
Case &B110
Err = ERROR_3
Case &B010
Err = ERROR_4
Case &B011
Err = ERROR_5
Case &B001
Err = ERROR_6
Case &B000
If Err<1 Then
Err = ERROR_7
Elseif Err>1 Then
Err = ERROR_1
End If
Case &B111
Err = ERROR_4
j+=1
Select j
Case 1
Sound(12,200,1047)
Case 2
For k=1 To 38*2 'U Turn'
Pulseout(10,250):Pulseout(11,250)
Sound(12,16,1047)
Next k
Case 3
For a=0 To 3 Step a+1
Sound(12,400,768)
Next a
PAUSE(1000000)
End Select
End Select
R = (300+R_NORMAL_SPEED) + Err
L = (300-L_NORMAL_SPEED) + Err
Pulseout(10,L): Pulseout(11,R): PAUSE(16) 'Output control Signal
Loop
End Sub
訂閱:
文章 (Atom)