Nothing New

楽に楽しく生きれたら幸せ

一人暮らしをはじめました

8月から、実家を出て一人暮らしをはじめた。

実家でも家事はあらかたやっていたから生活は不自由していないんだけど、部屋の家具に悩まされている。本棚とテレビ棚、あとはPCデスク。うじうじと悩んでばかりいて、気がつけば一人暮らしも二週間目になってしまった。

  • DIYしてみる
    理想のサイズ感と収納を追い求めると、オーダーメイドかDIYになるのだけど、生憎お金がそんなに無いのでオーダーメイドなんて儚い夢。そこでDIYしてみようかと思ってシナランバーコア合板のカット図まで描いてみた。今の部屋ではベストなサイズの設計になるけど、今後引越しするかもしれないと考えると、わざわざ手間隙掛けて作る意味もそんなにないんだよなぁと悩んでしまう。
  • いっそ買い揃える
    ベストを追うのは諦めて、使い勝手のいいサイズの家具を買い揃えるのも致し方ない。そんなにインテリアに思い入れがあるわけでもないし、とりあえず使う分に差し支えないならそれでいいと思う。楽天で調べてみると、DIYの木材買うのと金額もそう変わらないし、買い揃える案に傾きつつある。

この文章書いてるうちに、買い揃える案で妥協するような気がしてきた。背伸びしてお洒落なインテリアを目指すことはないし、とりあえず部屋に山積みになってるダンボールをなんとかしたいから、手っ取り早く楽天で買い揃えてしまおう。

ラズパイ奮闘記 (7) GPIOコマンドを調べてみる

WiringPiの導入が一通り終わったところで、今後頻繁に使うであろうGPIOコマンドを調べてみます。またしても本家サイトの和訳コピペですがご勘弁。

WiringPi本家サイト(英語)
projects.drogon.net

基本コマンド

GPIOコマンドの一覧を見るコマンド(ややこしい)

man gpio


バージョンの確認

gpio -v


ピン番号をBCM_GPIOピン番号として解釈して出力

gpio -g

標準入出力コマンド

ピンのモードを「入力」「出力」「PWM」「内部プルアップ/プルダウン抵抗をプルアップ」「内部プルアップ/プルダウン抵抗をプルダウン」「「内部プルアップ/プルダウン抵抗を無効化」にする(このとき、PIN番号ではなくGPIO番号を指定するのを忘れずに)

gpio [-g] mode <pin> in # 入力
gpio [-g] mode <pin> out # 出力
gpio [-g] mode <pin> pwm # PWM
gpio [-g] mode <pin> up # 内部プルアップ/プルダウン抵抗をプルアップ
gpio [-g] mode <pin> down # 内部プルアップ/プルダウン抵抗をプルダウン 
gpio [-g] mode <pin> tri # 無効化


ピンの入出力状態変更

gpio [-g] write <pin> 0 # オフ
gpio [-g] write <pin> 1 # オン


ピンのPWM値設定。にピン番号、に0~1023の範囲で値を設定すること

gpio [-g] pwm <pin> <value>


指定したピンの現在の入出力状態を確認

gpio [-g] read <pin>


アクセス可能な全てのピンの現在の入出力状態、番号表(WiringPiとBCM_GPIOの両方が参照可能)を確認

gpio [-g] readall

モジュールロードコマンド

SPIカーネルモジュールを読み込み、内部バッファがKB単位(1024の倍数)で指定したサイズに設定される

gpio load spi [バッファサイズ(KB)]


i2cカーネルモジュールを読み込み、ボーレートが任意の速度(1000の倍数、単位はKB/s)で設定される。デフォルトは100Kb/s

gpio load i2c [ボーレート(Kb /秒)]

/sys/class/gpioモードコマンド

指定されたピン(BCM-GPIO)を入力または出力としてエクスポートし、同じユーザとして実行中のユーザプログラムが使用できるようする

gpio export <pin> in/out


指定されたピンのエクスポートを削除する

gpio unexport <pin>


