chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

2020-01-01から1年間の記事一覧

iOS版 ECHONET Lite機器走査アプリがボチボチ動く

UDP Multicastの申請が許可されて、iOSでUDP Multicastを投げてECHONET Lite機器を探し出すアプリを開発中。 なんとかiOS側から INF_REQ(0x63)をMulticastして、ECHONET Lite機器(メディアコンバータ)からINF(0x73)が返却されるところまではできた。 以下は…

AppleにBroadcastの許可申請を出したら、もうちょい詳しく説明しろと言われる・・・→承認された

Echonet Lite搭載機器を探し出すプログラムを開発しようとして、Multicast送信のためには許可が必要と分かった。Apple Developperサイトから適当な申請を出したら機器間でどんなメッセージを送るのか説明しろと返事が来た。。EchonetLiteの仕様を知らないの…

EchoneLite 機器を検出するアプリを開発・・・iOS上ではSwift Crash→申請が必要だった

理解不十分なまま、SwiftUIのプログラムと前回試作したUDP Multicastのプログラムを連結してiOS上で動かしてみた。すると、、ConnectionGroupのcancel()を呼んだ時点でcrashが発生。終了タイミングとか、資源解放の仕方とかが悪いのだろうか。。原因が分から…

SwiftUIでForEachを使ってarrayをループ処理したい。。怒られる

SwiftUIを使って、Echonet Lite 機器をスキャンして、見つけ次第、リストに追加する実装を試みている。 以下が作成中のアプリの画面。scanの行の下に、検知デバイスをList形式で出したい。 が、、Stringを要素にもつArrayに対してForEachを使ってText()で追…

Let's NoteでいつもWiFiが無効になる問題・・・原因は勝手にサービスを止めていたため→やっぱり治っておらず

古いLet's Note(CF-F10)を使っているが、電源Onの時や、Sleepからの復帰時WiFiが無効化された状態で立ち上がる問題があった。いろいろ調べたけど原因が分からなかった。昔排熱がうまくいかなくて、CPUクロックが落とされる症状があった時、負荷を軽くする…

Swiftの言語仕様を学ぶ・・・型変換でstack trace... うーん。。。

「詳解Swift」という本を買って、サンプルを打ち込んで勉強中。今はデータ型を理解。。Swiftは型チェックが厳しく、また暗黙の型変換はなされない、ということで、型変換の関数(正確には関数ではなくイニシャライザらしい)が用意されている。Character型は1…

Swift Network Frameworkを使ってUDP Multicast通信を試す

