Ruby

Ruby 2.7.0-preview1 での変更内容を試す

今年のクリスマスにリリースされる予定の Ruby 2.7 の preview1 が 5/30 にリリースされました。 www.ruby-lang.org プレビュー版は、年末の正式リリースに向け、新たな機能を試し、フィードバックを集めるために提供されています。 ということで、正式リリ…

Ruby 2.7 で導入される予定の Pattern Matching を触ってみる

先日福岡で開催された RubyKaigi 2019 に参加してきました。下記の辻本さんのセッションの中で Ruby 2.7 で導入される予定のパターンマッチングについての紹介があったので、セッションの資料に沿って触ってみました。 Pattern matching - New feature in Ru…

rails server と rackup の違い

前回の記事でミニマムな Rack アプリケーションを動かしてみました。 Rails も Rack ベースのアプリケーションですが、通常は rails server コマンドでアプリケーションを起動します。 Rails のアプリでも config.ru は持っているので、 rackup でも起動でき…

Rack をシンプルに動かしてみる

前回の記事で Roda というフレームワークのことを書きましたが、その時に久々に Rack について意識したので、今回は改めて Rack の基本的なことを再確認してみます。 ちなみに前回の記事はこちらです。 blog.akanumahiroaki.com Rack とは Rack の簡単な説明…

Routing Tree Web Toolkit "Roda" を動かしてみる

先日開催された Railsdm はチケットが即完売してしまって残念ながら行けませんでした。 railsdm.github.io 何か試してブログに書けそうなネタはないかなーとセッションの資料を見ていたら Roda という Web Framework が紹介されていました。 docs.google.com…

Unified Endpoint で SORACOM の複数サービスにデータを送る

先日 2/14 にソラコムさんの if-up2019 IoT Technology Conference に参加してきました。 if-up2019.soracom.jp ソラコムさんはイベントに合わせていつも新発表をされますが、今回の新発表の一つとして Unified Endpoint が発表されました。 blog.soracom.jp…

AWS Cloud9 で Rails 開発環境をつくる

Cloud9 が AWS に買収され、AWS Cloud9 としてリリースされてからもう結構経ってしまいましたが、 Lambda 等のサーバレスなサービスを使う機会が増えてきたり、コンテナ等を活用するようになってきたので、クラウドの IDE が便利に活用できるようなら使って…

mruby 2.0.0 を Mac で動かしてみる

以前少し触ったことはあったのですが、まともに触ったことがなかったのと、先日まつもとゆきひろさんとお話しさせていただいたときに mruby の話題もあったので、改めて mruby に触ってみました。とりあえず Mac 上で動かすところまでやってみたのでまとめて…

AWS Lambda の Ruby ランタイムを試す

AWS re:Invent 2018 の Keynote の中で AWS Lambda や Serverless 関連のアップデートが色々と発表されましたが、その中に AWS Lambda で Ruby がサポートされたという発表がありました。 aws.amazon.com 下記のように AWS のブログでチュートリアルも公開さ…

Alexa Skills Kit + AWS IoT + Raspberry Pi + 赤外線LED でテレビリモコンを作る

Amazon Echo や Google Home では Fire TV や Chromecast 等と組み合わせることで音声でテレビを操作することができるようになりますが、今回は Amazon Echo と Raspberry Pi を連携させ、赤外線LEDなどと組み合わせることでテレビを操作してみたいと思いま…

Amazon Lex を AWS SDK for Ruby から試す

日本でも Amazon Echo の発売が発表されました。私もとりあえず招待メールをリクエストしておいたので、購入できたら Alexa のスキルを色々試してみたいと思ってますが、その前に、今更感もありますが Amazon Lex を理解するためにチュートリアルなど試して…

I2C 接続の有機EL + Raspberry Pi + Ruby で温度計付き時計を実装してみる

今回は Raspberry Pi と OLED(有機EL)ディスプレイを接続して表示させてみたいと思います。使用したディスプレイは aitendo さんで販売されていた下記パーツです。 www.aitendo.com 購入時は下記写真のように、ディスプレイとピンヘッダが同封されています…

Raspberry Pi とモーターを繋げて Ruby で動かす

今までは Raspberry Pi と他のセンサー類を組み合わせてセンサー値を読み取り、データとして使える形にはしていましたが、ハードウェアのアウトプットとしては LED を光らせるぐらいでした。今回はモーターを動かすことに挑戦してみたいと思います。 電池ボ…

OpenBlocks IoT BX1 から Ruby で BLE デバイスにアクセスする

以前の記事で OpenBlocks IoT BX1 の WebUI から設定を行うことで、 SensorTag のデータ取得を行いました。 blog.akanumahiroaki.com SensorTag は BX1 のサポート対象になっているため、 WebUI からの設定のみでセンサーデータを読み取ることができていまし…

Intel Edison から JRuby で Google Calendar のスケジュールを Amazon Polly に喋らせる

Edison 上で Java の既存ライブラリを Ruby から使ってみたいというケースがあったので、 JRuby を試してみました。前回のスケジュールリマインダーの Amazon Polly へのアクセス部分を JRuby から AWS SDK for Java を使う形に変更してみます。 jruby.org J…

Intel Edison から Google Calendar のスケジュールを Amazon Polly で喋らせる

