1 / 4212345...最後 »

HSES-LMC1を128x96dot構成で試す。

MFT2017で展示・販売したLEDモジュールコントローラHSES-LMC1を表示できる最大構成である128×96 dot 構成で試してみました。64x32dotのLEDモジュール6枚を使用しています。

試してみたら、ファームウェアのバグが発覚、ある程度の規模以上だと、表示がされない。ファームウェア更新プログラムHumblesoft_LedMatライブラリのサンプルとしてリリース。更新の仕方はfirmware.mdを御覧ください。

ちなみにモジュール4枚まで程度でしたら、以前のファームウェアでも問題ありません。現在のファームウェア更新プログラムはWiFi経由で弊社Webサーバーからファームウェアをダウンロードする形になっていますが、よく考えたらネットでダウンロードする必要も無いので、近く作る治す予定です。ファームウェアを更新したい方も、少し待ったほうが、良いかもしれません。
続きを読む… »

MFT2017出展報告

8月5日(土)、6日(日)東京ビッグサイトで開催されたMaker Faire Tokyoに出展したので報告する。

続きを読む… »

MFT2017に出展します

来週8月5日(土),6日(日)に東京ビッグサイトで開催されるMaker Faire Tokyo 2017に(有)ハンブルソフトとして出展します。展示のメインはESP8266(ESP-WROOM-02)を搭載したLEDモジュールコントローラ。ArduinoでLED電光掲示板を操作できます。

特価販売も行います。量が少ないので、ご希望の方はお早めにお越しください。

あまり基板が安かったので(2)

先月記事をたくさん書けたので安心していたら、今月は記事を書けないまま半分が過ぎてしまった。とりあえず、また基板を作ってしまった話を書く。

前々から無線ルータ(Aterm WG1200GS)が熱くなるのが気になっていた。たまに触ってみると心配になるほど熱い。風を当ててやれば熱を感じない程度にまで涼しくなる。ファンレスの設計限界に挑戦!という感じなのだろうか。

熱くても無事動作してくれればいいのだが、ネットがつながらなくなり、ルータの電源を入れなおすと治る、というようなことが何度があったので、ファンで冷やしてやりたくなった。愛用していたDC24Vのファンが見つからないので、USBファンを購入。なかなかの風量で良い感じだが、常時動かし続けるには音が大きい。秋月電子の100円のファンをうまいこと固定できればいいのだけれどと検討を開始する。
続きを読む… »

ESP8266用ILI9341ライブラリの高速化

HSES-LCD24用のILI9341ライブラリとして、Humblesoft_ILI9341を使用している。これは、Adafruit_ILI9341を拡張したもので、Fontxを使った漢字描画機能、scroll機能などが追加されている。 実行速度面では、まったく改善されていない。HSES-LCD24用のデモプログラムを新たに作ろうと思うのだが、描画速度が遅いので、先に高速化を行うことにした。

Adafruit_ILI9341のexamplesにgraphicstestという各種描画機能の実行時間をマイクロ秒単位で表示してくれる。これを使い、実行時間を計測しながら高速化を行った。

最終的な結果の表を以下に示す。塗りつぶし系の描画では7倍前後、あまり高速化できなかったLines等でも1.5倍程度の高速化ができた。 文字の描画も4.68倍高速化されているが、これは若干説明を要する。

今回使用した高速化の手段を以下に示す。

  • CS,D/C信号操作の高速化
  • SPI大量データ転送の高速化
  • クロックの高速化
  • 文字描画の高速化

続きを読む… »

fusionPCBについて

仕事熱心なfusionPCBさんから、前の記事にコメントがついたので、fusionPCBについての意見を書いてみる。

fusionPCBは、中国の格安PCBサービスの先駆けで、私も使ったことある。5年前に記事も書いた。これこれ。 品質に問題は無く、価格も安かったのだが、elecrowが始めた基板の色変更無料の魅力が大きすぎてelecrowに移ってしまった。最初の基板は緑色で問題無いが、何種類も基板を作ると色分けできる意味は大きい。

その後も、時々、elecrowだけに頼るのもなんだから、たまにはfusionPCBも試そうと思うのだが、注文のページで送るファイルの種類や設計ルールを確認しようとして、情報が見つけられず、探すのも面倒になりelecrowに頼んでしまう。

