鉄道模型LAN制御
作り方情報 →  資料

T-SH7706LSR マイコンボード,RaspberryPi環境設定、その他の備忘録   2023.7.--

諸事情によりセミナーを実施しなくなって久しい。
セミナーに関係なく制作記事など載せていこうと思う。
上部に新しい情報、下部に古い情報の順とする。(下部は備忘録的)

1.ロングドライブの退屈な時間を楽しむために
RaspberryPi4を使って動画サーバーを作ってみる。
動画サーバ

(概要)
記事更新:2023.7
RaspberryPiをWiFiルータにするといった記事がインターネットで紹介されている。
これを応用してRaspberryPi4を使って動画サーバーを作ってみる。
RaspberryPi4がWiFiアクセスポイントになっているので、手持ちのスマホ、タブレットで接続し、
RaspberryPi4に取付けたUSBメモリの動画を見ることができる。
USBメモリにはあらかじめ再生したい動画データを保存しておく。
ロングドライブの退屈な時間を楽しむために、使ってみるのもいいかもしれない。
もっともタブレット端末にSDメモリ端子があればこんなことしなくても。。。。という話もあろうかと思うが、
昔のタブレットにはSDメモリ端子がなかったりするのでタブレットの再活用である。
さらに、アレンジとしてUSBメモリの代わりにHDDにすれば保存動画は余りある数となるだろう。
動画には著作権があったりするので個人で楽しむだけにする。
再生アプリにはフリーのVLCがお勧めである。(他を試していないだけ)
また、別途RaspberryPi0を接続してRaspberryPi0にカメラを取り付けドライブレコーダ
あるいは監視カメラといった使い方もできるようになっている。
(追記:その後RaspberryPi0_2での使用検証したところ、OSのbullseyesの標準ffmpeg動作が不安定であり、
結局buster+ffmpegとしないと動作安定しない。
メリットとしてRaspberryPi0_2は4コアなのでコンパイル時間はPi3同等。)
記事にあるような有線LANを接続したままではロングドライブどころか車に持ち込めないので、有線LANをはずすことになる。
しかし、インターネット接続なしでのRaspberyPi4には困ったことが生じる。
もともとRaspberryPiの時刻データはインターネット経由で得るため電源を切れば時刻データは消えてしまう。
そのため常時インターネットとの接続を確保しておく必要が生じる。
もしくは何らかの方法で、たとえばUSB型GPS機器や電波時計キットで時刻情報を得ることを考える。
ここでは常時インターネットとの接続を選択し、ポケットWiFiのようなインターネットの接続環境が提供できる端末と
この端末とのアクセスができる機器として無線LANとLANコネクタをもつRaspberryPi3(or 3+)に仲介させる。
これに先立ち、RaspberryPi4には4つのUSBソケットがあるのでオリジナルのwlan0とは別にUSB型無線LAN アダプタを取付けwlan1とし、
wlan1を通してポケットWiFiに接続できれば良さそうに思えるがうまくいかない。
どうやら無線LANドライバは1つの無線LANしか対応できないようだ。
ブロック図にあるRaspberryPiは識別のためのそれぞれ異なったホスト名にしておく。
また、Raspberry3(or 3+)があれば、RaspberryPi0の非力を補う起動SD作成用途として使用できる。
ブロック図のRaspberryPi0は消費電力のメリットがあるがシングルコアなので非力である。
そのRaspberryPi0の起動SDカード(システムSDカード)をRaspberry3(or 3+)で作成することができる。
OSのbusterは全モデル使用可能でRaspi0とRaspi3とは互換が効く。
使用方法として、インターネット側にeth0にして起動SDカードを作成する。
作成後eth0を使用停止してwlan0側を有効にして起動用SDカードとしてRaspberryPi0に差替える。
さて、完成後の使用検証だが、Pi4のヒートシンクがかなり熱くなるのでUSBファンを取付けた。
以降、制作手順を順次提示していく。

ブロック図
以降、制作手順
Pi4設定要領
Pi3設定要領
Pi0設定要領

