ニートの言葉

元ニートがやってみたこと・その過程で学んだこと・考えたこと・技術メモあたりを主に書いています。情報革命が起きた後に訪れるであろう「一億総ニート時代」の生き方を考え中です。

ドローン初心者におすすめ!1万円以下のカメラ付きドローンf182CSのレビュー

https://www.instagram.com/p/_Inb5fwsQW/

ドローンが届きました

最近何かと話題のドローンですが、Holy Stoneのf182CSという商品がamazonのタイムセールで7000円弱だったので衝動買いしてしまいました。 

商品名にも「ドローン」と名付けられていますが、プログラムで操作できるような高級品ではなく、実際はただのカメラ付きラジコンヘリです。

今回の内容

 

商品を開けてみる

外箱はボロボロ

amazonの段ボールに入っていたにも関わらず、外箱はボロボロの状態で届きました。

説明書もボロボロ

説明書。ギリギリ理解できるレベルの日本語で書かれています。

しかも最初からすんごい折れてます。

この雑さ…嫌いじゃない。

本体

エイリアンのイラストが書かれています。

羽の所に書いてあるWARNINGがちょっとカッコイイ。

意外と大きい

そして軽いです。

予備の羽

壊れやすいのでしょうか?予備の羽が入ってました。ありがたいですね。

そしてWARNINGがカッコイイ。

コントローラー

操作部分は発泡スチロール?スポンジ?に包まれてました。

丁寧であるべきところは丁寧。

予備バッテリーが一つ

バッテリー1つで10分程度の飛行が可能らしいので、合計20分遊べるということですね。あと4つくらい欲しい。

箱が入ってました。

箱の中身

中身はACアダプターでした。

マイクロSDカード付き

2GBのマイクロSDカードが付属していました。(少し飛び出ているところ)

カメラ部分 その1

カメラは角度を変えることが出来るようです。

一番上(真正面)を向けるとこんな感じ。

カメラ部分 その2

一番下を向けてもこの程度。斜め下までしか見れそうにない?

少なくとも、真下を見下ろす形での撮影は無理そうです。(下の部分を削れば真下も見れるかも)

LED

飛行中に見失わないようにでしょうか?

感想

室内でかるく飛ばしてみましたが、操作が難しすぎて泣きました。
後日、広い公園で遊んでみてその時に動画を撮影しようと思います。

カメラの画質は良くないみたいですので、おまけ程度と捉える必要がありそうですが、1万円以下で買えるので、ドローンの入門機としては悪くないかもしれません。

 

それでは

 

 

 

【IoT】myThings + milkcocoaで高齢者見守りデバイスを作ってみた

本記事は myThings Advent Calendar 2015

Milkcocoa Advent Calendar 2015
の10日目の記事です。

今回は一人暮らしの祖母の安否をゆるく確認できるデバイスを作ったことの記録を書きます。
初のAdvent Calendarですので、不足がありましたら是非コメントでお知らせいただければと存じます。

目次


背景・抱えていた問題

僕の祖母は遠くで一人暮らしをしています。
高齢の一人暮らしなので両親は心配しており、祖母に近くに引っ越してくるように・もしくは同居するように提案したものの、引っ越すことは嫌だということで、何か出来ることはないかと悩んでいました。

解決案

そこで、ゆるくでも良いので安否確認ができたら両親が少しは安心するかもと考え、何かしらの動きを検知して、毎日決まった時間に通知をするものを作ることにしました。

何を作るか

動きの検知という意味ではポットの使用状況から安否を確認できるという商品もありますが、僕の祖母が毎日ポットを使っているかがわからない
そこで、まずは「誰でも・毎日使っている」トイレの扉の開閉のログを取ります。
そして、毎日朝8時・夜8時の時点で安否(動きがあったかどうか)の通知をしてくれるようにします。

技術的課題

さて、作るものは決まりましたが技術的な課題が色々とあります。

課題その1 : 通信環境をどうするか
課題その2 : サーバーをどうするか
課題その3 : 通知をどうするか

