以前書いた2つの記事でわかったことは、BLEは少量データ/低頻度での用途に特化することで省電力を実現した規格なので、音声データをやり取りするような用途にはそもそも向かない、ということでした。 http://d.hatena.ne.jp/shu223/20140109/1389216052 http://d.hatena.ne.jp/shu223/20140110/1389292125 ただ、MFiなし、WiFiもなしでデバイスとiOSアプリを無線通信させたい場合、iOSの現状の公開APIで可能な範囲ではやはりCoreBluetooth/BLE一択になってくるので、どうにかならないものかと。 そんなわけで、いろいろと調べたり聞いてみたり試行錯誤してみたことを書いておきます。 (2015.8追記)この記事は古く、書いた当時はBLEについての知識も乏しかったので内容には多分に誤りが混じっている可
ワイヤレスイヤホン/ヘッドホンが広く利用されるようになり、“Bluetooth”というワイヤレス通信規格の存在も認知されるようになったが、ここ1 - 2年ほどで誤解を招きかねない表記も見かけるようになった。「Bluetooth 5 対応」がそれだ。 製品に「Bluetooth 5 対応」などと謳うのは問題ないが、最新版のBluetoothに対応していることがアドバンテージであるかのような説明は、事の本質を突いておらず、エンドユーザーの誤解を招きかねない。Bluetoothイヤホン/スピーカーはもちろん、パソコン/スマートフォンを含むBluetoothオーディオ機器全般において、「Bluetooth 4でも5でも音質には全く影響なし」ということを念押ししておきたい。 まず、前提として「BluetoothのHi-Fiオーディオ用通信規格は何年も前から存在し、アップデートされていない」ことを理解
(動画、BGMあるので注意。うるさくてすいません。) I2SでWS2812Bをドライブ これまでやってきたSPIを使う方法を振り返ってみます。 nRF52のSPIベースのeasyDMAでは1度のDMA伝送で送れるバッファのサイズが256バイトだったので、約20個ずつ連続して信号を送り出す必要がありました。しかも本来の仕様では1.25μ秒で送るべき1ビット分のデータを1μ秒で送っているためか、電源電圧が下がった時などにうまく制御しきれずに後半のLEDの幾つかが明るい色で光りだすという現象が発生していました。 まぁ、なんとか制御してみたものの、少し行き詰りを感じていました。 そこへ、I2SでWS2812Bをドライブしているよ!って話を聞きました。 CONTROLLING WS2812B'S WITH I2S AND DMA ON THE ESP nRF52832にも、easyDMAを使ったI2
ケータイなどからBluetoothを通じて無線で音楽を聴くことができます。今回は音の出力にI2S入力のD級アンプを使いました。小型ですが大音量が得られます。 準備 以下のものを使用しました。 ESP32-DevKitC 1480円:秋月 セラミックコンデンサ 22pF 5円:秋月 I2S入力 D級アンプ 831円:スイッチサイエンス 3Wスピーカー 1058円:スイッチサイエンス 配線 ESP32とD級アンプを以下のように配線します。またBCLKとGNDの間にコンデンサを配線します。 プログラム プログラムはESP-IDF A2DP-SINK demoになります。元々A2DP(Bluetoothで音楽を送るプロファイル)だけのサンプルコードだったのですが去年10月にI2S出力が追加されました。これをesp-idfでESP32に書き込みます。 ペアリングと再生 スマホなどからBluetoot
先週末は、ネコ店長にくっついて、巌流島に行ってきました。 嵐の前だったのと島なので、ものすごい風でネコ店長も大変でした。 ロボットは風が強いとなかなか体制を維持するのが大変ですね。 ネコ店長では、着ぐるみを着せるために安全性の観点から燃えにくい仕組みのサーボモータとしてRS405CBを使っています。(温度管理がされているため2009年から今まで燃えた事例は見たことがないので社内での信頼は厚いです。)RS405CBは、RS485のシリアル通信(双葉電子工業製)を使っています。 とはいえ、今回のネコ店長は、専用CPUで動かしていたので、今回のPCでの通信とは又違った感じになります。 I visited Ganryu jima with Nekotencho in last weekend. There was strong wind because of storm coming and is
1. com0comのインストール →2つの仮想COMポートを用意し、一方から他方に通信しているように見せかける事が可能。 http://sourceforge.net/projects/com0com/ よりzipをダウンロードし、適当なディレクトリに解凍。 setup.exeを開き、「next -> I Agree -> install」 ハードウエア検出ウィザード「接続しない -> 自動インストール -> 完了」(2セット) setup.exe: 「finish」 デバイスマネージャよりcom0comが認識されていることを確認。 2. ポート名の変更 →初期設定ではポート名が CNCA0 と CNCB0 になっているので、これを COM8 と COM9 に変更。 スタート -> すべてのプログラム -> com0com -> SetupCommandPrompt 「change CN
連載目次 C#やVBでは、文字列(string型)は、たとえ1文字であっても文字列であり、文字型(char型)とはまったく別のデータ型である。本稿では、1文字からなる文字列と、1文字との相互の変換についてまとめる。 1文字(char型)から文字列(string型)への変換 char型の1文字を、string型の1文字の文字列に変換するには、文字に対してToStringメソッドを呼び出すのが最も簡便だ。 char myChar = '字'; // 1文字を文字列型へ(その1) // string s = myChar.ToString(); Console.WriteLine(s); // 出力:字 Dim myChar As Char = "字" ' 1文字を文字列型へ(その1) ' Dim s As String = myChar.ToString() Console.WriteLine
逆の処理、「string(文字列)からバイト型配列 byte[] (バイナリ) に変換する」についてはこちらの記事を参照してください。 概要 バイト型配列 byte[]から文字列(string)型に変換する場合、多くの場合byte配列にはShift JISの文字コードで文字列データが格納されています。C#(.NET Framework)ではstring型の文字列はunicodeで扱われるため、単純にbyte配列のデータをstring型にコピーしても文字コードが違うため同じ文字列として扱えません。 byte配列からstring型に変換するためには、文字コードの変換も含めて変換処理をする必要があります。 C#では System.Text.Encodingクラスを利用することで、文字コードのエンコードを含めてbyte[]型から文字列型への変換ができます。 書式 byte配列からstring型に変
ホワイトハウスのテーブルに並べられたファストフードについて、報道陣に話すトランプ米大統領=14日、ワシントン(AP=共同) 【ワシントン共同】トランプ米大統領は14日、米大学フットボールの王者クレムソン大のメンバーをホワイトハウスに招いた。政府機関の一部閉鎖の影響で自宅待機を強いられているホワイトハウス職員が多く、食事を用意することができなかったため、トランプ氏が自腹でファストフードを買い、もてなした。 マクドナルドやバーガーキングのハンバーガー、ドミノ・ピザのピザなどが銀色のプレートの上に所狭しと並んだ。トランプ氏は「全て米国の会社だ。ビッグマックとかクォーターパウンダーとか全部、僕も君らも好物だ」と語り、バーガーは千個用意したと述べた。
この記事は Rust Advent Calendar 2018 の 12 + n 日目の記事です。 この記事は Rust と非同期 IO の歴史(資料編) の続報です。 あけましておめでとうございます。 2018-06 からの非同期 Rust の進捗をまとめました。 今年もよろしくおねがいします。 忙しい人のための Q&A Q. 2018-12 現在 いますぐ非同期 Rust を書きたい A1. HTTP サーバが立てたいなら tokio 0.1 + futures 0.1 + hyper 0.12 + hyper-tls or hyper-native-tls actix + futures 0.1 + actix-web 0.7 A2. HTTP リクエストしたいなら tokio 0.1 + futures 0.1 + hyper 0.12 + hyper-tls or hyper-n
自己紹介 tomoya0x00 GitHub/Twitter/Qiita/mstdn.jp メインは組み込み系 去年の4月に車載業界から小規模ベンチャーへ転職 転職してから業務でAndroid/iOSのアプリ開発もやるように 実務経験は少ないのでお手柔らかに… 何にハマったのか? BLEデバイス(Peripheral)がアプリから見つからない! どういうこと? BLEデバイスは自社製 電池消費削減のため、スマホとは常時接続では無く必要時だけ接続 搭載Serviceは独自サービスとBattery Service フォアグラウンドのスキャンでは見つかる バックグラウンドのスキャンでだけ見つからない! バックグラウンド特有の制限に引っかかっている? 同一デバイスからの複数アドバタイズイベントは1回にまとめられてしまう 一度も検知されないので違う スキャン間隔が広がるので検知に時間がかかる いくら
転職した 空が青かったからとかそんな理由ではなく、どちらかといえば空が灰色だから転職をした。 ちなみに時系列的には結構過去の話だったりするかもしれないし、未来の話かもしれない。正確に言えるのは、今年の出来事ということ。 ここから先も一部伏せつつ話す部分があるのだが、ご容赦頂きたい。 また、あくまで私が見聞きした事実と感想を記載しており、他意はないので留意頂きたい。 前職 前職は株式会社スマートテック・ベンチャーズ(以下、STV)という会社にエンジニアとして所属していた。 元々は、別名の会社として存在しており、親会社から独立のような形で所属していた人が移籍して出来た会社である。 最盛期で60人近く在籍し、うちエンジニアは9割程くらいだったと思う。エンジニアの数とかだけ聞くと凄そうに聞こえるが、業務としてはSESによる客先常駐が8~9割を占める。端的に言ってITの出稼ぎである。 私が辞める時に
私事で恐縮ですが、29歳彼氏いない歴イコール年齢処女、ボクシングのプロテストに合格し、プロボクサーになりました。 このことをブログに書いて良いものか迷っている。迷っていると言いながら書いている。書きたいことを書きたいように書いているこのブログを「アラサー処女のしんどいブログ」にも「プロボクサーのスポ根ブログ」にもしたくないからだ。プロテスト合格を目標に毎日練習してきたけれど、それが達成された今、このネタをどう調理して良いのかわからない。 いきなり黄金伝説の無人島生活で、よゐこの濱口優はモリで突いた魚を「獲ったどー!」と叫び高々と掲げて見せる。しかし次のシーンでは「油へポーン」と言いながら、その新鮮な魚を中華鍋へと放り込んでしまう。派手に炎が上がる。完成するのは決して美味しそうには見えない雑な素揚げ。 今の状況はまさにそんな感じ。例え話が致命的に下手。要するに多分私はこのネタを100%の鮮度
GoogleMapAPIを使って現在地を取得してその場所にマーカーを設置、その後に現在地を移動すればリアルタイムもしくはボタンを押した際に、現在地マーカーを移動させたかった。つまりカーナビ的な現在地の表示をGoogleMapで再現したかった。必要そうな仕様とソースコードをメモ。 仕様 現在地を取得してマーカー設置 目的地にもマーカー設置 リアルタイムに現在地のマーカー場所を変えるか、ボタンを押した際にマーカーの位置を変える サンプル リアルタイム更新 https://taitan916.info/sample/gps/ 手動更新 https://taitan916.info/sample/gps/index2.php ソース リアルタイム更新 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.or
1. Google Maps APIとは Google Maps APIを使用することで、Google Mapの機能をウェブサイトやアプリに埋め込むことができます。 Google Maps APIについての詳細は、公式ホームページに記載されています。 公式ホームページ https://developers.google.com/maps/?hl=ja 今回は、Google Maps APIを使って、ウェブブラウザに地図を表示させる方法について説明します。 2. APIキー取得 Google Maps APIを使用するには、APIキーを取得しなければなりません。 ※ 2016年6月11日から、APIキーの取得が必須になりました。 APIキーを取得するために、あらかじめGoogleアカウントを準備しておいてください。 Google アカウントの作成 https://accounts.googl
MMMの創業者で代表取締役。AWS認定ソリューションアーキテクト – プロフェッショナル(SAP) クラウドを活用したエンタープライズ向けのシステム設計・開発を得意としており、近年アジャイル開発とロケーションにとらわれないワークスタイルの実践に力をいれている。 「より素早く」「より少ないリソース」「より価値の高い」プロダクトを生み出すべく日々精進。 ジャズとヤナギサワ・サックスを愛し、ビッグバンドに所属している、36歳一児のパパ。 DWSの目標は、クラウドのプロフェッショナルとして、コンサルティングから設計・開発、クラウドネイティブなアプリケーション開発、攻めの運用までをワンストップで対応し、お客様のビジネスを成長させることです。 プロジェクトはすべてプライム案件(元請け)であり、お客様と直接話し、悩みに寄り沿い、協力して課題解決を行っていきます。 事業の柱として以下のサービスに注力してい
Windows PCでBLEデバイスとGATTなるプロトコルで通信する必要性があったので方法を調べてみた.BLE自体については「【連載】Bluetooth LE (1) Bluetooth Low Energy の基礎」に詳しく書いてあったので参照した.どうやら,キャラクタリスティックと呼ばれるレジスタめいたものとそれを識別するアドレスみたいなのが用意されていて,そこを読んだり書いたりするらしい.とりあえず,手元のAndroidにNordicのBLEモニタアプリを入れて挙動を確認すると,理解しやすかった. 環境設定 WindowsでのBLEのサポートを使うには,MetroアプリケーションようのAPIであるところのWindowsランタイム(WinRT?)を使うらしい. MSDNのレファレンスを見てみると,殆どがデバイスやキャラクタリスティックを検索するためのクラスで,実際に読んだり書いたりす
(少し前から)IoT、始めました。 IoTといえば、センサー。ということでTI製のセンサタグを購入してみました。 この記事ではTexas Instruments製SimpleLink™ センサタグの購入からセンサ値までをまとめます。 センサ値の取得は Raspberry Pi 3 Model B のオンボードBLEチップを使って行います。 #Raspberry Pi 2 Model B + 下記のドングルの組合わせでもセンサ値は取れます。 Logitec Bluetooth USBアダプタ コンパクト Ver4.0 Class2 LBT-UAN04C2BK 1. 外観と内臓センサ・インターフェイス 外箱。丈夫な作りで輸送中に壊れることはなさそう。#少しへこみはあるけれど… 内容物は本体+スマホ向けアプリのダウンロード先とサポートの連絡先の説明書 表側にはトレードマークが。 裏側には周辺光セ
はじめに こんにちは! 今回、全くの未経験からWeb系エンジニアに転職することができたので、自分の振り返りとして書いてみます。 また、これから目指している方の励みになればとおもいます。 エンジニアになるまでの4ヶ月 準備 エンジニアを目指す前の自分は医療職であり、プログラミングは全くの未経験でした。 なのでまずはPCではなく自分の環境構築として、以下の環境を整えました。 無職になる(勉強時間確保のため) 東京に住む(元々は新潟県在住) MacBook Proを買う エンジニア用のツイッターアカウントを作成 プログラミングスクールに通う 書きながら、結構思いきって生活環境変えたなと思いました笑 この条件で2018年8月からプログラミング学習を開始します。 1ヶ月目(8月) まずはプログラミングスクールの教材をひたすらやりました。 内容としてはHTML、CSS、Bootstrap、JavaSc
センサタグを使う準備は整ったので、今回は実践編です。 ※前回の記事はこちら、gattlib 等のインストールまでをまとめています。 センサタグを見つける 作成したコード ほぼサンプルの見様見真似。 ・下記のように実行する sudo python discover_device.py スキャンできた場合、下記のような結果が得られる name: CC2650 SensorTag, address: XX:XX:XX:XX:XX:XX 各種センサ値を取得する 作成したコード インスタンス生成⇒接続⇒各センサ起動⇒センサ値計測まで実行可能 #バイナリデータの変換にめっちゃ困った…。 ・下記のように実行する sudo python sensor_tag.py XX:XX:XX:XX:XX:XX 接続に成功してデータが受信できた場合、下記のような結果が得られる。 Connecting... Succe
M5Stackに搭載されているESP32はWi-FiとBluetooth Low Energy(以下、BLE)で通信できます。 センサーデーターをWi-Fi経由でクラウドに送信する例は「M5StackでセンサーデーターをAmbientに送る (Arduino編)」に書きました。今回はデーターをM5StackからBLEで発信する例を紹介します。また、M5Stackと同じCPUを搭載している開発ボードESPr Developer 32でも動作するようにします。発信したデーターはゲートウェイで受信して、Ambientに送ります。 全体の構成 M5StackにBME280を接続し、温度、湿度、気圧を測定し、BLEで発信します。データーはゲートウェイで受信してAmbientに送ります。M5Stackと同じCPUを搭載するESPr Developer 32でも動作するようにします。 ゲートウェイはBL
お金とは何なのか、を考えざるを得ないハイパーインフレの世界 2007年から2009年にかけてジンバブエ・ドルが狂ったようなインフレを起こし、最後は100兆ジンバブエ・ドルまで発行されたのは記憶に新しいと思います。 この件は結構ネタ的に語られることが多かったですが、実際銀行に預金をしていたであろう庶民はたまったもんじゃありません。預金にあった1000万円が、ある日1円まで値下がりしてたみたいな話ですからね。庶民もバカじゃないので、金やドルに変えて持っておくとかそれなりの自衛策はやるんでしょうが、経済や市場は大ダメージを受け庶民生活にも影響があるのは必然でしょう。 今回はかつてハイパーインフレを起こした6の通貨から、どのようなタイミングで起こるものかを学んでいきたいと思います。 1. ハンガリー・ペンゲー(1945-1946) 国民生活の保証のために大量に紙幣を刷ったことで発生 史上起こったハ
screengrab from chilledcow 2018年にSpotifyで急成長したジャンル2位となり、SNSではミームとしても機能し始めるなど、認知がピークに達しつつある"Lo-fi Hip Hop(ローファイ・ヒップホップ)”・"Lo-fi beats(ローファイ・ビーツ)"。一体どうやって拡大したか、特徴、始まり、主なアーティスト、アニメとの関わり、今後についてなどまとめてみました。 Lo-fi Hip Hopとは Lo-fi Hip Hopの始まり Lo-fi Hip Hopが拡大したきっかけ 誰がオリジナルか 主なチャンネル・レーベル Lofi Girl (旧 Chilled cow) Chillhop Music Ryan Celsius 代表的なビートメイカー Tomppabeats Jinsang BSD.U Elijah Who wun two Lo-fi Hip
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く