2023.07.23本記事はプロモーションが含まれています。こんにちは、ENGかぴです。XIAO用の拡張ボードはSDカードスロットやOLEDによる液晶画面での表示ができます。Grove端子対応のセンサーモジュールを挿入して計測等ができます。OLEDにボタンの情報を表示して動作確認を行いました。Studio)を使用しています。XIAOを使って動作確認を行ったことを下記リンクにまとめています。Studioから製作されています。このボードを使用するとOLEDに文字を表示したりSDカードを使用したりGrove端子を利用してセンサーと接続することができます。XIAOを挿入したコネクタ横にも配線できるようにコネクタが実装されています。拡張ボードについては下記リンクに詳細が説明されています。boardリンク先では言語選択で日本語が選択できるようになっていますがページが対応していないため日本語での表示はできません。Chromeの翻訳機能を使うと日本語表示ができます。上記リンクで紹介されているサンプル例を参考にしてOLEDに文字を表示する方法をまとめています。広告OLED用のライブラリを追加するOLEDに文字を表示するためにOLED用のライブラリを追加します。Wikiの使用例で追加されている「u8g2」ライブラリを追加して使用します。IDEのツール内のライブラリを管理を選択するとライブラリマネージャ画面が表示されます。検索をフィルタに「u8g2」(大文字小文字はどちらでもよい)を入力すると表示される「U8g2」が候補として表示されます。インストールボタンを押すとライブラリが追加されます。//フォントを選択}ライブラリを使用するためU8x8lib.hをインクルードします。OLEDへのアクセスはWire(I2C)を使用しますが、U8g2ライブラリのbegin()関数内でWireを設定を行うためインクルードの必要はありません。U8X8_SSD1306_128X64_NONAME_HW_I2Cクラスの変数としてu8x8をインスタンス化しています。ArduinoなどハードウェアでI2C対応しているピンを使用する場合は上記のクラスを使用します。ソフトフェアでI2C生成する場合はU8X8_SSD1306_128X64_NONAME_SW_I2Cクラスを使用します。u8x8は各種メンバー関数を使用した際の管理を行う変数です。ライブラリをインストールした際に対応するOLEDが記載されていますが、このクラス宣言を変更することで他のタイプのOLEDでもライブラリを使用することができます。begin()関数を使用するとOLEDの初期化が行われます。setFlipMode()関数は1から3を引数に指定できます。画面の表示の向きを変更することができるようですが数値を変更しても表示が変わらなかったため未実装もしくは対応していない可能性があります。(解釈を間違っているかもしれません)setFont()関数ではOLEDに表示する文字フォントを選択することができます。デフォルトではu8x8_font_5×8になっていますが、ライブラリの1文字あたり横5ドット縦8ドットの表示になります。選択できるフォトンの種類はu8x8.hで確認できます。ライブラリが保存されているフォルダであるLibrariesからlibraries/U8g2/src/clib/u8x8.hのように階層を下っていくとファイルを見つけることができます。IDEのバージョンが2.0.0以降であれば定義している文字列などを選択して右クリックすると定義に移動できるようになっています。Ver1.00");setCursor()関数で文字表示する座標を指定します。第1引数に行番号、第2引数に列番号を指定します。座標を指定した後はprint()関数で文字を書き込んで表示します。write()関数を使用すると配列に対して書き込むデータ数を指定することができます。データを書き込む初期位置(表示スタート位置)にカーソルを合わせます。文字列を指定して書き込み(表示)ます。指定した列の文字をクリアします。今回使用したメンバー関数clearLine()関数で上書き前の文字列を消してから表示した場合、ラインの文字列を消してから文字列を書き込むため表示がチラついて見えます。clearLine()関数を使用しない場合、文字が残ったまま上書きするため表示がおかしくなることがあります。XIAOをSeeeduino拡張ボードに挿入しSW1とSW2を実装します。DIはプルダウン付きのDIにしているためSW1/SW2を押したときにショートすることはありません。SW1/SW2を押したときOLEDにボタンが押されたことを示す「—>ON」を表示するようにします。ボタンを押していない時は「—>OFF」を表示します。電源がONするとバージョン情報とボタンの情報が表示されました。button:2の下の行が—>ONになることを確認しました。button:1の下の行が—>ONになりました。OLEDはドットが細かいので小さな文字からフォントサイズを変更して大きく見せたりと拡張性があるので複雑な表示を行いたい場合に効果を発揮しそうです。LCDを使用した場合はフォントなどに拡張性はありませんがライブラリなどが複雑にならないため簡易的に表示したい場合は低価格のLCDの方が良いこともあります。以下のソースコードはコンパイルして動作確認をしております。コメントなど細かな部分で間違っていたりやライブラリの更新などにより動作しなくなったりする可能性があります。参考としてお使いいただければと思います。}}関連リンクArduinoのライブラリを使って動作確認を行ったことを下記リンクにまとめています。XIAOで学べるソフト開発と標準ライブラリの使い方ESP32-WROOM-32Eで学べるソフト開発と標準ライブラリの使い方PR:スキマ時間を有効に!スマホで学べる人気のオンライン資格講座【スタディング】まずは気になる講座を無料で体験しよう!最後まで、読んでいただきありがとうございました。組み込みエンジニア組み込みエンジニアの初心者がソフトの勉強で最初にやっておきたいこと業種を問わず経験が浅いうちは現在やっている仕事を覚えるのに精一杯になってしまいますが、仕事のアウトラインを掴んでおくことが大切です。課題を明確にし一つ一つの技術を取得して達成感を感じながらストレス耐性をつけていくことが大切です。電気電子部門の試験において最近の傾向としてIGBTの損失を求める問題が出題されています。IGBTの動作と損失の計算の仕方が分かっていれば簡単に回答できます。IGBTの損失問題の解き方について記事にしました。組み込みエンジニアPICマイコン(PIC16F1827)のシリアル通信を実装するPIC16F1827はシリアル通信機能(EUSART)を持っているため外部機器と通信を行うことができます。UNOとシリアル通信を行いシリアルモニタで動作確認を行いました。2022)でTCPサーバーをタスクを生成して処理する方法をまとめました。TCPクライアントの接続要求など同期処理をタスクで処理するためアプリが固まることなく他の処理を行うことができます。XIAO31ESP32-WROOM-32E37TWELITE(トワイライト)26PIC16F182731PIC12F67522ノウハウ(体験談)36趣味と生活29その他6タグオペアンププロフィールENGかぴ当ブログの運営者のENGカピです。組み込みエンジニアとして10年以上の経験を活かしてセンサーモジュール等の動作確認したことをまとめています。広告、アフィリエイト収益で当ブログを運営させていただいております。defined.")}))})()タイトルとURLをコピーしました。