以下は過去の記事 bullseye2022_04_04版ではVNC使用時にVGA変換器がなくても使用できるように改善されている。
2.RaspberryPi活用 2021年当時
随時、加筆訂正しています。
RaspberryPi4がリリースされ、セミナーに適したケースも揃ってきた。
8月の内容をPi4に改編し、活用性の低いものは削除した。(ただし、これまでの内容は2’にして備忘録)
また改編に伴い、7セグメントをカソードコモンに変えた。これまでだましだまし使っていたが、動作エラーが顕著になったため。
ところでPi4は高性能になったが、消費電力が大きいので組込みには適さないかもしれない、
Pi4はOS搭載で電力が確保できる環境でのコントローラとしての用途が適しているだろう。
また、本内容でPi3の検証も可能だ。その際の注意点も付記しておく。(ただし、OS(SDカード)の互換性はないので注意のこと)
また、Iのチェックプログラムblink.cの出力設定関数に不具合があったので修正を加えてある。
概要
@:VMware Playerを使用する。ubuntuPCを準備する。[付録]アナログモニタを使用する。
VNC画像の解像度設定
A:wiringPiライブラリでSPI通信をする。I2C通信をする。MCP23S17,MCP23017を使ったSPI、I2Cによる信号拡張
B:USBWebカメラを使用する。IPアドレスの指定設定する。FFmpegを使用する。
C:Webサーバ機能を使用する。PHP。CGI制御する。Webカメラでmjpg-streamerとCGIを連携する。
D:RaspberryPiのカメラモジュールを使用する。監視カメラサンプル。
E:クロスコンパイラでubuntuPCでコンパイルする。kernelの再構築(kernel,kernel7,kernel7l,kernel8)をする。
F:(削除)
G:(削除)
H:sambaをインストールしてファイルサーバにする。
I:/dev/memドライバを使ってGPIOを制御する。
J:16x2行のLCD、LED点灯の出力形式のデバイスドライバを作成する。MakeFileのしくみを工夫作成する。
LCDはコードが長いので時間短縮用に2個のLEDの出力形式のデバイスドライバ追加
K:メカニカルスイッチを使って入力形のデバイスドライバを作成する。LCDと連携させて制御する。
L:位置制御型のサーボモータをコントロール。
M:PWM出力。/dev/memドライバを使って。サーボモータ制御。
   任意波形生成(FIFO使用) sin波。
   ユーザランドにてDMA使用による繰返し任意波形生成 sin波
(分割されているのはレンタルサーバーのファイルサイズ制限のため)

 @-1   @-2   @-3   A-1   A-2   B-1   B-2    C    D    E-1   E-2    H     I   J-1  J-2  J-3  K-1 K-2   L  M-1  M-2  M-3  M-4 

2’.RaspberryPi活用 (備忘録)
Raspbianの記事
かつての資料として保存
2020/8月当時
概要
@:VMware Playerを使用する。ubuntuPCを準備する。[付録]アナログモニタを使用する。
VNC画像の解像度設定
A:wiringPiライブラリでSPI通信をする。I2C通信をする。MCP23S17,MCP23017を使ったSPI、I2Cによる信号拡張
B:USBWebカメラを使用する。IPアドレスの指定設定する。FFmpegを使用する。
C:Webサーバ機能を使用する。PHP。CGI制御する。Webカメラでmjpg-streamerとCGIを連携する。
D:RaspberryPiのカメラモジュールを使用する。監視カメラサンプル。
E:クロスコンパイラでubuntuPCでコンパイルする。kernelの再構築をする。(RasPi性能のアップとともに重要度低下)
F:手頃なusb接続(ドライバはシリアル通信)プリンタを制御する。(結構くせのあるプリンタなので参考まで)
G:skypeを使用する。x86エミュレータ(EltechExaGear)を使用する。(メンテなし。年数も経過しているので参考まで)
H:sambaをインストールしてファイルサーバにする。
I:/dev/memドライバを使ってGPIOを制御する。
J:16x2行のLCDで出力形のデバイスドライバを作成する。MakeFileのしくみを工夫作成する。
K:メカニカルスイッチを使って入力形のデバイスドライバを作成する。LCDと連携させて制御する。
L:位置制御型のサーボモータをコントロール。ドライバを作成する。セルフコンパイラを使って作成もする。
M-1:PWM出力。/dev/memドライバを使って。サーボモータ制御。
   任意波形生成(FIFO使用) sin波。
   ユーザランドにてDMA使用による繰返し任意波形生成 sin波
 @-1   @-2   @-3   @-4   A-1   A-2    B     C     D    E-1   E-2   H    I    J    K    L-1   L-2   L-3   M-1   M-2 

