前回の続きでソフト編です.
やりたいことは,
1.時間をネットワークで自動同期.
2.BME280から温度・湿度・気圧を取得
3.7セグに時間を表示
4.液晶に時計と温度等のグラフを表示
です.
1.時間をネットワークで自動同期.
NTPClientライブラリを使用します.
https://github.com/arduino-libraries/NTPClient
zipを解凍しArduinoのlibrariesフォルダに入れます.
使い方はサイトにあるサンプルのとおりです.
日本時間に合わせるには以下のように初期化します.
NTPClient timeClient(ntpUDP, "jp.pool.ntp.org", 3600*9, 60000);
2.BME280から温度・湿度・気圧を取得
ボッシュ社のセンサで,温度,湿度,気圧を取得することができます.
マイコンとの接続はI2Cです.
データシート
特に深く考えずに値を取得できればいいので,適当なヘッダを作りました.
何らかのフィルタをかけてくれていますが,動いたので良しとしました.
元のサンプルプログラムを見つけられませんでした.すいません.
3.7セグに時間を表示
マトリクスLCDドライバ,HT16K33を使用しています.接続はI2Cです.
コレも深く考えずヘッダを作成.以前の記事を参考にしています.
数字の点灯パターンをあらかじめ宣言しておきます.
4.液晶に時計と温度等のグラフを表示
コレを一番頑張りました.マイコンから液晶を触るのはとても大変で
何時間もデータシートとにらめっこすることになりますが,
しかしこの液晶は使いやすいライブラリが公開されているのでプログラミングは楽です.
Adafruit_GFX.hとAdafruit_ST7735.hを使用します.
コチラを参考にさせて頂きました.
4つの画面(時計,温度,湿度,気圧)をボタンで切り替えられるようになっています.
それぞれの画面は必要領域のみ更新し,チラつきを抑えます.
また100ms割り込みでボタンを監視し,一定時間以上入力がなければ
自動でOFFになります.
コレの画面のレイアウトに開発時間の大半を費やしました.
結構気に入っていてたまに画面を切り替えてはニヤニヤしています笑
実用性もなかなかあり,時計はもちろんエアコンや加湿器の
電源を入れる目安にしています.
ネットワーク上から見れたりすると便利かなと思いますので時間が
あればいじりたいと思います.
以下使用プログラム
ESP-WROOM-02_digital_clock
BME280
SEG7_LED
2018年1月24日水曜日
2018年1月23日火曜日
eagle+elecrowで基盤外注してみた
あけましておめでとうございます.caketetuです.
前回の投稿からずいぶん時間が経ってしまいましたが,
年末にElecrowにPCB基盤を外注した話です.
基板外注業者は,最近増えていて結構な数がありますが,
Elecrowを選んだのは,価格と納期です.
品質に難ありと聞きますが,それは設計段階である程度カバーしようかと.
今回はお試しということで以前ユニバーサル基盤で作った
温湿度センサ付きWIFI時計をPCB基盤で作ってみます.
回路図です.

あとで気づきましたが,マイコンからトランジスタへの
配線は,直結しないと電流が足らず液晶が点灯しないようです.
ガバーデータ作成にはeagleを使いました.詳しい使い方はここでは
割愛しますが,作成の手順としては
1.schematicで回路図を作成
2.boardを開き部品を配置
3.Net classesを設定し,オートルーティングを実行
4.気になるところを手作業で変更
5.DRCを実行し,ガーバー出力
実際の作成では,回路図の前にライブラリの編集作業がありました(これが
結構大変だった...).
自分はeagle/lbr下にマイライブラリフォルダを作成しています.
5.ではElecrowで設定ファイルをダウンロードしておきます.
できたものがコチラ

できたガバーデータのうち必要なものをzipで圧縮します.
出来上がり図を見たいですが,Elecrowサイトでは見ることが
できないので,fusionPCBサイトで確認します.

