2017年02月26日

koshianでLチカを試してみた

koshian.jpg

Bluetooth Low Energyの通信を簡単に試すことができる「koshian」というボードがあります。
これは、ユカイ工学の「konashi」という同じくBLEのボードの互換品(一部非互換あり)です。

本家であるkonashiが注目を集めていたのは、ESP8266が流行るよりも前で、2013年ごろからです。
konashiというより、BLE自体が注目を集めていた時期でもあります。

スマホ連携ガジェットを作ろう! - 第2回 konashiとは何か?スマホの入出力を無線で拡張:ITpro

その後、konashiはkoshianを取り込んで、現在はkonashiはkoshianボードを使う形態に変わっているようです。

konashi(こなし)メジャーアップデート「konashi2.0 」を発表 | ユカイ工学

この「koshian」ボードですが、もともと980円と安価な上に、一時期、販売元のMPressionがキャンペーン(確かオンラインストアに会員登録すると無料でもらえた)をしていたこともあり、私の手元には3枚もありました。

使わずにしまってあったのですが、BLEの勉強がてら、試しに使ってみることにしました。

まずはLチカから、ですが、これはMPressionのサイトにチュートリアルがあります。

ハードウェアのHello World !? koshianつかって『まずはLチカ 』 | マクニカオンラインストア

このチュートリアルでkoshianにつないだLEDをiPhoneやiPadから点滅させることはできるのですが、BLEを使っているのかkoshian.jsというアプリ(のAPI)を使っているのか、ちょっと判然としないところはあります。
JavaScriptでプログラムが書けて、敷居が低くていいのですが、逆に組み込みシステムをある程度知っている人にとっては、隔靴掻痒という感じがあると思います。

実際には、このチュートリアルで動いているシステムの全体像は下の図のようになっています。

koshian-arch.jpg


ボード側では、I/Oピン等を制御するAPIをBLEで公開するファームウェアが動作しており、iPhone/iPad側ではこのファームウェアのAPIをJavaScriptから叩く機能を持つアプリを動作させています。
このアプリによって、ユーザのJavaScriptプログラムは、koshianのファームウェアへの命令に変換されているわけです。

Lチカ程度であれば、わざわざJavaScriptを叩かなくても、ボードのAPIを直接叩けば良さそうです。
ただ、このAPIはBLEの規定に則ってGATT(Generic Attributes)というフォーマットで提供されています。
GATTの部分を隠蔽して、ボードのI/Oに直接アクセスできるアプリとして、ユカイ工学の「Inspector」があります。

konashi inspectorを App Store で

konashi inspector - Google Play の Android アプリ

このアプリを使えば、プラグラムを書かずにI/Oの値を直接設定できます。
その代わり、たとえば0.5秒おきにオン・オフする、といったことはできません。

GATTを直接叩きたければ、Mac用の無料ツールで「LightBlue」というものがあります。
私のMacbook AirはLate2010モデルなのでBLE非対応なのですが、バッファローのUSB BLEドングル「BSBT4D09BK」を挿したら、特にドライバ等を導入しなくてもBLE対応になりました。

LightBlue を Mac App Store で

GATT自体は、それほど難しいものではありません。
デバイスが提供する「サービス」の下に、複数の「characteristic」があり、characteristicの値を読み書きすることでデバイスの動作を制御します。
たとえばkonashiなら、I/Oを制御するという「サービス」の下に、I/Oピンが入力か出力かを設定する「characteristic」や、出力ピンならHighなのかLowなのかを設定する「characteristic」があります。
characteristicが、制御レジスタみたいなイメージです。

以前紹介したPythonistaでも、このあたりの制御ができるはずなのですが、ちょっと試したところではまだkoshianを制御するところまでは至りませんでした。


さて、ページの冒頭に載せた写真は、100円ショップ・ダイソーで購入したLEDランプに、koshianと赤・緑の2つのLEDを仕込んだものです。
ランプは2つ入りで100円、1つ50円です。

daiso.jpg


底面にスライドスイッチがあります。電池はCR2032です。

daiso2.jpg


ケースははめ込んであるだけなので、細いドライバなどでこじれば外れます。
中身は白色LED。LEDのピンの一方はスライドスイッチに直付けされています。
もう一方のピンは、ケースを突き抜けたところで曲げられて、電池と接触する電極として使われています。

daiso3.jpg


スイッチは活かして、ピンヘッダをつけたkoshianに赤と緑のLEDを直付けしたものを組み込みました。
PIO4に赤、PIO5に緑のLEDを接続しています。
LEDはどちらも高輝度タイプです。抵抗はつけていません。
また、LEDには光拡散用のキャップをかぶせています。
このへんのパーツは秋月電子で買ったものです。
daiso4.jpg


元通りケースをかぶせるとこんな感じです。
BLEリモコンで2色オンオフができるLEDランプができました。
daiso5.jpg