課題その1.通信環境をどうするか

祖母の家には電気はかろうじて通っているものの、インターネットなんていう現代的なものは当然ありません。
しかし、新しくインターネットの契約をするというのは今回の利用目的を考えるとコスパが悪い。

そこで、simフリーのポケットWiFiを購入し、ヨドバシで契約した月額500円・低速・無制限のsimを入れて使うことにしました。(なんとか通信できました。)

課題その2.サーバーをどうするか

データを受け入れたり取り出したりというサーバー側のプログラムを書くのは意外と面倒です。

そこで、今回は

自前でサーバを準備せずに、クライアントSDKを介してデータの保存、更新、取得またPub/Sub通信を行うことが出来る

というmilkcocoaを使いたいと思います。

課題その3.スマホへの通知をどうするか

アプリの知識は0なので、スマホへのプッシュ通知のさせ方がわかりません。ということで、myThingsを使います。

改めて作るものの説明

だいたいこんな流れです。

実際の製作の流れ

さて、前置きが長くなりましたが、製作の流れの説明に入ります。 ざっくりとした流れはこんな感じです。

  1. raspberry_piのセットアップとmilkcocoaに登録
  2. IDCFクラウドに契約とmyThingsセットアップ
  3. 扉の開閉データをmilkcocoaに送信
  4. 開閉データの有無を確認して、mythingsに通知するようデータをセット
  5. myThingsでプッシュ通知を受ける

では、一つずつ見ていきます

1.raspberry_piのセットアップとmilkcocoaの登録

この辺りはこちらの記事を参考にしました。 http://blog.mlkcca.com/iot/realtime-data-visualization-with-raspberry-pi-1/

2.IDCFクラウドに契約とmyThingsセットアップ

IDCFクラウド契約・myThingsのセットアップはこちらの記事を参考にしました。 myThingsを始めよう

3.扉の開閉をmilkcocoaに送信

さて、ここまでのステップで環境ができたので、プログラムを書いていきます。

今回は扉の開閉を監視するので、リードスイッチ(磁石の接近でon/offが切り替わるスイッチ)を使います。

こちらの記事スイッチ入力を受け付けるという箇所のサンプルを書き換えて、milkcocoaにデータを送信する仕組みを追加しました。

このプログラムはバックグラウンドで実行し続けます。

$ sudo node door_check.js &

var fs = require('fs');

var MilkCocoa = require('milkcocoa');
var milkcocoa = new MilkCocoa('*******.mlkcca.com');
var ds = milkcocoa.dataStore('door');

fs.writeFileSync('/sys/class/gpio/export', 21);
fs.writeFileSync('/sys/class/gpio/gpio21/direction', 'in');

var pre_value = 1;
loop();
function loop() {
    var value = parseInt(fs.readFileSync('/sys/class/gpio/gpio21/value', 'ascii'));
    if ( value != pre_value  ) {
        console.log(value);
        ds.push({DoorOpenFlag:value});
        pre_value = value;
    }
     setTimeout(loop, 1000/10);
}
動作中の動画

以前pythonで書いたバージョンなので、微妙に挙動が違いますが大体こんな感じです。 IMAGE ALT TEXT HERE

4. 開閉データの有無を確認して、mythingsに通知するようデータをセット

下記のプログラムを朝の8時と夜の8時にcronで回します。

var MilkCocoa = require('milkcocoa');
var milkcocoa = new MilkCocoa('********.mlkcca.com');
var history = milkcocoa.dataStore('door').history();
var execSync = require('child_process').execSync;


var myD = new Date();

var myYear = myD.getFullYear();
var myMonth = myD.getMonth();
var myDate = myD.getDate();
var yesterday = beforeDay(myYear,myMonth,myDate);

