サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
blog.akanumahiroaki.com
先日福岡で開催された RubyKaigi 2019 に参加してきました。下記の辻本さんのセッションの中で Ruby 2.7 で導入される予定のパターンマッチングについての紹介があったので、セッションの資料に沿って触ってみました。 Pattern matching - New feature in Ruby 2.7 - RubyKaigi 2019 セッションの資料は SpeakerDeck にアップロードされているのでそちらを参照させていただきました。 speakerdeck.com 今回使用しているサンプルコードは基本的には上記の資料内のサンプルをそのまま実行しているか、若干変更したものを使用しています。 パターンマッチングとは パターンマッチングについてのRubyist向けの説明としては、 case/when + multiple assignment という感じになり、正規表現とかで
先日 2/14 にソラコムさんの if-up2019 IoT Technology Conference に参加してきました。 if-up2019.soracom.jp ソラコムさんはイベントに合わせていつも新発表をされますが、今回の新発表の一つとして Unified Endpoint が発表されました。 blog.soracom.jp こちらは独立した新サービスではなく新機能ということで、すでに Public Beta として使えるようになっていたので早速試してみました。 機能概要 Unified Endpoint を簡単に説明すると、 SORACOM の複数のサービスへのデータ送信を一つのURLでまとめて受け取れるようにしたものです。 SORACOM では今までに Beam, Funnel, Harvest といったサービスが提供されていて、クラウドサービスとのデータ連携や可視化が便利
最近オフィス内の人数も増えて来て、換気が不十分でオフィス内の空気が悪いと感じるメンバーが増えて来たこともあり、試しに二酸化炭素濃度などを測ってみようと下記センサーを買ってみました。 www.switch-science.com 今回はとりあえず下記チュートリアルに従って、正しくセンサーを動作させることができるのか、どんな値が取れるのかを確認してみたいと思います。 CCS811 Air Quality Breakout Hookup Guide - learn.sparkfun.com ピンヘッダ実装 モジュールにはピンヘッダが実装されていないので、まずはピンヘッダを下記写真のように半田付けします。半田の量がまちまちなのはご愛嬌ということで。 NTCピンにNTCサーミスタを実装すれば温度を測定して空気測定値の補正に利用できるらしいのですが、今回はまだNTCサーミスタは入手していないので、とり
前回 BLE Sniffer と Wireshark で BLE パケットをスニッフィングする方法を書きましたが、 Wireshark で確認できる内容から BLE の接続シーケンスを確認してみたいと思います。手元にあった BLE デバイスで簡単に確認してみた結果を書いてみます。 ADV_IND BLE デバイスがアドバタイジングを開始するとアドバタイジング・パケットを送出し始めます。 PDU(プロトコル・データ・ユニット)のタイプとしては4タイプありますが、今回使用したデバイスでは ADV_IND となっていました。 ADV_IND を含め、アドバタイジング・パケットのタイプは下記の4タイプになります。 ADV_IND:不特定多数のデバイスから接続可能 ADV_NONCONN_IND:デバイスからの接続は不可能 ADV_SCAN_IND:デバイスからのスキャン可能 ADV_DIRECT_
この記事は「SORACOM LTE-M Button powered by AWS Advent Calendar 2018」の 12月4日(火)の記事になります。 LTE-M Button で何を作ろうかと考えたのですが、今年から娘が中学生になり、徒歩30分ぐらいかかる学校に通い始めたので、ボタンを押したら今から帰るよメールが送られるようにしたら便利かなと考えました。ですがそれだけだと他にも多くの方がすでにやられているので、今回はさらに M5Stack と連携して Avatar にも通知が表示されるようにしてみました。 動作の様子 今回はボタンの3種類の操作に合わせて下記のようにメールとアバターで通知します。日本語表示は面倒だったので今回は英語表示のみです。 シングル: I've Arrived At The Venue.(目的地に着いたよ) ダブル:I'm Going Home.(今か
前回は M5Stack でテキストを簡易的にスクロール表示させる処理を実装してみましたが、画面の下端にテキストをスクロール表示させつつ、残りの部分に何かを表示するにはスレッドを使った処理が必要かと思ったので、今回は M5Stack の _thread モジュールを使った処理を実装してみました。 _thread モジュールについては下記サイトを参考にさせていただきました。 qiita.com また、 M5Stack の github リポジトリにもサンプルが公開されていました。 github.com サンプル実装 まずは _thread モジュールがちゃんと使えることを確認するために、ごく簡単なサンプルを実装してみます。下記のコードではテキストを表示する2つのスレッドを生成し、違う間隔でテキストの表示を行います。 _thread.start_new_thread() でメソッドを指定してスレ
M5Stack UI Flow に Remote Function というのがあって面白そうだったので試してみました。Remote Function はスマートフォンなどのブラウザから M5Stack を操作するための UI を提供するもので、下記ツイートで紹介されていました。 UI FLOW Remote function. pic.twitter.com/Q5IyMXsq9I— M5Stack (@M5Stack) August 25, 2018 UI Flow の環境 UI Flow の環境設定については以前この記事にも書きましたので参照いただければと思います。 blog.akanumahiroaki.com 今回は UI Flow のバージョンについては 2018/09/29 時点で最新だった v0.7 を使用しています。 使用方法 Remote Function は UI Flo
将来的には M5Stack で Google Calendar に登録してあるスケジュール情報を表示させたいと思っているのですが、認証周りなどが少しハードル高そうなので、まずは認証なしで情報を取ってこられる API から情報を取得して表示する処理を試してみたいと思います。その中でもそれなりに実用性がありそうなものとして、天気情報を取得して画面に表示する処理を作ってみました。 天気情報API ひとまず今回は無料で手軽に試せる API を探したところ、 OpenWeatherMap という API がみつかったのでこれを利用してみます。 openweathermap.org 使い方についてはこちらも参考にさせていただきました。 qiita.com ユーザ登録をすると API Key が発行されるのでそれを使用します。アクセスする URL は下記のようになります。 http://api.open
以前この記事でも書きましたが、 M5Stack を Maker Faire Tokyo 2018 のスイッチサイエンスさんのブースで購入した時に、特典としてクレードルをいただきました。 blog.akanumahiroaki.com このクレードルには温湿度センサー DHT12 が付属していたようなので、今回は MicroPython で DHT12 の値を読み取って表示してみたいと思います。ちなみにこのクレードルは単品でもこちらで販売されているようです。 Buy Products Online from China Wholesalers at Aliexpress.com ハードウェア クレードルの裏面は下記写真のようになっています。右下に埋め込まれている青いものが DHT12 です。 クレードルは M5Stack の下部のピンに接続されます。今回は DHT12 との接続にクレードル経
以前に下記ツイートを見てから試してみたいと思ってた UI Flow を試してみました。 https://t.co/C2k3JJp4RW = ui design +blockly + micropython pic.twitter.com/tt5mWRWNcb— M5Stack (@M5Stack) August 17, 2018 UI Flow は Scratch のようにブロックを並べることでプログラミングができ、画面レイアウトもパーツを並べることで行うことができるようになっています。ブロックではなく Micro Python でコーディングをすることもできます。 チュートリアルとしては下記のページを参考にさせてもらいました。 forum.m5stack.com ファームウェアのセットアップ UI Flow を使うにはそれに対応したファームウェアを使う必要があります。ファームウェアを簡単
前回 m5stack の環境設定だけやってみましたが、購入前からやってみたかった顔表示を試してみたいと思います。と言っても @meganetaaan さんがライブラリを公開されているので、表示するだけならすぐにできてしまいました。 github.com ライブラリのインストール Arduino IDE にライブラリをインストールするには、まず下記URLからライブラリの zip ファイルをダウンロードします。 https://github.com/meganetaaan/m5stack-avatar/archive/master.zip 次にダウンロードした zip ファイルを Arduino IDE のメニューからアップロードします。 これで Arduino IDE で m5stack-avatar ライブラリが使えるようになります。 Library Manager でも下記のようにライブ
先週行った Maker Faire Tokyo 2018 のスイッチサイエンスさんのブースで、前から気になっていた M5Stack のデモや販売が行われていたので購入してしまいました。加速度センサーやジャイロが入っていた方が今後色々試すにも手軽かなと思ったので、 Basic ではなく Gray を購入しました。 www.switch-science.com 今回はひとまず最低限の環境の準備までをやってみました。 アンボックス パッケージの外観はこんな感じで、本体と同梱物がコンパクトにまとまっています。 開封すると本体の他に、充電やファームウェアのアップロードを行うための USB Type-C のケーブルやジャンパーケーブル、マニュアル等が入っています。 本体裏面にはピン番号が書かれたステッカーが貼られています。 本体の上部と下部は短いピンヘッダでつながっているだけなので、簡単に外すことがで
先日、 SORACOM Inventory が Limited Preview から Public Beta になったという発表がありました。 blog.soracom.jp Limited Preview の時に試させてもらった内容を以前会社のブログに書かせてもらいましたが、 Public Beta になって変更になった点や追加になった機能もあるということで、改めて試してみた内容を書いてみたいと思います。 tech.unifa-e.com SORACOM Inventory のサービス内容については上記の以前のブログや公式サイトをご参照ください。 soracom.jp サンプルエージェントのインストール SORACOM から提供されているサンプルエージェントには Eclipse Wakaama を使ってC言語で実装されたものと、 Eclipse Leshan を使って Java で実装さ
前回 Google AIY Voice Kit を購入してマニュアル通りに組み立ててサンプルプログラムを動かすところまでやってみましたが、やはり Voice Kit が Google Echo と違って面白いのは Raspberry Pi ベースであるからこその自由度ということで、今回はとりあえずブレッドボードで LED を接続して、音声で LED を操作してみました。 GPIO ピンヘッダの取り付け AIY Voice Kit では Raspberry Pi に Voice HAT Accessory Board をマウントしているので、 Raspberry Pi の GPIO は全て覆われてしまっています。なので GPIO で接続する場合には Voice HAT の方の GPIO を使用することになります。 Voice HAT の GPIO Pinout はドキュメントでも図で説明され
BLE デバイスを使ったシステムを開発していると、BLE デバイスがどんな状態かを確認したいことが時々あります。アドバタイズメントを出しているかは LightBlue などのツールでも確認できますが、通信状態の詳細はわかりませんし、接続後の状態は接続しているデバイス側でデバッグ用の対応を入れる必要があります。 そこで今回は、 BLE Sniffer を使ってみました。BLE Sniffer を使うと周囲のBLEデバイスの通信状況を確認することができますし、 Wireshark と連携することでさらに詳しくパケットを確認することができます。 今回使ったのは Adafruit の Blueftuit LE Sniffer です。 Bluefruit LE Sniffer - Bluetooth Low Energy (BLE 4.0) - nRF51822 - v3.0 https://www
Raspberry Pi 3 からは標準でBluetoothモジュールが搭載されているということで、他のデバイスとの接続を試してみました。 BlueZインストール BlueZはオープンソースのBluetoothプロトコルスタックで、Linux上でBluetooth, BLEを扱う場合には標準的に使われているということなので、インストールします。 まずはソースをダウンロードして解凍します。 pi@raspberrypi:~/tmp $ wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.45.tar.xz --2017-05-27 10:23:48-- http://www.kernel.org/pub/linux/bluetooth/bluez-5.45.tar.xz Resolving www.kernel.org (www.ke
最近「ゼロから作るDeepLearning」を読み始めました。 www.oreilly.co.jp この本ではプログラミング言語としてはPythonを使用していて、配列や行列の演算にはNumPyが使われています。第1章ではNumPyでの基本的な演算について説明されているのですが、その内容をRubyのNumo::NArrayと、Ruby標準クラスのMatrixでの演算と比較してみました。NumPyでの内容は書籍記載の内容と同様に実行しています。Rubyのバージョンは 2.3.1p112 です。 使用準備 NumPyは外部ライブラリなのでimportして使用します。 >>> import numpy as np Numo::NArrayを使用するにはまずgemをインストールします。 $ git clone git://github.com/ruby-numo/narray $ cd narra
今回は「ゼロから作るDeepLearning」で紹介されている各種パラメータ最適化手法を、書籍のPythonのサンプルコードをベースに、Rubyで実装してみました。 www.oreilly.co.jp 各手法のロジックについては書籍で説明されていますので割愛します。また、前回の記事で書いたように、Rubyでは値の受け渡しが参照の値渡しになるので、パラメータのハッシュの各値は配列として保持する前提です。 SGD(確率的勾配降下法) SGDは前回の記事でもすでに使っていたのと同じで、別クラスとして分けただけのものです。 class SGD def initialize(lr: 0.01) @lr = lr end def update(params:, grads:) params.keys.each do |key| params[key][0] -= @lr * grads[key] en
このページを最初にブックマークしてみませんか?
『blog.akanumahiroaki.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く