「デバイス」タグアーカイブ

Electric Imp でI2C

Electric Imp でI2Cを動かす方法

下記は参考に書いたサンプルソースで実際に動く保証をするものではありません
——————————————————————
[Device]
——————————————————————

//6軸加速度センサMPU-6050の値を想定しています。
i2c <- hardware.i2cQP;

//最初に、I2Cを使うことを宣言します。
//i2cQPは、使用するI2Cのポート番号です。
//imp004m impExplorer Kitで使用できるI2Cは i2cQPの
//みなので問題ありませんが、
//モジュールや基板によってはポート番号が変わる場合
//がありますのでご注意が必要で

i2c.configure(CLOCK_SPEED_400_KHZ);
//I2Cのクロックを設定します。I2Cのクロックはセンサーの
//仕様に合わせて設定しますが、基本は400KHzで動作します。

local address = (0x68<<1);
//I2Cでアクセスするセンサーのアドレスを指定します。
//今回使用するセンサーはMPU-6050です。MPU-6050のアドレス
//は b1101000 であり、
//16進数で記述すると0x68になります。 ここではI2Cのアドレス
//を8ビットで表記するので、1ビット分左にずらして指定します。
//readとwriteを使ってデータのやりとりを行います。

i2c.write(address,"\x6B\x00");
//MPU-6050のデーターシートより、0x6Bに0x00を書き込むことで
//Resetが解除され使用開始することができます。
//I2Cでのデータのやりとりは文字列で行います。16進数のデータ
//を\x00と表記して記述します。癖がありますが、慣れると書き
//易いです。
//続いて、readですが、

local result = i2c.read(address,"\x3b", 14);
//と記述します。"/x3b"は、読み出したいレジスタのアドレスで、
//その次の14で読み出すデータサイズを指定します。
//これにより、3軸の加速度データとジャイロデータを読み出す
//ことができます。
//その後、センサーより受け取ったデータを Agent Codeに転送します。
agent.send("reading.sent", result);

——————————————————————
[Agent]
——————————————————————

device.on("reading.sent",stream);
//で受け取り、指定したstream関数を読み出します。

function stream(data) {
server.log(data);
}

//これにより、センサーを受け取ったデータを確認することができます。

文・ソース:北神

株式会社アバンドでは、IoTに関するネットワーク開発、ハードウエア開発を行っております。

まずは、お気軽にお問い合わせください。

ImpにArduinoからデータ送りたい。超簡単サンプル。

Arduinoから生き死をアナログデータで送って、imp で受信する方法
ツイッターに送信するサンプル。
impExplorer Kitを使った場合です。

Arduinoのプログラムは送信アナログで3V程度以内の通信にして下さい。
——————————————————————
Device
——————————————————————


#require "WS2812.class.nut:3.0.0"
// スリ―プタイム
const sleepTime = 60;

//はじから3つ目のポート
pot <- hardware.pinK;

// アナログのポート宣言
pot.configure(ANALOG_IN);

// ledの点滅
led <- null

function flashLed() {
    led.set(0, [0,0,128]).draw();
    // Wait 50 ms
    imp.sleep(0.05);
    led.set(0, [0,0,0]).draw();

}

//サーバ側に送る

function poll() {
    // Read the pin and log its value
    server.log("poll read");
    local pot =pot.read()
    server.log(pot);
    agent.send("analog_reading.sent",pot);
    // 送ったらLED光る
    flashLed();
    //impのサーバ待ち時間を設定
    imp.onidle(function() {
        server.sleepfor(sleepTime);
    });

}

// Start of program
// Configure SPI bus and powergate pin for RGB LED
local spi = hardware.spiAHSR;
spi.configure(MSB_FIRST, 6000);
led <- WS2812(spi, 1);

poll();

——————————————————————
Agent
——————————————————————

// ツイッターにクラス
#require "Twitter.class.nut:1.2.1"

// ツイッターの送信
tweeter <- null;
// Define functions

function tweetback(data) {
// ツイッター送った表示
server.log("Tweet tweeted");
}
function motion(data) {
server.log(data);
if(data&amp;amp;gt;100){
local message = format("まだ生きてるぜ[アナログ: %5u]",data);
tweeter.tweet(message, tweetback);
server.log(message);
}
else{
local message = format("死んだぜ[アナログ: %5u]",data);
tweeter.tweet(message, tweetback);
server.log(message);
}

}