さて、そんなkoshianですが、今はボード単体では若干入手難のようです。
マクニカのオンラインストアでも販売されていないようです。
また、このボードの心臓部はBroadcom社のBCM20737Sというチップだったのですが、BroadcomのIoTデバイス事業は既にCypress社に売却されています。
Cypress社では、BCM20737SをCYW20737Sという型番で出していますので、ディスコンというわけではなさそうです。

BLEではNordic社のnRFシリーズがメジャーになってきており、このチップを使ったkonashiと似た感じのモジュールがBraveridge社から販売されています。

BVMCN5103-CEAA-BK | Braveridge

まあこちらは20個セットですし、ホビイスト向けではなさそうですが。
posted by boochow at 15:23| Comment(0) | konashi/koshian | このブログの読者になる | 更新情報をチェックする

2017年02月25日

Volca Beats Snare Mod(改造)その2

beats.jpg


一年あまり前に、Volca Beatsのスネアの改造を行いました。

Volca Beats Snare Mod(改造): 楽しくやろう。

その続編、というか、更なる検討を行っているページを見つけたので、私も試してみました。

Korg Volca Beats Snare

この方はVolca Beatsのスネア部分の回路図を起こした上で、考察を加えて改造を行っています。

前回行った改造は、取り付けられていないC78を追加するというものでした。
今回の改造は、すでに取り付けられているR134とR183の抵抗を別の値へ変更するものです。

・R134を10K→1.5K → ノイズ成分の音量増大+明るさ増大
・R183を2.2K→10K → ピッチを低く(250〜570Hz → 160〜240Hz)

という効果があります。
R134の効果については、前回の改造の元ネタのビデオでも紹介されていました。

こちらが、前回の改造の状態の音。

modified1.wav

そして、こちらが今回の改造の後の音です。

modified2.wav

どちらもピッチは一番低くしてあります。
変化の内容は上記の通りですが、音程成分とノイズ成分の一体感が増している感じがします。


改造の効果はいい感じなのですが、作業はちょっと大変でした。
交換するチップ抵抗のサイズは、前回と同じ1.6mm×0.8mmですが、場所が狭いし、すでに取り付けられている部品を取り外さなければなりません。

R134は周りをチップ部品に囲まれています。奥のほうの「103」と書かれているのがR134です。
r134.jpg


R183(「222」と書かれているもの)は周囲にパーツが少ないので、比較的外しやすそうです。
r183.jpg


チップ部品の取り外し方は、こんなビデオがありました。

追いハンダをして、チップの両側の端子を一度に熱することで外しています。
が、狭い場所だとこの手を使うのは苦しいです。

それでも、R183はコテを寝かせてチップの両端を一度に熱することで、割と簡単に外せました。
r183-2.jpg


跡地に新しいチップ抵抗をつけて終わりです。
r183-3.jpg


R134のほうは、試行錯誤しているうちに偶然外すことができました。
r134-2.jpg


こちらが新しく付けるチップ抵抗です。上下に写っているのはピンセットです。
r134-3.jpg


なんとか取り付けることができました。
r134-4.jpg


この改造は、適切な工具と、視力と器用さが要求されます。
チップ抵抗は、AmazonでHiletGoという業者から、25種類×20個のチップ抵抗詰め合わせを送料込み260円で購入できます。
商品名は「HiLetgo 0603 SMD 抵抗バッグ 620R-12K 5% 25種類 各20pcs 合計500pcs [並行輸入品] 」です。

最後に、ほかのパートと一緒に鳴らしてみたものを載せておきます。

sample.wav
posted by boochow at 01:13| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年11月20日

iOSで動くPython「Pythonista3」を使ってみた

iPhoneやiPadの上で動作する「Pythonista」というアプリがあります。
これはスクリプト言語「Python」をiOSの上に移植したもの・・・と思っていたのですが、実はよくできたエディタ、デバッガ、iOSのためのライブラリなどが合わさったものです。
評判が良いらしいので、なんとなく入手してみました。

iOS上で動作する革命的ものづくり環境「Pythonista 3」の魅力をとくと語る

Pythonはver.2系とver.3系があり、互換性が完全ではないので、過去の資産を重視するならver.2、より高機能・洗練を重視するならver.3系になります。
今回はver.3系である「Pythonista 3」を購入しました(1200円です)。

付属のサンプルを動かしてみると、Pythonそのものの資産の豊富さと、Pythonistaというアプリの出来の良さに驚きました。
こんなスクリプトで
pythonista02.jpg

こんなグラフが描けてしまいます。
pythonista03.jpg

ドキュメントとしては「The Python Tutorial − Python 3.5.2 documentation」が内蔵されています。
また、それとは別にゲームを作るチュートリアルが付属しており、PythonistaがiOS用に用意したライブラリの能力を垣間見ることができます。
pythonista04.jpg


Pythonistaで用意されているライブラリはこちらに一覧があります。

