2017年10月13日金曜日

Python3でプログラム

RaspberryPi3でプログラミング開始

プログラミング ⇒ Python3 今回はPython3でプログラミングします、Python2でプログラミングしたファイルを開いて動作させる場合は一部コマンドが違いますので各自選択してください。



Python Shell 画面が開きますのでプログラミングする新しい画面をさらに開きます
File ⇒ New File そうすると右側に真っ白の新規画面が開きます。
新規作成、ここにプログラムを書いていきます。

すでに作成済みの場合や編集する場合は
File ⇒ Open 目的のファイルを選びます



プログラムの動作を確認するときは
Run ⇒ Run Module





上記はサーボを動かしました、動作試験がうまくいけば保存します
File ⇒ Save As 
ファイル名.py 拡張子は必ず .py を付けて保存すること

2017年9月1日金曜日

Tera Term でリモート接続 & プログラミング

Telnetとシリアル接続に対応したターミナルエミュレーター「Tera Term」を使ってリモート接続してみましょう。

Raspberrypi にCRTやキーボードを付けるのが面倒なので、いつも使っているWindowsPC からリモート接続してターミナルモードで作業ができます、これは家庭では便利です、屋外からのリモートもできますが今回は家庭内LANでの接続方法をメモ。

下記のダウンロード先からご利用できます、窓の杜参考

http://forest.watch.impress.co.jp/library/software/utf8teraterm/

ホスト名は家庭内LANの場合は接続したい RaspberryPi を固定IPにしている場合は設定したIPアドレスを入れます

     GO ⇒ 固定IPの設定方法を参照

Raspberrypi にCRTやキーボードを付けるのが面倒なのでこれは必要です
もちろん、Raspberrypi 本体でSSH有効にしておかないとだめですよ
「設定」→「Raspberry Piの設定」→「インターフェイス」タブの中
SSHを有効にチェック「OK」



「OK」で進んでください、SSH(暗号化した接続方式)で接続するので初回のみ表示「セキュリティの警告」が出ますが。迷わず「続行」してください。



ユーザ名:pi
パスフレーズ:raspberry
上記は初期設定の場合です、変更されることをお勧めします


Raspberry Pi 本体の「アクセサリ」⇒「LXTerminal」と同じ画面が開きますので、どーぞご自由にご利用ください。



プログラミング


ここでViコマンドを使って私はプログラミングするんですが、使い慣れていない人はおとくいの物をご利用ください。
ここの所もう少し後程書き加えますね

保存したプログラム ファイル名.py の動作確認は

⇒1
$ python3  ファイル名.py  
python3 でプログラミングした例です、python2の場合は先頭は2となります

動作確認できたら  ⇒ 2
Ctrl + c  でプログラム停止します

Python3 を動作させる場合は
Python3 Enter
加減乗除のテスト表示をしました
Ctrl + d  で停止します、普段のターミナルモードに戻ります

2017年4月8日土曜日

SSRトライアックスイッチの利用

 
秋月電子のキットを利用してAC100V負荷をリモートしてみました
AC100V 25AまでON/OFFできるのでこれは便利、今回10A負荷を制御していますので放熱板はCPUクーラーを利用しました。

2017年3月7日火曜日

Proxyサーバ環境での利用

Proxyサーバ環境でのご利用には

/etc/apt/apt.conf

Acquire::http::proxy "http://プロキシサーバー名:ポート番号/";
Acquire::https::proxy "https://プロキシサーバー名:ポート番号/";
Acquire::ftp::proxy "ftp://プロキシサーバー名:ポート番号/";
Acquire::socks::proxy "socks://プロキシサーバー名:ポート番号/";

上記書き込みし新しくファイルを作成する
次に
/etc/skel/.bashrc

.bashrcファイルは既存のファイルなので様々な内容が書かれています。この内容を壊さないように注意しながら、ファイルの末尾に下記の内容を追記します。

export http_proxy=http://プロキシサーバー名:ポート番号/
export https_proxy=http://プロキシサーバー名:ポート番号/
export ftp_proxy=http://プロキシサーバー名:ポート番号/