iOSアプリ開発に向けて、Network Frameworkを使ってUDP Multicast通信をやってみる。細かい所はまだわかっていないけど、以下のコードで、WindowsでMulticastした電文の送受信までは動いた*1。 import Network guard let multicast = try? NWMulticastGroup(…

Swiftをコマンドラインから起動する->実行できたがハングした

UPDのテストプログラム等をXCodeからビルドするのは手間なので、コマンドラインでさくっと動かせると楽。 普通に実行させると以下のようなエラーになる。 $ swift test.swift xcrun: error: invalid active developer path (/Library/Developer/CommandLineT…

Apple(iOS/macOS) Network Frameworkを調べる

やりたいこと UDPマルチキャストでEchonetLite機器を探し出すiOSのアプリを作る。そして審査に出す*1。とりくみ iOS関連のプログラミング環境というか、ライブラリ群がまったくわかっていないので、Networkプログラミングをどうやって行うのかを調べる。 app…

SwiftでiOSアプリを作る上でGUIよりUDP通信が課題

シンプルなiOSアプリを試作して申請してみたいと思っています。あまりにへなちょこアプリだと門前払いだろうと思い、EchonetLite機器をスキャンするアプリを作ろうと思っています。最初はGUIをSwiftUIで作るかなーと思っていたけど、Swiftによる実装ではUDP…

古いMacBook Airに無理やりMojaveを入れてみる

借り物のMACが古く*1、Mojaveはサポートしてくれない。だから、HighSierraで止まっている。普通に使う分にはHighSierraでも問題ないけど、勉強を兼ねて試作しているiOSアプリだがiOS 13 SDK(Xcode 11.xでのビルド)でないと受理されない。Xcode11を入れるに…

AmazonEchoで自宅のエアコンを操作

ずっと取り組んでいた、AmazonEchoで発話して、自宅のエアコンを操作する件ができた*1。経路は以下 [Echo]->[Alexa]->[Lambda]->[AWS IoT Core] V (MQTT) V [MQTT Client(AWS IoT Device SDK) on LaspberryPi] [家電制御ライブラリ on LaspberryPi] V (Echon…

最後の接続経路、、EchonetLiteを復習しながらパケットを投げてみる

<背景> Amazon Echoに話しかけて、AWS IoT Core経由で機器を制御する試作を開発中、最終的には、「エアコンをつけて」と発話するとEchonetLite接続のエアコンが動くようにしたい<要約> 先人のサンプル等を参考にしつつ、PythonでUDPプログラムを書いてEc…

AmazonEchoでNeoPixelをコントロール

ずっと作業していた、AlexaとAmazon IoT Coreを使った試作だが、Amazon Echoで「LEDをつけて」とか言うと、回りまわって、NeoPixelが点灯するというシステムを組んだ。構成は以下 [Amazon Echo]----[Alexa]----[Lambda]---[AWS IoT Core]---[RaspberryPy]---…

NeoPixelをArduino Nanoで制御

当初、AVRマイコンでCで書いてNeoPixelを制御するか??と考えていたけど、使っていないArduino Nanoがあったので、これを使ってNeoPixelを制御することにした。下が俺ArduinoNano(自作) 幸い、Adafruitが提供しているNeoPixel用ライブラリがあるので、こ…

RaspberryPiとNeoPixelを接続

Amazon EchoからAlexa->Lambda->AWS IoT-(MQTT)->LaspberryPiでLED点滅をさせているけど、赤色のLEDだけだとあまり楽しくないので、NeoPixcelを音声で動かしてみたい。adafruit-circuitpython-neopixel が使えるらしい。。 以下がAdafruitのNeoPixcel解説ペ…

Amazon Echo(Alexa)->Lambdaまでを試作したい->Lambaまではつながったが、細部は不明

例のAWS IoTは段々と使える知識は溜まってきたけど、UIというか、表示系、操作系も必要だ。一緒に調べてるメンバからは音声UIと接続させると言われているので、、Amazon Echo(Alexa)からLambdaまでをつないでみたい。それができたら、「アレクサ、LEDつけて…

AWS IoT Coreを使ってみる (デバイスからMQTTでPub/Sub)

AWS Iot Coreを調査中。まずはラズパイをセンサーとしてPublishしてみる。 AWS IoTでは、MQTT通信する際にはClient証明書で認証するようである。だから、デバイスごとにClient証明書の発行が必要。AWSのIoTコンソール画面を使って、端末(RaspberryPi)用のC…

Ubuntu20.04で固定IP

RaspberryPi 4 8Gモデルを買ったのでUbuntuを入れた。ここ数年、OSのConfigやったことないので、、作法が分かっていない。 固定IPにしたかったら、50-cloud-init.yaml を触らずに、新しいファイルを作れということらしい。。 $ cat /etc/lsb-release DISTRIB…

JavaScriptを改めて学ぶ -> JSは苦渋の仕様に思える

自分はCとかPython(MicroPython)を普段使っていて*1、JavaScriptは使う機会がほとんどなかった。が、、node.jsを使う必要が出てきて、JavaScriptが分かっていないと小修整やデバッグもできないので、JavaScriptを勉強することにした。今まではJavaScriptに…

Let's note CF-F10の分解掃除を行った→あまり冷却性能は改善されず

CF-F10はマイナーな機種のせいか、分解手順がネット上にはほとんど見つけられません。機種の異なるCF-S10の分解手順や、Youtobeでかなり無茶してCF-F10を分解している動画を参考に、なんとか分解とCPUボードの取り出しまでできました*1。 以下はキーボードを…

Lets note cf-f10の電源スイッチ

レッツノートは使っていると電源が入らなくなるという記事が修理サイトで見かけます。自分の中古のCF-F10も一発では電源が入りません。今回分解掃除する際に、電源スイッチがどういう状態なのかを確認しました。スイッチから出ている足にテスターを当てて動…

Let's note CF-F10を分解掃除する(予定)

<要約> 愛用のLet's note CF-F10が、冷却が間に合わずCPUが熱くなりすぎてクロックが1GHzに落とされる問題が発生。分解掃除してシリコングリスを塗りなおす(予定)。<詳細> 長男用にLetsNoteの中古(CF-F10)を買った。長男はその後、ThinkPadを買った。…

WSL上のUbuntuから Cygwin上の X11にWindowを出す(未検証)

今後出てくるWSLではGUIも使えるそうだけど、今の時点ではGUIアプリは動かない。 代替え手段として、Cygwin上でX11を走らせて、WSL上のUbuntuからCygwin上のX11めがけてWindowを出すことでGUIアプリを走らせることができる。Cygwin上で X11を起動。--listen …

MicroPython版BLEでBLE MIDIを実装してiPhoneと接続

いくらSnifferでBLEパケットを取ろうとしてもAdvertiseしか取れない状況なので、何が正しいのか分からずじまいだけど、、MicroPythonで実装したBLEMIDIとiPhone上の音楽アプリ(KORG Module)と接続はできた*1。MicroPython側ではドレミファ・・・と連続的に…

MicroPython版 BLEで試作(Ver1.13 2020/9/02ビルド)

MicroPython版BLEライブラリでPeripheralを書いてみた。スマフォから接続すると瞬間に切れる。。なぜだろう。。 (ソース抜粋) #//Service 03B80E5A-EDE8-4B33-A751-6CE34EC4C700 #//Characteristic 7772E5DB-3868-4112-A1A9-F2669D106BF3 MIDI_SRV_UUID = …

今後の取り組み

いろいろ問題が残っているが、ひとまずBLE MIDIを介して、FL-StudioにMIDIデータを送るところまではできた。が、、C+NimBLEで開発するのは非常に手間がかかる。何が手間かかるのか?? SWの扱いとかタイマーの使いとか調べないと分からない、コンパイルが必…

俺BLE MIDIからFL-Studioに向かってMIDIデータを送信する

俺BLE MIDI試作がFL-Studioとつながったので、次はMIDIデータを送ってみる。作りたいのは、SWを押すと和音やアルペジオデータをMIDIデータとして送る機能だ。BLE MIDIでペリフェラル(ESP32等)からPCにMIDIデータを送るにはNotifyを使う。 リアルタイムOSのプ…

俺BLE MIDIを改修、FL-Studioと接続テスト

前回KORGのMicroKEY Airのパケットをキャプチャして、アドバタイズの内容、再接続について理解できたので、nimBle版ペリフェラルサンプルコード(bleprph)を書きなおして、BLE MIDIとして仕立ててみた。元ソースからの修正点は以下 AdvertisingはBLEMIDIのUUI…

改めて KORG MicroKEY AirのBLE通信をキャプチャ

パケットレベルの調査はややこしいので避けてきたが、パケットも見ないと理解不足ということで、あらためてBLE Snifferでキャプチャした。分かったことは以下 BLE Snifferで取れるのはAdvertisingのみ?(フィルタのかけ方がまずいのかも) MicroKEY AirのAdver…