確認したらElecrowで発注するだけです.特に困ることはない
と思います.今回は,2層基板5枚,色は緑でその他はすべて
標準の設定で発注しました.
運送業者はOSCが早いみたいです.納期を気にしなければ
安いものでいいと思います.
2017 12/24 発注
2017 12/29 作成された基盤のメールが届く
2017 12/31 自宅に到着
早いですね.大体一週間ぐらいで届きます.
気になる料金は
基板代 $4.9
配送料と手数料 $13.23
合計 $18.13
でした.日本円で2000円ぐらいです.
配送オプションによってもっと安くできます.
届いたのがこちら.7枚届きました.


気になるところは特に無しです.
スルーホールが良く見えない箇所がいくつか存在しましたが,
内部ではきちんとつながっているようです.
完成


致命的なミスによりジャンパを余儀なくされました...

現在は,このような基盤の外注も簡単にできます.
やはりPCB基盤の方が完成度が高く,コンパクトにできる
所がいいですね.
今後も,コレだ!と思う基盤ができたら,積極的に活用
しようと思います.
前回の投稿からずいぶん時間が経ってしまいましたが,
年末にElecrowにPCB基盤を外注した話です.
基板外注業者は,最近増えていて結構な数がありますが,
Elecrowを選んだのは,価格と納期です.
品質に難ありと聞きますが,それは設計段階である程度カバーしようかと.
今回はお試しということで以前ユニバーサル基盤で作った
温湿度センサ付きWIFI時計をPCB基盤で作ってみます.
回路図です.
あとで気づきましたが,マイコンからトランジスタへの
配線は,直結しないと電流が足らず液晶が点灯しないようです.
ガバーデータ作成にはeagleを使いました.詳しい使い方はここでは
割愛しますが,作成の手順としては
1.schematicで回路図を作成
2.boardを開き部品を配置
3.Net classesを設定し,オートルーティングを実行
4.気になるところを手作業で変更
5.DRCを実行し,ガーバー出力
実際の作成では,回路図の前にライブラリの編集作業がありました(これが
結構大変だった...).
自分はeagle/lbr下にマイライブラリフォルダを作成しています.
5.ではElecrowで設定ファイルをダウンロードしておきます.
できたものがコチラ
できたガバーデータのうち必要なものをzipで圧縮します.
出来上がり図を見たいですが,Elecrowサイトでは見ることが
できないので,fusionPCBサイトで確認します.
確認したらElecrowで発注するだけです.特に困ることはない
と思います.今回は,2層基板5枚,色は緑でその他はすべて
標準の設定で発注しました.
運送業者はOSCが早いみたいです.納期を気にしなければ
安いものでいいと思います.
2017 12/24 発注
2017 12/29 作成された基盤のメールが届く
2017 12/31 自宅に到着
早いですね.大体一週間ぐらいで届きます.
気になる料金は
基板代 $4.9
配送料と手数料 $13.23
合計 $18.13
でした.日本円で2000円ぐらいです.
配送オプションによってもっと安くできます.
届いたのがこちら.7枚届きました.


気になるところは特に無しです.
スルーホールが良く見えない箇所がいくつか存在しましたが,
内部ではきちんとつながっているようです.
完成


致命的なミスによりジャンパを余儀なくされました...

現在は,このような基盤の外注も簡単にできます.
やはりPCB基盤の方が完成度が高く,コンパクトにできる
所がいいですね.
今後も,コレだ!と思う基盤ができたら,積極的に活用
しようと思います.
2017年10月22日日曜日
温湿計付きWiFi時計を作ってみた
お久しぶりです.
気づいたら2ヶ月経ってました.中々の忙しさでした.
しかし何もやっていなかったわけではなく,ESP-WROOM-02を
使って温湿計付きWiFi時計を作っていました.今回ようやく形に
なったのでメモに残したいと思います.
概観はこんな感じ.

