電気工作の備忘録

Python、Raspberrypi、機械学習、電気工作 の備忘録(初心者)

Thonnyのインストール(Windows)

Thonny, Python IDE for beginners にアクセスし、ダウンロードリンクからインストールファイルをダウンロード

Thonny_01

ダウンロードが完了したら、インストールファイル(thonny-4.1.4.exe)を実行。

thonny-02
thonny-03
thonny-04

インストール先を変更する場合は「Browse...」をクリック。

thonny-05
thonny-06

デスクトップにショートカットアイコンを作成する場合は「Create desktop icon」にチェックをつける。

電子工作 ラズパイ設定

本記事は下記に引っ越ししました。
にわか電子工作ファン

こんにちは、ペキです。

電子工作を勉強のために始めました。
”ラズパイ自由自在 電子工作パーツ制御完全攻略 ”を参考に進めて行こうと思います。立ち読みしていて面白そうだったのでこの本に決めました。17章までありますが部品を揃えたりする必要もあるようなのでできるところから少しずつ進めて行きます。
なお、部品は家にあればそれを利用、プログラムは思いつきで変えたりするので本はあくまで参考としての利用です。ブログにおかしなことが書いてあっても本が原因ではないです。

ラズパイ設定

この本を進める上で必要となるラズベリーパイの設定について記載します。
家にwifi 環境とHDMI入力可能なディスプレイがある前提の記載となります。

・評価部材

ラズベリーパイ4キット

内容物の詳細
Raspberry Pi OSがプリロードされた64GB Marstudy HC10 Microカード
 OSがプリロードされていていい。最初のパソコンでやる作業がなくなる。

ラズベリーパイ4ケース
 GPIOなど外部端子の事をよく考えられていて良い。他社を買う場合は結構適当なのがあるのでよく見て購入する必要あり。

・ファンおよびヒートシンクセット
 部屋の温度25℃ぐらいでCPUフル負荷にする場合はファンは必須。

・高品質Micro HDMI-HDMIケーブル(1.5M) x2
 1本は必須。でもデュアルモニタしないきもするので2本はいらないかも。

・5.1V 3.5A USB-C Raspberry Pi 4電源
 電源をOFFする際、電源をコンセントで抜き差しするのは面倒だし本体側でコードを抜くのも基盤に付いたコネクタが壊れそう。これはON/OFFスイッチがついていて便利。

・USB-CおよびUSB-A互換 MicroSDカードリーダー
 パソコンでmicroSDカードを編集する際に必要。OSがプリインストールされたmicroSDカードが付いているのでこれはいらないかも。

・キーボード(USB)、マウス(USB)

USB接続ならなんでもOK.ただ、ケーブルが鬱陶しいので下記がオススメ
Ewin®2.4kHz無線 マウス付きキーボード

・モバイルバッテリー(USBーC)

持ち運ぶなら必要
・5V(3A)のモバイルバッテリ
・ケーブル USBーC to 

OSがプリロードされているのであとは本体にmicroSDを入れて電気入れれば起動します。



ここまで読んでいただきありがとうございました。

にほんブログ村 IT技術ブログへ

電子工作 LEDを光らす

本記事は下記に引っ越ししました。
にわか電子工作ファン


こんにちは、ペキです。

電子工作を勉強のために始めました。
”ラズパイ自由自在 電子工作パーツ制御完全攻略”を参考に進めて行こうと思います。立ち読みしていて面白そうだったのでこの本に決めました。17章までありますが部品を揃えたりする必要もあるようなのでできるところから少しずつ進めて行きます。
なお、部品は家にあればそれを利用、プログラムは思いつきで変えたりするので本はあくまで参考としての利用です。ブログにおかしなことが書いてあっても本が原因ではないです。

1章 多様なLEDを光らす

・評価部材

 ・ラズパイ
  ・ディスプレイケーブル、ディスプレイ
  ・キーボード、マウス、wifi環境
  ・電源
  ・ジャンパーケーブルx2
  ・ブレッドボード
 ・抵抗 100Ω
 ・LED(赤) ”OSDR3133A”
 ・LED(3色) ”OSTA5131A-R/PG/B”

・部品の決定

・LED(赤)

  ・本に記載の部品(LED)は無かったのですが家に”OSDR3133A”が転がっていたのでこれで進めます。

  ・”OSDR3133A”の特性
   DC Forward Curent(If):30mA
   DC Forward Voltage(Vf):typ 2.0V
   ※ぐぐるとあった。

・電流制限抵抗の決定

  ラズパイ電源が3.3vなので
  3.3V-2.0V(Vf) = 1.3V
  30mA(If) から、半分の15mAで光らす
  として1.3V/15mA=87Ω
  家に100Ωが転がっているので
  100Ωとした。なので、
  1.3V/100Ω=13mAぐらいで光る予定

動作確認環境

raspberry@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
raspberry@raspberrypi:~ $ python --version
Python 3.9.2

・プログラムの実行

