「プログラム(PC/Android)」カテゴリーアーカイブ

PC/アンドロイド関連のカスタムファームウェア、プログラムネタについて記事にしています。

[Arduino] USB Host ShieldとUSBシリアル通信を行う(CH340編)

Arduinoを使ってUSB-HUB経由でUSBシリアル通信を行う方法です。私がいつも使わせてもらっているArduinoは中国製クローンで、USB-UART変換チップには本家Arduinoと異なりCH340というICが使われています(本家はFTDI製IC)。しかしUSB Host Library2.0にはCH340用ドライバがありません。そこでCH340のLinuxドライバをポーティングしてみました。これでUSB-HUBにArduinoクローンを複数ぶら下げるよう構成が実現出来るはずです。

続きを読む [Arduino] USB Host ShieldとUSBシリアル通信を行う(CH340編)

[Arduino] USB Host Library2.0をADB通信に対応させる(Android1.6端末と通信)

Android端末とArduino等のマイコンをUSB接続する手段として一般的にはADKを使用しますが、ADK未対応な古い端末(OSバージョン1.6とか)は代わりにADBを使います。ADB通信に対応したarduino側ライブラリもありますが1:1の通信しかサポートしていません。そこで既存ライブラリを少し改造してUSB-HUBに対応させてみました。これを使えば1:他の構成が実現出来るので用途が広がります。

続きを読む [Arduino] USB Host Library2.0をADB通信に対応させる(Android1.6端末と通信)

AVR DDS signal generatorをArduinoに移植する

ちょっとした実験をするのにSignalGeneratorが欲しくなりました。何かお手頃なのはないかと探してみるとAVRマイコンを使った”AVR DDS signal generator”を見つけました。オープンソースで公開されていて、これを使ったキットも販売されているようです。このキットを買うのが手っ取り早いのですが、私の手元には通販で購入したArduino nanoがいくつも転がっています。型番は違うもののAVRマイコン、動作周波数も同じです。なんとかこれで動かせないものか、ということで前述の”AVR DDS signal generator”をArduino向けに移植してみました。

続きを読む AVR DDS signal generatorをArduinoに移植する

sigrokをソースコードからビルドする方法

sigrokはオープンソースのロジックアナライザソフトウェアです。色々なOS/ハードウェアに対応していて、うちの作業机にある貧弱なノートPC(Debian)でも動作するので重宝しています。

普通に使う分にはバイナリをダウンロードしてくれば手間もかからずベストですが、apt-getなどでは少し古いバージョンが提供されていることがあります。こういう場合にどうしても新しい機能が使いたいとき、動作がおかしくて特定バージョンが欲しいとき、微妙にツールの機能を弄りたい(あまり無い?)場合はソースコードからビルドする必要があります。

ここでは、sigrokをソースコードからビルドする手順について記載したいと思います。

続きを読む sigrokをソースコードからビルドする方法

Linuxの実行ファイルで使用している命令セットを確認する方法

Linuxでコンパイル済みのバイナリを拾ってきたとき、どんな命令セットが使われているのか調べたい時があります。

例えばバイナリで提供されているとツールを実行してもエラーになってしまい未対応の命令セットを使っているのではと疑っているときなど、私がそれを調べるのに使った方法を紹介します。

続きを読む Linuxの実行ファイルで使用している命令セットを確認する方法

RFCOMMサーバを構築して通信内容をモニタする方法

先日、とある古いAndroid端末でRFCOMMを使った通信が可能かを確かめるのにLinuxで簡易Bluetooth評価環境を作りましたので紹介します。

評価環境といっても仮想PCにUbuntuをインストールして、apt-getで必要なパッケージをいれただけで大したことはしていません。しかし、Bluetoothデバイスの操作やパケットアナライザで通信内容がリアルタイムで見れるのでなかなかに重宝しました。

続きを読む RFCOMMサーバを構築して通信内容をモニタする方法

Android1.6端末(IS01)でBluetooth RFCOMMを使う方法

古いAndroid端末を活用するのに、Arduinoなどのマイコンボードと通信出来ればぐっと利用価値が高まります。

UARTが使えれば一番簡単だと思いますが、そんなものが無改造でつながる機種はレアでしょう。通信インタフェースとして使えそうでなものはUSB,Wifi,Bluetoothです。

この中でBluetoothのSPプロファイルではRFCOMMというシリアル通信用プロトコルが利用できます。これを使えば、接続さえしてしまえばUARTと同じ感覚で使えます。都合の良いことにマイコンと接続出来るBluetoothモジュール(技適つき)は比較的に安価で販売されていて、ArduinoにはBluetoothモジュールを使ったサンプルプログラムもあります。

まさにベストマッチと言いたいですが、Android1.6では通常はRFCOMMが使えない機種が多く、さらに独自実装であったりして一筋縄ではいきません(まさにIS01がこれです)。ここではAndroid1.6端末でRFCOMMを使う方法について記載したいと思います。

続きを読む Android1.6端末(IS01)でBluetooth RFCOMMを使う方法

[Android Studio] プロジェクトをgitlabで管理する

バージョン管理にgitを使っていて、そのリポジトリを公開するのにGitHubがとても便利です。ただ、GitHubは無料アカウントだとPrivateなリポジトリを作成することが出来ないので、個人でごにょごにゅしているものや、一般公開したくないソースコードをあげるのには不向きです(有料アカウントならPrivateも作れる)。

個人的には非公開にしたいプロジェクトのリポジトリもオンラインバックアップを兼ねてGitHubに上げたいなぁと思っていたので探してみると、GitHubライクなUIを持つgitlabだとPrivateリポジトリも無料で作り放題というのを見つけました。
これを使えばAndroid Studioで作ったなんやかんやのお試しプロジェクトもリモートにあげられそうです。

ここではAndroid Studioとgitlabを連携させる設定について記載します。

続きを読む [Android Studio] プロジェクトをgitlabで管理する

Androidタブレットをアームスタンドでサブディスプレイ化する

Amazonを覗いているとタブレット用アームスタンドが安く販売されているのを見つけました。以前にAndroid端末をサブディスプレイとして使ったときは机に置いて使っていましたが、これがあればサブディスプレイっぽく並べることが出来そうです。

お値段1000円以下の安価な商品です。これなら失敗してもあまり痛くありません。早速、購入して試してみました。
(サブディスプレイ化アプリケーションは”Wired XDisplay”を使用しました)

続きを読む Androidタブレットをアームスタンドでサブディスプレイ化する

Android Studio 2.x環境でAndroid 1.6 Donuts(API-4)向けアプリをビルドする方法

Android OS/開発環境が進歩する一方で、私の家には古くて一般的には使えないAndroid 1.6の端末が転がっています。しかし古すぎる為か、最新の開発環境ではすんなりとビルドすることが出来ませんでした。

ここでは、Android Studio 2.x環境でAndroid 1.6向けのアプリケーションをビルドするための方法を紹介したいと思います。

続きを読む Android Studio 2.x環境でAndroid 1.6 Donuts(API-4)向けアプリをビルドする方法