ラズベリーパイ
32bitコアのCPUで900MHzから1.5GHzの周波数で動作します。初代から4までとZERO,PICOがあります。⇒
P2_1585
OSインストール
RaspberryPi初代から4のインストールをします。2021/5/11
Raspberry Pi OSのページへ行きます。
Windows用にダウンロード をクリックしてimager_1.6.1.exeをダウンロードします。実行ファイルですのでダブルクリックしてインストールします。
自動的にインストールされて更にパイ用のSDへのインストーラが起動します。(c:\Program Files(x86)\Raspberry Pi Imager\rpi-imager.exeで実行できます。タスクバーにくぎ付けしておくと便利です)
①Operating Systemを選択します。2021/5/1210種類あります。
②Storageを選択します。SDカードを入れると選択できるようになります。
選択が終わるとWRITEが現れます。クリックするとSDカードを消去するメッセージが出てフォーマットして書き込みが始まります。
P3_3157
書き込み終了後SDカードのフォーマットが違うことを指摘するメッセージが表示されますが,ラズベリーパイのimagerの指示に従います。CONTINUEで終了します。
通常は10分ほどでほどで終了しますが,Fullだと20分ほどかかります。ubuntouはさらに時間がかかります。
Pi4はPi3よりかなり早く動きます。
初代,Pi2,Pi3,Pi4ともに同じOSで動かすことができます。SDカードを共有することもできます。
SDカードを装着してRaspberryPiを起動すると最初にいくつかセットアップする必要があることを告げられます。
名前やパスワードを変更した場合は覚えておかないとVNCやSSHに入るとき必要です。
次に国を設定します。だいぶ時間がかかって設定をします。次にpassword設定に入りますが設定しなくてもいいようです。デフォルトでは(名前piパスワードraspberry)です。
次にスクリーンですが,チェックしなくてもよさそうです。
ソフトウエアのアップデートです。何度かダウンロードをしてインストールしますので,相当時間がかかります。初代RaspberryPiでは,1時間以上になります。インストールのインジケータは動いてないように見えます。マウスカーソルを目印にして初めて動いているのだと認識できるほどです。
P4_4743
Raspberry Piバリエーション
RaspberryPi4
CPU4コア1.5GHz,RAM1,2,4,8GB
2021/7/3 4G新品5500円8G新品7300円
2021/7/24電源SDケースHDMI2G5000円
RaspberryPi3
CPU4コア1.4GHz,RAM1GB
2021/7/24
2021/7/8技適付き2700
RaspberryPi2
初代RaspberryPi
CPU4コア1.2GHz,RAM1GB
2021/7/14 3.5タッチディスプレイ付き2510
CPU4コア900MHz,RAM512MB
2021/7/7 1200
初代のPiがVideo端子があるので小さく映っていますが基盤はほぼ同じ大きさです。2,3,4はマイクロSDですが初代はSDカードです。電源供給は4がCたいぷのUSBで他はマイクロUSBです。初代はSDカードの横についています。
Raspberry Pi ZERO W
CPU4コア900MHz,RAM500MB
2021/7/10 1480
Raspi3は今のところ3種類あるようです。大きくはwifi・BLがついているものと,ついていないものです。そして技適マークがあるものとないものです。技適マイクがなくても2015と印刷のあるものは電波が飛ぶ可能性があります。2021/05/20
パスワードのリセット手順
P5_6240
-
電源を切り SD カードを取り出します。
-
SD カードを他の PC に挿し、テキストファイル cmdline.txt を開きます。
-
cmdline.txt の最後に、空白を開けて init=/bin/sh を追加し保存します。
-
SD カードを Raspberry Pi に戻して、Raspberry Pi を起動します。
-
プロンプトが表示されたら su を入力して root でログインします。
-
mount -rw -o remount / を実行。
-
passwd pi を入力するとパスワードを再設定できます。
-
次を実行します。
$sync $exec /sbin/init $sudo halt
-
SD カードを取り出したら上記で追加した init=/bin/sh の部分を削除します。
カメラ接続
カメラは安いものでは750円位からAm...で販売しています。中古で同じようなものが1000円以上していることが多いです。どのような違いがあるかわかりません。2021/05/20
Pi2,Pi3,Pi4はほぼ同じ位置にカメラ用のコネクタがあります。初代もほぼ同じ位置なのですが,オーディオジャックがないので少し狭く感じます。電極側がHDMI側に向きます。zeroはケーブルが違うようです。
P6_7606
Raspberr Piを起動してPiの設定をします。
画面左上のイチゴのマークをクリックしてプルダウンメニューから設定をクリックして,ポップアップ・メニューの中からRaspberry Piの設定を選択すると設定メニューが出ますので,
インターフェースのタグをクリックして,カメラの項目の有効のラジオボタンをクリックして選択します。最後に右下のOKを押します。
イチゴのマークのプルダウンメニューからログアウトをクリックして終オプションの中から,ShatdownまたはRebootを選んで終了します。
P7_9400
新しく立ち上がったところでタスクバーのイチゴの3つ目にある>_をクリックしてコンソール画面にします。
sudo raspistill -o image.jpg
sudo raspistill -o image.jpg と入力するとカメラがとらえた画像が5秒間表示され,その後撮影して画像はPiフォルダに格納されます。
sudo raspistill -t 3000 -o image.jpg と入力するとカメラがとらえた画像が3秒間表示されます。
LAN接続
P8_10902
有線LAN
LANケーブルを差し込むとLAN接続ができます。
LANの接続ができないときはモデムかルーターが機能していないことが考えられます。
ルーター,モデムの順に電源を落とします。1分ほどしてから,モデムの電源を入れ全てのLEDが安定するまで待ちます。その後ルーターの電源を入れます。しばらくすると通信ができるようになります。
LANの接続状態をパソコンで見るにはコマンドプロンプトでipconfig/allとタイプします。
IPアドレス確認
command lineで
for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.1.%i
とタイプするとIPアドレスに一つずつpingを打ちpomgを待ちます。255個の確認を終えた後
arp -a
とタタイプするとpongを返してきたアドレスを表示します。
固定IPアドレスに変更1
Raspberry Piのdhcpcd.conf を書き換えるには
①タスクバーの右のほうにある有線LAN ↑↓ か無線LANのマークを右クリックしてメニュー(多分一番上)からWireless & Wired Network Settingsを選択してNetwork preferenceのメニューを開きます。
P9_12531
IPv4 Addressに192.168.**.xx/24と入力します。
/24はおまじないです。**はネットワークの番号です。ルータがもともと持っている,または設定する番号です。xxにはネットワークの中で使われていない番号を使います。
Routerには192.168.**.1と入力します。
DNS Serversには192.168.**.1 8.8.8.8
DNS Serchは192.168.**.1にしました。
固定IPアドレスに変更2
Raspberry Piのdhcpcd.conf を書き換えるには
② >_ をクリックしてコマンドプロンプトで,
sudo nano /etc/dhcpcd.confと入力します。
# Example static IP configuration:の下の各行を必要に応じて書き換えます。#を消すとコメントでは無くなります。
--------------------------------------------
# Example static IP configuration:
#interface eth0
#static ip_address=192.168.**.**/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.**.1
#static domain_name_servers=
0.0.1.1 8.8.8.8 fd51:42f8:caae:d92e::1
☟
# Example static IP configuration:
interface eth0
static ip_address=192.168.**.**/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.**.1
static domain_name_servers=
192.168.**.1 8.8.8.8 fd51:42f8:caae:d92e::1
---------------------------------------------
ctrl+oとキー入力してenterを押して書き込みをします。
ctrl+xとキー入力して終了します。
exitでコマンドプロンプトを終了します。
再起動します。
P10_14115
無線LAN
RaspberryPi4はwifi内臓なのですが,初代,2,3は無線ランのアダプタを付けなくてはなりません。3BB+はwifi・bluetooth付きです。
EW-7811Un,Panda wirelessはドライバなしですぐ機能しました。
固定IPアドレスに変更3
Raspberry Piのdhcpcd.conf を書き換えるには
③ >_ をクリックしてコマンドプロンプトで,
sudo nano /etc/dhcpcd.confと入力します。
ファイルの一番下に移動します。
iinterface wlan0
static ip_address=192.168.**.xx/24
static routers=192.168.**.1
static domain_name_servers=192.168.**.1
を書き加えます。
---------------------------------------------
ctrl+oとキー入力してenterを押して書き込みをします。
ctrl+xとキー入力して終了します。
exitでコマンドプロンプトを終了します。
再起動します。
P11_15582
日本語入力
Raspberry Pi OS は初期設定では日本語の表示はできますが,日本語入力ができません。
Googleの日本語入力「Mozc」のパッケージをインストールします。
sudo apt-get install ibus-mozc
xim-mozc
fcitx-mozc のどれか
を入力してインストールします。
この操作後に追加で 128 MB のディスク容量が消費されます。
続行しますか? [Y/n]
と問われますので, y と入力してエンターを押します。再起動後
2021/7/13
アップデート
パッケージ
sudo apt-get update パッケージのアップデート
sudo apt-get upgrade パッケージのアップグレード
ファームウエア
sudo rpi-update カーネル、ファームウェアのアップデート
uname -a 確認
ビルトツール
sudo apt-get install autoconf libtool automake build-essential git
ビルドツールのインストール --fix-missing
GCC
sudo apt-get install gcc GCCのインストール
2021/7/13 xxx
MONOインストール
?sudo apt install apt-transport-https dirmngr gnupg ca-certificates
?sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
?echo "deb https://download.mono-project.com/repo/debian stable-raspbianbuster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
?sudo apt update
time sudo apt -y install mono-devel mono-complete mono-vbnc mono-dbg referenceassemblies-pcl ca-certificates-mono mono-xsp4 > /tmp/work/mono_install.log
sudo apt full-upgrade -y アップデート
P12_17162
node
2021/7/14
su - パスワードを入力してルートに入ります。
npm install -g n nというバージョン管理ツールのインストールをします。
n stable 安定版または,
n latest 最新版をインスロールします。
電源OFF
機能command
遠隔操作 SSH VNC
遠隔操作
左上のタスクバーのイチゴのマークから☞設定☞Raspberry Piの設定をクリックします。
設定ツールの中でインターフェイスのタグを選択してSSH,VNCの項目のラジオボタンを有効にします。ツールの右下の OK ボタンを押して再起動するとIPアドレスを表示して起動します。
メモを忘れても大丈夫です。タスクバーの右のほうにあるVncのマークを押すと同じ内容が表示されます。また、固定IPにしてあればIPアドレスは変わることはないようです。
P13_18727
SSH (Secure SHell)セキュアシェル
暗号化された安全な通信網を構築する技術です。VNCを始めるときは何も言いませんが,SSHを始めようとするとき,名前を初期設定のままだと危険だと注意されます。
RaspberryPiの設定
イチゴのマーク☞設定☞RaspberryPiの設定
メニューの窓でインターフェイスのタグを選択してSSHの有効のラジオボタンを押します。OK出窓を閉じ再起動します。
パソコンの設定
コマンドプロンプトの中で,sshと入力して
と表示されていればパソコン側のSSH体制は整っているということだそうです。
コマンドラインで
for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.10.%i
と命令すると,'i'が0から255まで1ずつ増やしてPINを出して,返事があるかを調べます。
次に
arp -a
とコマンドを打つとデータが損失しなかったアドレスを列記します。
RaspberryPiの名前はデフォルトで'pi'です。IPアドレスを事前に調べて,192.168.1.22だとすると
ssh pi@192.168.1.22
とコマンドを出すと繋がります?
P14_20265
ファイル転送
WinSCPをインストールするとRaspberryPiとWindowsでファイルのやり取りができます。
窓の杜でWinSCPをダウンロードします。WinSCP-5.17.10-Setup.exe(バージョンは替わっていると思います。2021/5/19)を実行するとファイル交換ソフトが使えるようになります。(2022/2/7_WinSCP5.19.5)
ホスト名は192.168.**.xxです。
ユーザー名は pi
パスワードは raspberry
と入力して,フォルダーを指定します。
設定☞OK☞ログインとします。
SSH接続サンプルプログラム(sshTerm)
内容
2021/7/12
VNC (Virtual Network Computing)機能
解像度を決める。
raspi側で画面モードを決めます。ターミナルで
sudo raspi-configと入力します。
Raspberry Pi Software Configuration Tool(raspi-config)を出します。
Display Oputionsを選択します。
続いて
Resolutionを選択します。
DMT 640X400などの解像度を選択します。
P15_21821
VNCクライアントのインストールする。
Real VNCからEXE x86/x64のVNCビュアーをダウンロードします。手順通りにインストールします。
ウインドウズ スタートから最近追加されたものにアイコンが表示されます。タスクバーにピン止めできませんので,windowsのスタート画面に貼り付けます。クリックして起動します。
GOT ITをクリックしてVNCを始めます。
RaspberryPiのIPアドレスを入力して,リモート操作ができるようになります。
P16_23408
VNCの窓の中にある,アイコンをダブルクリックして名前とパスワードを入力します。
**Raspberry Piを初期設定するとき名前やパスワードを変えなければ,名前は'pi',パスワードは'raspberry'です。**
***安易にパスワードをかけてVNCが操作できなくて困ってしまいました。***2021/5/17解決
画像を見るだけでなく,キーボードやマウスがなくてもRaspberryPiを操作することができます。
接続できないときの対応
P17_24856
HDMIを接続しないとVncに入れない場合は,ディスプレイの解像度を設定します。
① sudo raspi-config
を実行pi@RaspberryPi:の中から
3 Interfacing Optionsを選択します。
「P3 VNC」を選択して有効にする。
② ssh pi@192.168.**.xx と入力します。
The authenticity of host '192.168.10.142 (192.168.10.142)' can't be established.
ECDSA key fingerprint is SHA256:p5RquekZvrs0IR4wclJKbn3ntvj6KMymBU49+ZqmBck.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
と注意を受けますが「yes」と入力します。
pi@raspberrypi:~ $ と表示されたらSSH,でRaspberryPiに入れました。
vncserver -gemetry 1920x1080 depth
③sudo raspi-config
2 Display Options
D1 Resolution
DMT Mode 32 1280x960
RaspberryPi4は2,3のような解像度の設定がpiの設定にはありません。③の設定が代わりになります。
3.5インチ タッチ液晶
3.5inchのタッチスクリーン液晶ディスプレイを手に入れました。Raspberry Piに取り付けてみます。取り付けただけでは画面が白く光るだけです。
ドライバを手に入れます。3.5Normal screen driverをダウンロードします。LCD-show
ドライバーの入手は共有アイテムのページにあるにある
をクリックするとプルダウンメニュが出てきます。その中からダウンロードを選択すると, ダウンロードを準備しています と標示されて, 1個のファイルを圧縮しています 〇 が表示されます。しばらく待つと作業が終わりダウンロードされます。
圧縮されていますので解凍してファイルを取り出します。
WinSCPでLCD-showを転送します。フォルダーはデフォルトで'pi'になっていると思いますが,違っていたら設定しておきます。
piフォルダを見て,'LCD_show_v6_1_3.tar'があれば, >_ をクリックしてコマンド入力に移ります。
sudo rm -rf LCD-show
git clone https://github.com/goodtft/LCD-show.git
#ここでgitとの通信が表示されます。
chmod -R 755 LCD-show
cd LCD-show/
sudo ./MHS35-show
#これで設定が始まります。
しばらくすると設定が終わり自らrebootします。
再起動すると液晶ディスプレイが動作しています。
VNCを使っているとかわいい画面が見えます。
/etc/apt/sources.list.d/mono-xamarin.list
“deb http://download.mono-project.com/repo/debian wheezy main”
7インチ タッチ液晶
7インチ液晶は少し大きく見やすいです。
右側が3.5インチディスプレイです。画面の面積は4倍になっています。
裏側です。ディスプレイケースには,むき出しですがRaspberry Piが固定できるようになっています。このケースには足がついているので設置すると安定します。rasPiのケースを付けるときは電源コードの取り出しに注意です。フラットケーブルを接続すると画像出力ができ,タッチもできるようになります。難点は画面の解像度がディスプレイに依存してしまうのでVNCでの作業は制約されてしまいます。
もう一つの難点は,フラットケーブルがあるのでSDカードの取り外しが窮屈です。指の太い人(私)はフラットケーブルを外したほうがいいと思います。
画面回転
液晶ディスプレイを接続すると,画面が反転してしまうことがあります。
直すためには,Raspberry Piでイチゴのマークの右3つ目の>_りをクリックしてコマンドプロンプトで,
sudo nano /boot/config.txt
と入力します。
内容の一部がが表示されます。
sudo nano /boot/config.txt
sudo nano /boot/config.txt
.
.
.
.
.
.
↓矢印でスクロールして最後の行に
lcd_roate=2 改行
を入力して,ctrl+o キーインして,書き込みをします。
ctrl+xでコマンドプロンプトに戻り,
sudo reboot
と入力して再起動します。
表示が180°回転しました。2021/6/20問題あり7インチOK3.5インチXXX
99-callibration.confに
オプション TransformationMatrix を加える。
export DISPLAY=:0.0
USBブート
SDカードホルダーが損失したRaspberry Pi4を入手することになりました。
99-callibration.confに
オプション TransformationMatrix を加える。
export DISPLAY=:0.0
GPIO端子
3.3V
SDA
SCL
GPIO2
I2C
GPIO3
5V
5V
GND
GPIO4
GND
GPIO14
GPIO15
UART
TXD
RXD
GPIO17
GPIO18
GPIO27
GND
GPIO22
GPIO23
3.3V
MOSI
GPIO10
GPIO9
GND
GPIO11
SPI
MISO
SCKL
GPIO24
GND
GPIO25
GPIO8
GPIO7
HAT
ID_SD
ID_SD
HAT
GPIO5
GND
GPIO6
GPIO12
GPIO13
GND
GPIO19
GPIO26
GND
GPIO16
GPIO20
GPIO21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
8
9
7
0
2
3
1213
14
3021222324
25
15
16
1
4
5
6
10
11
31
26
27
28
29
Thonny Python
イチゴのマーク☞プログラミング☞Thonny Pythonでプログラムが開始できます。thonnyの日本語はすぐには見つかりません。多分"かわいい"??トニートニーチョッパー?
GPIO
GPIOを使うためにRPi.GPIOを使います。
GPIO.setmode(GPIO.BOARD)
pin番号で指定
GPIO.setmode(GPIO.BCM)
GPIO番号で指定
出力として使用する場合
GPIO.output(channel, GPIO.HIGH) # True , 1 も同義 GPIO.output(channel, GPIO.LOW) # False, 0 も同義
入力として使う場合
channel = 4
GPIO.setup(channel, GPIO.IN)
開放する場合
GPIO.cleanup()#すべて開放
GPIO.cleanup(channel)#channelを開放
GPIOを使うための高精度モジュール pigpio Pythonを起動する前に実行します。
sudo service pigpiod start
しばらく待つとプロンプトに戻ります。
起動時に実行するためには
sudo systemctl enable pigpiod.service
LED点滅
RPi.GPIOをGPIOとして呼びだしてPIM番号を使って出力します(GPIO.BOARD)。
import RPi.GPIO as GPIO#GPIOとしてRPi>GPIOを呼び出す
led_pin = 11#pin番号は11
GPIO.setmode(GPIO.BOARD)#GPIOはpin番号で指定する
GPIO.setup(led_pin, GPIO.OUT)#LED用IOポートは出力
GPIO.output(led_pin, True)#LED点灯
LEDは点灯し続けます。PIOを開放していないので体に悪そうです。GPIO.cleanup()を入れてもう一度実行します。LEDは消えます。
import RPi.GPIO as GPIO
led_pin = 9
GPIO.setmode(GPIO.BOARD)
GPIO.setup(led_pin, GPIO.OUT)
GPIO.output(led_pin, False)#LED消灯
GPIO.cleanup()#GPIOすべて開放
LEDチカチカ
RPi.GPIOをGPIOとして呼びだしてGPIO番号を使って出力します(GPIO.BCM)。timeは時間を扱うモジュールです。
for文を使って繰り返します。( )でくくるのではなく,インデントで内容を示します。
import RPi.GPIO as GPIO
import time#時間を扱うモジュール
led_pin = 27
GPIO.setmode(GPIO.BCM)#GPIO番号で示す
GPIO.setup(led_pin, GPIO.OUT)
for i in range(10):#インデント部分を繰り返す(10回)
GPIO.output(led_pin, True)
time.sleep(1)#1秒待機
GPIO.output(led_pin, False)
time.sleep(1)
GPIO.cleanup()
このエディタではプログラム例はインデントがスペースになっているのでこのままでは動きません。空白をすべて取ってインデントをタブにします(スペースでもOKです)。1行空いているところも,詰めてから行を空けます。
pigpio LEDchikachika
pigpioをpiとして呼びだしてGPIO番号を使って出力します。
import pigpio
import time
led_1 = 17
pi=pigpio.pi()
pi.set_mode(led_1,pigpio.OUTPUT)
for i in range(10):
pi.write(led_1,1)
time.sleep(1)
pi.write(led_1,0)
time.sleep(1)
pi.stop
2021/6/20
スイッチ入力
RPi.GPIOをGPIOとして呼びだしてGPIO番号を使って入力します(GPIO.BCM)。
while True:を使ってループにします。抜け出す命令は有りませんエディターのSTOPを使って終了します。
import RPi.GPIO as GPIO
import time
5
button_1 = 5#入力装置の名前を付ける
led_1 = 17
GPIO.setmode(GPIO.BCM)#GPIO番号で示す
GPIO.setup(button_1, GPIO.IN, pull_up_down=GPIO.PUD_UP)#GPIOを入力にする
GPIO.setup(led_1, GPIO.OUT)
while True:#右の数が0で無ければインデント部分を繰り返す
if GPIO.input(button_1):
GPIO.output(led_1, True)
if GPIO.input(button_1) == 0:
GPIO.output(led_1, False)
GPIO.cleanup()
2021/6/22
GPIO.input(button_1)というのはpull_up_down=GPIO.PUD_UP)のUP,DOWNにより押された時1,0が決まります。
ファイル書き込み
f = open('msg.txt', 'w')#新規作成,上書き
f = open('msg.txt', 'a')#新規作成,アペンド(追加)
f = open('msg.txt', 'x')#新規作成,file exists
data="abc123\n"
f.write(data)
f.writelines(['おはよう',data])
f.close()
2021/7/17
ファイルからの読み込み
f=open('msg.txt','r')
data=f.read()
f.close()
数字文字変換
int(数字・文字数字) 数字を整数にします
bin(数字) 数を2進数にします
oct(123) 数を8進数にします
hex(数字) 数を16進数にします
float(数字) 数字の文字列を浮動小数点数に変換
str() 数値を文字列に変換にします
thony python例
print(int(123))
print(int("123"))
print(bin(123))
print(oct(123))
print(hex(123))
print(int(123.456))
print(float(123.456))
print(float('123.456'))
print(str(123))
OLED
2021/6/16
128x64または128x32のLEDがパネルの中に入っている表示装置です。I2Cで動作します。
I2C
I2Cディバイスを使用するためにはRaspberryPiでI2Cをつかえるように設定します。①②どちらかの方法で行います。
①イチゴのマーク☞設定☞RaspberryPiの設定☞窓の中のインターフェースのタグでI2Cを有効のラジオボタンを押します。
②sudo raspi-config
Interfacing Options を選択
I2C を選択
Would you like the ARM I2C interface to be enabled で Yes と選択
再起動
I2Cアドレス
RaspberryPiのコマンドで sudo i2cdetect -y 1 と指示すると
OLEDの存在が表示されます。I2Cディバイスがすべて表示されます。
OLEDは128x32dotありますので,表示のためにはライブラリを使用しないと大変です。ssd1306
OLEDドライバインストール
RaspberryPiのコマンドラインで以下のコマンドを入力すると
sudo pip3 install adafruit-circuitpython-ssd1306
*(git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git)
*(cd Adafruit_Python_SSD130)
数分でインストールが行われます。OLEDのデータとドライバ
です。
OLED用フォントをインストールします。
sudo apt-get install fonts-noto-cjk
とタイプします。
その他のファイル*は必要なさそうです。
*(sudo pip3 install adafruit-blinka)
*(sudo pip3 install pillow)
*(sudo apt-get update)
*(sudo apt-get install libopenjp2-7)
*
*(sudo apt install libtiff5)
プログラム
#OLEDの表示
#拡張
import board
from PIL import Image, ImageDraw, ImageFont
import adafruit_ssd1306
#設定
i2c = board.I2C()
oled = adafruit_ssd1306.SSD1306_I2C(128, 32, i2c, addr=0x3c)
# Clear display.
oled.fill(0)
oled.show()
# Create blank image for drawing.
image = Image.new("1", (oled.width, oled.height))
draw = ImageDraw.Draw(image)
font1 = ImageFont.truetype("/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc",14)
font2 = ImageFont.truetype("/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc", 8)
#表示内容設定
draw.text((0, 0), "やあ,みなさん!", font=font1, fill=255)
draw.text((0, 18), "123ABCabc",font=font2,fill=255)
#表示
oled.image(image)
oled.show()
2021/6/24やっと動きました。
ファイルからの読み込み
#表示内容設定
f=open('msg.txt','r')
data=f.read()
f.close()
draw.text((0, 10), data, font=font2, fill=255)
/home/piにある 'msg.txt' の内容を表示します。
気圧計BMP180
2021/7/8
使用する前にI2Cのアドレスの確認をします。
更にライブラリを導入します。データ表秋月電子BOSCH参照
sudo apt-get update。。。
sudo apt-get install git build-essential python-dev python-smbus。。。
cd ~/。。。
git clone https://github.com/adafruit/Adafruit_Python_BMP.git。。。
cd Adafruit_Python_BMP。。。
sudo python3 setup.py install。。。
cd examples。。。
python3 simpletest.py。。。
なかなか動かなかったのですがPython3で実行するところが大切です。BMP085のドライバを使ってBMP180を動かしているので名前をBMP180にしたいところですが,名前を変えただけでは認識してくれません。もちろん中身も全てBMP180にしています。ドライバを作る仕組みがあるのでしょう。
センスハット
2021/7/23
RaspberryPi4の場合は
sudo nano /boot/config.txt で
hdmi_force_hotplug=1 と書きます。HDMIをつないで起動させます。その後HDMIを外してもHatの操作がVNCでできます。
sudo apt-get update
sudo apt-get install sense-hat
使用法(Python)例
from sense_hat import SenseHat
sense = SenseHat()
sense.show_message("Hello world!")
WiringPiの導入
2021/7/12
WiringPiの導入方法
pip install wiringpi
sudo apt-get install libi2c-dev (--fix-missing)
失敗した場合は( )内を追加して実行します。
sudo apt-get install git-core
確かめるためには以下のコマンドを実行します。
dpkg -l | grep wiringpi
ii wiringpi
と表示してversionを返してきます。
GPIOのコントロールがコマンドでできます。
gpio -v
これでもversion情報が得られます。
gpio -g mode 0 out
gpio -g write 0 1
gpio -g write 0 0
最新版の導入
cd ~/temp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
ARM GCC Compiler
ARM用Cのインストール
GCC
sudo apt-get install gcc GCCのインストール
プログラミング
hello World
c,c++ファイルを作ります。test.c
#include<stdio.h>
int main() {
printf( "Hello World\n" );
return 0;
}
gcc test.c
"a.out"という実行ファイルが同じフォルダの中にできるので,これを開きます。
./a.out
LEDチカチカ
2021/7/21
#include <stdio.h>
#include <wiringPi.h>
#define GPIO17 17
int main(void) {
int i;
wiringPiSetupGpio();
pinMode(GPIO17, OUTPUT);
for(i=0; i<10; i++){
digitalWrite(GPIO17, 0);
delay(950);
digitalWrite(GPIO17, 1);
delay(50);
}
digitalWrite(GPIO17, 0);
return 0;
}
wiringPiをリンクしてコンパイルします。
gcc gpio_test.c -lwiringPi
BMP180
wiringPi用i2c-toolsをインストールします。
sudo apt-get install i2c-tools
bmp180のヘッダとサンプルを導入します。
cd ~/bmp180-c
wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_18/bmp180-c.tar.gz
sudo tar zxvf bmp180-c.tar.gz
cd bmp180-c
sudo nano bmp180test.c プログラムを確かめます。
sudo gcc -Wall -o bmp180 bmp180test.c -lwiringPi -lm
sudo ./bmp180
CTRL+Cで終了します。