すべての/sys/class/gpio エクスポートを削除する

gpio unexportall


/sys/class/gpio インターフェースとそのモードでエクスポートされた全てのgpioピンのリストを表示する

gpio exports


これにより、指定されたピンが立ち上がりエッジ、立ち下がりエッジまたは両エッジでエッジ割り込みトリガをイネーブルする(無効にするものはなし)

gpio edge <pin> rising/falling/both/none

内部プルアップ/ダウン抵抗

内部プルアップ/ダウン抵抗内蔵のGPIOピンが入力モードになると、ソフトで制御することができる

gpio mode 0 up
gpio mode 0 down
gpio mode 0 tri

PiFaceコマンド

使用することは無さそうなので省略



書いているうちにコマンド覚えちゃったけど、まあ備忘録ということで残します。

ラズパイ奮闘記 (6) WiringPiの導入について

LチカをやるにあたってさらっとWiringPiを使いましたが、WiringPiの導入については触れていませんでした。入れなおす度に調べるのも面倒なので、さらっと導入について書いてみます。本家サイトに導入方法載っていたので、手短に和訳してみます。

WiringPi本家サイト(英語)
wiringpi.com


■ インストール手順

お約束ではありますが、最初にRaspbianを最新バージョンにしましょう。

$ sudo apt-get update
$ sudo apt-get upgrade 

Raspbianの最新化が終わったら、wiringPiがインストールされていないことを確認します。

$ gpio -v 

インストール済であった場合は、以下のようにバージョンが表示されるので、更新掛けるだけで大丈夫ですね。

$ gpio -v
gpio version: 2.44
Copyright (c) 2012-2017 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
  Type: Pi 3, Revision: 02, Memory: 1024MB, Maker: Unknown
  * Device tree is enabled.
  *--> Raspberry Pi 3 Model B Rev 1.2
  * This Raspberry Pi supports user-level GPIO access.

次に、標準パッケージやソースからインストールされているかどうかを調べます。ソースとしてインストールした場合は元手を把握しなきゃだめですが、パッケージとしてインストールされている場合は、まずパッケージを削除する必要があります。

$ sudo apt-get purge wiringpi
$ hash -r 

gitがインストールされていない場合は、サクッと入れましょう。wiringPiの導入以外でも使う場面が多いはず。

$ sudo apt-get install git-core

gitを使ってwiringPiを入手します。ディレクトリ移動を忘れずに!

$ cd
$ git clone git://git.drogon.net/wiringPi 

もう既にclone済の場合には以下コマンドで。

$ cd〜/ wiringPi
$ git pull origin 

gitから入手が完了したら、ビルドスクリプトを叩きます。スクリプトは用意されているので、実行するだけ。

$ cd〜/ wiringPi
$ sudo ./build 


補足:
本家サイトには別のやり方も載っていましたが、GUI操作が必要みたいなので割愛。


■ インストール後の確認

gpioコマンドを実行して、インストール確認を実行します。

$ gpio -v
 $ gpio readall 


以上!

ラズパイ奮闘記 (5) wiringPiを使ってC言語でLEDを点滅させる

すこしRedmine導入で寄り道してしまいましたが、いよいよC言語でGPIOの制御にチャレンジします。手始めに、マイコン界のHello Worldと呼ばれるLチカをやってみます。意気込んではみるものの、まったく知らないので、またもや先人の教えにお世話になります。

参考にさせていただいたサイト:

make.bcde.jp

wiringPiのインストー

git clone git://git.drogon.net/wiringPi 
cd wiringPi
./build

# 念のためバージョン確認
gpio -v

動作確認

gpio -g write 17 1
gpio -g write 17 0

配線

Fritzingで書いてみました。

  • PIN11(GPIO17)  : 入力
  • PIN6(GND) : GND

f:id:allegretter:20170728144057p:plain

サンプルプログラム

ソースの転載はしないので、参考元サイトをご覧くださいm(_ _)m

コマンド実行

