Raspberry Pi でLチカ

2017年7月25日

Raspberry Pi でLEDを点滅する内容のまとめです。

赤色LEDを点灯させる

以下のものを準備します。

  • 赤色LED(使用 メーカー不明)
  • 抵抗 100 Ω

抵抗 100 Ω の場合は以下の電流値が推測されます。
LEDでの電圧降下分の推測
E=hν=hc/λ=1239.84/λ=1239.84/633≒2 eV
電源からLEDの電圧降下を引いた値が抵抗にかかる電圧
3.3 – 2 =1.3 V
1.3 V ÷ 100 Ω = 13 mA

Raspberry Pi の1ピン辺りの電流の上限は16 mAなので流す電流としては問題なし。(下記リンク参照)

https://www.raspberrypi.org/documentation/hardware/computemodule/cm-designguide.md

GPIO 4 とGND ピンにLEDと抵抗を直列に接続します。(下図参照)
Image

点灯用のコード(sample_led1.py)を下に記載します。GPIO.cleanup()は最後に記入しないとシンタックスエラーとなる場合があります。
$ sudo chmod +x プログラム名.py を実行して実行権限を追加してからの実行となります。

#! /usr/bin/env python
import RPi.GPIO as GPIO

GPIO.cleanup()

GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
GPIO.output(4, GPIO.HIGH)

点滅のプログラム

次はプログラムで点滅させてみましょう。
1秒間の点滅を5回繰り返すプログラムです。
while 文を使って処理をループさせます。

#! /usr/bin/env python

import RPi.GPIO as GPIO
import time

I=0
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)

while I <5:
    GPIO.output(4,GPIO.LOW)
    time.sleep(1)
    GPIO.output(4,GPIO.HIGH)
    time.sleep(1)
    I=I+1

GPIO.cleanup()

青色LEDをバイポーラトランジスタを使って点滅させる

青色LEDを点灯させる回路を作ります。
青色LEDはバンドギャップ(禁制帯幅)が大きい材料(GaN系)を使っているため、他のLEDよりVfが大きいです。
そのため、GPIOの出力する3.3Vではあまり電流を流すことができません。
Raspberry PI の5Vの出力ピンとトランジスタ(バイポーラトランジスタ)を使ってOnとOffの制御をすることにします。

以下のものを準備します。下記の製品名は参考に書いておきます。
・青色LED(使用 スタンレー製:UB3804X),
・バイポーラnpnトランジスター:Tr(使用 東芝製:2SC1815GR)
・抵抗 :R1 150 Ω
・抵抗 :R2 15 KΩ

抵抗の設定は以下のように行いました。

・R1を決める
5(電源)-3.2(予想Vf)-0.25(VCEsat)=1.65[v]
*予想VfはGaN系のバンドギャップより推測した。発光波長から求めると実際測定するとVfが小さくなった。VCEsatはデータシートより推測した。
1.65/R1=10[mA]
R1=165Ω なので近い150Ωを使用しました。

・R2を決める
10[mA]=IB×200(hfe)
=0.05[mA]=50[μA]
三倍の余裕をとります。
50[μA]×3=150[μA]
3.3[V]-0.7(VBE)=2.6[V]
*VBEはシリコン製でVB間のダイオードのVfの推測値です。
2.6[V]/R2=150[uA]
R2≈17[kΩ]→15[kΩ]

回路図は以下です。
Image

プログラムは、“点滅のプログラム”を使ってテストしました。

スイッチを使ってLEDのオン・オフを切り替える
タクトスイッチを使ってオン・オフを切り替えます。

用意するもの
・タクトスイッチ
一応使用したもの
・抵抗 300 Ω(プルアップやプルダウンの抵抗が内部にあるのでいらないようです。)

下図に接続回路図を示します。
Image

プログラムは下記になります。
変数Stateに点灯の状態を記録することにより、点滅を制御します。
プルアップでスイッチのオン、オフを入力していて、オフの場合Vdd(3.3V)、オンの場合0Vになることでオン・オフを判別します。

#! /usr/bin/env python

import RPi.GPIO as GPIO
import time

