esp8266 ArduinoのPROGMEM

160903a0HSES-LCD24での日本語表示を試みる際に、PROGMEMを調べた。

ArduinoのPROGMEMとは、データをROM領域に格納する仕組み。(reference,日本語)

C(C++)言語だとconst修飾子を付ければ、十分な気がするが、AVR等の小型のCPUだと、そうはならない。命令用のROMとデータ用のRAMのアクセス経路を分離し、回路を節約しているためだ。ATmegaとかだとROMのデータを読み込むには、専用の機械語があった気がする。
続きを読む… »

ESP8266 Arduinoでmake

Arduinoのスケッチをmakeコマンドでコンパイルしたいという欲求は昔からあり、sudar/Arduino-Makefileなどというものがあるのも知っているのだが、ちょっと調べて

  • Linux前提っぽい
  • Makefileにincludeさせて使うものらしい
  • Arduino非純正CPU (ESP8266とか)に対応しているか不明

というような感じなので、手を出さずにいた。

HSES-LCD24で日本語の表示をさせようと検討すると、やっぱり fontxファイルをバイナリーのままコードに埋め込みたくなった。Arduino-IDEでコンパイルさせていると、埋め込み先のsectionがわからない。ということでgcc等のコマンドが見えるmakeコマンドでのコンパイルに挑戦してみることにした。
続きを読む… »

HSES-LCD24に文字を表示させる(4) 画像表示とNetLCD公開

HSES-LCD24の販売再開しました。あとNetLCDというプログラムをgithubで公開しました。URLはhttps://github.com/h-nari/NetLCD。中身は今回の記事のプログラムです。

160819a3今回は画像を表示させる機能を追加させたのだが、プログラムの公開方法に悩み、githubで公開することにし、プログラムを整理し、ドキュメントなども書いてたら、時間がかかってしまった。

HSES-LCD24のディスプレーは320×240画素で、1画素16bitなので1画面で 320x240x2byte = 153,600byte必要になる。これだとパラメータで渡すのは無理そうだ、そもそも153kbyteも空容量がESP8266にありそうにない。

WebServerのファイルアップロード機能が使えるのではないかと考え、探すと、サンプルプログラムがあった。SDWebServer.inoだ。これの93行あたりにあるhandleFileUpload()という関数に必要な情報が詰まっている
続きを読む… »

HSES-LCD24に文字を表示させるプログラム(3)

160810a6現在、梱包上の問題でスイッチサイエンスでのHSES-LCD24の販売が停止されています。対策の目途は立っていますので、お盆明けぐらいには再開できると思います。

さて、HSES-LCD24に文字を表示させるプログラムですが、前回紹介したサンプルプログラムESP8266WebServer/HelloServerをベースに簡単に作ってみました。ソースは、この記事の最後に置いておきます。
続きを読む… »

HSES-LCD24に文字を表示させるプログラム(2)

LCDに文字を表示させることはできたので、次はWiFi経由での操作方法を調べる。スケッチの例を調べるとESP8266WebServer/HelloServerが良さそうだ。72行の簡単なプログラムで、必要な機能がうまく説明されている。

続きを読む… »

HSES-LCD24に文字を表示するプログラム(1)

s_160802a7HSES-LCD24は面白い、ということを伝えていきたいと思う。そのために、HSES-LCD24の簡単なプログラムを紹介します。
機能がありすぎて、どんなプログラムにするか悩みますが、基本的な機能でかつ応用が利く、WiFi経由で文字や図形をLCDに表示するプログラムを作っていくことにしました。

続きを読む… »

HSES-LCD24発売

ついに新製品を発売。HSES-LCD24という商品で、スイッチサイエンスから4,969円で発売開始。スイッチサイエンスの商品ページはこちら

どういう製品かというと、中華製WiFiモジュールESP-WROOM-02を2.4インチLCDモジュールに直結できるようにした基板です。LCDモジュールは別製品にするか悩んだが、スイッチサイエンスの委託販売では並行輸入品は扱わないようなので、LCDモジュール込みの製品になった。
続きを読む… »

KiCAD移行失敗