温度センサ,LCD,7セグメントLEDを搭載しています.
回路はまじめに設計するのが面倒だったので
ユニバーサル基盤に全部載せしました.
使用したモジュールは以下のとおり
赤色LEDディスプレイ7セグメントLED
128*160 TFT液晶ディスプレイモジュール
BME280 大気圧センサ 温湿度センサー
ESP-WROOM-02ピッチ変換済みモジュール
16x8LEDマトリクスドライバーモジュール
回路図は作ってませんが,ESP-WROOM-02はピンに余裕がないので
工夫が必要です.現在の割り当ては
4,5 -> I2C(7seg,BMP280)
15->LCDバックライト制御
0->画面切り替えスイッチ
12,13,14,16->SPI(LCD)
となっています.ピン0,15は使用するのはよくないとされていますが,
私の使い方では問題ありませんでした.
また,バックライト制御は内部でGNDがLED-とつながっているのか
カソード側で制御できませんでした.そのためこのサイトで紹介されている
アノード側での制御を試したところ,うまく動作できました.
動作の様子です.
趣味で電子工作を始めて2年ぐらい,初めて実用的なものを
製作した気がします笑.
長くなりそうなのでソフトは次回にしようと思います.
それではまた.
気づいたら2ヶ月経ってました.中々の忙しさでした.
しかし何もやっていなかったわけではなく,ESP-WROOM-02を
使って温湿計付きWiFi時計を作っていました.今回ようやく形に
なったのでメモに残したいと思います.
概観はこんな感じ.

温度センサ,LCD,7セグメントLEDを搭載しています.
回路はまじめに設計するのが面倒だったので
ユニバーサル基盤に全部載せしました.
使用したモジュールは以下のとおり
赤色LEDディスプレイ7セグメントLED
128*160 TFT液晶ディスプレイモジュール
BME280 大気圧センサ 温湿度センサー
ESP-WROOM-02ピッチ変換済みモジュール
16x8LEDマトリクスドライバーモジュール
回路図は作ってませんが,ESP-WROOM-02はピンに余裕がないので
工夫が必要です.現在の割り当ては
4,5 -> I2C(7seg,BMP280)
15->LCDバックライト制御
0->画面切り替えスイッチ
12,13,14,16->SPI(LCD)
となっています.ピン0,15は使用するのはよくないとされていますが,
私の使い方では問題ありませんでした.
また,バックライト制御は内部でGNDがLED-とつながっているのか
カソード側で制御できませんでした.そのためこのサイトで紹介されている
アノード側での制御を試したところ,うまく動作できました.
動作の様子です.
趣味で電子工作を始めて2年ぐらい,初めて実用的なものを
製作した気がします笑.
長くなりそうなのでソフトは次回にしようと思います.
それではまた.
2017年8月23日水曜日
7セグメントLEDを使ってみる
どうもcaketetuです.
ちょっとした時計を作ってみたいと思います.
ESP-WROOM-02でntpサーバにアクセスして時刻を自動的に取得します.
あると何かと便利そうな7セグメントLEDを購入してみたので
ちょっと使ってみました.
使ったのはこれ.10個も入っています.
ピンアサインはネットに落ちてました.
とりあえずLPC1114で動作確認.
カソード側に手持ちの510オーム抵抗をはさんでいます.
ストップウォッチを製作してみました.
ポート間で電流が違うのか,ちょっと見づらいです.
使用プログラム
ちょっとした時計を作ってみたいと思います.
ESP-WROOM-02でntpサーバにアクセスして時刻を自動的に取得します.
ライブラリはコチラ.zipファイルをArduinoIDEの
librariesフォルダにコピーします.
取得したデータをi2c経由でLPCに送信し,7セグメントLED
に時刻を表示させてみます.
前に製作したお遊び基盤を使用します.
予想外に使い勝手がいいですねコレ.
動作の様子.
時間はあっていますが,やっぱりちょっと見づらいですね.
使用したプログラム
mbed:mbed_7segment_i2c
ESP-WROOM-02:ntp_cliant
改善点はあれ,簡単な時計ができそうですね.
せっかくESP-WROOM-02を買ったので,
ちょっと高機能LED時計を作るのもアリですね.
もうちょっと遊んでから具体的に作るものを決めたいと思います.
2017年8月13日日曜日
Rasoberry Pi minidlnaを使ってPS4からアクセス
どうもcake tetuです.
先日PS4を購入しました.
PS4のメディアプレーヤーがなかなか使いやすそうだったので
Raspbery piにminidlnaをインストールしメディアサーバーにしてみます.
実は我が家には一応ファイルサーバーがあります.

