mieki256's diary



2016/07/18(月) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3でスイッチを読み取り

Lチカはできたから、今度はスイッチの読み取りを実験。

led_and_sw_bb.png

led_and_sw_c.png

GPIO 18番にLEDを、GPIO 24番にタクトスイッチを接続。抵抗は、LED用が680Ω、スイッチ用が3.3KΩ。

lwd_sw.py として保存。
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
from time import sleep

LED_PIN = 18
SW_PIN = 24

GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
GPIO.setup(SW_PIN, GPIO.IN)

try:
    while True:
        if GPIO.input(SW_PIN) == GPIO.HIGH:
            GPIO.output(LED_PIN, GPIO.HIGH)
        else:
            GPIO.output(LED_PIN, GPIO.LOW)
        sleep(0.016)

except KeyboardInterrupt:
    pass

GPIO.cleanup()

sudo python led_sw.py として実行。スイッチを押すとLEDが光った。終了は、Ctrl + C を押す。

ついでにLEDをPWM制御。 :

PWM(pulse width modulation、パルス幅変調)を使って、LEDの明るさが変化するように光らせてみる。

PWMってのは、オンにしてる時間とオフにしてる時間の比率を変化させることで、電力量を調整する方法、という説明で合ってるのかな。どうなんだろ。 _PWMとは | 東芝 ストレージ&デバイスソリューション社 の図を見れば、なんとなく分かるだろうか…。

Raspberry Piの場合、GPIO 18番がPWM制御に使える、という記述をどこかで見かけた。たしかもう1本、使えるピンがあるという話も見かけたけど…。どこだろう…。

led_pwm.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
import time

LED_PIN = 18

GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
pwm = GPIO.PWM(LED_PIN, 1000)
pwm.start(0)

try:
    for i in range(3):
        for dc in range(0, 101, 10):
            pwm.ChangeDutyCycle(dc)
            time.sleep(0.1)

        for dc in range(100, -1, -10):
            pwm.ChangeDutyCycle(dc)
            time.sleep(0.1)

except KeyboardInterrupt:
    pass

pwm.stop()
GPIO.cleanup()

  • pwm = GPIO.PWM(ピン番号, 周波数) で、PWMを使うピン番号と、PWMの周波数を指定できるらしい。
  • pwm.start(0) で、デューティ(時間幅) を 0 にしてる。
  • pwm.ChangeDutyCycle(デューティ) で、デューティを設定できる。0(%)から100(%)まで指定できる模様。

sudo python led_pwm.py として実行。こんな感じに。



_raspberry-gpio-python / Wiki / PWM や、 _Raspberry PiでPWM制御を使ってLEDを点滅 - 忘れる前に書き残す が参考になった。

#2 [raspberrypi][emacs] Raspberry Pi上にEmacsを入れようとしたけど挫折

Raspberry Pi3上でPythonスクリプトを書く際に vim を使ってたけど、やっぱり vi系は使いづらいなと。ここは多少慣れてる Emacs系のエディタを使いたいなと。

Windows10上のEmacsでtrampを使おうとして挫折。 :

調べてみたら、Emacs には tramp という機能(?)があって、ftp や ssh で他のコンピュータにアクセスしてファイル編集ができるらしい。

_Windows で Emacs + tramp - 雑多な覚え書き

すると、Windows10 + NTEmacs + tramp を使えば、今までゴチャゴチャ設定しまくったEmacs環境をそのまま使って Raspberry Pi3上のファイルを編集できるということかしら。

てなわけで試してみたのだけど、これが全く上手くいかない。

環境は、Windows10 x64 + NTEmacs 24.5.1 + tramp + PuTTY付属の plink.exe。C-x C-f と打って、「/plink:ユーザ名@ホスト名#22:~」とか「/ユーザ名@ホスト名:~」とやってみると、Windows10のデスクトップ画面全体を巻き込んで固まってしまう…。dired の表示まではできるのだけど、そこから .py を開こうとしたところで固まる。なんでや。使ってる NTEmacs の版がアレなのか、~/.emacs 等で設定してる内容がいかんのか。