if(myD.getHours() >= 19){
    var myYear_start = myYear_end = myYear;
    var myMonth_start= myMonth_end = myMonth;
    var myDate_start = myMonth_end = myDate;
    var myHour_start = 8;
    var myHour_end = 20;
}else{
    var myYear_start = yesterday['year'];
    var myMonth_start= yesterday['month'];
    var myDate_start = yesterday['date'];
    var myYear_end = myYear;
    var myMonth_end = myMonth;
    var myDate_end = myDate;
    var myHour_start = 20;
    var myHour_end = 8;
}

history.sort('desc');
history.size(1);
history.limit(1);
history.span(new Date(myYear_start,myMonth_start,myDate_start,myHour_start,0,0).getTime(), new Date(myYear_end,myMonth_end,myDate_end,myHour_end,0,0).getTime());
history.on('end', function(data) {
    if (data) {
        console.log('data_exists');
        execSync('curl -X POST "https://***.***.***.***/data/UUID" --insecure --header "meshblu_auth_uuid: UUID" --header "meshblu_auth_token: TOKEN"');
        process.exit();
    }else{
        console.log('data_nothing');
        execSync('curl -X POST "https://***.***.***.***/data/UUID" --insecure --header "meshblu_auth_uuid: UUID" --header "meshblu_auth_token: TOKEN"');
        process.exit();
    }
});
history.run();


function beforeDay(year, month, date) {
    var d = new Date(year, month, date);
    d.setDate(d.getDate() - 1);
    return {
        year: d.getFullYear(),
        month: d.getMonth(),
        date: d.getDate()
    };
}

内容としては 実行された時間が朝の8時であれば「前日の20時から当日の8時までのデータ」を、実行された時間が20時であれば「当日の8時から20時までのデータ」を確認しに行きます。

データが入っていたらmyThingsのトリガー1にデータを送信。
データが入っていなければトリガー2にデータを送信。

という感じです。

5. myThingsでプッシュ通知を受ける

myThingsで下記のように設定をしました。

トリガー1の時は無事であることの通知

トリガー2の時はデータが無いことの通知

使ってみた・感想

ソースの書き方や仕組みについて怪しい部分は多々あるものの、なんとか動作しました。
便利かどうかで言うと、まだ微妙です。
朝の通知に関しては祖母が起きているかどうかがわかるのは便利ですが、昼〜夕方に関しては夜にならないと安否がわからないので改善が必要だと感じています。

今後

認知症になった時を考え、扉のセンサーだけでなく人感センサーなどを追加して部屋の中にいるかどうかも確認できるようにしようと考えています。
また、データを通知だけではなく、Web上から見れるようにします。

github上で更新していますので、もしよければご覧ください。

それでは、長文を読んでいただきありがとうございました。

【セール情報(終了しました)】漫画・新世紀エヴァンゲリオン(kindle版)が1巻50円・全巻セットでも700円

アニメの放送からもうすぐ20年が経とうとしているにもかかわらず、未だに根強い人気がある新世紀エヴァンゲリオン。

今日はそのエヴァのkindle版が1巻あたり50円、全巻セットで700円と激安になっていましたのでご紹介。(2015/11/20現在の情報です->2015/11/30現在すでにセールは終わっていました)

コミック版は…

コミック版は普通に全巻セットを買うと8,705円

新世紀エヴァンゲリオン コミック 全14巻完結セット (カドカワコミックス・エース)

新世紀エヴァンゲリオン コミック 全14巻完結セット (カドカワコミックス・エース)

 

Kindle版は… 

全巻セットで700円

一冊からでも購入可能で、なんと一冊50円です。 

新世紀エヴァンゲリオン(1)<新世紀エヴァンゲリオン> (角川コミックス・エース)

新世紀エヴァンゲリオン(1)<新世紀エヴァンゲリオン> (角川コミックス・エース)

 

 kindleを持っていなくても大丈夫

kindleを持ってないからと言って、購入をためらう必要はありません。

kindlecloud readerを使えばPCからでも読むことができます。

HDD・SSDの使用状況を可視化して効率よく整理する方法(Mac編)

