コンテンツへスキップ

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編)" を続けて読む

3

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

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

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

... "AVR DDS signal generatorをArduinoに移植する" を続けて読む

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

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

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

... "sigrokをソースコードからビルドする方法" を続けて読む

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

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

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

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

評価環境といっても仮想PCにUbuntuをインストールして、apt-getで必要なパッケージをいれただけで大したことはしていません。しかし、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を使う方法" を続けて読む

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

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

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

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

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

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

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