引越等でPC環境が変化したのでEagleをインストールし直す必要があるのだがライセンスのファイルが見つからない。この機会にKiCADに移行してみようかと努力してみたのだが出来なかった。結局Eagleのライセンスファイルを見つけ出し、インストールした。

Raspberry Pi使用の装置を量産

160315a3Raspberry Piを使用した装置の6台製造完了した。動作も確認しており、今週末の配線工事の完了後、取り付ける予定。ケースは、板金ケース.comに頼むつもりだったが、塗装が混み合っているとかで、納期が合わず、試作品と同じく、レーザ加工機でアクリル板を切り出し、折り曲げ機で曲げて作成した。試作品では2mm黒のアクリル板をしようしたが、在庫の関係で、2mm黒つや消しのアクリル板で作成したところ、素晴らしくプロっぽい(?)仕上がりのケースができあがった。お勧めである。

連続動作試験中

連続動作試験中

Raspberry Piのケース作成(2)

160227b9以前作成したRaspberry Piで特定Webページを表示させ続ける装置が好評で、4台増設することになった。

前回は装置はディスプレーと離れたところに設置したが、今回はそういう場所がないのでディスプレーの影(裏)に設置したい。ディスプレーは壁面に設置するので、壁との間に設置する必要がある。そんなことが可能なのかと、取付金具を購入し、調べた所、厚さを30mmに納めれば良さそうだということで、ケースを設計、試作した。
続きを読む… »

PIC32MXのSPI slaveの動作にハマる

PIC32MXでSPIのslaveモードを使用するプログラムを作成。ハマった。SPIは良く使うが、slaveモードを使うのは初めて。

プログラムを作成し、Arduinoでテスト信号を発生させ、動作させて見るも、まったく反応していない。何も受信していない感じ。CSとSCLKさえ動作すれば、MISOやMOSIが繋がっていなくても、なんらかのデータは受信するはずだ。試しに、masterモードにしてみるとsclkからクロックが出力されたので、設定は間違っていないはず..だが動かない。

散々なやんだあげく対応するANSELのビットをクリアしたら、動作を始めた。出力モードだとANSELは関係ないが、入力だと影響を受けるということか。なんか納得しがたいがそうなっているのなら仕方がない。動いたので解決だ。

ハンドゴテ温度計キット その後

160123c9その後、またハンダゴテの温度を計ってみたところ、なんか温度表示があがらない。表示が半分ぐらいのような気がする。半田は溶けるし、テスター+熱電対で測ると260℃ぐらいと出るので、ハンダゴテ温度計キットの動作がおかしいようだ。


続きを読む… »

ヤフオク出品中

身の回りにある不要品、でも埋め立てゴミに出すには忍びない….のでヤフオクに出すことにした。たくさんある。どんどん出していきたい。

とりあえず今だしているのは以下の2つ

  • 秋月電子、Wi-FiモジュールESP-WROOM-2 DIP化キット
  • Adafruit RGB Matrix HAT + RTC

出品情報はTwitterに流して行こうと思うので、興味がある人はfollowして下さい。

ハンダゴテ温度計キット、購入

160109a1898D 2 in 1 Stationでハンダ付けしていると、こて先が、なんか、ススっぽい。やっぱり安いコテ先では、ダメなのかと考え、HAKKOのこて先の購入を検討。

いろいろ検索しているうち、ノセ精機のハンダ付け基礎講座/こて先温度のページを発見。ここに黒色化したコテ先という記述があり、まさにそんな感じ。このページによると、温度表示付の温調ハンダゴテでも50℃近く誤差が出ることがあるので異常を感じたらコテ先温度計で測るべき。ステーションの温度表示を鵜呑みにしてはいけない、そうだ。
続きを読む… »

積み基板追加

151226a5積み基板が、また1枚追加された。ものはDSO138 2.4inch TFT Digital Oscilloscope DIY Kit で、秋月電子の2.4inch カラーTFT デジタルオシロスコープキットDSO138と同じだと思う。

AliExpressからの調達に興味があるので、試しに購入。無料発送で10日程で届いた。何時になるかわからないが、気が向いたら組み立てよう。ケースも作りたくなりそう。