ちなみに、~/.emacs に書いたのは以下。PuTTY のインストール場所は、環境変数 PATH に追加済み。
(require 'tramp)
(setq tramp-default-method "plink")

以下も書いてしまうと、ますます固まる。なんでや。
(setq tramp-shell-prompt-pattern "^[ $]+")

Raspberry Pi3上でEmacsをインストールしようとして挫折。 :

これは Raspberry Pi上に Emacs をインストールして、ソレを使うしかないのかなと。しかし調べてみたところ、Raspberry Pi の apt-get でインストールできる Emacs はバージョンが古いそうで。

_Raspberry PiでEmacs 24.5とCaskを使う - Qiita を参考にして、Emacs 24.5 をインストールしてみたり。ソースをDLしてmakeしなきゃいかんらしい。ちなみに、巷の記事では make、make install に1時間半以上かかるという話だったけど、Raspberry Pi3で試したら30分もかからなかった。CPUがパワーアップしてるから、なのだろうか…?

Emacs自体はインストールできたので、前述の記事を参考に Cask なるものもインストール。ただ、Cask なんて使ったことがないから、環境構築の仕方が分からない…。

Raspberry Pi3上での Emacsの起動も、なんだか遅くて、ちょっとゲンナリ。まあ、Windows10上での NTEmacs の起動も結構時間がかかるから、これは仕方ないのかもだけど。手軽にササッと、てなわけにはいかんようだなと…。

ということで、結局のところ vim で書いたほうがいいんじゃないか、という気分になってきた。vim なら、サクッと立ち上がってくれるし…。にしても、vi系は使いづらい…。補完の仕方も分からん…。

tramp関係をもう少し試したり。 :

NTEmacs が固まる際に、「py-install-directory が Don't see じゃよ。readmeを読めや」とメッセージ表示されてるあたりが気になったので、もう少し調べてみたり。

試しに .txt を Raspberry Pi3 上に作ってソレを開いてみたり。…アレ? この場合は、一応開けるし、編集もできる。てことは、NTEmacs 上の python-mode の設定がアレなのかな。

ググってたら、 _how to install python-mode.el for emacs - Stack Overflow という記事に遭遇。最後のあたりで、
(add-to-list 'load-path "~/.emacs.d/site-lisp/python-mode")
(setq py-install-directory "~/.emacs.d/site-lisp/python-mode")
(require 'python-mode)
という記述が。もしかして (setq py-install-directory "~/.emacs.d/〜") を ~/.emacs に記述しておけばいいのだろうか。

python-mode は…。自分の環境の場合、環境変数HOMEのパス\.emacs.d\elpa\python-mode-20160620.330 に入ってた。コレを指定しておけばいいのだろうか…分からんけど…。

指定してから試してみたら、Raspberry Pi3 上の .py が開けるようになった。むう。つまり python-mode の設定が足りてなかったのか。これでなんとかなった。のか。ホントか。どうなんだ。分からんですが。

#3 [windows] PuTTYをアップデートしてみた

今まで使ってた PuTTY関連ファイルのタイムスタンプを確認したらなんだか古い感じだったので、 _PuTTY PRIVATE PATCHES_PuTTY-ranvis をDLして解凍して上書きコピーでインストールしてみたり。とりあえず、plink -V と打ってバージョンが表示される、PuTTY-ranvis をインストールしてみた。

解凍すると、ja-JP とか Japanese とかのフォルダの中に .lng ファイルがあるけど、これは .exe と同じ階層にコピーしておく。のかな。たぶん。巷の解説記事にはそう書いてあったけど。

#4 [pc] Canon PowerShot A3300 IS で撮影した動画をwebm形式にしたい

手持ちのコンパクトデジカメ、Canon PowerShot A3300 IS で動画を撮影すると、おそらくは QuickTime形式の .mov として保存されるっぽいのだけど。コレを、HTML5 の videoタグで再生できるはずの、.webm 形式の動画に変換したい。…いや、webm形式を再生できるのは、Firefox や Google Chrome で、IEその他は再生できないという話もどこかで見かけたけど。

_AviUtl + _ffmpegOutプラグイン + _L-SMASH Works で、webm形式に変換できた。不要なフレームを削除できる点も助かった。

以下、参考ページ。

_【AviUtl】L-SMASH Worksとは?導入方法と使い方1【入力プラグイン】
_【AviUtl】FFmpegOUTでWebM・ASF・TS形式の動画をエンコードする方法【出力プラグイン】

ただ、L-SMASH Works r877 を入れたら、mov読み込み時に音声が妙なことに。音声部分の表示が、全部緑になってる。今まで r679 を使ってて、そちらでは音声が妙なことにはならないのだけど…。まあ、どうせ音声無しの動画として出力しちゃうから、問題は無さそうだけど。

それにしても、Appleが完全放置宣言をしてしまったWindows版のQuickTime…。これからどうするんだ…。コンパクトデジカメの類が結構使ってるのに…。

以上、1 日分です。

過去ログ表示

Prev - 2016/07 - Next
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

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project