// Twitter の own access credentials
// apps.twitter.comでキーをゲットしてね。
tweeter = Twitter("Consumer Key (API Key)***********",
"Consumer Secret (API Secret)***********",
"Access Token***********",
"Access Token Secret***********");

// デバイスから受ける指定
device.on("analog_reading.sent", motion);

株式会社アバンドでは、IoTに関するネットワーク開発、ハードウエア開発を行っております。

まずは、お気軽にお問い合わせください。

第1回高尾山IoT 月刊I/Oとの共同企画

7月某日 月刊I/Oとの共同企画が突然実施された!そう、高尾山IoTです。
月刊I/OのFさんとアバンド代表青木が高尾山に登り、頂上でなんか開発して、下山しながら稼働されるというイベント。

ひとまず登る。

登山中、なぜか、蝶に好かれる。ずーーーーと手に腰に蝶がへばりつく。
チューチュー吸われるw

さくっと山頂と行きたかったが、やはり最後の階段がキツイ。それ以外は楽勝なのでけど。
ひとまず、お決まりの写真

涼しいところを探し、開発開始!灼熱で死ぬ~とか、水曜どうでしょ?的展開を期待したが、心地いい涼しさ。
周囲から変な視線を感じつつ・・・

今回は、ソフトバンク提供の米Electric Impの開発キット!
説明ページコピペw
———————————————————-
「impExplorer Developer Kit」は、「imp004m Breakout Board」の持つ機能に加えて、温度、湿度、気圧、3軸加速度の4つのセンサーを搭載した開発ボードです。本製品は、「imp004m Breakout Board」とは異なり、単3電池3本で稼動し、センサーの設計や組み込み作業を行わずにプログラミングを始めることが可能です。
———————————————————-

さて、さて、まず、あれ、IoTだから、通信から、あれ、WiMAXが入らん!うわーーーーー!
ということで、Fさんのキャリアを借りて、開発・・・・

そして問題発生!
impExplorer Developer Kitのネットワーク設定は、スマフォで設定して、それをimpExplorer Developer Kitにスマフォの画面をかざすと
スマフォの画面点滅により、impExplorer Developer Kitにネットワーク設定ができるという、超親切設計なのですが、
何度やっても、ネットワーク設定ができない。

これでこの企画終わったか?・・・・・・あああ・あああ・・・・
もしっや、明るい?外でやっていて、お日様の光りが明るい?
ということで、手で影を作り、再度挑戦、あ、あ、あ、設定できた。

あとは開発のサンプルを見ながら開発!プラウザー上で開発出来ると結構簡単。

ハマるところサンプルコピペでは動きません
各端末でソースコード内の「hardware.***」を合わせないと動きません。
下記がその一覧に一部です。
https://electricimp.com/docs/api/hardware/spi/
https://electricimp.com/docs/api/hardware/i2c/

温度、湿度、気圧のセンサーで暑いときは「暑い」というメッセージと温度湿度、そして気圧から計算した大まかな高度をツイッターで表示。
https://twitter.com/takaosaniot

impExplorer Developer Kitに電池を入れて、特製wの箱に入れて、IoTデバイス完成!

そして、下山。
谷間等では通信できませんでしたが、温泉までしっかりデータが取れた。


そして、温泉入って、そば食べて終了!

月刊I/Oもあわせて読むとオモロイよ!

株式会社アバンドでは、IoTに関するネットワーク開発、ハードウエア開発を行っております。

まずは、お気軽にお問い合わせください。

ノートパソコン用ファン

ノートパソコン用ファン
ノートパソコン用ファン

私はMACとWindows両方で動作確認をするため、
MacBookProを使っています。
やはり夏は鬼のように熱いので、激安で買ったノート
パソコン用ファンをとうとう使い始めた。
なんか、ちょっと子供向けのスパイ映画の秘密アイテムのような
LEDで怪しげにファンが光る。でも、折りたたみでUSBなので
楽かも。

マルチタッチ機能と段ボール

Windows 7の新しいマルチタッチ機能が出る。
そうです、IPODで実装されたのは2ポイントですが、
2つどころか、MSのツールで50ポイント(これはMSの展示会のときに聞いたので本当かは不明)までいけるらしい。

そんな中、その50ポイントもどういうデバイスなんだ!と思ったら、
段ボールと紙とWEBカメラで作っていた!!目から鱗、コロンブスの卵的発想である。ぜひ、ラボで作って披露したい。
詳しくは下記の動画で!