・pigpioデーモンの起動

[実行]
raspberry@raspberrypi:~ $ sudo pigpiod
これを実行しないとpigpiodが使えない。

デーモン?ってなにって思い調べてみると、
バックグラウンドで動く常駐プログラムの事。
MITの開発者が呼び始めたのがもととなっており、
古代ギリシャでは神の使いでいつも自分の近くにいる
ものをデーモンと呼んでいたからみたい。
ウィキペディアより
コンピューターに常駐プログラム(デーモン)を入れる私は神って事か・・?


・プログラム ハードPWM

[led_pwm_hw.py]

import sys
import pigpio 

LED_PIN = 12
LED_PWM_FREQUENCY = 8000
pwm_duty = float(sys.argv[1])

pi = pigpio.pi()
pi.set_mode(LED_PIN, pigpio.OUTPUT)
pi.hardware_PWM(LED_PIN, int(LED_PWM_FREQUENCY), int(pwm_duty * 1e6))

[実行]
raspberry@raspberrypi:~ $ python3 led_pwm_hw.py 0.1
raspberry@raspberrypi:~ $ python3 led_pwm_hw.py 0.5
raspberry@raspberrypi:~ $ python3 led_pwm_hw.py 1.0
0.1<0.5<1.0で強く光る。点灯


・プログラム 別の方法

[led_pwm_sw.py]

import time
import pigpio

LED_PIN = 12
pi = pigpio.pi()
pi.set_mode(LED_PIN, pigpio.OUTPUT)

while True:
    pi.write(LED_PIN, 1)
    time.sleep(0.5)
    pi.write(LED_PIN, 0)
    time.sleep(0.5)

[実行]
raspberry@raspberrypi:~ $ python3 led_pwm_sw.py
0.5秒光り0.5秒消える 点滅

・プログラム 3色LED

[led_pwm_sw_rgb.py]

import sys
import pigpio

LED_R_PIN = 12
LED_G_PIN = 13
LED_B_PIN = 19
LED_PWM_FREQUENCY = 8000
LED_PWM_RANGE = 100
r_pwm_duty = float(sys.argv[1])
g_pwm_duty = float(sys.argv[2])
b_pwm_duty = float(sys.argv[3])
pi = pigpio.pi()
pi.set_mode(LED_R_PIN, pigpio.OUTPUT)
pi.set_mode(LED_G_PIN, pigpio.OUTPUT)
pi.set_mode(LED_B_PIN, pigpio.OUTPUT)
pi.set_PWM_frequency(LED_R_PIN, LED_PWM_FREQUENCY)
pi.set_PWM_frequency(LED_G_PIN, LED_PWM_FREQUENCY)
pi.set_PWM_frequency(LED_B_PIN, LED_PWM_FREQUENCY)
pi.set_PWM_range(LED_R_PIN, LED_PWM_RANGE)
pi.set_PWM_range(LED_G_PIN, LED_PWM_RANGE)
pi.set_PWM_range(LED_B_PIN, LED_PWM_RANGE)
pi.set_PWM_dutycycle(LED_R_PIN, int(r_pwm_duty * LED_PWM_RANGE))
pi.set_PWM_dutycycle(LED_G_PIN, int(g_pwm_duty * LED_PWM_RANGE))
pi.set_PWM_dutycycle(LED_B_PIN, int(b_pwm_duty * LED_PWM_RANGE))

[実行]
raspberry@raspberrypi:~ $ python3 led_pwm_sw_rgb.py 0.0 0.9 0.0
RGBとdutyの組み合わせでいろいろな色を表示できる 点灯

・プログラム 3色LED順次発色

[led_pwm_sw_rgb2.py]

import time
import pigpio

LED_R_PIN = 12
LED_G_PIN = 13
LED_B_PIN = 19
pi = pigpio.pi()
pi.set_mode(LED_R_PIN, pigpio.OUTPUT)
pi.set_mode(LED_G_PIN, pigpio.OUTPUT)
pi.set_mode(LED_B_PIN, pigpio.OUTPUT)

while True:
    pi.write(LED_B_PIN, 0)
    pi.write(LED_R_PIN, 1)
    time.sleep(0.5)

    pi.write(LED_R_PIN, 0)
    pi.write(LED_G_PIN, 1)
    time.sleep(0.5)
    
    pi.write(LED_G_PIN, 0)
    pi.write(LED_B_PIN, 1)
    time.sleep(0.5)

[実行]
raspberry@raspberrypi:~ $ python3 led_pwm_sw_rgb2.py
3色を0.5秒ごとに順に光らせる


とりあえず光らせることができた。

・疑問点など

・pwmのソフトのプログラムがわからない。簡単なプログラムが見つけられない。
・pwmのハード制御がソフト制御より正確って書いてあったけど本当か確かめたい。ある周波数までは精度変わらないとか無いのか❓


ここまで読んでいただきありがとうございました。

にほんブログ村 IT技術ブログへ