画像からわかる通り初代Raspberry piを使用しています.
そのため,速度はかなり遅いです.
まあ自宅内でファイルの受け渡しぐらいしか使用してないので
あまり気にしませんが.
こいつにminidlnaをインストールします.
コチラを参考にさせて頂きました.
とりあえずテストということで公開フォルダはHDD上ではなくは
/home/pi上にしました.
PS4からアクセス!!

キターー!!

適当な動画を再生してみます.
PS4のメディアプレーヤーはコントローラ―で操作しやすく,
とても扱いやすいです.これはなかなか便利.
そして,データベースを勝手に作ってくれるので,探す手間が省けます.
データベースは60sで更新になっていますが,サービスの再起動
$sudo service minidlna restart
で更新してくれる模様.
先日PS4を購入しました.
PS4のメディアプレーヤーがなかなか使いやすそうだったので
Raspbery piにminidlnaをインストールしメディアサーバーにしてみます.
実は我が家には一応ファイルサーバーがあります.

画像からわかる通り初代Raspberry piを使用しています.
そのため,速度はかなり遅いです.
まあ自宅内でファイルの受け渡しぐらいしか使用してないので
あまり気にしませんが.
こいつにminidlnaをインストールします.
コチラを参考にさせて頂きました.
とりあえずテストということで公開フォルダはHDD上ではなくは
/home/pi上にしました.
PS4からアクセス!!

キターー!!

適当な動画を再生してみます.
PS4のメディアプレーヤーはコントローラ―で操作しやすく,
とても扱いやすいです.これはなかなか便利.
そして,データベースを勝手に作ってくれるので,探す手間が省けます.
データベースは60sで更新になっていますが,サービスの再起動
$sudo service minidlna restart
関係ない話ですが,Raspberry piでファイルサーバーは省エネで良いです.
しかし,LANが100base-TなのとUSB2.0しかないのでとても遅い.
本当は小型PCなんかでサーバを作りたいですが,金が…
金が貯まるまで頑張れ初代RaspPi.
2017年8月9日水曜日
I2C接続顔モジュール製作 ソフト編
前回の続きです.
ブロック図はこんな感じ

配線はゴチャゴチャですが,意外とシンプル.
Ver.2を作るときは一枚にまとめたいです.
プログラムはこんな感じです.
前回はJuliusを使用しておりましたが,今回は
音声認識もdocomo apiに任せることにしました.
それに伴い,pyaudioで録音し送信する形を取っております.
参考にさせて頂きました.
http://qiita.com/kinpira/items/75513eaab6eed19da9a3
全体のフローは以下のとおり
ブロック図はこんな感じ
配線はゴチャゴチャですが,意外とシンプル.
Ver.2を作るときは一枚にまとめたいです.
プログラムはこんな感じです.
前回はJuliusを使用しておりましたが,今回は
音声認識もdocomo apiに任せることにしました.
それに伴い,pyaudioで録音し送信する形を取っております.
参考にさせて頂きました.
http://qiita.com/kinpira/items/75513eaab6eed19da9a3
全体のフローは以下のとおり
- ボタン入力待ち
- マイクからデータ取得
- ボタンが離されるまで待つ
- 3を音声認識apiに送信.返答を受け取る.
- 4を雑談対話apiに送信.返答を受け取る.
- 5を発音
- 5の内容によって何かしらのアクション
GPIOにLEDとボタンを接続し,キーボードレスで
会話することができます.ここではLED点灯
のときボタンを押すとLEDが消灯します.
ボタンを押している間,録音が可能となっております.
ボタンの前はenterキーにしてました.
さらに顔モジュールと連動させるようにしました.
アクションはaction.pyにまとめられています.
適当なテキストを渡すと特定の単語を抽出し
マトリクスLEDを変化させます.
とりあえず思いつく限りの単語を登録しました.
動作の様子です.
全プログラムをもう一度まとめておきます.
2017年8月8日火曜日
I2C接続顔モジュール製作 色々進化?
お久しぶりです.
大学が夏休みに入り,すっかりゲーム・バイトに明け暮れております.
まあ大学生らしいといえばらしいですが.
そんな中,i2c顔モジュールが前回から大きく進化しましたので
メモを残します.