Pythonista Modules − Pythonista Documentation

ゲームやアニメーションを作成できる「scene」、iOSネイティブのGUIをデザインできる「ui」のほか、Bluetooth LEのモジュール「cb」もあります。
これを使って、Genuino101と通信をさせている方を見つけましたので、私も試してみました。

iPad + Pythonista(iOSで動くPython) + BLEで、Genuino101のLチカをしてみた。 - robo8080のブログ
Genuino101BlinkLED.py ・ GitHub

スクリプトはver.2で書かれているらしく、print '..'をprint('..')に修正する必要がありましたが、あとは問題なく動作しました。

pythonista01.jpg


Pythonistaのコミュニティもあります。(当然英語ですが)

Pythonista | omz:forum

全般的に、IDEとしてよく出来ていますし、電車の中で使えるプログラミング環境としてはプチコン以上かもしれません。

posted by boochow at 13:41| Comment(0) | Pythonista | このブログの読者になる | 更新情報をチェックする

2016年11月13日

Arduino based game console "Arduboy" first impression (August 17, 2016)

arduboy01.jpg

I got an "Arduboy" at the venue of Maker Fair Tokyo 2016.

This is a portable game machine combining Arduino Leonardo equivalent CPU and 180 mAh battery, SSD1306 OLED display, piezoelectric buzzer, operation buttons.
The selling price at the venue was 5,000 yen.
Even buying parts individually will not be so cheap.
Anyway I bought it because the making of the casing was very good.

Although the appearance is a game machine style, it is a wonderful Arduino compatible machine.
Since the USB connector is built in, all you need is just connecting the cable.
Of course, you can write programs in Arduino IDE and run it normally.


arduboy0.jpg


For the setup etc of the development environment, the following page is detailed.

【Kickstarter】Arduboyレビュー、インストール手順、面白いゲーム紹介など - t-miyajima blog

However, one thing that needs attention is "It will not work with Arduino 1.6.10."
During compilation I got an error saying
-fno-fat-lto-objects are supported only with linker plugin.
and it stops.
(8/19 update: Arduino 1.6.11 has been released, it works fine.)
This seems to be caused by inconsistency of Arduino IDE and Arduboy library.
Arduino 1.6.9 works without problems.

Cannot Compile or Upload an Example Game: cc1.exe: error [SOLVED] - Arduboy / Issues - Community


As the first step, I tested some games and samples attached to the Arduboy library.

*Hello, World!
A Sample displays characters on the OLED. The code is here .
arduboy02.jpg


*ArduBreakout
A breakout with button operation. The code is here.
arduboy03.jpg


*GLOVE
A " Gauntlet " style game. Well done.
The compiler reported "Sketch uses 28,612 bytes (99%) of program storage space. Maximum is 28,672 bytes. Global variables use 1,682 bytes (65%) of dynamic memory, leaving 878 bytes for local variables." which means that the author stuffed code and data in as much as he can.
arduboy04.jpg


*伊for Arduboy
A side scrolling shooter. I impressed that it can move objects much more than I had thought.
arduboy05.jpg


Looking at the community site , it seems that 27 games are currently registered in the wiki.
There were also various demos that were not games including a demonstration of RPG similar to the Legends of Zelda.

Arduventure
[WIP] Arduventure (RPG) - Arduboy / Development - Community

arduboy06.jpg


An introduction of various works is in the following article.

11 Arduboy Games worth Playing - Retro Gaming Magazine | Retro Gaming Magazine

Original post in Japanese: ゲーム機型Arduino「Arduboy」を動かしてみた: 楽しくやろう。
タグ:english Arduboy
posted by boochow at 13:46| Comment(0) | Arduino | このブログの読者になる | 更新情報をチェックする

I will translate this blog into English by Google translation

Recently, it has become a hot topic that Google translation has improved considerably due to machine learning.

Google unleashes deep learning tech on language with Neural Machine Translation | TechCrunch

Perhaps, it may be possible to use Google translation for English translation of this blog.
Therefore, in order to investigate the performance of Google translation, I will translate the previous articles in English using Google Translate and post them.

The article translated into English is tagged "English".
Those articles are translated into English by Google translation, and then I corrected the translation error manually.

Google翻訳でこのブログの英訳を行います

最近、Google翻訳が、機械学習のおかげで大幅に品質向上したと話題になっています。

Google、ニューラルネットワーク機械学習を検索翻訳に適用―第一陣は中国語/英語 | TechCrunch Japan

もしかすると、このブログの英訳にGoogle翻訳が使えるかもしれません。
そこで、Google翻訳の性能を調べるため、Google翻訳を使って以前の記事を英訳してポストしていきます。

英訳した記事には"English"タグが付けられます。
それらの記事は、Google翻訳で英訳した後、翻訳ミスを人手で修正しています。
タグ:english
posted by boochow at 12:46| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
人気記事