3.Linuxによる組込みシステム開発 Fedora編
概要(終了しています。)
使用部品_27年度版
@−1(試用版) @−2(試用版)   A(試用版)   B(試用版) C−1(試用版) C−2(試用版) D(試用版)   E(試用版)  F−1(試用版) F−2(試用版) G−1(試用版) G−2(試用版)

4.Linuxによる組込みシステム開発 BusyBox編
概要(終了しています。)
使用部品_26年度版
@−1   @−2   A−1   A−2   B−1   B−2  C   D


5.アルテラFPGA 開発学習ボード DE0(現在は入手不可。後継ボードに対してのソースコードの参考資料)
DE0見本
DE0の時計サンプル。 Tokei.zip
ROMの上書きでデモプログラムがなくなってしまった場合など、インテリアとして。
写真が示す時間は9時20分32秒あるいは38秒、32と38はLEDの動きで識別する。
注:なおDE0のIPコアCyclonVは開発ツールQuartusUのバージョン13までのサポート品(14以降はサポートなし)なのでツール選択時には注意のこと。



6.資格試験など対策アプリ(データベースでどんな資格試験にも対応可能)
対策くん.zip 対策くんの概要説明(pdf)
「対策くん」は各自がマイクロソフトエクセル(以下エクセル)で問題文と解答文を入力してデータベースを作り、 繰り返しトレーニングするツールです。
ウインドウズ7&エクセル2010での動作が確認されています。(XPでの動作不可)
著作権の問題もあるので問題と解答のデータベースは各自で作成してください。
サンプルファイルとして数問だけのエクセルファイルを掲載しています。

最初に(アンインストール方法)
レジストリへの書込みはありません。
不要になれば「対策くんフォルダ」をフォルダごと削除すればアンインストールは終了します。ゴミを残しません。

(インストール&使用方法)
ダウンロードした圧縮ファイルを解凍後、「対策くんフォルダ」をフォルダ毎(圧縮ファイルは必ず解凍処理のこと)適当な場所にコピーします。
フォルダ内の「対策くん.exe」を実行します。
なお、実行ファイルのショートカットをディスクトップに貼りつけるとより便利に使えます。
当然ですが、マイクロソフト・エクセルがインストールされていることが前提です。

(データベースづくり・問題作成)
「databaseフォルダ」内にて _データ作成手順.xlsxを参考に作成します。
具体的には _雛形.xlsxを上書きして適当なファイル名にして保存すれば作成できます。

(データベースづくり・図面作成)
450x300ドットで画像を作成し「databaseフォルダ」→「画像フォルダ」に保存します。
「画像フォルダ」には _描画作成手順.xlsxがあるのでこれに従って作成します。
具体的には
1._描画作成手順.xlsxの赤枠スペース内にエクセルの描画ツールで絵を描き、 ペイントアプリを起動して描画部分を貼りつけます。
大きさを450x300ドットに調整し適当な名前のファイル名にして保存します。
2.無題.bmpをペイントアプリで開き、描画ツールで図面を作成したあと適当な名前のファイル名にして保存します。
1.または2.の処理の後、データベースであるエクセルファイルの指定セルに図面ファイル名を記述します。

(その他)
エクセルソフトの終了が悪かったりするとエクセルソフトのゾンビ(画面で確認できないがタスクマネージャーで確認可能)が発生します。
特にデータベース編集時に発生しやすい傾向があります。
安全のためデータベース編集中は他のエクセルソフトが起動していれば終了してください。
ゾンビ自体はコンピュータの再起動でなくなります。