前回、Windowsで使える、HDDの使用状況を可視化するツールを紹介しました。

andoo.hatenablog.com

今回はmacで使える同様のツールを紹介します。

ダウンロード

今回紹介するツールはGrandPerspectiveです。

ダウンロードはこちら:http://grandperspectiv.sourceforge.net/

ページ中断にあるDownload itから最新のバージョンを選択してダウンロードします。
(2015/11現在:GrandPerspective-1_5_1.dmgが最新です)

使い方

1.ダウンロードしたファイルを開く

ダウンロードした.dmgファイルを開くと下図のようになります。

GrandPerspective.appを選択して開きましょう。

エラーが出る場合 

もしもここで、「開発元が未確認のため開けません。」とエラーが出た場合

こちらに対応策を書きましたので、ご覧ください。  

andoo.hatenablog.com

2.フォルダーを選択する

GrandPerspective.appが正しく起動されると、スキャンするフォルダーを選択する画面が表示されます。

今回はHDD全体のチェックをしますのでMacintosh HDを選択します。
特定のフォルダのみをチェックする場合はそのフォルダーを選択しましょう。

3.整理する

フォルダーを選択すると、しばらくの間スキャンが行われます。

スキャンが完了するとこのような画像が表示されます。

マスが大きいほど使用容量が大きいものです。マスを選択すると左下にどのフォルダーのものなのかが表示されます。

使用容量が大きく、使っていないものから削除していきましょう。

Amazonで始まった音楽聞き放題サービス「amazon prime music」が凄く良い

先日、Amazon Prime会員であれば動画を見放題になるAmazon Prime Videoというサービスが始まり、話題になっていたAmazonですが

本日、音楽聞き放題のPrime Musicというサービスが始まりました。

www.amazon.co.jp

料金は?

Amazon Prime会員になることで利用できます。

つまり、年間3900円(税込)=月額325円 で動画も音楽も見放題・聞き放題になるわけですね。

曲のラインナップは?

2015/11/18現在

アルバム数は全ジャンルで121,065枚

楽曲単位では1,285,975曲

が登録してあります。

 

JPOPに絞るとアルバムが6,893枚登録されています。

MP3ストアには58,761枚登録してありますので、10%ちょっとくらいが無料で聞き放題になったという程度でしょうか。

PrimeMusic

オフラインでも聞ける

さらに、このサービスのこちらに記載してあるアプリを使うことでオフラインでも音楽を聞き放題になるようです。

www.amazon.co.jp

感想

もともとPrime会員には追加料金なしで使えますので、おまけ程度に捉えれば嬉しいサービスですね。

どんな曲でも聞き放題というわけではないので、音楽にこだわりが強い方には物足りないかもしれませんが、作業中のBGMが欲しい時などにはすごく便利です。

Macで「開発元が未確認のため開けません。」と出た場合の開き方

Macでアプリをダウンロードした際に、普通にクリックで開こうとすると

開発元が未確認のため開けません。」というエラーが出て開けないことがあります。

こんな時は

  1. 右クリックをして
  2. 開く
  3. 警告が出て、それでも開く

以上でアプリを開くことができます。

HDD・SSDの使用状況を可視化する方法(Windows編)

最近は容量の少ないSSDが主流になったおかげで、パソコンのディスクの容量が知らないうちに一杯になっていることがあります。

そこで、何が容量を使っているのかを一目でわかるようにするソフトを探してみました。

ダウンロード

今回はフリーのソフトである「SpaceSniffer」を使います。

http://www.uderzo.it/main_products/space_sniffer/index.html

使い方

1.起動

ダウンロードしたものを解凍後、起動すると

このような画面になります。

gyazo.com

2.チェックしたいドライブを選択

容量のチェックをしたいドライブを選択すると下のような画面になります。

gyazo.com

3.整理整頓する

ステップ2で出てきた画像で、マスが大きいもの=サイズが大きいものなので、サイズが大きいけれど使ってないようなものから優先的に削除していきましょう。