ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示
ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示

2017年1月30日月曜日

Raspberry Pi 起動時に ターミナルを開いて Python スクリプトを自動実行させる


Raspberry Pi 起動時に、自動的にターミナルをデスクトップに立ち上げてPythonスクリプトを実行させる方法。
ターミナルを立ち上げずにバックグラウンドで実行する場合は、
/etc/rc.local
を編集すれば良い。

やっていることは同じかもしれないが、以前とはやや手法が異なる。

http://mogen-hogen.blogspot.jp/2015/09/raspberry-pi-python.html

今回使用したRaspberry Piは
Raspberry Pi 2 Model B V1.1
OSは
  Raspbian Jessie with PIXEL
  Version: January 2017
  Release date: 2017-01-11
  Kernel version: 4.4


/home/pi/.config/autostart
フォルダに行く。すでにautostartフォルダは存在していた。
.configフォルダが見えないときは [Ctrl]+[H] とすると隠しフォルダが現れる。

autostartフォルダの中に、

hogehoge.desktop

という名前のファイルを作成し、中に

*******はじまり*******
[Desktop Entry]
Name=hogehoge
Exec=lxterminal –e “python /home/pi/hogehoge.py
Type=Application

*******おわり*******

と記述。
再起動させると自動的にターミナルの画面が立上り、Pythonのプログラムが実行される。

参考URL
https://neverbenever.wordpress.com/2015/02/11/how-to-autostart-a-program-in-raspberry-pi-or-linux/



2016年3月11日金曜日

Raspberry Pi で Python スクリプトをダブルクリックで実行させる



いわゆるWindowsにおけるバッチファイル(*.bat)作成みたいなこと。
Raspberry Pi につけたタッチパネルから、デスクトップに置いたシェルスクリプト(*.sh)をダブルクリックして実行させることで、キーボードを普段接続しないでも良いようにした。


Test1.sh


とかのファイルをデスクトップに作成し、中に


#!/bash/sh
lxterminal -e "python /home/pi/Scripts/hogehoge.py"


と書いて、
$chmod 777 Test1.sh
とかでxを立てて実行可能にしておき、ダブルクリックすると、


どうしますか、
実行  端末で実行  開く  キャンセル


と聞いてくるので、実行ボタンを押すと実行される。

2016年2月4日木曜日

Raspberry Piがおかしい!→ ACアダプタが原因だった



Raspberry Piの温度コントローラがいつのまにか動作を停止していた。
起動時のカラーマップのような画面が出ては消え、を繰り返している。

とりあえず起動しようとはしているので、電源以外を疑っていたが、結局、5 V出力のACアダプタが原因だった。

サンワサプライさん、頼みますよ。
ACA-IP21SBK
100 Vのコンセントプラグ部分が格納されている商品で、くるっと回してコンセントに挿すタイプのもの。
基板上のばね電極との接触が悪く、おかしなことになっていた。
そこをちゃんと押し付けてやると、Pi も問題なく動作してくれた。


他の方もダイソーのACアダプタで同様の経験をしたようで、この製品の場合はコンセントプラグ部分は固定だが、その電極を、基板上のバネ電極で挟み込んで接触を取るタイプで、そこの接触不良が問題であったようだ。


2016年2月2日火曜日

I/O エラー


Raspberry PiのOSイメージをSDカードに書き込む際に、
Win32 Disk Imager
というソフトを使用している。

今日、久しぶりにSDカードに書き込もうとしたが、 何度やっても
Error 1117 I/Oエラーでダメです。
といわれて13 %のところで止まってしまう。

フォーマットを丁寧にやり直してもだめ。
SDカードを交換してもダメ。

結局、PC本体に備え付けてあるカードリーダーがダメだったようで、
外付けのカードリーダー(LOAS社 Digio)だと全く問題なかった。2時間ロス。

2015年11月20日金曜日

requests で InsecurePlatformWarning、の解消方法


Rasberry Pi B+上のPythonでTweetプログラムを走らせていたが、いつしか以下のエラーが出るようになった。

InsecurePlatformWarning: A true SSLContext object is not available. 
This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning

Twitterのアカウントは非公開にしているので、SSL通信が保たれていないと困る。

参考URL
http://imagawa.hatenadiary.jp/entry/2015/07/22/183000http://stackoverflow.com/questions/29134512/insecureplatformwarning-a-true-sslcontext-object-is-not-available-this-prevent
ここによると、

Pythonのバージョンを 2.7.9 以降にするか、
$ sudo pip install --upgrade requests[security]

とすれば良いとのこと。
迷わず後者にトライ。しかしrequests upgrade 中に、cryptographyのインストールのところでエラーが発生。

cryptography python.h  そのようなファイルやディレクトリはありません

これは、
$ sudo apt-get install python2.7-dev
とすることで解決した。
参考URL
http://zashikiro.hateblo.jp/entry/2012/10/02/130031