改めて、https://fusionpcb.jphttps://www.seeedstudio.com/fusion.htmlを見直し、感想を書く。

  • seedstudio.comの方は、基板注文のページに”how to generete Gerber files”というリンクが張られ、必要な情報がわかりやすいのは良い。改善されている。
  • Eagle用のcamファイルが提供されているのも良い。 DRC(design rule check)用のファイルはどこ?
  • fusionpcb.jpのページから飛べる基板注文のページには、”how to generete Gerber files”相当のリンクが無い。

あと、twitterで報告される基板のトラブルを見てると、基板のE-Test通してないだろう と思われるケースが多々ある。自分がelecrowに作ってもらった基板の中にも、たまにある。elecrowのページを調べると 100% E-Testと書いてある。fusionPCBの方でも探してみたが、E-Testに関する記述が無い。今はE-Testをしないオプションが無いので、記述も無いのだと思うが、値段も極端に安くなったので、もしかしてE-Testを省いているのではないかと不安になる。この点も明記したほうが良いと思う。

追加! もう1件あった。OPLのページをfirefoxで見ると、javascriptのプログラムが終了しなくて、ブラウザが固まる。なんとかしてほしい。Edgeだと見れるが、かなり重い。

なぜOPLのページを見ているかは秘密。

あまり基板が安かったので

FusionPCBに対抗してだろうが、ElecrowがPCB5枚で$4.9で作れるというので、他の基板のついでに基板を作ってしまう。ものは、ADCに接続してアナログ値で複数のスイッチの状態を読み出すボード。他の装置のデモ用に欲しくて、ユニバーサル基板あたりで作るつもりだったが、$4.9なら費用的にかわらないし、楽に作れるし、断然きれい。

で、早速作り、テストプログラムで動作を確認。あまりノイズは乗らず、9個のスイッチの識別は、全く問題が無い。すぐにデモプログラムの作成に入れそうだ。

音楽の再生には何bit必要?

ESP32のDACに音を出力する場合、8bitというのはどんなもんなんだろう。 bit数が足りないために音声が、まともに聞こえないというのでは困るなぁと思い、実験してみた。

pythonのwavライブラリを使うとwavファイルの操作ができる。これを使って、wavファイルのデータを指定したbit数まで落とすプログラムを作成した。処理に結構時間が、かかるので10秒だけ出力する。

結果、私のPCの再生環境では8bitと12bitの聞き分けができないことが判明。8bitからbit数を落として行ってもホワイトノイズが増えていくだけで、あまり問題無く聞ける。1bitだとノイズがかなり大きいが、それでも曲は判別可能。予想外の結果だった。

変換した結果を以下に示す。元の曲は魔王魂さんのフリー歌もの素材「桜日和」

1bitの音源:(音量注意)

続きを読む… »

ESP32のI2S+DAC出力成功

ESP32_MP3_Decoderのプログラムを調べ、遂にはESP32のI2S+DACから、音声を出力することができた。嬉しい。

Tw_Mhageさんの記事:ESP32でBluetoothイヤホンを作ってみた – Qiitaに刺激を受け、ESP-IDF添付のサンプルプログラムを改造し、Bluetooth Speakerのデモプログラムを作成、公開している。Bluetoothの中身に疎いので、最初苦戦したが、iPhoneに接続し音が出せるようになった。回路は、ものすごく簡単なので、ESP32のモジュールを持っている人には、一度試してもらいたい。

ESP32_MP3_Decorderを動かしてみた。

ESP32のI2Sで音声出力の実験をしているが、なかなかうまくいかない。サンプルプログラムを元にプログラミング・ガイドを見ながらDACに音声を出力させようとしているのだが、うまくいかない。部分的にちゃんと波形は出力されているのだが、うまくつながらない。周期も変。

資料も少ないし、動いたという例も無いと思っていたところESP32_MP3_Decoderの存在を知る。試してみると、いろいろ問題は、ありながら、断続的に音が出た。MP3のデコードも自前でやっているらしい。


続きを読む… »

intel hexファイルのマージ

