2021/11/26

RaspberryPiの起動SDカード作成 2021年11月版

  • RaspberryPiの起動SDカード作成 


先ずは初歩の初歩。

RaspberryPiのOS起動SDカードを作ります

一昔前は自分でコマンドを叩かないといけなかったりとハードルが高かったのですが、今はツールを使って簡単に作れます。

必要な物

  • 書き込み用のPC(Windows、Mac、Ubuntuなど)
  • マイクロSDカード
  • (PCにSDカードスロットが無い場合は)SDカードリーダ・ライター

 マイクロSDカードは、「A1」という表記があるのが望ましいです。
 書き込み速度が速いタイプが動作がキビキビします。

 SanDisk Ultra 32GB 等をお勧めします。



1.Raspberry Pi Imagerのダウンロード

サイトにアクセス

https://www.raspberrypi.com/software/


PCの種類にあわせてダウンロードします。

Windows、Linus(Ubuntu)、macOSの選択が可能。

すでに、RaspberryPiで環境を作っている人は、「sudo apt install rpi-imager」でインストールすることも出来ます。


筆者の環境の都合上macOSで進めます。


2.インストールして起動(macOS版)


CHOOSE OSをクリック

普通に使うなら、そのまま一番上の「Raspberry Pi OS (32-bit)」を選択。


アプリがすべて導入された、フル版を試してみたい場合は、

すぐ下の、RaspberryPi OS(other)をクリックして、
次の画面の「RaspberryPi OS Full(32-bit)」を選択します。

フル版だと、OffieアプリやGameなどもいじれますよ。


ちなみに、標準版でも稼働後に豊富なアプリをダウンロードできますので、ご安心ください。



3.書き込み先のSDカードを選択

SDカードをPCに刺して、書き込み先を選択します。


接続している他のドライブも見えますので、間違えないように注意してください。

Macの場合は、ディスクユーティリティーでドライブの名前を確認しながら選択すると良いでしょう。


例:32GBのマイクロSDカードなので、CRW-SD Mediaというの


同じ、CRW-SD Media のものを選択


4.書き込み

WRITEをクリック


一旦、管理者権限のパスワードを求められるので、入力してください。


あとは、ひたすら待ってください。

標準構成のRaspberryPi OSで、32GBのSDカードへの書き込みは5〜10分ほどかかります。

できあがったSDカード取り出して、RaspberryPiにセットして電源ONです。


起動前に、Wi-Fiネットワーク設定を行っておいて、モニタを使わずにセットアップすることも可能ですがこれば別記事で。


お疲れ様でした。


2021/11/25

RaspberryPi (bullseye) LXDEデスクトップで自動起動

RaspberryPiOS(buster)からデスクトップ(LXDE)において、アプリ・スクリプトの自動起動が大きく変わっています。(現行のbullseyeも同じ)


今までの、~/.config/autostart/ への記述ではスクリプトは動作しませんので要注意。

参考RaspberryPiのフォーラム

https://forums.raspberrypi.com/viewtopic.php?t=294014


手順に従って作成

% $ mkdir -p /home/pi/.config/lxsession/LXDE-pi/
% $ cp /etc/xdg/lxsession/LXDE-pi/autostart /home/pi/.config/lxsession/LXDE-pi/
% $ vi ~/.config/lxsession/LXDE-pi/autostart


ようは、/etc/xdg/lxsession/KXDE-pi/autostart スクリプトを

をローカルにコピーして追記すると、追加でこっちも動くという事らしい。


追記の仕方は、参考のURLを見ておくこと。


penv等のユーザ環境でのスクリプト動作をさせる場合は、ターミナルを起動してそのなかで起動させるのをお勧めする。(環境変数を引き渡せる)

@lxterminal -e スクリプトパス


注意点(参考投稿から抜粋)

  • autostartの初期2行は消さないこと。
  • 複雑なコマンドは実行できないので、bashスクリプトを書いてその中で実行
  • ネットワーク接続が必須の場合は、初期設定で「ネットワークを待機」の設定で実行する
  • コマンドは一気に実行されるので、先に書いた処理を待ってというのが出来ないので注意
  • 先頭に#を入れるとコメントアウトされるみたい(公式かどうかは不明)


です。


RaspberryPiでQtアプリの自動起動がどうしても出来なかったので調べました。


pythonスクリプトの.desktopファイルを作成しても、ダイアログ出てきて動作に一手間かかるんですよね。

これの修正方法は未だわからず。


Macでスクリーンショットのデフォルト保存先を変える等(⇧シフト+⌘コマンド+5のススメ)

Macでシフト+コマンド+3やシフト+コマンド+4で撮れるスクショ機能。皆さん使っていますか?

Macの場合はこのファイルの保存先がデスクトップになっているため、いろいろ撮影しているとあっという間にデスクトップが埋まってしまいますね。


この保存フォルダを変更する方法です。



Macでスクリーンショットの保存先を変更 Big Surの場合


⇧シフト+コマンド+5を押すと、画面下部にメニューが表示されます。

このメニューのオプションからフォルダを変更できます。

私は、デスクトップにScreenというフォルダを作ってそこに入れて、資料づくりに利用しています。



また、このメニューでは、スクリーンショットを取るまでの時間の設定やマウスポインタの産むなども設定できます。ツールを使わなくても必要充分ですね。


スクリーンショットを取った後に、右端に表示されるサムネイル画像をクリックすると編集画面(タッチアップ画面)になります。


画像のトリミングやコメント入れなども簡単にできて保存できるのは便利です。


サムネイルを【右クリック】すると、そのスクリーンショットをどう処理するかも選択可能です。マークアップだけじゃ無く、写真アプリに取り込んだり、クリップボードに保存したりと…


最後に、ウインドウのスクリーンショットの小技です。