Intel Edison の環境を触れる機会があったので、Edison上でスケジュールリマインダーを作ってみました。 software.intel.com やったこととしては、 Google Calendar API でスケジュール情報を取得 開始10分前の予定があれば Amazon Polly で音声ファイル作成…

SensorTag のデータを Amazon Polly で読み上げる

前回の記事では SensorTag で取得した値を AWS IoT に送信して、照度の値によって LED を点灯したり、SNSからメールを送信したりしてみましたが、今回はさらに Polly で照度の値を読み上げる音声ファイルを生成し、Raspberry Pi で再生する処理を追加してみ…

SensorTag のデータを AWS IoT から CloudWatch と LED で可視化する

以前の記事(TEXAS INSTRUMENTS の SimpleLink SensorTag CC2650 から BLE でデータ取得)で SensorTag から BLE でデータを取得できるようになったので、今回はそのデータを AWS IoT に送信し、Rule によって CloudWatch に送信して可視化してみたいと思い…

TEXAS INSTRUMENTS の SimpleLink SensorTag CC2650 から BLE でデータ取得

TEXAS INSTRUMENTS の SimpleLink CC2650 というセンサータグを買ってみたので、Raspberry Pi から BLE でセンサーデータを取得してみたいと思います。 www.tij.co.jp SimpleLink SensorTag CC2650 は気温、湿度、気圧、加速度、ジャイロ、磁気、照度などの…

SORACOM Beam から Ruby で AWS IoT の Device Shadow を更新する

前回 Raspberry Pi を SORACOM Beam 経由で AWS IoT に接続できるところまで確認したので、今回は AWS IoT の Shadow を使って状態を管理するところまでやってみたいと思います。 AWS IoT メッセージブローカーに Pub/Sub する まずは AWS IoT メッセージブ…

D-BusからBLE Advertisementを送信する

今まではRaspberry PiをBLEのCentralとして他のデバイスへの接続などを試していましたが、今回はPeripheralとしてAdvertisementを送信してみました。 PythonでAdvertisementを送信している例があったので下記サイトを参考にさせてもらいました。 qiita.com …

D-BusからBLEデバイスのNotificationを受け取る

前回の記事で、Raspberry Pi上でRuby(irb)からD-Busを使ってBLEデバイスに接続し、値を読み取るというところまでやりましたが、今回はPeripheralからのNotificationを受け取って値の変化を検知するところまでを実装してみました。前回はirbから試してみま…

Raspberry Pi 3でD-BusからBLEデバイスにアクセスする

Raspberry PiからBLEデバイスへの接続についていろいろ調べている中でD-Busについても調べたので、D-BusからBlueZを使ってBLEデバイスにアクセスしてみました。D-Busについては下記サイトでわかりやすく解説されていて、とても参考になりました。 www.silex.…

Raspberry Pi 3でBluetoothデバイス接続

Raspberry Pi 3 からは標準でBluetoothモジュールが搭載されているということで、他のデバイスとの接続を試してみました。 BlueZインストール BlueZはオープンソースのBluetoothプロトコルスタックで、Linux上でBluetooth, BLEを扱う場合には標準的に使われ…

超音波センサー + SORACOM Beam でSlack通知

IoTエンジニア養成読本のハンズオンのラスト、距離を測定するための超音波センサーの測定結果を元にした情報をSORACOM Beamを経由してSlackに通知する処理を実装してみました。 gihyo.jp 超音波センサーの接続 まずは超音波センサー(HC-SR04)を下記の図の…

温度センサーデータをSORACOM Harvestで可視化する

引き続きIoTエンジニア養成読本のハンズオンの内容を実践中です。今度は温度センサーのデータを読み取って、そのデータをSORACOM Harvestへ送って可視化する処理をRubyで実装してみます。 gihyo.jp 温度センサーの接続 まずは下記のように温度センサー(DS18…

SORACOM Air のメタデータとLEDを連動させる

引き続きIoTエンジニア養成読本のハンズオンの内容を実践中なわけですが、今度はSORACOM AirのメタデータとLEDの点灯を連動させてる処理をRubyで実装してみます。 gihyo.jp ユーザーコンソールからの設定 メタデータサービスを使うにはまずユーザコンソール…

Raspberry Pi + RubyでLチカ

前回でRaspberry Piの初期設定がだいたい終わったので、引き続きIoTエンジニア養成読本のハンズオンの内容をベースにLチカ(LED点滅)をやってみました。 gihyo.jp 書籍の例ではPythonが使われていますが、そのままやっても面白くないのでRubyで挑戦しました…

各種パラメータ最適化手法の実装(SGD, Momentum, AdaGrad, Adam)

今回は「ゼロから作るDeepLearning」で紹介されている各種パラメータ最適化手法を、書籍のPythonのサンプルコードをベースに、Rubyで実装してみました。 www.oreilly.co.jp 各手法のロジックについては書籍で説明されていますので割愛します。また、前回の記…

ニューラルネットワークの誤差逆伝播法による学習アルゴリズムの実装

今回も引き続き「ゼロから作るDeepLearning」をベースに、前回数値微分で実装した学習アルゴリズムの誤差逆伝播法版をRubyで実装してみました。計算の内容等は書籍を参照いただくとして、Rubyで実装した際のポイントを説明していきたいと思います。 www.orei…