State = 0
I = 0
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
GPIO.setup(9,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.output(4,GPIO.LOW)

while True:
    if (GPIO.input(9) == 0):
        if (State == 1):
            GPIO.output(4,GPIO.LOW)
            State = 0
        elif (State == 0):
            GPIO.output(4,GPIO.HIGH)
            State = 1
        while (GPIO.input(9) == 0):
            time.sleep(0.1)

GPIO.cleanup()

以上 Raspberry でのLチカのまとめでした。

linux(ラズベリーパイなど)vi でvimに変更する

単純にいうとdebian系でaptを利用してvimをインストールして、aliasを設定します。
備忘録です。

$ sudo apt install vim
$ sudo apt-get install vimでインストールします。
aliasを変更します。
$ vim ~/.bashrc
(または、$ vim ~/.bash_profile)
に以下を追加します。
$ echo alias vi=”vim” >> ~/.bashrc
再起動します。
$ source .bashrc
(.bash_profileの場合$source .bash_profile)
これで$ vi でvimが起動します。

環境変数

環境変数(かんきょうへんすう、英語: environment variable)はオペレーティングシステム (OS) が提供するデータ共有機能の一つ。

参考 ja.wikipedia

UNIX系OS

  • $ export 環境変数
    • bashの場合 .bashrc (または .bash_profile) に上記コマンド記入する。(zsh は.zprofile とか .zshrc)
  • 実際に環境変数PATHを変更した場合の例
    • $ echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc
      のようにechoコマンドを リダイレクトしてもよい。よく使われる。
    • $ source .bashrc
      (.bash_profileの場合 $ source .bash_profile)
      でコマンド実行すると変更される。

「source」コマンドは、ファイルに書かれたコマンドを現在のシェルで実行する。

参考 https://www.atmarkit.co.jp/ait/articles/1712/21/news015.html

windows

windowsにおいても環境変数は存在する。ソフトウェアがインストールする際に自動で設定される場合があるが手動しないといけない場合がある。

システム環境変数(systemroot)とユーザー環境変数(userprofile)

参考 https://proengineer.internous.co.jp/content/columnfeature/5205

があるらしいがwindowsには設定はUNIX系OSより詳しくないのでリンク先に譲る。
(UNIX系OSについてもさほど詳しくない。)

androido アプリをmacで使いたい

表題にあるようにスマホのアプリを使えないかの検討です。

IOS ではなくアンドロイドアプリのほうが自由度が高そうなので選択しました。

Bluestacksをインストールを行ってみました。

寝ながら文字を打つと打ちにくい。

集中する場合は寝ながら作業をしないほうが良い??

この文章はインストールの最中に暇なので打ています。

まだ時間がかかる。インストールの時間は結構かかります。

 アプリを許可しないと起動しないので注意。

試した結果は動きましたが。。。

 readeeがアンドロイドではgoogle アカウントで同期ができない。。。

えー

ということでアンインストールしました。

tumblr をやめました

scrapbox を使うことにしたのでtumblrを退会しました。

Good Bye tumblr.

twitterよりはミニブログなので良い感じだったのですが、使用目的の備忘録を残すという使い方ではコードなど関係でscrapbox のほうがラフに書けることもありそっちのほうが良いかなと思いました。

他の散らばっている。evernote やgrowiなどの内容も移行しようかと。

目下の構想では使用するサービスはscrap boxを中心にローカルのgrowi 、ソーシャルブックマークでpocketを利用しようと思います。

変更後の利点はあんまり見直すことがなかったので備忘録の整理や書き直しがしやすいのはメリットかなー

 

自学ノート

昨日(2019.11.30)。もう12月になってしまった。

 

nhkで僕の自学ノートというドキュメンタリーをやっていた。

 

梅田君は、自学ノートを書く際に、読んでもらうためにかなり、推考して書いているらしく、普通の人の10倍かかるそうです。ただ、かなり考えられて作られているように思います。

 

個性が尖っているようなので、今後どうなるか楽しみではあります。

 

自学ノートって電子媒体だとブログとか、wikiだと思うのでpc環境ができたらインフルエンサーとかになっているかもしれない??

 

関係ないですが、このブログもほぼ備忘録なので自学ノートみたいなものかなと思いました。

 

病気の猫に薬をやるには

 

病気中のうちの猫。薬が苦くて食べてくれません。

 

アマゾンを見ていたら、薬を包んでくれるピルポケットという商品がありました。

 

早速購入。

 

今日試しに与えてみたら、見事に完食。

 

ネット通販なので、地域によってはすぐに来ないのが難点ですが、長期に服薬する必要がある場合は良いかと思います。

 

メディボールという商品やロイヤルカナンのピルアシストという商品もあるようです。

 

 

 

wikiサービス

個人 wiki を構築してみました。pukiwiki を使って作成したのですが今のところいい感じです。

 

ただ、Growi にも興味があります。デザインがかっこいいからというのもありますが,

ユーザー登録制で書き込みや閲覧など制限をできる点です。

 

pukiwiki でもこれはできるのですが。。。

 

設定ファイルに直接書かないといけなかったりと設定が大変そうです。

 

便利ですがpukiwikiは残念ですが、枯れてしまっています。

 

IT技術は流行りなどがあって大変と思います。便利なサービスも利用者がいないと終了します。

 

iphoneアプリの使えなくなるスピードははやいー

 

スマホでなんでもできるといいますが、覚えたアプリがいつまでもあるとは限らない!!

 

wikiサービスをいつまで維持できるかは分からない。

 

単純に新しいものが好き。

 

wikiではないのですがevernoteが使いやすいかなと思ったのですが、以外に使いづらいです。

 

パブリックでないメモスペースがほしいです。

 

VPSheroku + AWS S3 でサーバー立てるか考えています。

ブログにリンクを半自動で追加するプラグインを入れました。

タイトル。

 

何言ってるのかはわからないかもしれません。

 

internal links Gneratorw を導入しました。

 

実ははてなブログでライティングをすることにより、一部は自動でリンクを作成することができています。

 

ただ、tumblr で書いた内容もあり、専門的なリンクwikipediaに貼っておくことで利便性が上がると思ったのでプラグインを導入しました。

 

登録は手動で行って、空白を入れたりしないと日本語の認識はイマイチですが。。。(はてなブログの機能はとてもすごいのです!!形態素解析というようです。)

 

少しづつですが、ブログを良い感じにしたいと思います。

ちまちまな作業で疲れる。

 

さらに今日は間違ってマットは切ってしまったりとミスでウーとなっています。