Skip to content
Posts
都内から日帰りの日程 JR藤野9:00頃 バス5分(陣馬登山口 http://www.kanachu.co.jp/dia/diagram/timetable01/cs:0000800101-1/nid:00128788/dts:1502064000 山頂まで2時間弱 陣馬登山口バス停まで下山2時間弱 http://www.kanachu.co.jp/dia/diagram/timetable01/cs:0000801122-10/nid:00128815/rt:0/k:%E9%99%A3%E9%A6%AC%E7%99%BB%E5%B1%B1%E5%8F%A3 バス5分(陣馬登山口) JR藤野16:30頃 山ご飯で使用した道具
自律飛行するドローンの作成を始めています。 まだ途中ですが、詳しくは↓を参照してください
https://qiita.com/shigeru-yokochi/items/0a0a4f06cd8dec553159
↓裏側
概要 i2cで動作する3軸デジタルコンパスHMC5883Lの使い方です。 動作しないモジュールも出回っているみたいなので動かなくて悩むまえに確認してください。
動作しないモジュールについての記事はこちら↓ i2cアドレスが0x0dのHMC5883Lモジュールについて
確認箇所 ↓ 石はL883 2549 であることを確認する。 ↓ 0x1eで認識されることを確認する。 ↓ピンアサイン(参考) サンプルコード(c言語) #include <stdio.h> #include <linux/i2c-dev.h> #include <fcntl.h> #include <math.h> //-lm int HMC5883L_init(void); int HMC5883L_GetDirection(void); static int m_fd; static int m_nDirection; static int HMC5883L_write(unsigned char address, unsigned char data); static unsigned char HMC5883L_read(unsigned char address); static void HMC5883L_readData(int *idata); /***************************************************************** * 初期化 *****************************************************************/ int HMC5883L_init(void) { char *i2cfile = "/dev/i2c-1"; unsigned char i2caddr = 0x1e; unsigned char data; if ((m_fd = open(i2cfile, O_RDWR)) < 0) { printf("Faild to open i2c port\n"); return -1; } if (ioctl(m_fd, I2C_SLAVE, i2caddr) < 0) { printf("Unable to get bus access to talk to slave\n"); return -1; } data = HMC5883L_read(0x0a); if (data !
内容 手元にあるHMC588Lモジュール(3軸デジタルコンパス)が全く動作しない。 違う石を実装しているようだ。 結構出回っていると思うので、もし入手してしまった場合は本記事を参考にして頂ければ思い投稿します。
この記事の通りだった↓
https://www.raspberrypi.org/forums/viewtopic.php?t=172244&p=1102197
対策 別のモジュールを用意して動作確認をしました。
その記事はこちらです↓ 3軸デジタルコンパスHMC5883Lを使ってみる
動作しないHMC5883Lの見分け方 ICの刻印 誤:DA 5883 6012 正:L883 2230 i2cアドレス 誤:0x0d 正:0x1e (裏側参考)↓