Pi5ユニークポイントのメモ(未整理)
Pi5でやろうとしていること
①RetroPieを入れてゲーム機を作る。
RetroPieの64Bit対応とか、その中のサターンエミュがうまく動かないとかあって放置中
②AIおしゃべりBOT+画像認識ラジカセを作る
単に余裕がなくて放置中。
ユニーク事項
・電源周りの変更
RPi5はなんか5Aモード(特殊なUSB PDで供給する)と3Aモードがある??
私がやりたいのはUSB-PDではなく、GPIOからの電源供給。
このままだと、PD電源じゃないと言って周辺機器への電流制限をされてしまう。
/boot/firmware/config.txtでusb_max_current_enable=1と設定する。
(これはUSB起動を許可する命令ではなく、
電流制限を0.6Aから1.6Aに引き上げる命令っぽいですよ?
結構間違えている人がいそうだけど、大丈夫?)
・retropie久々のインストール(環境移植)
bookworm 64bitをインストール
CUIログインに切り替え
sudo apt update
sudo apt upgrade
sudo apt install xrdp tightvncserver
sudo systemctl set-default multi-user.target
sudo apt install fcitx-mozc fdclone tightvncserver xrdp gddrescue parted gparted cpufrequtils remmina chromium-browser chromium-browser-l10n terminator pcmanfm-qt libc6-dev build-essential i2c-tools git vlc remmina-plugin-rdp remmina-plugin-vnc blueman net-tools netcat-traditional git build-essential libx11-dev python3-pip cmatrix hollywood sl fortune bastet curl code
mkdir 00_temp
mkdir 01_install
cd 01_install
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
cd RetroPie-Setup
chmod +x retropie_setup.sh
sudo ./retropie_setup.sh
・シリアルコンソール用のUARTがGPIOとは別に出ている。
RaspberryPiOS bookwormからの使い方が以下で解説されている
https://qiita.com/nak435/items/d8133b89a6a605d84282
・ついでに・・・UARTの有効化とシリアル通信のやり方
有効化:https://tshell.hatenablog.com/entry/2021/03/04/205346
dtoverlayの書式:https://www.ingenious.jp/articles/howto/raspberry-pi-howto/gpio-uart/
ubuntuへのraspi-configの導入:https://pc.watch.impress.co.jp/docs/column/ubuntu/1594245.html
ループバックテスト(RaspberryPiOS):https://qiita.com/tatsu11/items/98463598ec6bb64b928b
sudoが必要になる問題:Ubuntu + Raspberry PiでGPIOアクセスのための設定 #RaspberryPi – Qiita
●ルーティングするサーバ
softether VPN
●raspberry pi 5 + raspberrypi OS bookworm 64bit環境で現在再生中の音楽の音量を表示する
・準備
sudo apt install python3 python3-pip
sudo apt install portaudio19-dev
python3 -m venv myenv
source myenv/bin/activate
ここまで入れるとpythonの仮想環境か実行され、プロンプトが
<myenv> hore@hogehoge: ~/
のように変わる。
「メモ」venvとros2の相性がなんかよくないので以下で強引にvenvなしでpipする手もある
pip install pyaudio --break-system-packages
とか
pip install transitions --break-system-packages
(ROS2でよく使うやつ)とか。
「メモ」AIによると以下のような方法でros2に認識させる方法もあらしいが試していない。
・仮想環境をアクティブにする:
source /path/to/your/venv/bin/activate
・ROS2の環境を設定する:
source /opt/ros/humble/setup.bash
・PythonのパスをROS2に追加する: 仮想環境のPythonパスをROS2の環境変数に追加します。以下のコマンドを実行します:
export PYTHONPATH=$PYTHONPATH:/path/to/your/venv/lib/python3.x/site-packages
・colconのビルドキャッシュをクリアして再ビルドを試みる:
colcon build --cmake-clean-cache
・プログラム本体(volume_display_py)
import pyaudio
import numpy as np
# PyAudioの設定
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024
# PyAudioのインスタンスを作成
audio = pyaudio.PyAudio()
# ストリームを開く
stream = audio.open(format=FORMAT, channels=CHANNELS,
rate=RATE, input=True,
frames_per_buffer=CHUNK)
print("音量を表示します。Ctrl+Cで終了します。")
try:
while True:
# 音声データを読み取る
data = np.frombuffer(stream.read(CHUNK), dtype=np.int16)
# 音量を計算
volume = np.linalg.norm(data) / CHUNK
print(f"音量: {volume:.2f}")
except KeyboardInterrupt:
print("終了します。")
# ストリームを閉じる
stream.stop_stream()
stream.close()
audio.terminate()
で、以下実行
python volume_display_py
●ROS2 humble install
https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html
sudo apt install software-properties-common
削除[
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
]
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
修正要[
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
]
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu bookworm main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update && sudo apt install -y \
python3-flake8-docstrings \
python3-pip \
python3-pytest-cov \
python3-flake8-blind-except \
python3-flake8-builtins \
python3-flake8-class-newline \
python3-flake8-comprehensions \
python3-flake8-deprecated \
python3-flake8-import-order \
python3-flake8-quotes \
python3-pytest-repeat \
python3-pytest-rerunfailures \
ros-dev-tools
mkdir -p ~/01_ros2_humble/src
cd ~/01_ros2_humble
vcs import --input https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos src
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"
削除[
cd ~/ros2_humble/
colcon build --symlink-install
]
sudo mkdir -p /opt/ros/humble
sudo colcon build --install-base /opt/ros/humble
以上参考
https://qiita.com/vrn/items/80e36a3171ad973dde691
末尾に以下追加
source /opt/ros/humble/setup.bash
source ~/11_colcon_ws/install/setup.bash
・確認。
新しくコンソールを2つ起動し

それぞれで
ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_py listener
を実行。

●AI HAT
https://gigazine.net/news/20241031-raspberry-pi-ai-hat-plus-camera/