改めて
$ sudo pip install --upgrade requests[security]
としたら、今度は
setuptoolsがない、というエラーが出てうまくインストールが終わらない。

これは、
$ sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
とすることで解決した。
参考URL
http://stackoverflow.com/questions/22531360/no-module-named-setuptools
https://pypi.python.org/pypi/setuptools





またまた改めて
$ sudo pip install --upgrade requests[security]
として、Successfully installed の表示が出たらOK。

上記のInsecurePlatformWarningは出なくなり安心。

2015年10月16日金曜日

Raspberry Pi リモートデスクトップ


Raspberry PiにWindows 8.1から接続するための方法。

RasPiに固定IPを設定した後に、

$ sudo apt-get install xrdp

として、
Windows機からリモートデスクトップで固定IPを入力して接続するだけ。
とても簡単に接続できた。
(接続時にすでに走っている温度制御プログラムが再起動されるが)


参考URL
株式会社インデペンデンスシステムズ横浜
http://independence-sys.net/main/?p=993



Raspberry Pi にて温度制御装置を作成。安定度は±1 mK程度である。
(4 mmφ、250 mmの白金抵抗温度計で測定)
確認した温度範囲は18 ℃~26 ℃である。
恒温槽はmKオーダーの安定度のものがGuildlineやMeasurement Internationalなどから出ているが、これらは湿度が安定ではない。
密閉性が高く湿度が安定(1 %以下)で、温度安定もmKオーダーの物は今のところ自作するしか無い様に思う。
湿度は飽和塩で調整。離散値だしややツンとするにおいもあるが1 %以下で安定する。

2015年9月30日水曜日

Raspberry Pi 起動時に Python スクリプトを自動実行させる


/home/pi/.config/lxsession/LXDE-pi

フォルダに行く。
.configフォルダが見えないときは [Ctrl]+[H] とすると隠しフォルダが現れる。
はじめは空フォルダだが、
なかに

autostart

という名前のファイルを作成し、中に

**************
@lxterminal -e "python /home/pi/scripts/test.py"
**************

と記述。
再起動させると自動的にターミナルの画面が立上り、Pythonのプログラムが実行されていることがわかる。

2015年9月4日金曜日

MCP4726 DAC 制御 Python script

Raspberry Pi から、I2C接続にて
12 bit DAC MCP4726
を制御するPython script を書いた。

**************************
import smbus, time
bus = smbus.SMBus(1)

def MCP4726(Vout):
    data1 = (Vout >> 4)
    data2 = ((Vout & 15) << 4
    data0 = [data1, data2]
    print "Vout = ", Vout
    bus.write_i2c_block_data(0x60, 0x40, data0)

for i in range(0, 4095, 500):
    MCP4726(i)
    time.sleep(3)
**************************

MCP4726(Vout) 関数を用いて、Vout に0から4000まで500刻みで
3 sec 間を置いて出力するプログラム。

bus.write_i2c_block_dataの
0x60はI2Cアドレス、
0x40は通常設定、
data0 で12 bit のデータを送る。

12 bit なので、最大で 1111 1111 1111b = 0xFFF = 4095
で、最初の8 bit と、後ろの4 bitのブロックに分けて送信する。

data1 = (Vout >> 4)
data1は最初の8 bitで、入力されたVoutを右に4 bitシフトして後ろの4 bitを消している。

data2 = ((Vout & 15) << 4
data2は後ろの4 bitで、Voutと15(0000 0000 1111b)とANDを取って下位4 bitを取り出し、上に4 bit シフトさせている。

これで、4095 (0xFFF) を送ると、
0xFF, 0xF0
の2ブロックデータが送信される。

MCP4726 DAC を Rapsberry Pi I2C で使う


秋月電子通商で購入した12bit DAC, MCP4726をRaspberry Piに接続してI2C通信して電圧を出力する方法。


MCP4726搭載12ビットD/A変換モジュール
http://akizukidenshi.com/catalog/g/gK-07995/
MCP47X6 (X = 0, 8 bit; X = 1, 10 bit; X = 2, 12 bit)


Raspberry Piのコンソールで、

$ sudo i2cset -y 1 0x60 0x40 0xff 0xf0 i

とすると、0xFFF(12 bit 最大値)が出る。
0x60はI2Cアドレスで、

$ sudo i2cdetect 1

で得られたアドレス。
0x40は通常設定ということのよう。以下URLを参照。
http://www.bitwizard.nl/wiki/index.php/I2C_DAC
というよりデータシートをちゃんと読んだほうが良いかもしれないが、面倒なので読んでない。

あとの0xff 0xf0
のはじめの3 byteがデータ。

最後の i は i2cset でブロックデータを送るときに必要なやつ。


Pythonでやるときは、
*******************************
import smbus

bus = smbus.SMBus(1)

s= [0xff, 0xf0]
bus.write_i2c_block_data(0x60, 0x40, s)
*******************************

などとすると動作してくれる。

参考URL
http://wiki.erazor-zone.de/wiki:linux:python:smbus:doc