電子ガジェットいろいろ

電子系のガジェットやアプリ開発等の話題を書いてます

Unicorn pHATで遊ぶまでのメモ

Unicorn pHATを入手したので、Raspberry Pi Zero W で遊んでみました。
動作させるまでのメモを残します。
GPIOは同じなので、他のRaspberry Pi(ZERO以外でも)でも同じ手順で操作します。

GitHub(ソース)

https://github.com/pimoroni/unicorn-hat
基本的にここのREADME.mdの通りにセットアップすれば、簡単デモを動かすことができるます。

以下、作業ディレクトリを /home/pi と想定。

/boot/config.txtを編集
hdmi_force_hotplug=1
一連のファイルをセットアップ

以下のコマンドを実行

curl -sS https://get.pimoroni.com/unicornhat | bash
デモファイルを動かしてみる。

サンプルのソースファイルが、~/Pimoroni/unicornhat/examples/ にあるので、ここにある demo.py を実行してみる。

cd ~/Pimoroni/unicornhat/examples/
sudo python ./demo.py


Raspberry Pi Zero W Starter Kit

Raspberry Pi Zero W Starter Kit

ちょっと変わったTI-Nspire (CAS無し)を入手しました。TI-84 Plusにもなります

この度、電池稼働できるTIのグラフ電卓が欲しいと思い久しぶりにebayを物色して、TI-Nspire with TouchPad (CAS無し、TI-84 Plusキーパネル付き)を入手しました。送料と合わせて100$ちょっとです。

この機種を知っている人から見ると、ちょっと違和感があると思います。
国内で流通している機種はこんな色です。

全体的に黒(CASの方)、又は左右の縁が白(CAS無しの方)です。
1つ前の世代は青と白で同じカラーリングですが、キー配置が違います。
これはSchool Propertyと書いてあるのですが、教育機関等が購入するモデルらしいです。
カバーやアルファベットキー周りに黄色い箇所があるのが特徴です。

この機種はCAS機能はありませんが、キーパネルを付け替えることにより、TI-84 Plusと互換モードになるのが特徴です。
互換性は高いらしく、アセンブラプログラムも動作したり、速度もそのまま実機と同じように調整されてるみたいです。
今回この機種にしたものも元はTI-84シリーズの何か安いものが欲しいと思い物色しているときに見つけました。

nspireモードではNspire CX CASを入手したときに作ったパズルゲームを実行したところ、違和感なくモノクロに変換され表示されました。

Nspire CX CASも既にあるので、強くお勧めするわけではありませんが、特徴があり遊べる面白い機種だと思います。

Texas Instruments Nspire CX CAS N3CAS/CLM/2L1 Graphing Calculator [輸入品]

Texas Instruments Nspire CX CAS N3CAS/CLM/2L1 Graphing Calculator [輸入品]

Maker Faire Tokyo 2017 でFlashAir W-04を購入

Maker Faire Tokyo 2017に行ってきました。
FlashAirのブースで FlashAirDoujinshi4をもらい、新型のFlashAir W-04の販売も行われていたので、16GBのモデルを購入しました。

去年も頂いた記憶もある作らないで放置していたおまけ基板を今年も頂き、今度こそ作って遊ぼうと思っています。

FlashAir W-04の特徴

第4世代FlashAir W-04より

基本性能が向上

読み出し最大90MB/s、書き出し最大70MB/sの高速転送を実現しました。大容量のRAW形式ファイルを高速に保存する必要がある時、例えば高画質デジタル一眼レフカメラで連写撮影をする場合などに高い効果を発揮します。

ワイヤレスデータ転送機能が向上

新たに設計したCPUを搭載することにより、実測値で従来製品の約2.9倍となる、約31.4Mbpsでのワイヤレスデータ転送を行うことができるようになりました。

Eyefi Connected対応

Eyefi Connectedは、カメラからSDメモリカードを制御することができるカメラ連携機能です。 Eyefi連動機能搭載カメラで使用すると、データ転送中のカメラの電源が切れてしまうのを防ぐことができます。

UHS-Iインターフェイス対応

UHS-Iインターフェイス対応機器で使用すると、高速のパフォーマンスが得られます。UHS Speed Class3に対応し、対応機器で使用した場合は読み書き時に最低30MB/sの転送速度を保証します。フルHDや4K動画撮影も可能です。

安定性の向上

他の無線LANによる干渉に対しても影響を受けにくくなり、人ごみの中でも安定してデータ転送できるようになりました。

Lua関数の追加

I2C機能、日時メモ保存、無線LANのOn/Off機能などが追加され、標準ライブラリの数学関数が使えるようになりました。

共有メモリ容量アップ

