adsense

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 右鍵另存新檔

寫code囉

檔名: 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
輸入完帳密
會來到這一頁
點選 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便可確認是否預約成功
cisco-test-reister-guide
  • 付款方式
    若需付費,請輸入您帳單地址及信用卡相關資料,輸入確認無誤後,請點選“ 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

證照


證照
有目的的考取 vs 盲目考取
用不到的別考 浪費錢而已
重點是在準備過程 不是在那張紙

2012-05-04

joomla 2.5 語言修改

登入後台
滑鼠滑到extensions 
點選 extension manageer
選擇檔案 要zip喔
前台+後台
上傳
所以要上傳兩次

回到主畫面
選language manager


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