gcc -o brink wiringpi_brink.c -I/usr/local/include -L/usr/local/lib -lwiringPi
./brink

あっさり点滅させることができました! 一歩前進!

f:id:allegretter:20170728152127j:plain

ラズパイ奮闘記 (4) ラズパイにRedmineを入れてみる

本当ならLチカやる予定でしたが、ちょっと路線変更してRedmineを導入します。実際の業務でも使っているし、進捗管理の練習になるかなぁと思いまして。

知識皆無の状態からのスタートなので、まずは記事に起こして手順を確立させます。躓く可能性大なので、今後も追記すること確実! 躓いてyahoo知恵袋でないてたりしましたが、成功しました!

参考にさせていただいたサイト:

Redmine 3.3をUbuntu Server 16.04.2 LTSにインストールする手順 | Redmine.JP Blog

RaspberryPi3にRedmineを導入する方法(前編) - 三流SEの技術LOG

RaspberryPi3にRedmineを導入する方法(前編) - 三流SEの技術LOG

Raspberry Pi 3 Bにredmineを導入しようとした際に、Apacheで詰まっ... - Yahoo!知恵袋

インストールする端末:

Raspberry Pi 3 model B / Raspbian Jessie 4.9

OSの設定

必要なパッケージのインストー

  • パッケージ管理システムのデータベースを最新に更新

    sudo apt-get update
  • RubyとPassengerのビルドに必要な開発ツールやヘッダファイルのインストー

    sudo apt-get install -y build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev
  • MySQLサーバのインストー

    sudo apt-get install mysql mysql-server libmysqld-dev

    補足: これだけだと足りないみたいなので、以下の実行も必要とのこと!

    sudo apt-get install libmysqlclient-dev 
    gem install mysql2 -v '0.4.8'
  • Apacheとヘッダファイルのインストー

    sudo apt-get install -y apache2-mpm-worker apache2-threaded-dev libapr1-dev libaprutil1-dev
  • ImageMagickとヘッダファイル・日本語フォントのインストー

    sudo apt-get install -y imagemagick libmagick++-dev fonts-takao-pgothic
  • バージョン管理ツールのインストー

    sudo apt-get install -y subversion git

Rubyのインストー

MySQLの設定

Redmineのインストー

Redmineの初期設定と初期データ登録

  • セッション改ざん防止用秘密鍵の作成

    sudo -u www-data bundle exec rake generate_secret_token
  • データベースのテーブル作成

    sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate
  • デフォルトデータの登録

    sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

Passengerのインストー

sudo gem install passenger --no-rdoc --no-ri
  • PassengerのApache用モジュールのインストー

    sudo passenger-install-apache2-module --auto --languages ruby
  • Apache用設定内容の確認

    passenger-install-apache2-module --snippet

Apacheの設定

以下の内容で /etc/apache2/conf-available/redmine.conf を作成。

#Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定。 
# Apache 2.4のデフォルトではサーバ上の全ファイルへのアクセスが禁止されている。

<Directory "/var/lib/redmine/public">Require all granted </Directory>

# Passengerの基本設定。
# passenger-install-apache2-module --snippet で表示された設定を記述。
# 環境によって設定値が異なるため以下の3行はそのまま転記せず、必ず
# passenger-install-apache2-module --snippet で表示されたものを使用すること。
#
LoadModule passenger_module /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.1.2/buildout/apache2/mod_passenger.so

<IfModule mod_passenger.c>
PassengerRoot /var/lib/gems/2.1.0/gems/passenger-5.1.6
PassengerDefaultRuby /usr/bin/ruby2.1
</IfModule>
  • Apacheの設定の反映

    sudo a2enconf redmine 
    apache2ctl configtest
    sudo /etc/init.d/apache2 restart

Apache上のPassengerでRedmineを実行するための設定

起動の確認

ブラウザで「http:// <該当IP> / redmine」にアクセスし、起動を確認。

 

2017/07/25 16:40 追記
なんとかRedmine立ち上げることができたー!! やったー!!

f:id:allegretter:20170725164052p:plain