なんか下部がやたらでかくなっております.

まず前方にプッシュスイッチとLEDを配置しました.
コレでいちいちリモートしなくともある程度はRpiを操作できます.

そして側面にスピーカーを配置.これで電源に接続しちょっと待つだけで
raspiと会話することができます.

内部の様子はなかなかカオスです.最近の省スペースPCでも
もっとすっきりしています.

構成はこんな感じ.制御ユニットとアンプの電源用に
モバイルバッテリを搭載しました.
フロントパネルに無理やり電源スイッチを引き出したため
配線が多くなってしまいました.
今回は100均パーツを多く使用しました.
なので結構簡単に作ることができます.

ダイソー(300円)モバイルバッテリ.
本来の用途では力不足ですが,電子工作との親和性は高そう.
ネットを見る限り簡単に改造できそうで,今後も使って行きたいです.

すっかりタッパーでケースを作るのにはまりました.
100均のタッパー売り場に行くとワクワクします.

ダイソーのアンプ.数年前に買ったものです.ちなみにスピーカ
もダイソーです.基盤を抜き出し,電源を付け替えて使用しています.
音質はギリ許せる程度です.モバイルバッテリに接続するとノイズが
減ったのか若干改善しました.
動いている動画です.
ちなみに,ソフト面もだいぶ変わり,juliusからdocomo_apiに変更,
ボタン入力待ち,マトリクスLEDとの連動などを追加しています.
詳しいプログラムはまた次回で.
大学が夏休みに入り,すっかりゲーム・バイトに明け暮れております.
まあ大学生らしいといえばらしいですが.
そんな中,i2c顔モジュールが前回から大きく進化しましたので
メモを残します.

なんか下部がやたらでかくなっております.

まず前方にプッシュスイッチとLEDを配置しました.
コレでいちいちリモートしなくともある程度はRpiを操作できます.

そして側面にスピーカーを配置.これで電源に接続しちょっと待つだけで
raspiと会話することができます.

内部の様子はなかなかカオスです.最近の省スペースPCでも
もっとすっきりしています.
構成はこんな感じ.制御ユニットとアンプの電源用に
モバイルバッテリを搭載しました.
フロントパネルに無理やり電源スイッチを引き出したため
配線が多くなってしまいました.
今回は100均パーツを多く使用しました.
なので結構簡単に作ることができます.

ダイソー(300円)モバイルバッテリ.
本来の用途では力不足ですが,電子工作との親和性は高そう.
ネットを見る限り簡単に改造できそうで,今後も使って行きたいです.

すっかりタッパーでケースを作るのにはまりました.
100均のタッパー売り場に行くとワクワクします.

ダイソーのアンプ.数年前に買ったものです.ちなみにスピーカ
もダイソーです.基盤を抜き出し,電源を付け替えて使用しています.
音質はギリ許せる程度です.モバイルバッテリに接続するとノイズが
減ったのか若干改善しました.
動いている動画です.
ちなみに,ソフト面もだいぶ変わり,juliusからdocomo_apiに変更,
ボタン入力待ち,マトリクスLEDとの連動などを追加しています.
詳しいプログラムはまた次回で.
登録:
投稿 (Atom)