epiphany &  

なぜかchromiumでは表示しないのだ? 調査中!

2017年2月20日月曜日

Relay Moduleを接続

これはすぐれものだが注意が必要!
リレー1個のモジュールはGPIOがHIGHで動作するが
複数リレーモジュールはGPIOがLOWで操作するのでご注意ください、なぜかうまく動作しないな?と調べてみると回路がそうなっているのよね

通信販売でリレーユニットを購入しましたが接続がわからず試したところ、リレーの文字を見て右側の端子が入力側

左がリレー出力、中央がCOMでGPIO信号入力HIGHでA接点が閉じられます

負荷電流を測定するとGPIO信号HIGHで3.1mA
リレー動作電流が71mAなのでRaspberryPiから直接電源5Vを取ると複数台接続すると電流容量overになるので注意!

注意
GPIOピン1本あたりの最大電流は16mA 複数本のGPIOピンを使用する場合、同時に流せる電流の合計は50mAまで
ちゅうことはリレー1個でも別電源じゃないとダメなわけでした、実際には動作したけど要注意!
Relay Moduleの動作用電源はRaspberryPiからは供給せずに専用電源にしましょう

さらにGPIOピンはGPIOピンは26本もありますので、26個のLEDを光らせたりリレーを動作させてしまうと電流オーバーになります、それぞれのリレーの動作電流は3.5mA程度でも合計電流は91mAとなりオーバーしてしまいます。


この回路のようにRaspberryPiから電源供給するとダメです。


複数リレーのモジュールは回路図を見て納得。
フォトカプラでGNDでLED動作そしてリレーが動作するようになっておりますのでプログラムのGPIO出力はLOWで動作でした。




2017年2月14日火曜日

プログラムはviコマンドで作成変更

UNIX用viコマンド これだけ編

管理者権限でファイルを作成したり変更します、sudoを忘れずに
sudo vi ファイル名

スタートまずは何かあれば「Esc」が基本です

Esc 入力モード→コマンドモード

カーソルの移動=1文字の移動
h   
j   
k   
l   

藻に入力は、コマンドモード→入力モード
i   カーソルの位置に文字を入力
a   カーソルの右側に文字を入力
o   カーソルのある行の次の行頭 に文字を入力

行の移動「Esc」を必ず押さないとコマンドモードになりません、特定の行への移動は「J」でも改行しながら移動できます

「行数」G  だと指定した行への移動、例えば「10G」と入力すると、10行目へ移動します、ということは、ファイルの先頭へ移動するには「1G」と入力

G   最終行への移動できます

行数を表示させるには、コマンドモード「Esc」にて、

:set nu(Enter要)   行数を表示 nu (number)
:set nonu(Enter要)   逆に行数を非表示  nonu (no number)

文字の削除
x   1文字削除
dd  1行削除

文字のコピペ
yy   現在の行をバッファにコピー
nyy   n 行分をバッファにコピー

p   貼り付け、バッファ内のテキストを挿入
(文字、単語はカーソルの右に、行は現在の行の下に挿入される)

よっしゃできたぜこれで保存して終わるときは
ZZ   保存して終了
:wq(Enter要)   保存して終了
:q!(Enter要)   保存せずに終了

でもviの前にUNIX基本コマンドを覚えないと操作できません、これは他のホームページを参考にしてください。
ほんと、最初の敷居が越えられればあとは勢いで行けるぞー。ファイト!

2017年2月13日月曜日

TeamViewerまたはVNCサーバーをいれます

インターネット上で離れた場所なら、これがおすすめ最高に便利で重宝しています。
TeamViewer12(2017/2現在)ほんと何処からでもリモートすることができます。
ホームページからRaspberrypi用をダウンロードできるので簡単です、そのままインストールすると出来上がり。

https://pages.teamviewer.com/published/raspberrypi/


操作するパソコンにも入れてください
https://www.teamviewer.com/ja/


RaspberryPi3→スタート→インターネット→TeamViewer


