電子趣味の部屋

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

安いのにすごいSHANLING M2sを買いました

SHANLING M2sを買いました

元々はUSB DACを探してたのですが、色々調べていいうちに、このプレイヤーにたどり着きました。

これはいわゆるハイレゾ対応のオーディオプレイヤーです。

384kHz/32bitまでの再生に対応しています。
2万円前半(安いところでは2万円切るくらい)で販売されています。
ヨドバシカメラで購入したのですが、21,900円でした。

一緒にハイレゾ対応のPHILIPS SHE9730 (ハイレゾ対応カナル型イヤホン)を購入しました。


SHANLINGはオーディオファン以外はあまり知られていないメーカーですが、30年以上の歴史がある中堅メーカーです。委託開発したり、OEM提供が中心だったようですが、最近自社ブランドでも提供を始めたようです。

特徴はDACにAK4990とアンプにローパスフィルターのオペアンプにMUSES8920と日本メーカーがこの価格帯では絶対に採用しないような高性能なものが使用されています。

音質はこの価格帯ではかなり良い方らしいです。ハイレゾ対応機器は今回が初めてで比較対象がないのですが、ネットでの評判はかなり良いです。

メイン機能はオーディオプレイヤーなのですが、USBでPC等と接続すれば、USB DACとして使用できたり、Bluetoothのレシーバにもなるので、ミニピンジャックが無くなったiPhoneで重宝しています。

結局自分の使い方では音楽プレーヤーというより、Bluetoothレシーバとして使う方が多いですが、音質も良く多機能なので、1つ持っておくことをお勧めします。

 

安物ポータブルアンプがオペアンプ交換で生まれ変わった話

安価な中華ポータブルアンプを買いました。

f:id:uosoft:20161019110626j:plainVbestlife XU09

Aliexpressで2200円(送料込み)でした。
性能は価格通りで高音が弱かったり、ボリュームを上げるとかすかにホワイトノイズが乗ったり、ただ音量を増幅してるだけというような印象でした。

ただ、このアンプば別の特徴があり、オペアンプが丸ピンのソケットで実装されているので、簡単に交換できます。

始めに乗っていたオペアンプはOPA2604APでした。これはそこそこ良いアンプで普通に買うと500円以上はするはずです。
試しにLM358に交換してみると、音がそっくり。どうも刻印だけ変えた偽物の可能性が。(本物が手元になく聞き比べをしたわけではないので、断言はしません)

f:id:uosoft:20171225003228j:plain

これを秋月電子で購入した1個480円のMUSES8920Dに交換してみました。

f:id:uosoft:20171225003352j:plainf:id:uosoft:20171225003353j:plain

これが効果てきめんで、音質が大幅に向上しました。
ホワイトノイズが消え、高音も無理なく広がり透き通った印象の音に変わりました。
回路自体はお決まりのアンプ回路で作られていると思われるので、パーツさえ良いものを使えば性能もそのまま上がるように思えます。

これに味を占めて、秋月電子で1個1,450円のOPA2107APを注文してしまいました。
2個必要なので、この時点で本体価格の1.5倍ほどの価格になってます。
余裕があれば写真に見える5個の電解コンデンサも交換して更なる音質向上をしてみたいと思います。

形状からアマゾンにあるNeoteck ポータブルヘッドホンアンプと同一のものと思われます。

 

ArduinoでFM音源シールド作成3 (YM2413)

久しぶりにFM音源のArdunino用シールドを作ってみました。

今回はYM2413のシールドで、ArduinoでFM音源シールド作成 (YM2413)で作ったシールドを基に、もっとブラッシュアップして、基板を発注して作ってみました。

まだシルク印刷でコンデンサの極性を入れ忘れたり、もっとシンプルな回路で高音質にできないか試行錯誤してる試作段階ですが、なかなかきれいに仕上がりました。

f:id:uosoft:20171105225556j:plain

Y2413シールド

基板を発注したのはスイッチサイエンスのPCBサービスです。

 鉛フリーハンダを選択して10枚で2090円でした。(送料は別で1080円です)

10枚以下でも同じ金額なので、10枚にしてみました。オプション料金なしでレジスト色を選べるのもうれしいです。

注文から到着まで3週間ほどかかりました。

Eagleで設計し、技術ガイド - スイッチサイエンスを参考にしながらガーバーデータを送るだけで特段難しいこともなく発注できました。

写真の通り価格の割には結構品質は高いと思います。

 

もっと完成度が高く成り次第、基板配布や回路図公開等を行うかもしれませんので、興味のある方は、あまり期待をせずにお待ちください

 

【永久保証付き】Arduino Uno

【永久保証付き】Arduino Uno

Genuino Uno

Genuino Uno

MSXで遊ぶ! BASICプログラムのROM化

MSXでBASICプログラムをROM化して遊びたいと思って調べてたところ、手順を書いたページがありました。
MSX Datapack3章 カートリッジソフトの作成法
このページのBASICプログラムのROM化の方法に書いてあるIDの作成をそのままBASIC画面で実行するとメモリの内容が書き変わってしまい、なかなか上手くいきませんでした。
要はBASICのテキスト格納先頭アドレスを8021Hにして、先頭の32バイトを書き換えれば良いことが分かり、一度8000H〜BFFFHで保存してPC上でバイナリエディタで書き換えてれば成功しました。
このやり方の手順を紹介します。


BASICのROM化方法

BASICプログラムを用意する

今回は例として1から10を表示する簡単なプログラムを作成して、"test1.bas"というファイル名で保存しました。

10 FOR I=1 TO 10
20 PRINT I
30 NEXT
save "test1.bas"

BASICのテキスト格納先頭アドレスを変更してバイナリを保存

BASICのテキスト格納先頭アドレスを8021Hに変える。

POKE &HF676,&H21:POKE &HF677,&H80:POKE &H8020,0:NEW

これは必ず1行で実行してください。

保存したBASICプログラムをロード

load "test1.bas"

BSAVE形式で8000H〜BFFFHを保存する
今回は"test1.bin"というファイル名で保存しました。

bsave "test1.bin",&h8000,&hbfff

PC上でバイナリを編集

保存したBSAVE形式のファイルをPC上の適当なバイナリエディタを使用して編集します。
ここで行うことは2点です。
・BSAVE形式のヘッダ部分(先頭から7バイト)を削除する
・ID部分(BSAVE形式のヘッダ部分削除後の先頭から32バイト)を下の値に書き換える

41 42 00 00 00 00 00 00 20 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
アドレスの00,01,80,09以外はすべて00です。

今回は編集後のファイルを"test1.rom"というファイル名で保存しました。

編集前(test1.bin)


編集後(test1.rom)

実際に動かしてみる

作成したROMファイル(test1.rom)をエミュレータ(blueMSX)で動かしてみました。

無事にBASICプログラムが実行されています。

Mega Flash ROMに書き込んで実機で動かそうと思いましたが、リセットを繰り返すばかりで上手く実行できませんでした。これに関して、もう少し調査が必要そうです。


80年代マイコン大百科

80年代マイコン大百科

レジェンドパソコンゲーム80年代記

レジェンドパソコンゲーム80年代記

  • 作者: 佐々木潤,レトロPCゲーム愛好会,エマ・パブリッシング
  • 出版社/メーカー: 総合科学出版
  • 発売日: 2014/12/18
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (1件) を見る
激レア! お宝発掘!! 80年代マイコン読本

激レア! お宝発掘!! 80年代マイコン読本

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を使うことで、相互に通信するアプリや、常時通信するアプリがより開発しやすくなります。