共有メモリが512バイトから2Kバイトに容量アップしました。
無線側のデバイスと、ファイルの書き込みをせずに、相互にデータ共有しやすくなります。また、アップロード機能で起こりがちなFATの整合性問題を避けることができます。

WebSocketクライアントに対応(予定)

WebSocketを使うことで、相互に通信するアプリや、常時通信するアプリがより開発しやすくなります。




MSXとメガドライブの記事のまとめ

最近でもMSXメガドライブ改造の話題で来てくれる人が多いので、関連記事へのリンクを書いておきます。

何気に名プリンター PIXUS iP2700

普段プリンタは複合機EPSON EP-805A を使っているのですが、家族が寝てる時でもほかの部屋で印刷ができるようにサブプリンタを購入しました。

今回購入したのが、Canon PIXUS iP2700です。
これがヨドバシ店頭でも3,200円ほどでしたので、サブ機にはちょうど良いと思い購入してしましました。アマゾンでは3,000円を少し切るくらいの価格で販売しています。

始めは軽く印刷できるものが欲しいと思い、とにかく一番安いのを選択したのですが、価格に見合わず結構高品質で印刷されて満足しています。カラー印刷は4色インクなのでメイン機には見劣りするものの、モノクロ印刷では顔料系インクということもあり、滲みもなくかなり鮮明に印刷されます。この機種のインクは3色インクカートリッジとブラックインクカートリッジの2種類で2つのカートリッジの合計価格が5000円を超えます。設定でブラックインクのみも選択できるので、モノクロメインで使用する人はうまく節約することもできます。

Wifi接続がなかったり、排紙トレイが無かったり、機能的にはシンプルですが、あくまでサブ機としてみた場合はかなり満足できる機種だと思います。

Canon インクジェットプリンター PIXUS iP2700

Canon インクジェットプリンター PIXUS iP2700

Arduino互換機を購入する際の注意事項

Arduinoを購入する際に価格が安い互換機も探す場合に注意事項を紹介します。
特にUNOの互換機にはUSB-Serial変換チップに純正品と同じATmega16U2ではなく、CH340Gが使われている場合があります。
これはArduino開発環境のドライバとは別にドライバのインストールが必要になり面倒なので、避けたほうが良いです。
コストを下げるためにCH340Gが使われており、この手の物は他の部分でも作りが雑で同じ互換機でもATmega16U2が使われているものよりが質が悪いことが多いです。
AliExpress等で中華互換機を探すと全体的にATmega16U2と比較して極端に安いものが多いですが、手間と質を考えるとATmega16U2の方が色々と楽になります。
(ATmega16U2の物は安くても800円前後するのに対して、CH340Gのものは300円ほどからある。)
またCH340Gは機能ICでUSB-Serial専用チップです。汎用コントローラのATmega16U2と違い、ファームウェアを書き換えてAVRライタにして遊んだりはできません。
始めは割り切って買ったとしても、後から色々と不具合が出るので、ATmega16U2が使われていることをチェックして購入することをお勧めします。

Arduino DUEでファミコンの三角波を再現

Arduino Dueのアナログ出力でちょっと遊んでみたと思います。

ファミコン三角波を再現してみます。
この三角波は正確な三角波ではなく、16段階の階段状になっています。

音を鳴らすにはスピーカーが必要です。
Arduinoエントリーキットに入っているような圧電スピーカーが手軽です。
+極をArduino DueのDAC0へ、−極をGNDへ接続してください。

三角波を出力するソースです。

#define RANGE     4095   // 12 bits DAC

// 16段階の三角波テーブル
unsigned int buffer_tri[] = {
    15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
};

void setup() {
  // DAC解像度12bit
  analogWriteResolution(12);
  // 16段階の三角波テーブルをアナログ出力値に変換
  for (int i = 0; i < 32; i++) {
    buffer_tri[i] = (unsigned int)(RANGE * (float)(buffer_tri[i] / 15.0f));
  }
}

void loop() {
    // 実行開始からの経過時間で三角波テーブルの使う値を計算
    int times_us_one = (int)((1000000 / 440) + 0.5); // 440Hz A(ラ)の周波数
    int times_mod = micros() % times_us_one;
    int f_no = times_mod * 32 / times_us_one;
    // DAC0からアナログ電圧出力
    analogWrite(DAC0, buffer_tri[f_no]);
}

この出力結果の波形です。
(DSO203 ポケット デジタルオシロスコープでの計測結果)


きれいな階段状の三角波になっています。

これを応用すれば、自作のアナログシンセも作れそうです。

Arduino Dueは少々高価ですが、互換品も検討してみてください。
純正品とAliExpressから$15程で購入した互換品も全く同じ動作をしているので、問題はないと思います。

Arduino エントリーキット(DUE版)

Arduino エントリーキット(DUE版)