使用中のID番号を操作用PCに入れてリモート接続します、パスワードも控えて利用します



RaspberyPiを再起動するとパスワードが変わるので「設定」から「セキュリティ」→Chang password パスワードを設定しておくと毎回同じパスワードなので複数の遠隔制御をする場合はリモートIDのみ管理しておくと便利です。







VNCサーバーも利用できます

RaspberryPi3を固定IPにしたら同じセグメント内だとVNCサーバーにして自分のPCからリモートする方が便利です。


$ sudo apt-get update
$ sudo apt-get install tightvncserver

サーバを立ち上げると初回はパスワード設定。
read-onlyのパスワードは入力せずEnter

$ tightvncserver


VNCサーバの自動起動の設定を行います。
次のような自動起動のスクリプトを作成します。

### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

#! /bin/sh
# /etc/init.d/vncboot

USER=pi
HOME=/home/pi

export USER HOME

case "$1" in
 start)
 echo "Starting VNC Server"
 #Insert your favoured settings for a VNC session
 su $USER -c '/usr/bin/vncserver :1 -geometry 1440x900 -depth 24'
 ;;

 stop)
 echo "Stopping VNC Server"
 su $USER -c '/usr/bin/vncserver -kill :1'
 ;;

 *)
 echo "Usage: /etc/init.d/vncboot {start|stop}"
 exit 1
 ;;
esac

exit 0


パーミッションを変更し、自動起動登録、再起動。
sudo chmod 755 /etc/init.d/vncboot
sudo chkconfig --add vncboot
sudo chkconfig vncboot on
reboot


もちろん操作用PCにはビュワーを入れてください、最新式はwebで行けるようになってました、時代は変わるのでついて行けません。



RaspberryPi3 固定IPアドレス設定

RaspberryPiをインターネットに接続する方法としてはルーター配下の場合はLANケーブルを接続するとDHCP機能で自動にIPアドレスその他が設定されます。
でも固定IPアドレスに設定しといたほうがFTPやTELNETでリモートするときに便利なので設定しておきましょう。
外部のインターネットからログインするためにはルーターの設定が別途必要ですがここでは割愛しています。

固定IPアドレスの設定

Menu ⇒ アクセサリー ⇒ LTXTerminal  で ifconfig コマンドを入力すると



eth0      Link encap:イーサネット  ハードウェアアドレス b8:27:eb:03:62:a1
          inetアドレス:192.168.11.5 ブロードキャスト:192.168.11.255  マスク:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:1853 エラー:0 損失:1 オーバラン:0 フレーム:0
          TXパケット:607 エラー:0 損失:0 オーバラン:0 キャリア:0
      衝突(Collisions):0 TXキュー長:1000
          RXバイト:196373 (191.7 KiB)  TXバイト:103667 (101.2 KiB)

lo        Link encap:ローカルループバック
          inetアドレス:127.0.0.1 マスク:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  メトリック:1
          RXパケット:10 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:10 エラー:0 損失:0 オーバラン:0 キャリア:0
      衝突(Collisions):0 TXキュー長:0
          RXバイト:1294 (1.2 KiB)  TXバイト:1294 (1.2 KiB)



 /etc/dhcpcd.conf

を編集します(アドレスは管理者に確認してください)
固定IPアドレスを「192.168.1.123」にする場合は以下のようになります

viコマンドでする場合
cd /etc    ディレクトリ移動しておきます
pi@raspberrypi /etc $  vi dhcpcd.conf

interface eth0 
static ip_address=192.168.1.123/24 
static routers=192.168.1.1 
static domain_name_servers=220.123.123.233 
(220.123.123.233 DNSサーバー?ここはネットワーク管理者に確認してください)
:wq

viコマンドを利用しています

おまけだけど最近は無線LANで接続している人の方が多いのではないでしょうか。
無線LANの場合は

interface wlan0 を書き換えます

pi@raspberrypi:~ $ vi /etc/dhcpcd.conf

