サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
masato-ka.hatenablog.com
この記事について データドリブンなLチカという言葉をご存知だろうか?実はこの記事のために作った造語だ。今回はデータドリブンなLチカの意味ついて説明する。さらにRaspberry Pi picoを使ってTensorflow Lite for MicrocontrollerのLチカデモを実行する方法について説明する。データドリブンなLチカって言ってみたかっただけなのでネタ半分で読んで欲しい。そして、Raspberry Pi picoが積み基板化している方にぜひチャレンジしていただき、新時代へのパラダイムシフトを体験することを願っている。 Raspberry Pi pico Lチカとは(おさらい) Lチカとはマイコンに接続したLEDを点滅させるHelloWorld的なプログラムのことだ。sleep命令やタイマー割り込み、PWM出力といったマイコンの機能を使い倒してLEDの点滅間隔をプログラムする
1. この記事について 加速度センサを使い、機器の状態を遠隔で監視することはIoTの一般的なユースケースの一つだ。ソラコムのサービスとWioLTEを利用することでそのようなユースケースを爆速で実装することができる。このユースケースを実現する際の課題の一つは加速度データの処理方法にある。この記事ではWioLTE上にディープラーニングによるAIを実装し、加速度からメタ情報を抽出する。抽出した加速度のメタ情報をSORACOM Harvestで可視化させてみる。 2. 時系列の加速度データ活用の課題 加速度のような時系列のデータをモバイル回線を使ってクラウドへ転送すると通信量が高くなる。そこで、エッジ側で加速度の振動の変化や特定の動きといったユースケースに応じた「イベント」を検知して、必要なデータ、またはイベントをクラウドで通知する方法が取られる。 ユースケースに応じたイベントを検知するロジックは
この記事について 深層強化学習を利用してAI RC Carの走行を学習させるソフトウェアをGithub上で公開しています。learnign_racerと命名しました。2020年4月29日の時点でのバージョンはv1.0.0です。この記事ではこのソフトウェアについて紹介していきます。 github.com なお、NVIDIAのJetson Community Projectsのページでも紹介されています。 developer.nvidia.com learning_racerの概要 このソフトウェアは10分から15分程度の学習時間で、コースに沿って走行する方法を獲得することができます。従来のAI RC Carでは人間のお手本操作をDNNに覚えこませる手法が一般的です1。ですが、本手法は教師なし学習の手法である強化学習をベースとしているため、教師データとなる人間のお手本操作は必要ありません。さら
この記事について この記事はAI RC Car Adventcalendar 2019の最初の記事です。初日の今日はAI RC Carの紹介も兼ねて、AI RC Carの概要をまとめたポスターを作成したので公開します。 AI RC Carを紹介する資料 作成したポスターはタイトルが「DIY Self-Driving Car」になっていますが、AI RC Carとほぼ同じ意味で使っています。このポスターは改変をしなければ印刷、配布や転載は自由に利用して大丈夫です。ただ、何かに利用した場合はご連絡いただけると作者が泣いて喜びます(マストではありません)。商用についてはご相談ください。また誤字や修正点などあればご連絡ください。 AI RC Carの紹介ポスター 紹介ポスターを眺めながらAI RC Carを理解する。 せっかくなのでこのポスターを眺めながらAI RC Carの概要をなんとなく掴んで
1. この記事について 夏の終わりに身の回りのものを整理していたら、購入していたまま放置していたM5StickVとSORCOM LTE-M Button Plusを発掘した。こんな二つを悪魔合体することでお手軽にAIとIoTを組み合わせられるのではと思いつき、「ソラコムポーズを取るだけで触れることなくSORACOM LTE-M Button Plusnを押す」を試してみた。 果てしなき鍛錬の果に、手でソラコムポーズを取るだけで、SORACOMボタンに触れることなくクリックできる異能の力を身に着けてしまった。。。#soracom #soracomug #高度に発達したSORACOMは魔法と見分けがつかない。 pic.twitter.com/L09lO5T7Fy— masato_ka (@masato_ka) August 31, 2019 念の為説明しておくと映像の左上にはM5StickVで
1. 概要 追記 公開当初Jetson Nanoの性能表記に誤記があったため修正しています。 最近組み込みデバイス(以下エッジと表現)で画像認識や音声認識、センサ情報の処理といったディープラーニングを利用した処理を実行することが容易になっている。低消費電力で、高速にディープラーニングを処理するためのエッジAI用アクセラレータが各社から発売されていることがその理由の一つだろう。 こういった、エッジAI用のアクセラレータは各社によってその使用や対応フレームワーク、利用できるディープラーニングのネットワーク構成に違いがある。どれも同じように利用できるわけではない。自分でエッジAI用アクセラレータを利用しようとしたときにいくつか調べてみた内容をメモがわりに残してみる。ちなみに個人で遊べるものを中心にしてるので、産業的にどうなのかは知らない、悪しからず。。。 あとこのブログではAndroid Thi
1. この記事について Jetson nanoを搭載した移動ロボットJetbotを作成し、前回はJetbotを使った単眼vSLAMを実行させた。 masato-ka.hatenablog.com しかしvSLAMはPC側で処理される。Jetson nanoはPCへ映像を送信するだけだ。これでは搭載されているGPUが活躍していない。せっかくなのでJetson nanoに搭載されているGPUの威力を体感したかった。 そこで今回はディープラーニング を利用して画像から直接判断して走行する、End-to-Endな自動走行にチャレンジしてみた。コースを追従するだけであれば、単純な画像認識によるライントレースと簡単なルールベースの仕組みで十分だろう。しかし、今回は前提となるルールを作るのではなくデータだけ与えて、ディープラーニングで解くのがポイントとなる。以下の画像のようにJetbotがコース上を追従
この記事にてついて この記事ではJetbotを使ってOpenVSLAMを動かした内容をまとめている。SLAMの実行はJetson nanoではなく、別のホストマシンで実行した。ROSの設定方法や、動かし方を中心に記載している。 ROSで使える単眼SLAM ORB_SLAM2とOpenVSLAMがROSパッケージのサンプルを同梱している。ORB_SLAM2のROSサンプルはSLAMのローカライゼーション結果(カメラの姿勢)もトピックに投げられるようになっている。OpenVSLAMはローカライゼーション結果はビュアーに表示されるのみだ。またORB_SLAMとOpenVSLAMは実行結果の表示にPangolinと呼ばれるOpenGLを使った3DViewerライブラリを利用する。そのためそれなりのビデオチップを搭載したマシンが必要になる。OpenVSLAMではPangolinを使わずにWEBブラウ
この記事について この記事ではJetbotのOSイメージにROSをインストールしPython3でROSのスクリプトを記述する方法について説明する。Jetbotのイメージで提供されているPythonのライブラリはPython3で記載されている。しかし、公式ではROSはPython2系対応のみだ。そのためJetbotのライブラリを利用してJetbot向けのROSのパッケージを作ることができない。 そこでROSのパッケージ開発(rospyなどを使った開発)のみPython3で行えるようにした。今回はROSのシステムはPython2.7で動作する。実際は以下のように ROS全てをPython3で動くようソースからビルドするのが望ましいだろう。 ros.youtalk.jp 手順 1. ROSのインストール ROSのインストールは公式ページに従って進める。今回ROSのバージョンはMelodicをイン
この記事について JetbotはNVIDIAのJetson nanoを搭載したDIY Robotcarだ。その作成方法をNVIDIAがオープンソースで公開し誰もが作成できる。しかし、車体といった筐体パーツは3Dプリントが必要になる。STLファイルが公開されているとはいえ、3Dプリンタサービスで筐体を出力するのにはそれなりの金額がかかる。そこで、入手性の良い部品を使ってオリジナルのJetbotを作成したので紹介する。 近々キットも発売されるようなのでそれでも面倒な方はそちらから。 robotstart.info 完成したオリジナルJetbot 完成したJetbotはアルミ製のロボット台車をベースにしている。この台車は秋月電子で購入できる市販品だ。この上にアルミ板を一枚載せてバッテリーとJetson nanoをマウントしている。モータドライバーもWaveshareのMotor Driver H
この記事について この記事ではSORACOM LTE-M Button powerd by AWSについてのファーストインプレッションを紹介する。7月の発表から発売まで首を長くして待ち、ようやく手元に届いたこの製品。IoTを実現するシステム、デバイスのお手本と言ってもいいくらい綺麗な作りになっていた。この記事ではSORACOM LTE-M Button powerd by AWSがなぜIoTのお手本と言えるのか考察していく。 以下のツイートをしっかりと文章にした内容だ。 開封後あっさりメール送れてすげーってなってる。使ってみてアプリケーション層はAWS、デバイス管理はSORACOMサービスが前段でやってる。お手本みたいな綺麗な作り。SORACOMの正しい使い方をユーザに刷り込む良いサービス。 pic.twitter.com/qaWXsuuqHQ— masato_ka (@masato_ka
更新 2019年2月12日付けで以下のアナウンスがありました。内容としてはAndroidThingsはスマートディスプレイ向けに再フォーカスするとの内容です。一応当面はRaspberry Pi3Bは利用できるとのことでしたが、非商用での利用です。 2019年以降はCloud IoT CoreやCloud IoT Edgeを利用してくださいとのことです。 https://android-developers.googleblog.com/2019/02/an-update-on-android-things.html?m=1 この記事について この記事ではAndroid Thingsを触ってみた感想をつらつらと記載している。あくまで個人的な感想を記載してあり、異論は多々あるだろう。しかし控えめに言ってAndroid Thingsは最高だった。1ヶ月ほど遊んでみてこれは面白いことができそうとい
この記事について この記事では2018年7月4日に開催された株式会社ソラコムさんのイベントSORACOM ディスカバリーに参加した記録と感想・所感について書いています。 SORACOM Discovery 2018について SORACOM Discovery 2018は2017年に続き2回目の開催です。キーノートを含めた29のセッションと30を超えるユーザ企業やパートナーの展示、またIoT製品に触って試せるタッチアンドトライコーナーやハンズオンセミナーなど盛りだくさんの内容になっていました。 IoTに関する技術トピックやビジネス動向、実際の応用事例まで一度に見れた貴重な機会でした。これが無料で参加できるとは。。。来年も同様のイベントがあればぜひ参加したいです。 discovery2018.soracom.jp また夜に行われたSORACOM UG(ユーザグループ)も面白い内容でした。実は今
この記事について この記事では自作のVSCode Extentionを紹介します。今回はSORACOM AIr をVSCode上から管理できるExtentionです。 作った理由 最近ではWioLTEを使い、SORACOM Beamを利用してMicrosoft Azure IoT Hubや他のクラウドサービスに接続する機会が行くかありました。WioLTEの開発では、 以前紹介したVSCode + PlatformIOを利用した環境で開発をしています。 masato-ka.hatenablog.com また、Azure IoT HubもVSCodeのExtentionから管理することができます。そのため、Azure IoT Hubの設定とWioLTEの開発はVSCode側で完結させることができます。 WioLTEの開発を進める上で、SORACOMのサービスを利用しようとすると、どうしてもSI
この記事について この記事ではIoT ALGYAN(あるじゃん)さん主催のFutaba製コマンド方式サーボIoTアプリコンテストに参加 して、考えたことや審査会当日では語りきれなかったことなどを記録として残しています。記録しないと忘れちゃう。 イベントの概要 イベントの募集ページは以下です。 algyan.connpass.com 双葉電子工業様から参加者にコマンド方式サーボモータRS304MDが配られ、2ヶ月でサーボとMicrosoft Azureを使ったIoTアプリケーションを組み上げる というのがお題でした。それ以外のテーマは自由です。 コマンド方式サーボRS304MDについて ホビー用2足歩行ロボットにも使われているコマンド方式サーボモータです。サーボモータは通常PWMのパルス幅で角度を指定しますが、このサーボはシリアル通信で指示角度を与えて制御します。また、モータを動かすだけでな
この記事について 追記 20180317 Wio LTEのArduino coreライブラリを現時点最新の1.1.3に変更しました。 この記事ではSeeed社から発売されているWio LTEをVisualStudio CodeにインストールしたPlatformIO環境で開発する方法を紹介します。PlatformIOの対応プラットフォームにWioLTEがなかったためビルドスクリプトと設定情報を用意しました。 Wio LTEについて Wio LTEはSeeed社から発売されているLTE SIMが刺さるCortex-M4(STM32F407)の開発ボードです。I2CやUART, デジタル、アナログI/OをGrove端子で提供しています。また、Arduino互換ボードを謳い開発にはArduino IDEを使います。他のArduinoとほぼ違いなく開発ができます。その他にはEspruinoというJa
この記事について この記事ではサーモパイルセンサ(温度センサアレイ)を利用し、サーモグラフィを作成した内容を記載しています。今回は赤外線温度センサアレイとしてAMG8833を利用しています。スイッチサイエンスさんから購入することができます。なお、この記事はデバイス側の実装までを紹介した前編です。サーバ側の実装は後編で紹介しています。(2017/01/06追記) masato-ka.hatenablog.com AMG8833について AMG8833は赤外線温度センサが8x8の2次元アレイになっているセンサです。Panasonicから発売されています。エアコンなどに搭載し、室内の人の位置などを検知することを目的に作られているようです。計測温度は0度〜80度です。電源とI2Cの端子のみでデータを取得することができます。ブレークアウト基板に実装されたものは1万円程度するものがほとんどです。そんな
この記事について 先日SORACOMさんとSeeedさん主催の「Wio LTE ユーザイベント」と言うイベントに参加しました。その際に、会場で販売されていたWio LTEを購入したので、利用のレポートとしてこの記事を紹介します。今回はWio LTEとRN4020を接続してBLEセンサビーコンの温度情報をSORACOMのデータ可視化サービスであるSORACOM Harvestで可視化してみました。てんこ盛りの内容のようですがとても手軽に実現できます。 soracom.connpass.com Wio LTEについて Wio LTEはArduino互換(Arduino IDEでソフトウェアが書ける)でSORACOMのSIM が刺さり単体でLTE通信ができます。また、Groveコネクタで外部のセンサや機器と接続できます。主な端子として Digital Analogの入出力端子、I2C UARTを
この記事について この記事では1000円代で購入出来るBLEモジュールRN4020の使い方を検証してみました。まずはシリアル通信で制御しペリフェラルとして動作させます。さらにセントラルと値をやり取りする方法についても紹介しています。 RN4020とは RN4020はMicrochip社が製造しているBLEモジュールです。価格は1000円程度で、秋月電子通商などで購入できます。 akizukidenshi.com また、使いやすくしたブレークアウトボード版も販売されています。(製造も秋月電子通商)今回はこちらのブレークアウトボードを利用しています。 akizukidenshi.com RN4020はUARTインタフェースが搭載されており、シリアル通信からコマンドを入力することで、簡単にBLEデバイス(ペリフェラル動作)を実現することができます。Arduinoなどのマイコンボードなどに接続しB
はじめに この記事ではPythonのBLE制御ライブラリに調査を行った結果をまとめています。2017年のMaker Fair Tokyoのウェザーニュースブースにて、WxBeacon2というBLEの環境センサを購入しました。このデバイスはOMRONの2JCIE-BL01まんまの代物です。本家は加速度センサが入っているようですが、ブースの方曰くこちらは入っていないかもとのこと。 OMRON環境センサ WxBeacon2 しばらくはiPhoneから接続して専用アプリで遊んでみました。せっかくのなので、自分でアプリを作って遊んでみることにしました。今回はRaspberry Pi Zero WとMac OSX上で動作するアプリケーションを作成してみようと考えてみます。実装に利用する言語はPythonを選択しました。PythonのBLEライブラリを検索するといくつか種類が出てきたので、目に付いたもの
Jubatusnoのregressionのサンプルコードを作ってみました。基本的には公式サンプルのclassifierをベースに書いてるので、対比して読みやすいかと思います。例によってPythonです。 regression(回帰) regression(回帰)とは独立変数と従属変数のデータセットからその関係性を求めます。未知の値の独立変数を入力したときに、その独立変数に対する従属変数の値を推定できます。 簡単に説明すると、最小二乗法を考えるといいのですが、X(独立変数)とY(従属変数)のデータの集まりから、Y=b+aXのa とbを求めます。こうすることで、未知のXが来た際もYの値を推定することができます。もちろん実際は独立変数がX1 X2 X3....と複数存在したり、推定すべき式の形(モデル)もn次関数であったり、複雑です。また、これらを求める手法としては前述の最小二乗法だけでなくベイ
mbedを買ったので、django-websocketで作ったアプリケーションにセンサーデータをWebSocketで投げ込んでみました。全体的な構成は次の図のような感じです。 各構成要素説明 Websocket Server Mac OS X上にDjangoフレームワークとdjango-websocket 0.3.0を使ってechoサーバーを構成しています。ほぼ前々回のエントリーで紹介したアプリケーションと同じものです。django-weboskcetは前回のエントリーで紹介したRFC6455対応版です。 mbed mbedに関しては細かい説明は省略します。知らない人はググって下さい。Arduinoとかそんな感じのラピッドプロトタイピング向けマイコンです。WebSocketのライブラリが提供(RFC6455対応)されているのでそれを使ってセンサー情報の値をサーバーに上げています。今回はセン
今回はPythonのWEBアプリケーションフレームワークであるDjangoでWebSocket通信を行う方法を紹介します。 はじめに 事の発端ですが、Arduinoなどのマイコンボードに接続したセンサの値をサーバーに集約してごにょごにょしたいな〜と以前から考えていました。 こういった場合、個人ユースでよく用いられるのが、CGIにPOSTやGETでデータを送りつける方法だと思います。しかし、わずか数バイトのデータを送るにヘッダや何やらくっつけたりしていたら、本来送りたい情報よりも付属のデータの方が多くなってしまいます。また、逆にサーバからマイコンボードなどにデータを送りたい場合、マイコン側からポーリングするといった方法を取らなくてはいけません。AjaxやCometの様な手法でも従来のWEBサーバの技術を応用して上記のようなことを実現しようとすると同様の問題にぶち当たると思います。もちろん一か
このページを最初にブックマークしてみませんか?
『masato-ka's diary』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く