Yura YuLife

ITエンジニアの覚え書き。

PIRセンサ(SB00412A-1)とMilkcocoaで簡易見守りシステムを構築

見守りシステムで家の中に監視カメラを置くなんて話がありますが、さすがに部屋をずっと撮影されているといい気持ちはしないと思います。そこで、前の記事で紹介したaitendoの人感センサ(SB00412A-1)のデータをRaspberry PiからMilkcocoaにアップロードして…

Raspberry Piで人感センサ(SB00412A-1)を5Vで利用する方法

aitendoで購入したPIRセンサ(SB00412A-1)ですが、Raspberry Piで3.3Vで利用すると誤検知を繰り返し動作が不安定なので、5Vで利用する方法をまとめました。 必要なもの Raspberry Pi2 Model B 低電圧極小PIRセンサー SB00412A-1 1kΩ以上の同じ種類の抵抗 3個 …

ROSのPointCloud2で独自のフィールドを定義

ROSのpclパッケージで独自のフィールドを定義したPointCloud2のトピックをpublish, subscribeする方法です。 環境 Ubuntu 14.04 ROS Indigo スクリプト例(Publisher) rvizで確認 上記のスクリプトを動かし、rvizでPointCloud2型の/custom_point_cloudトピッ…

Python, OpenCVでRGBとHSVを相互変換

動作環境 OpenCV 2.4.8 OpenCVでRGBとHSVを相互変換 画像のRGBとHSVをまるごと変換するにはcv2.cvtColorをそのまま使えばよいのですが、こちらはRGBとHSVの値を1ピクセルだけ変換するためのラッパー関数です。 import numpy as np import cv2 def hsv_to_rgb…

人感センサ(SB00412A-1)検知時にLEDを光らせる

aitendoで人感センサ(SB00412A-1)を購入したので、センサが人を検知した時にLEDを光らせてみました。 追記(2016/02/28) SB00412A-1を3.3Vで接続すると動作が不安定になるため、5Vでの接続を推奨します! 接続方法は、Raspberry Piで人感センサ(SB00412A-1)を…

Raspberry Piでスイッチを押すと音楽を再生する

Raspberry Piに接続したタクトスイッチを押すと、音楽を再生するPythonのスクリプトです。 ちなみに、上の動画で流れているのは僕のバンドCosmic Time Scaleの曲です。 必要なもの Raspberry Pi2 Model B (Raspberry Pi A/B+も可) タクトスイッチ 10kΩの抵抗…

Raspberry Piに接続したLCD(ACM1602NI)をPythonで動かす

