top of page
ラズベリーパイ

ラズベリーパイ

 32bitコアのCPUで900MHzから1.5GHzの周波数で動作します。初代から4までとZERO,PICOがあります。

P2_1585

OSiインストール

 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

RaspberryPiバリエーション

 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

  1. 電源を切り SD カードを取り出します。

  2. SD カードを他の PC に挿し、テキストファイル cmdline.txt を開きます。

  3. cmdline.txt の最後に、空白を開けて init=/bin/sh を追加し保存します。

  4. SD カードを Raspberry Pi に戻して、Raspberry Pi を起動します。

  5. プロンプトが表示されたら su を入力して root でログインします。

  6. mount -rw -o remount / を実行。

  7. passwd pi を入力するとパスワードを再設定できます。

  8. 次を実行します。

    $sync $exec /sbin/init $sudo halt

  9. 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接続

 LAN接続 

P8_10902

 有線LAN 

有線LAN

 LANケーブルを差し込むとLAN接続ができます。

​ LANの接続ができないときはモデムかルーターが機能していないことが考えられます。

 ルーター,モデムの順に電源を落とします。1分ほどしてから,モデムの電源を入れ全てのLEDが安定するまで待ちます。その後ルーターの電源を入れます。しばらくすると通信ができるようになります。

​ LANの接続状態をパソコンで見るにはコマンドプロンプトでipconfig/allとタイプします。

 IPアドレス確認 

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 

固定IPアドレス

 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 

無線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)セキュアシェル 

SSH

 暗号化された安全な通信網を構築する技術です。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)機能 

VNC

​ 解像度を決める。

 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を操作することができます。

VNC接続でいない

 ​接続できないときの対応 

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.5インチ液晶

 3.5inchのタッチスクリーン液晶ディスプレイを手に入れました。Raspberry Piに取り付けてみます。取り付けただけでは画面が白く光るだけです。

 ドライバを手に入れます。3.5Normal screen driverをダウンロードします。LCD-show

 ドライバーの入手は共有アイテムのページにあるにある

3.5Normal screen driver

をクリックするとプルダウンメニュが出てきます。その中からダウンロードを選択すると, ダウンロードを準備しています と標示されて, 1個のファイルを圧縮しています 〇 が表示されます。しばらく待つと作業が終わりダウンロードされます。

​ 圧縮されていますので解凍してファイルを取り出します。

 WinSCPLCD-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インチ液晶

 ​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ブート 

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 Pythonでプログラムが開始できます。thonnyの日本語はすぐには見つかりません。多分"かわいい"??トニートニーチョッパー?

 GPIO 

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点滅 

 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チカチカ 

 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 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)のU​P,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 

 OLED 

2021/6/16

 128x64または128x32のLEDがパネルの中に入っている表示装置です。I2Cで動作します。

 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ドライバインストール 

 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 

 ​気圧計BMP180 

2021/7/8

 BMP180

 使用する前に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でできます。

アストロPi                エミュレータ

 sudo apt-get update 

 

 sudo apt-get install sense-hat 

 

 使用法(Python)例

 from sense_hat import SenseHat

 sense = SenseHat() 

 sense.show_message("Hello world!")

 Raspberry Pi 3/2/A+/B+用のHAT(拡張基板)です。8x8の16ビットLEDを使ったディスプレイとさまざまなセンサが載っていて、特に宇宙科学分野における環境条件の学習に最適です。右下に小さいジョイスティックも在ります。

 SenseHATソフトウェアをインストールします。リファレンス

C言語

2021/7/11

C言語

 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 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で終了します。

 

 データシートからアドレスは 1110111W/R 読込0xEEと書き込み0xEFです。

アンカー 1

 プログラムは22bitのCalibration coefficientsを読むことから始められます。16bitの0xAAから0xBFです。

bottom of page