Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 11319|回復: 12
打印 上一主題 下一主題

請教6352 電子羅盤的控制

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-7-29 17:29:02 | 顯示全部樓層 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
小弟買了個電子羅盤, 搭配藝科買來的arduino Mega
不過怎麼接都沒有任何反應, 用網站抓來的範例程式

腳位有正確接到SDA/SCL
執行以後沒辦法接收到任何資訊哩
請教是否有大大們使用過這樣的組合呢
2#
 樓主| 發表於 2009-7-30 15:26:32 | 顯示全部樓層
感謝回覆

他板子上已經標明的很清楚
(原廠PDF文件卻沒有清楚的寫出, 也找不到詳細版子放大接線指示圖)
pin 20/21是這兩個腳位
可是我插上去也是不行
資料'A' 送過去 6532以後, 等半天也沒有任何資料的回傳

程式碼用的是藝科網站上的那個不行, 我有去wire網站抓來那個程式碼也差不多
也是沒反應
裡面那段
  if(2 <= Wire.available())    // if two bytes were received
  {
    reading = Wire.receive();  // receive high byte (overwrites previous reading)
    reading = reading << 8;    // shift high byte to be high 8 bits
    reading += Wire.receive(); // receive low byte as lower 8 bits
    reading /= 10;
    Serial.println(reading);   // print the reading
  }
我有改為
  while (Wire.available()) // 一但抓到任何回傳都直接印出來
  {
    reading = Wire.receive();
    Serial.println(reading);   // print the reading
  }

但測試半天依舊抓不到任何東西
EZ1超音波/ping/加速度計同時上去都沒問題, 但現在單接6352就怎麼弄都沒辦法
請各方高手幫幫忙吧
感激不盡
3#
 樓主| 發表於 2009-7-31 13:47:20 | 顯示全部樓層
本帖最後由 mzw2008 於 2009-7-31 13:48 編輯

呃? 板子上沒寫? 寄來只有塑膠包裝袋和裡面的一個電路板
不過根據上面畫的那個圖樣我覺得是Sparkfun  (很像一隻鴿子)

另外我數位相機被借走,想畫個我的接線圖上來提供參考
不過這裡的圖片要如何上傳啊? 沒提供介面@@
等於需要我自己有空間, 然後提供超連結喔?
4#
 樓主| 發表於 2009-7-31 13:56:30 | 顯示全部樓層
另外, 照原廠網站講的接analog P4 / P5的作法我也是過一樣不行

個人猜想, MEGA的定義和別的東西不太一樣
因為原廠網站目前為止還沒有更詳細的文件出現
可能還在撰寫中, 其他版本都有相關的網頁或是PDF了
http://arduino.cc/en/Guide/HomePage
裡面的GettingStart目前為止還沒出現MEGA版本的超連結

這塊板子說實話還滿好用
本來一看到覺得很複雜, 後來仔細閱讀原廠文件發現她線路這樣安排真的很好做事
只要搭一塊ArduinoMEGA擴充版上去, 上面就可以自己悍接一堆想要的東西
電路的整合性就會比較好
前幾天才用2個7位數字顯示器作了個數位計時器來玩
用電路板悍成一塊, 底下的針腳直接插上去就好, 不需要用麵包版搞的跟被搶打到一樣
5#
 樓主| 發表於 2009-7-31 16:31:39 | 顯示全部樓層
感謝這麼熱心幫助回答
我有很仔細看了您的程式碼, 發現其中有個我一直不明白的地方
I2C會有什麼MASTER/SLAVE的關係, 這是什麼呢?!

您的程式碼中有一行:
#define DS1307_I2C_ADDRESS 0×68

632的程式碼中也有一行
int compassAddress = 0x42 >> 1
// the default 7-bit slave address is 66 (0x42)
// shift the address 1 bit right,
// the Wire library only needs the 7 most significant bits for the address
上面這段英文的意思是說 :預設的7bit 紀錄IO 位址, 在SLAVE模式下是66?, 所以右移1bit變成33?
33 是指變成MASTER?! 這兩者的關係到底是什麼呢!?

我有改過, 不管有沒有那個>>1位移指令, 都沒反應

另外, 原廠程式碼說到
  Wire.endTransmission();     // stop transmitting
  delay(10);                   // 文件建議最少6秒???  才能讀取傳回值, 可是我找的原始碼卻寫10ms?
  Wire.requestFrom(compassAddress, 2);

而我看您的程式碼裡面, 這個delay是根本省掉了?  這是說根本不需要DELAY?
Wire.requestFrom(DS1307_I2C_ADDRESS, 7);<---沒delay就算了, 還一口氣讀7byte?
哈哈

抱歉喔, 因為我對這個部分實在有太多疑問, 網站的資訊又分散各處
實在是努力很久沒有結論哩, 希望不吝分享使用經驗喔,感激不盡
6#
 樓主| 發表於 2009-7-31 23:42:59 | 顯示全部樓層
怪!!!!
這程式碼真的差別不大啊, 跟我抓的版本真的是幾乎一樣
可是....可以RUN了, 天啊 , 我卡住一個禮拜的問題, 可以RUN了
請受小弟充滿誠意的感激一鞠躬啊!!!!!

就只是多了些pinXXX的指令, 這些指令只是讓LED燈亮吧, 應該對6352沒影響才對
為何這樣就可以動了啊, 超怪的
還是因為Wire.begin(); 這行呢?!   
因為我看原廠的程式這行是在Serial.begin(9600); 之前, 您的版本是在之後...這樣會有差喔?

會收不太到感覺是因為中間receive的時候要給她點時間,
所以while迴圈之前加個DELAY(50)就可以比較正確收到
角度好像是正確了, 我拿圓規和羅盤去對好像還滿準

啊....感動!!! 真是太感謝
正好工廠告訴我乒乓球砲的零件也完成了, 哇哈哈, 雙喜臨門啊
開香檳慶祝去.....

不過, 小弟有個疑問還請不吝指教
請教您是在哪邊工作啊? 怎會有做這個的經驗 (我是無業遊民 , 在家接CASE, 吃自己的哩)
7#
 樓主| 發表於 2009-8-2 00:46:25 | 顯示全部樓層
問題是指北針不能接受DA/CL或是PWN或是DIGITAL訊號吧
他只對你把他搖來搖去會有反應

不過, 昨天看到窮人版多點觸控螢幕, 讓我想到
我也來做個窮人版羅盤好了
把最便宜的webcam對準指北針, 然後自己影像辨識...哈哈(成本應該能低於兩百)
不過應該也不會有人跟我買這個吧@@
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-6-6 00:17 , Processed in 0.240010 second(s), 9 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表