⇧シフト+コマンド+4で、矩形指定のスクリーンショットになります。

この後、スペースを押すと、「ウインドウ毎」のスクリーンショットに切り替わります。

さらに、このときに、オプションキーを押しながら撮影すると、ウインドウの陰が無いバージョンでウインドウのスクリーンショットが撮れます。

画面説明を作っている際に便利なので使ってみてください。


陰有り

影無し(オプションキー押し)


MacのスクリーンショットはSierraぐらいから一気に進化しています。

Catalina(10.15)、Mojave(10.14)でも使えます。

ちょっとした便利機能をお試しください。


2021/11/24

RaspberryPiとQt5でUI開発@2021年

開発系の話題でRaspberryPiでのUI設計などをつらつらと。

RaspberryPi4B(4GBメモリ)は、7インチのタッチパネルを使い、RaspberryPiOSとQt5の様な開発環境を用いると、非常にリッチな環境を容易に構築できます。

Python3も余裕で動く上に、Qt5の環境はWindowsにもひけをとらない画面設計が出来ます。

これらの環境を用いて、SEM-ITにて開発した内容から、使い方や調べた内容をメモ書きとして残していきます。


開発環境ですが、

RaspberryPiRaspberryPi 4B 4GBメモリ
モニター7インチ(1024x600) IPS液晶 タッチパネル
RaspberryPi OSLinux raspi-002 5.10.63-v7l+ #1459 SMP Wed Oct 6 16:41:57 BST 2021 armv7l GNU/Linux
Description: Raspbian GNU/Linux 11 (bullseye)
Qt5環境Qt5 5.15.8
PyQt 5.15.6
Ubuntu 20.04LTSLinux ubuntu 5.11.0-40-generic #44~20.04.2-Ubuntu SMP Tue Oct 26 18:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

です。

Qt5は絶妙なタイミングで、RaspberryPiOS向けにQt5 5.15が標準公開されて、apt installで標準インストール可能になりました。(2021年11月現在)

pygraphも使えるようになっているので非常に便利です。

Qt5Creatorを使って画面設計を思う存分楽しめます。


しかし、画面設計やコード設計はRaspberryPiだけで行うのは非常に辛いです。

そこで、Ubuntu 20.4も平行利用しています。


MacやWindowsによる開発でも良いのですが、フォントの部分の調整が必須になるので、同じLinux環境であるRaspberryPiとUbuntuの方がUI設計での親和性は高いです。

RaspberryPiへのOSのインストール方法、Qt5開発環境の構築Ubuntu20.4の導入は後日追記していきます。


以下は、Ubuntu20.4にQt5開発環境を導入しからのての実施です。ご注意ください。


では本題です。


RaspberryPi向けのフルスクリーン画面の設計

Qtデザイナを開いて新規作成


ダイアログタイプのウインドウを用いて、画面を出したいので

templates/forms → Widget

を選択して「作成」をクリックします。


画面サイズの変更とサイズ固定

デフォルトの画面サイズが「400x300」で作成されたので、右側のプロパティ設定にて、以下の様に変更します。

QWidget→geometry,  minimumSize,  maximumSize

幅 :1024
高さ:600

これで、1024x600の固定画面のウインドウが出来ました。

上記のそれぞれの設定では、ウインドウサイズ、最小の大きさ、最大の大きさをすべて1024x600にしています。結果的に、画面サイズがマウスドラッグで変更できないようになっています。


終了ボタンの設置

実際の画面を確認したいので、終了ボタンを設けましょう。

左のツールバーのButtons→Dialog Button Boxをウインドウにドラッグします。

その後、右のプロパティから Qobject→objectName を確認しておきます。

これは、Pythonのプログラムから呼び出すときに使う名前になります。


画面データ(フォーム)の保存

このフォームを名前を付けて保存します。

好きな名前で良いですが分かるようにしてください。

今回は、フォルダを分けてわかりやすくするように「/formTest/form.ui 」として保存します。

 


ターミナルを開いてformTestに移動してみます。

lsコマンドで、form.uiが出来ていますね。

表示を行うPythonプログラムの作成

次に、このform.uiを表示するPythonプログラムを書きます。

テキストエディタ等で、以下のコードを作成して、form.pyで保存します。

#!/usr/bin/python3
from PyQt5 import uic, QtWidgets
import sys
app = QtWidgets.QApplication([])
mDlg = uic.loadUi("form.ui")
def button():
  sys.exit(0)
mDlg.buttonBox.clicked.connect(button)
mDlg.showFullScreen()
app.exec()


「なんで画面とコードが別々なのー」と思いますが、これはツールの都合です。

Windowsでも画面のパーツとコードは別々で、最後にexeとして一つにしています。

サンプル画面プログラムの実行

このPythonプログラムを実行します。

 %formTest: python3 form.py

すると、


フルスクリーン画面でウインドウが表示されます。

タスクバーやメニューバーも消えています。

OKかCancelをクリックすると終了します。


Qt5を導入しているRaspberryPiの環境にformTestフォルダ毎コピーして実行すると、フルスクリーンの画面が表示されると思います。


フルスクリーンのポイントは、Pythonコードの

mDlg.showFullScreen()

です。

mDlg.show()

にするとダイアログウインドウになります。


変更していろいろ試してください。

あとは、好きなバーツを組み合わせて画面が作れますね!


今日はここまで!

Mac mini 2018 のWi-FiやBluetoothが途切れる場合の対処

Mac mini 2018以降で、Wi-FiやBluetoothが不安定な方向けです。 SEM-ITも例に漏れずBluetoothが非常に不安定で、キーボード利用中に切断されると、文字が入力されたままになるとか、Magic TrackPad2の触感がいきなり無くなって切断される…...