PICとXBeeでツィートしてみる(拾遺)
花岡ちゃんのウィークエンド:ツィートガジェットの実験
実験で気づいたことなどをまとめて。
■XBee WiFiの電源
以前の投稿では電源にコンデンサをおごらねばなどと実験結果を書いてましたが、ちゃんとデータシートに書いてありました。下図がデータシートにあるスタートアップ時の経過電流です。
横軸はサンプル数で、サンプリング周期は(たぶん)5us。つまり定常電流になるまで800*5usで約4msということになり、その間最大0.75Aのパルス電流が3回発生しているのが分かります。
そのため、データシートには電源ラインに500uFのコンデンサを入れるよう書いてあります。今回の試作品はこれに倣って470uFの電解を入れました。
ただ、これだけの容量のコンデンサを起動時に充電しなければならないので、電源レギュレータの電流容量が小さいと、電圧の立ち上がりが悪くなってXBeeやマイコンのリセットがかかりにくくなることもあります。僕も経験がありますが、電源を入れても一発では動作しなくて、何回かON/OFFしているうちに動くようになる場合は、その辺を疑って見るのがいいかとおもいます。ON/OFFを繰り返すことで、コンデンサに電荷が少しずつ溜まって立ち上がりが良くなるため、このような現象が起こるようです。
その他にもスイッチング電源を使う際の注意などが具体的に書いてありますので、一度目を通しておくことをおすすめします。
■CTSによるフロー制御
XBee WiFiではシリアル受信バッファ(つまり無線LANへの送信データのバッファ)のスレショルドが設定できるようになっています。デフォルトは0x7F3、つまりシリアル受信バッファの容量が0x7F3(2035)バイトになったらCTSを1にして相手からの送信禁止を要求します。ですから無線LANへ送信するデータがこれ以下なら、フロー制御はいりません。今回のデータはヘッダをいれてもせいぜい1Kバイトくらいですから、フロー制御なしでやっています。ただ、画像データのように数十キロバイトもあるデータを送るにはこちらで試したようにフロー制御が必要です。
■日本語文字コードには要注意
今回の実験でてこずったのは、なんと日本語文字コードです。日本語で投稿する場合、ツィッターのAPIは投稿がUTF-8で記述されてないと受け付けません。手動でいろいろ試しているとき、英文だと投稿できるのに日本語にすると投稿できなくなってしまい、原因を発見するのに2時間近くかかってしまいました。いろいろな要因が重なってのことではありますが、結果的には、いつの間にかテキストを編集していたエディタの文字コードがS-JISになっていたというつまらない理由でした。
PICのプログラムには投稿する文章を文字定数で組み込んであります。プロジェクトの文字コードをUTF-8にしてあるのでそのまま変更して使う分には問題ないと思いますが、新たにプロジェクトを作ろうと思っている方は、注意が必要です。日本語コードが何種類もあるので、こういうことになるのですね。日本語の詩歌の美しさは世界に誇れると思っている僕でも、こんなときはアルファベットで事足りる英語圏の人がうらやましくなります。
« PICとXBee WiFiでツィートしてみる(おしまい) | トップページ | pythonでノードを作る(パブリッシュ編) »
「花岡ちゃんのウィークエンド」カテゴリの記事
- レーザー距離センサVL53L0Xを複数使うには(2022.05.01)
- 【訂正!】PIC24Fでレーザー距離センサVL53L0Xを使う(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(おしまい)(2022.04.14)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その3)(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その2)(2022.04.12)
« PICとXBee WiFiでツィートしてみる(おしまい) | トップページ | pythonでノードを作る(パブリッシュ編) »
コメント