台風迫る中、第2回D♥Yの初日を見学して参りました。和む空間でした。入場料の1000円を払うと、会場内通貨の「ai」が5単位もらえます。1 aiが100円という感覚で良さそう。ワタクシは空腹を感じたので、庭のカフェ屋さん(?)で、アメリカーノとチョコドーナツのセットを買いました。ちょうど5 ai。スタバやタリーズのアメリカーノとは異なる、グワッと味が広がるアメリカーノでした。酸味のあるエスプレッソは苦手なはずなんですが、最後まで味わうことができました。そして覚醒した。
風雨が強まる246界隈を移動して、外苑前で行われたヘッドフォン祭も見学。中野・フジヤエービック主催のヘッドフォンとオーディオ機器の展示会ですな。想像を上回る混雑でした。各社のヘッドフォンを思う存分試聴できる貴重な機会。ワタクシはUltrasoneブースのお姉さんが気になりました。
はじめまして。
京都教育大学附属高校電子工学部です。
僕たちの部活では来年のロボカップジュニアサッカーに向けて活動しています。
「Arduinoをはじめよう」を読んでおります。とても分かりやすく感動しております。
このコメントの記事とは関係なくて申し訳ないのですが、ArduinoでのI2C通信について伺いたいことがあります。Wireライブラリを使って、Arduinoがマスタの場合です。
Wire.recuestFrom(address,quantity);関数のことなのですが、
ここでいう要求するってどういうことでしょうか?
とりあえず今僕が理解していることを書きます。
スレーブからマスタに情報を送る場合、マスタはまず最初にスレーブのアドレス(7bit)を送信して、R/Wを送信する。R/Wのところを1にしてやると、ACKの後にスレーブからデータが来る。そのあとに何バイトか受信したらACKを出さないで停止条件を出す。
要求するという意味はこれを実行するということであっていますでしょうか?
パラメータのquantitiy:要求するデータのバイト数っていうのは、(マスタが)ACKを出さないようにするまでの受信バイト数を示すということでしょうか?つまり、「何バイト欲しい」っていうのをスレーブに伝えるのではなく、何バイトか受信したら強制的に終了するまでの受診するバイト数なのでしょうか?
申し訳ありませんが、答えていただけると幸いです。
よろしくお願い致します。
こんにちは。お読みいただきまして、心より御礼申し上げます。
ご質問の件ですが、いまざっとソースを眺めた範囲では、
> パラメータのquantitiy:要求するデータのバイト数っていうのは、(マスタが)ACKを出さないようにするまでの受信バイト数を示すということでしょうか?
こういう理解でいいような気がします。
quantityはバッファサイズのチェックと、最終バイト受信時にNACKを返す準備をするために使われるようです。
requestFrom()は、
arduino-0021\libraries\Wire\utility\twi.c の twi_readFrom() を呼び出しています。
この関数に長めのコメントがあって、わざわざ「この部分は直感的ではありません」と書いてありました。なので、ちゃんと理解できているか自信はありません :-) 怪しい感じでしたら、またご連絡ください。
よく分かりました。
ありがとうございました。