1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ShigezoneフルカラーLEDパネルでRSS表示

Last updated at Posted at 2022-04-04

RSS_02_Panel.jpg

はじめに

インターフェース誌2018年10月号でESP32とマトリクスLEDを使ってYahoo!のRSSからデータを取得してマトリクスLEDへ文字情報を表示するデモプログラムを紹介しました。
記事を執筆後に放置状態でしたが、Shigezoneから販売されたフルカラーLEDパネル用ESP32制御ボードキットを入手したので、せっかくESP32を使っていることから、このキットを使ってYahoo!のRSSを表示するプログラムを作成してみました。

・Interface誌 2018年10月号「定番IoTマイコンESP実験コーナ」
 https://interface.cqpub.co.jp/wp-content/uploads/if10_156.pdf

・フルカラーLEDパネル用ESP32制御ボードキット(基板+部品)
 https://www.shigezone.com/product/hub75eboard/

・秋葉原ラジオデパートShigezone(シゲゾーン)
 https://www.shigezone.com/

また、フルカラーLEDパネル用ESP32制御ボードキットを使った他のQiitaの記事のリンクも記しておきます。
・Qiitaの記事「ShigezoneフルカラーLEDパネルを使う(令和)」
 https://qiita.com/Yukiya_Ishioka/items/9984a42072edc950b4a4

・Qiitaの記事「ShigezoneフルカラーLEDパネルを使う(令和2)」
 https://qiita.com/Yukiya_Ishioka/items/b26cd1eae5f5c37470d5

プログラムの取得

プログラムが少し大きくなるため、プログラムはこの記事内には貼らず、GithubのURLを記しておきます。
以下のmain.zipをダウンロードして復元することで必要なソースプログラム一式を入手できます。

ディレクトリ matled_6464_rss を作成し、main.zip内のソースファイルをこのディレクトリへ復元してください。
RSS_01_FileList.jpg

謝辞

今回のRSSの文字データをドットフォントへ変換する際に Mgo-tecさんが作成したUTF-8 文字列から Shift_JIS へ変換するプログラムを使用させてもらっています。
matled_6464_rss.ino内のUTF8_To_SJIS_cnv()utf8_to_sjis()Utf8Sjis_tbl.cが流用させてもらったプログラムやデータになります。

以下に流用元のプログラムは以下になります・・・多分。

 https://www.mgo-tec.com/blog-entry-utf8-sjis-wroom-arduino-lib.html

Yahoo! RSSの注意点

「Yahoo! RSS」のデータを使う場合の注意事項が以下のページに記されています。
このRSS表示プログラムを使う場合には、この注意事項を守ってください。

 https://news.yahoo.co.jp/rss

Arduino IDEの設定

このRSS表示を行うプログラムはフォントデータや文字コード変更テーブルが大きいため、Flash領域を十分に確保する必要があります。
ESP32OTA機能を有効にすると自由に使えるFlash領域が少なくなり、プログラムの書き込みができません。
このため、以下の設定のように「Partition Scheme: "Huge APP (3MB No OTA/1MB SPIFFS)"」を選択してください。
ESP32_Arduino_Set2.jpg

プログラムの修正

Wi-Fiの設定

このRSS表示を行うプログラムはWi-Fiを経由してインターネットからYahoo!のRSSから情報を取得します。
このため利用者の自宅などのWi-FiSSIDやパスコードをプログラム内に設定し、Wi-Fiと接続できるようにする必要があります。

SSIDやパスコードはソースプログラム matled_6464_rss.ino の24行目付近にある以下の内容を修正してください。
ssidがアクセスする Wi-FiのSSIDpasswordがパスコードです。

matled_6464_rss.ino

/******************************************************/
/* Wi-Fiアクセスポイントの SSID とパスフレーズ        */
/* 利用する環境のSSIDとパスフレーズを設定してください */
/******************************************************/
const char* ssid     = "xxxxxxxxxx";
const char* password = "xxxxxxxxxx";

スライドスピードの変更

インターフェース誌で紹介したハードウェアやプログラムではAD変換につないだ可変抵抗の抵抗値を変更することで表示される文字のスライドスピードを変更できるようにしていました。
今回は可変抵抗器が付いていないため、プログラム内で定数でスライドスピードを設定しています。
利用する際にスライドスピードが遅い、速いなどで変更したくなると思います。そのような場合、プログラムの350行目付近の以下場所の「vol = 1000」部分の値を変更してスピードを調整してみてください。
なお、値が小さいほどスライドスピードが速くなります。

matled_6464_rss.ino
/*************************************************
 *  LED_SLIDタスクの入り口関数
 *************************************************/
void  led_slide( void *param )
{
  int  vol;

  Serial.println( "call slideTask()" );

  vol = 1000;

  while( 1 ) {
    vTaskDelay( vol>>6 );

    /* ボリューム値が2000未満ならスライド実行   */
    /* ボリューム値が2000以上ならスライドを停止 */

プログラムの実行

プログラムを変更後、Arduino IDEの「マイコンボードへ書き込む」でキットのESP32へプログラムを書き込みます。

プログラムの実行には、自宅などのWi-Fiの用意と、プログラム上のSSIDとパスコードを修正するだけでそれ以外の準備は必要ありません。
プログラムが起動するとYahoo! RSSの各分野のトピックスが表示されると思います。

最後に

プログラムは読み取ったRSSの情報から

とで囲まれた領域を電光掲示板として右から左へ流れるように文字が出力されます。
表示位置は16ドットフォントでの3行目を使って表示するようにしてあります。色もトピックスの変更時に表示色を変える程度です。
マトリクスLEDの表示領域が余っているのと、カラー表示も十分に使いきれていないので、表示方法を工夫することでもっと実用的であったり、面白い表示が可能だと思います。
新しい表示パターンを開発したらお知らせいただければと思います。

-以上-

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?