interface wlan0
static ip_address=192.168.1.123/24
static routers=192.168.1.1
static domain_name_servers=220.123.123.233
(220.123.123.233 ここはネットワーク管理者に確認してください)
:wq

viコマンドを利用しています

2017年2月7日火曜日

スクラッチを使って電子回路を制御

スクラッチを使って電子回路を制御するには入出力端子の制御を可能にする拡張ソフトの「ScratchGPIO7」が必要です

cd /home/pi/Downloads
wget http://bit.ly/1wxrqdp -O isgh7.sh
sudo bash isgh7.sh

スクラッチは入門者には体験すべきソフトです
小学生の学習用に作成された使いやすさは遊びながらプログラムの流れが体験できます

日本語化モジュールを入れましょ

日本語化もホームページを見たり必ず必要になります
何かと必須

sudo apt-get update
sudo apt-get install fonts-takao ibus-mozc     

Takaoフォントと日本語入力ソフトibus-mozのインストールが完了しました

2017年2月2日木曜日

DHT11による温度と湿度の取得

2016年08月
http://qiita.com/Fendo181/items/469469d143d3568fc692


http://denpa-shinbun.com/entry/raspberry-pi-dht11


http://suka4.blogspot.jp/2016/05/raspberry-pi-3-dht11.html


http://kheiakiyama.hateblo.jp/entry/2016/01/04/153508


https://tech.recruit-mp.co.jp/iot/farm-monitoring-with-iot/

RaspberryPi3 Wifi接続時の固定IPアドレスの設定方法

リモートアクセスするときにrebootするたびにIPアドレスが変わると困りますよね、そこで固定IPアドレスの設定をしておきましょう。

wifiの場合は interface wlan0 LANケーブル接続の時は interface eth0

/etc/dhcpcd.confを開き

$ sudo nano /etc/dhcpcd.conf 

nanoやviで、ファイルの一番下に以下を追記
 /etc/dhcpcd.conf

interface wlan0
static ip_address=192.168.11.200/24 
static routers=192.168.11.1
static domain_name_servers=192.17.1.3

ip_address 設定したいIPアドレス
routers ルータのIPアドレス
domain_name_server こちらはDNSアドレス

再起動
$ sudo reboot

ifconfig などで確認

2017年1月25日水曜日

ディスプレイの解像度設定

これはリモート操作には欠かせませんので実施してください。

TeemVewer等でリモート接続時にディスプレイを外した状態でRaspberrypi3を起動すると画面サイズがとても小さく表示されるので操作がしにくいので画面サイズを変更して作業をスムーズにしたいので私のノートPCでいい感じで見えるサイズに大きくしました。

解像度の設定は /boot/config.txt で解像度をマニュアル設定します。
現在の設定を見ると
#hdmi_group=1
#hdmi_mode=1

#コメントを消して私は以下のようにしました、いい感じです。
hdmi_group=2
hdmi_mode=82

書き直して再起動します、おおきくなりましたか?

※※よく見ると
framebuffer_width=1024
framebuffer_height=768
にすれば私のノートPCに会うじゃないですか
以後#コメント消してこの方法をとっています


私はUNIXに標準で備わっているテキストエディタのviを利用していますので以下に操作方法をそのまま記載いたします、はじめての人には慣れるまで戸惑いますが、こんなもんやと思って利用しましょう。テキストエディタは各種ありますので自分のやりやすいものをご利用ください。

pi@raspberrypi:~ $ cd /boot  ディレクトリ内の移動

pi@raspberrypi:/boot $ ls  ファイルの確認

COPYING.linux   bcm2710-rpi-3-b.dtbfixup_db.dat    start.elf
ディレクトリ内のファイルがぎょうさんでてきますので省略・・
・・・・・・    
config.txt    あったよ目的のファイルが

pi@raspberrypi:/boot $ sudo vi config.txt

ここからはviコマンド一覧を見ながら操作してみましょう。
これは、ほんま慣れしかない。

VIコマンド、私の良く使う一覧、すべて覚えていませんがこれだけあればOKです。