Raspberry PiにI2Cで接続したLCD(ACM1602NI-FLW-FBW-M01)を、Pythonから動かします。 ソースコード、セットアップ手順はGitHubにて公開しています。 github.com 必要なもの Raspberry Pi2 Model B (Raspberry Pi A/B+も可) LCDモジュール(ACM1602NI-FLW-FBW-…

PCがRealSense R200をUSBハブに接続するとPCから認識できない

タイトルの通り。 IntelのRealSense R200をUSBハブやUSB延長ケーブルに接続すると、PCから認識できないことがあります。 これは単純に電力の供給不足が原因です。 RealSenseなどの深度センサでは、赤外線レーザーによってパターンを照射し、赤外線カメラによ…

PythonでGoogle Drive API v3を利用して画像のアップロード

PythonでGoogle Drive API v3を利用して、 GoogleDriveにフォルダを作成し、ローカルのフォルダ内の画像をアップロードするスクリプトです。 環境 Python 2.7 Mac OSX / Debian Google Drive APIの有効化と認証情報の取得 プロジェクトの作成 https://consol…

シェルスクリプトで日付が有効かをチェックし、開始・終了日間でループする

シェルスクリプトで、特定の日付間のログのみを抽出する等の処理をする際に、日付でループするコードの例です。 サンプルコード loop_date.sh #!/bin/bash # 有効な日付ではない場合は終了する関数 function check_date() { date -d "$1" || exit 1 return 0…

CSSで等幅フォントの指定

CSS

ウェブサイトやブログ記事でソースコードなどを掲載する場合の、等幅フォントの設定例です。 はてなブログの<pre class="code"></pre>に適用されるCSSに、日本語にも強いソースコード向けの等幅フォントRicty Diminishedを追加しています。 pre.code { font-family: 'Ricty Diminishe…

シェルスクリプトで正規表現マッチ

シェルスクリプトで引数による条件分岐をする際にif文の列挙やcase文を利用する場合は多々あると思いますが、 単純に引数のチェックのみを行いたいときはbashの正規表現マッチで調べるのが簡単です。 bashでの正規表現マッチ 例えば、第一引数が正規表現^h.+…

Rundeckでユーザの追加とプロジェクトへのアクセス権限の設定

Rundeckのデフォルトユーザはadminのみです。管理者が1人の場合はadminのみで十分ですが、複数人で管理する場合は適切な権限を付与するべきです。 そこで、特定のプロジェクトのみ閲覧・編集できるユーザを作成する場合は、設定ファイルを追加・編集すること…

Redmineのトップメニューにリンクを追加する

検証環境 Redmine 2.6 Ruby 1.9.3 Redmineのトップメニューにリンクを追加 Redmineの上部には、ホーム、マイページ、プロジェクト等のメニューが並んでいますが、ここに任意のメニューを追加する方法です。 プラグインを用いる方法が一般的だと思われますが…

ペパボWiMAXでWX02(とクレードル)を買った

タイトルの通り、WiMAXのWX02とクレードルのセットを購入しました。買ったのはホワイトの方です。 WiMAXっていうと各社色々キャンペーンをやっていて、どこで買うか色々悩みました。 キャッシュバックは高額だけど手続きが面倒だし、本家は割引率が悪いしで…

Djangoでユーザがグループに所属しているかを判定する

Djangoで、特定のグループに所属しているユーザのみにリンクやページを表示する場合に、以下のような方法があります。 テンプレートタグを用いる方法 テンプレートタグを用いると、ユーザの所属するグループによってページ内の情報やリンクを出しわけること…

バンドのウェブサイトを作りました

タイトルの通り、バンドのウェブサイトを作りました。 cosmic time scale そんなに更新頻度も高くないので、BootstrapベースのHTMLページ1枚だけですが、 テンプレートが優秀なので、それなりには見栄えがするかなーと。 趣味でやっているバンドのウェブサイ…

crontabでscpを使うとPermission deniedされてしまう

scpをするようなシェルスクリプトを作った時に、コマンドラインから実行するとちゃんとscpでファイルコピーできるのに、crontabに登録して実行するとPermission denied(publickey)と怒られてしまう、という事象で結構ハマりました。 なぜ動かなかったかとい…

Django 1.8にAxesを追加する

連続ログイン失敗時にアカウントをロックする機能を追加できるプラグインdjango-axesのインストール手順です。 環境 Django 1.8 django-axes のインストール $ pip install django-axes settings.pyの編集 vi settings.py INSTALLED_APPS = ( # 以下の1行を…

UbuntuのApacheにmod_dosdetectorをインストール

Ubuntu上で動かしているApacheに、DoS攻撃対策用のモジュールmod_dosdetectorをインストールする手順です。 環境 Ubuntu 14.04 64bit Apache 2.4.7 下準備 $ sudo apt-get install apache2-dev mod_dosdetectorのインストール $ git clone https://github.co…

djangoのペジネータで、現在のページの前後数ページのみをリンクとして表示する

Djangoのペジネータを使ってリンクを表示するときに、Google検索みたいに前後数ページのリンクを表示する方法です。 Googleの場合は前5ページ、後4ページを表示していますね。 環境 Django 1.8 ペジネータで前後数ページを表示 views.py from django.core.pa…

ライブをやりました

渋谷のTAKE OFF 7というライブハウスのイベントに参加させていただきました。 キーボードが僕です。 演奏するのにいっぱいいっぱいでかなーり下を向いちゃっていたので、次のライブではもっと前を向けるよう頑張らないとなー。 www.youtube.com

Ubuntuにgit 2.5をインストール

環境 Ubuntu 14.04 64bit Ubuntuに最新のgitをインストール apt-getでインストールできるgitのバージョンが1.9.1なのですが、最新バージョンを利用したかったのでgitのPPAを追加してインストールします。 $ sudo add-apt-repository ppa:git-core/ppa $ sudo…

Ubuntuでサービスの自動起動の設定

環境 Ubuntu 14.04 64bit サービスの自動起動の設定を変更する Ubuntuでサービスの自動起動の設定を変更するならsysv-rc-confを使うと便利です。 sysv-rc-confのインストール $ sudo apt-get install sysv-rc-conf 設定の変更 $ sudo sysv-rc-conf 画面上で…

Windows 10のストアでアプリのダウンロードが進まない場合はWindows Updateを

まとめ Windows 10にアップグレード後、ストアでアプリのアップデートを行おうとしても、ダウンロードが進まなかった Windows Updateで更新プログラム KB3081444を適用したら、無事ダウンロードとインストールが行われるようになった Windows Updateの方法 W…

MeCabとUNIDICをUbuntu 14.04にインストール

環境 Ubuntu 14.04 MeCab 0.996 UNIDIC 2.1.2 MeCabとUNIDICのインストール手順 下準備 必要なライブラリをインストールしておく。 $ sudo apt-get install libiconv-hook-dev MeCabのダウンロード 以下の公式サイトから、mecab-0.996.tar.gzをダウンロード…

MongoDBのダンプファイルを作成して圧縮するスクリプト

タイトルの通り、MongoDBのダンプファイルをzipで1ファイルにまとめるスクリプトで、定期的なバックアップの作成に利用しています。 $ vi dump_mongodb.sh #!/bin/bash MONTH=$(/bin/date '+%Y%m') DATE=$(/bin/date '+%Y%m%d-%H%M') LOGDIR="/バックアップ…

MongoDBで WARNING: You are running on a NUMA machine. というワーニングが出る場合

環境 Ubuntu Server 14.04 MongoDB 2.4.9 MongoDBの起動時にワーニングが出る apt-getでインストールしたMongoDBを起動すると、起動時に以下のようなワーニングが表示された。 MongoDB shell version: 2.4.9 connecting to: test Server has startup warning…

Djangoの初回マイグレーション時に relation "auth_user" does not exist というエラーが発生する場合

環境 Ubuntu 14.04 PostgreSQL 9.3 Django 1.8 初回マイグレーション時のエラー Djangoのプロジェクトをコピーしてきて、$ python manage.py migrate しようとすると、以下のようなエラーが発生した。 Synchronizing apps without migrations: Creating tabl…

MediaWikiのデータ移行と、エラー対処方法

Wikipediaでも利用されているWikiエンジンのMediaWiki。XML形式で出力することで、データのエクスポートやインポートが簡単にできるのも特徴です。 動作環境 Ubuntu Server 14.04 Apache 2.4.7 PHP 5.5.9 MediaWiki 1.25.1 MediaWikiのデータ移行方法 データ…