PIC32MXのプログラムを開発中、2つのintel hexファイル(bootloaderとfirmware本体)を1度に書き込みたいと思ったのだが、pic32progではできない。objcopyあたりでmergeできるか調べるが,無理そう。hexファイルのmergeならpythonで自分で書いても簡単そうなので書き始めるが、念のため python + intel hexで検索したら、ライブラリ、その名もintelhexがあった。ドキュメントによるとmerge機能まである。サンプルを見ながらプログラムを書き、あっさり動作。凄いね。世の中は。

import sys
from intelhex import IntelHex

usage = "%s hex_infile1 hex_infile2 hex_outfile" % sys.argv[0]
if len(sys.argv) != 4:
    print(usage)
    sys.exit(1)

infile1, infile2,outfile  = sys.argv[1:]

ih1 = IntelHex(infile1)
ih2 = IntelHex(infile2)
ih1.merge(ih2, overlap='ignore')
ih1.write_hex_file(outfile)

ドキュメントによると、ライブラリにhexmerge.pyというユーティリティが付属し、ライブラリと一緒にインストールされるとあったが、わたしの環境では見付らない。これが使えれば、プログラムを書く必要すら無い。

秋月のESP32-DevKitC購入

ESP32の実験を少しづつやっている。最初に買った。昨年末に買ったdoitのESP32開発ボードは、eepromに変なデータが書き込まれてしまったのか、WiFi.hをincludeしただけでabortするようになってしまった。それで自作ボードで8bitパラレル接続のLCDの実験を行ったのだが、他のデバイス用の配線が間違っていることが判明。それなら秋月のESP32-DevKitCを使った方が実験しやすそうだということで購入した。

doitの基板と比べると端子が多い。SDIO系の端子もでているのだろう。あと秋月の基板の抵抗の小ささに驚く。最初みたとき、実装されていないのかと思ってしまった。

ESP32開発ボード比較 ( ←秋月、doit→ )

ESP32で動画表示

ESP32に接続した320×240のTFT LCDにネットワーク経由でデータを転送し動画を表示することができた。表示速度は、240×160だと10fps, 240×135で15fps, 120×90なら30fps以上が可能。あと2倍ぐらい高速化の余地はありそう。

ESP32側のプログラムはArduino環境で開発。udpパケットを受信し、データをそのままLCDに書き込む。簡単なフロー制御も実装している。tcpではなく、udpを使用したのは、フロー制御を自前でやりたかったから。通信エラーでパケット欠落が起きても再送などして欲しくなかったから。あとudpだと自然にパケット単位で処理することになり、プログラムがわかりやすい。tcpのストリームにパケットの切り出し処理が面倒。やってみた結果,フロー制御でいろいろ実験できて面白かった半面、いろんな通信環境にちゃんと対応できているかどうか不安。そのうちtcpでも試してみたい。

動画データは、既存の動画ファイルをffmpegで専用フォーマットに変換したものを使用。ファイルの中には RGB各5,6,5bitづつの16bit/pixelのTFT LCDのフォーマットで画像データが収められている。これをpythonのプログラムでudpパケットで送信している。


続きを読む… »

Bad Apple on ESP8266 + OLED

HSES-NODE-OLEDでBad Apple(影絵)を再生できた… って、結構前に出来ていたのだけれど、Blogに記事を書くのが遅くなってしまった。画像データは ffmpegで1フレームづつBMPファイルに変換し、PCからpythonのプログラムでudpパケットにして送信している。詳しい話はQiitaに書いた。ソースコードはGitHubで公開している。
続きを読む… »

マグネット付きスペーサ

AliExpressでマグネット付きスペーサを購入。M3で高さが8-10、20個で$3.99。1$133円として450円。1個22円。

高さ8-10の意味が不明。 8~10mmの範囲ということか。高さがバラバラだったら使い道が限定される。ちなみに計ったら高さ8mmぐらいで、そろっていた。磁力は弱め。国産のケガをしそうなネオジム磁石と比べれば、非力、安全。でも基板程度を固定するには十分使えそう。

試しに、ユニバーサル基板の足に使ってみた。普通のスペーサーを使うより、当然だが、強く固定されて割と良い感じ。

1 / 4212345...最後 »