Robofun 機器人論壇
標題:
Arduino 控制 Roomba 機器人
[打印本頁]
作者:
coopermaa
時間:
2009-12-26 22:38
標題:
Arduino 控制 Roomba 機器人
Youtube 上看到的影片 "Basic roomba control by arduino":
[youtube]LNjn-CacSDA[/youtube]
影片示範以 Arduino 控制 Roomba,可以讓 Roomba 前進、後退、轉彎。
仔細看,可以看到 Arduino 接著一塊麵包板,上有 XBee module。我懷疑作者可能是用 ZigBee + 遙控器或 PC 軟體介面在控制 Roomba。Very funny.
PS: 本想貼在 Roomba 板,但驗證碼一直出錯(難道是我眼花了,7+4 不是等於 11嗎?怪怪~) ,所以貼到這板。
-----
Cooper Maa
http://coopermaa2nd.blogspot.com/
作者:
mzw2008
時間:
2009-12-26 23:19
習慣就好, 驗證碼程式功能似乎有瑕疵
這個網站的驗證碼害我一開始的時候差點放棄繼續在這裡的慾望
有好幾天都是連續怎麼輸入都說我打錯
害我還誤以為自己是不是沒戴眼鏡看不清楚咧
那時又不曉得要問誰, 幾天後自己就恢復了
結果我現在好像是因為等級有提升,已經不用輸入煩人的驗證碼了哩
不過影片的應用是很有趣
平時可以讓他自己跑來跑去
興趣一來就自己去遙控他, 沒電還會自己去充電, 應該滿好玩
但zigbee有個問題, 在室內距離太短, 遇到柱子或是牆壁容易掛掉
我最近才弄到1.5公里的Zigbee喔, 不過還沒測試清楚詳細功能
.....
路人甲: 拜託喔, 這何必測試, 跑到一公里外你還看的到這台我就輸你
作者:
coopermaa
時間:
2009-12-27 02:29
又遇到同樣的問題,驗證一直錯誤。驗證程式真的有點秀逗,問答 8+5=?,我輸入 13 沒用,想說好像都是那幾個問題,會不會是答錯題,其實是在問我 7+4 =?,索性輸入 11,居然真的過關了,希望下次有效,哈~
1.5 公里的 Zigbee ? 你是用 Digi 的 XBee-Pro 還是其它廠牌的產品?
作者:
mzw2008
時間:
2009-12-27 12:44
我之前都是關掉IE
重開就"可能"會變好
後來就不再有這個問題了
我的zigbee是自己開發的, 上面的晶片當然還是原廠的
就好像顯示卡說 什麼有華碩技嘉微星.....但事實上晶片還是nVidia/ATI啊
不過價格就得比市場上那種10幾公尺的要貴了
等級不一樣嘛
作者:
coopermaa
時間:
2009-12-27 12:52
3#
coopermaa
好奇驗證為什麼會失敗,我下載了 Discuz! 7.0 的 source 來看。找到丟出 "驗證問答回答錯誤,無法提交" 訊息的 code,有兩個地方:
1. ajax.php L93:
} elseif($action == 'checksecanswer') {
if($seclevel) {
$tmp = $seccode;
} else {
list($tmp, $expiration, $seccodeuid) = explode("\t", authcode($_DCOOKIE['secq'], 'DECODE'));
if($seccodeuid != $discuz_uid || $timestamp - $expiration > 600) {
showmessage('submit_secqaa_invalid');
}
}
require_once DISCUZ_ROOT.'./forumdata/cache/cache_secqaa.php';
!$headercharset && @dheader('Content-Type: text/html; charset='.$charset);
if(md5($secanswer) != $_DCACHE['secqaa'][substr($tmp, 0, 1)]['answer']) {
showmessage('submit_secqaa_invalid');
}
showmessage('succeed');
複製代碼
2. global.func.php L1197 & L1203:
if($secqaacheck) {
if(!$seclevel) {
list($seccode, $expiration, $seccodeuid) = explode("\t", authcode($_DCOOKIE['secq'], 'DECODE'));
if($seccodeuid != $discuz_uid || $timestamp - $expiration > 600) {
showmessage('submit_secqaa_invalid');
}
dsetcookie('secq', '');
}
require_once DISCUZ_ROOT.'./forumdata/cache/cache_secqaa.php';
if(md5($secanswer) != $_DCACHE['secqaa'][substr($seccode, 0, 1)]['answer']) {
showmessage('submit_secqaa_invalid');
}
$seclevel && $seccode = random(1, 1) * 1000000 + substr($seccode, -6);
複製代碼
showmessage('submit_secqaa_invalid') 就是丟出 "驗證問答回答錯誤,無法提交" 的來源...
接下來就要靠站長了... :D 從這兩個地方下手 debug,應該是可以找出問題
ps: 也許跟 cookie 有關吧
作者:
mzw2008
時間:
2009-12-27 13:12
$timestamp - $expiration > 600 , 看來應是指600秒?
還是0.6秒?
這行就很奇怪
產生驗證碼以後, 按下送出的時間差
0.6秒的話, 你怎樣試都不可能辦到的啊
作者:
coopermaa
時間:
2009-12-27 13:24
timestamp 是 1970 至今經過的 "秒數",應該是 600 秒沒錯。
比較有可能出錯的地方,我覺得是底下這行:
$_DCACHE['secqaa'][substr($seccode, 0, 1)]['answer'])
也許是 cache 的 seccode 對照錯了吧,不然怎會有時輸入錯誤的答案卻可以驗證過關。
作者:
mac1
時間:
2009-12-28 15:55
之前也為了驗證碼搞了很久...
後來發現每次都是這幾個數字在換....
所以啦...這個 漏洞 就是,
輸入上一次的結果就對了
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2