方言を話すおしゃべり猫型ロボット『ミーア』をリリースしました(こちらをクリック)

開発・デザイン

AI

【Gemini Pro API】ChatGPTより80倍安い!? ・Go言語での実装方法

計算間違っているのでは?と疑ってしまったのだが、Gemini Pro APIの方がGPT3.5-turboと比較して80倍近く安い!OpenAIが課金単位としている「トークン」では割高になりがちな日本語では、「文字」でカウントしてくれるGeminiは割りが良い
開発・デザイン

【電子回路】筐体に対して基板を垂直マウントに変更して奥行きを減らす。両面基板に

今まで片面基板だったのを両面基盤にして、USB TypeCコネクタ、電源ボタン、スピーカーコネクタを裏面に配置に変更する。そうすることで奥行きを小さくできる。USB typeCコネクタって、基板に対して垂直マウントできるのか?と思って調べたら、下記のサイトに色んなタイプのmouting styleが画像で掲載されていた。
アプリ(Flutter)

【Flutter × Go】眠りモードに至るまでの時間をアプリで設定して、サーバーに反映させる。

以前、ESP32のlight sleep mode機能を使って、ミーアをおやすみモードに移行する部分のコードを作成した。この時は、PlatformIOに直接スリープモードへの移行時間を設定していたが、ユーザーのアプリで移行時間を設定できるように変更する。
アプリ(Flutter)

【ESP32】Wi-Fi接続を直接入力ではなく、候補リストから選べるようにする。

現状のミーアはESP32とアプリの接続を、まずはBluetoothで接続した後に、Wi-Fi の接続をアプリから BLE 経由で行っている。ただ、Wi-Fi接続のSSIDとパスワードを直書きする仕様になっていて、これだと、ユーザーからするととても面倒なため、接続可能なWi-Fiを探索して選べる形式に変更したい。
アプリ(Flutter)

【ESP32 × Flutter】Wi-Fiのセキュリティと信号強度に応じたアイコン表示とESP32接続

Wi-Fiの信号強度(RSSI:Received Signal Strength Indicator)とセキュリティ情報は、ESP32でWi-Fiネットワークをスキャンする際に取得できる。ESP32のWi-Fi暗号化方式の番号は、通常は整数(int型)で扱われる。
サーバー(Go)

【Flutter × ESP32】AWS Device Shadow・MQTT経由でおやすみモードの時間設定を同期

FlutterアプリとESP32デバイスを連携させ、AWS Device ShadowとMQTTを利用しておやすみモードの時間設定を同期する方法について解説。デバイスシャドウのdesiredセクションが更新されると、その情報はMQTTメッセージとしてESP32デバイスに通知される。
Web(Python)

【Rails7 + React + TypeScript】によるフロントエンド開発

Rails 7、React、およびTypeScriptを使用してフロントエンド開発を行う方法について、jsbundling-railsを使ったTypeScriptのセットアップ方法、Reactコンポーネントの作成と組み込み方法、RailsのERBファイルでのコンポーネントの呼び出し方法について記載。
組み込み(C++ / ESP32)

【ESP32】gaddr2lineを活用したバックトレース分析

ESP32を使ってネコ型おしゃべりロボットを開発中だが、デバイスを初回起動した時に下記エラーが発生するようになった。ESP32のクラッシュ問題を解決するために、gaddr2lineツール(Linuxではaddr2line)を使用したバックトレース分析の手順を記載
アプリ(Flutter)

【Flutter】AppleのHealthKit APIからユーザーの行動ログを取得する方法:環境設定編

HealthKitを使用する前に、アプリの HealthKit 機能を有効にする必要がある。Xcode でプロジェクトを選択し、HealthKit 機能を追加する。flutterのhealthパッケージを使ってHealthKitへのデータアクセス許可を実装。
サーバー(Go)

【Docker】コンテナ間通信を理解する。external設定とアクセス方法

Dockerでのコンテナ間通信は、まず手動で既存のDockerネットワークを作成する必要がある。その後、docker-compose.ymlでexternal: trueを設定する。コンテナ間通信ではホストのポートマッピングは関係なく、内部ポートを直接使用する。