前園ソフトウェア開発ロゴ

前園ソフトウェア開発

記号 タイトル 作成日
0010 RaspberryPi-Pico + freeRTOSで遊んでみる
「LCDを2台プロセス間通信で制御してみる」
2026/01/01

タッチパネルでは、文字表示が困難なので、LCD1602で文字表示して、タッチパネルでは、定期的に背景色が変化するように実装してみた。

タイマーが定期的にダミーのタッチイベントをイベントキューにエンキューして、それを一定周期でデキューするとLCD1602の文字表示とタッチパネルの背景色を更新するようにしている。

何故か、このタイマーでエンキューしている処理をタッチパネルの物理的タッチによりエンキューするように改良を試みたが、はまったので、辞めることにした。

Picoで遊ぶのに飽きてきたので、これにて連載をストップしようと思う。

 

表1.機材一覧

名称 説明
RaspberryPi-PicoW 実機
ホストPC OS:Kubuntu24.04
CH340E USBシリアル変換器
ILI9341 240x320 SPI TFT LCD タッチパネル
LCD1602 16ピンタイプ

 

1.プロジェクトのディレクトリー構造を以下に示す。

./
├── build.sh・・・ビルドスクリプト
├── CMakeLists.txt・・・cmakeスクリプト
├── freertos_handlers.c・・・freertosハンドラを分離
├── FreeRTOSConfig.h・・・freertosコンフィグレーション
├── FreeRTOS-Kernel・・・freertosカーネル
├── gpio_lcd.cpp・・・LCD1602制御用クラス
├── gpio_lcd.h
├── LCD_driver.cpp・・・タッチパネル制御用クラス
├── LCD_driver.h
├── main.cpp
└── pico_sdk_import.cmake・・・pico-sdkからコピーする
 

2.ソースコードを以下に掲載する。

main (CPP 4.34KB)

LCD_driver (CPP 3.09KB)

LCD_driver (H 632バイト)

gpio_lcd (CPP 1.49KB)

gpio_lcd (H 507バイト)

freertos_handlers (C 309バイト)

FreeRTOSConfig (H 1.09KB)

 

3.CMakeLists.txtを以下に掲載する。

CMakeLists (TXT 893バイト)

 

4.ビルドスクリプトを以下に掲載する。

build (SH 152バイト)

 

5.Picoとタッチパネル、LCD1602等の配線写真を以下に示す。

写真①

PXL_20260101_045401786.MP.jpg

写真②

PXL_20260101_045408630.jpg