Category: 電子工作Page 1 of 3

MP3プレーヤーをつくった

ここ数年、iPhoneやAndroidの音楽プレーヤーアプリが、アップデートで使いづらくなったり、起動が遅くなったり、一時停止時に再生箇所を忘れるようになったりしてきました。使いやすさと買い切りの潔さが好きだったTune Inというラジオアプリも、いまでは起動するたびにサブスクリプション会員の広告を全画面表示してくるのでつかいたくなくなってしまいました。 横道にそれますが、AppleもGoogleも他の有名アプリ企業の多くも、ユーザを無視して社内のKPI達成だけが重視されたり、たかだか数年というretentionの中で、なにかを変えた感じを出したい人たちによって、その場しのぎの見た目の変更が繰り返されてきました(Youtubeのバックグラウンド再生の廃止(それによって引き起こされる環境負荷)、Dropboxのデザインの崩壊や、標準音楽アプリでの過激なApple Music推し・音楽再生機能の劣化。スケールの小さいところではFeedlyのUIの劣化)。 なんというか、iPodや初期のiPhoneを使っていたころのワクワクした感じはなくなってしまっています。テクノロジーが退化していってる感じがします。 ということで、音楽プレーヤーアプリが使いづらくて、家事やシャワーの間に音楽をかけたりするのが面倒になってきました。劣化していく一方の携帯電話のアプリには頼らないで、現実の世界でのものづくりとか、タンジブルなインタフェースに揺り戻すのがいいのではないかと思って、自分でMP3プレーヤーを作りました。 内側はAliexpressで買ったMP3再生モジュール(GPD2846A)と、スピーカーと、単三電池(eneloop)×3。スイッチはSim Lim TowerのASK Electronicで買ったスイッチ。MP3再生モジュールは、US$0.5です。信じられませんが、この値段で変えます。FATでフォーマットしたMicro SDカード(ベーシックな”SD”規格のものを使いました。SDHCとかSDHXは試していません)にMP3ファイルを書き込んで、電源を入れると自動的に再生が始まります。プレイリストをつくったりはできませんが、次/前の曲へのジャンプはできるので、昔のミックステープみたいな感じで聞くことになります。ケースはAutoDesk Fusion 360で設計して、3D Print Singaporeで出力してもらいました(出力がGD31、送料SGD4の合計SGD35 = 3000円くらい)。 やっぱり自分でつくったものは愛着がわきます。電源を入れてすぐ使えるのも、家事やシャワーのときに使うのにあっていました。 Qiitaにも(型番は違うけど見た目は)同じモジュールをつかった方のレポートが載っていて、とても参考になりました。 aitendoの「MP3V375SW3」でMP3プレイヤー製作

赤外線リモコンで光る・鳴るおもちゃ (Arduino Nano工作)

リモコン遊びが好きな小さい子ども(1〜2歳くらい)向けに、リモコンのボタンを押すとLEDが光ったり、ビープ音がなるおもちゃを作りました。Aliexpressで購入したArduino Nano互換機と、日本に行ったときに秋月電子で買った電子ブザーとLEDをブレッドボード上で組み合わせています。 ・Arduino Nano互換機: RobotDyn NANO V3 CH340G ・ブザー: PD04-SE12HPR  ・赤外線トランシーバ: 型番不明 ・LED: Aliexpressでまとめ買いしたLEDのなかなからオレンジ色を選択。 家の中に実際にある家電のリモコンを自由にさわれるようにすると、何がなんだかわからなくなるので、ダミーのリモコン(今回の場合は、賃貸のマンションに昔あったと思われるエアコンのリモコン)で遊んでもらいます。 ソースコードは以下の通りとても簡単。今回は実際に送信されているデータの中身はみないで、何かデータが受信されたらLEDを点滅させて、ビープ音を鳴らします。Arduino Nanoはハードウエアのシリアルポートが1個しかなく、このボードではそのポートがCH340G (USB-シリアル変換チップ)に接続されているので、赤外線トランシーバモジュールからのシリアルデータはSoftwareSerialで受信しています。 この赤外線トランシーバの電源とI/O電圧は5Vなので、Arduino Nano互換機の方も5Vで動作させています。

mbed NUCLEO-F401REでWS2812BのフルカラーLEDストリップを使ってみた

2017年にAliexpressのこのお店から買って積んだままになっていたWS2812B搭載のフルカラーLEDストリップを動かしてみた。といっても、WS2812用の汎用ライブラリ(各ボードのクロックにあわせて、NOPの個数を調整することで、WS2812が要求するpulse width modulationの波形を出力するもの)を使っただけ。 いくつかの代表的なボードについては、WS2812_Exampleのページの方に、コンストラクタで指定すべきNOP数が掲載されています。Nucleo-F401RE用のものが運良く載っていたので(コンストラクタの引数の順番に、3, 12, 9, 12)、そのまま使わせてもらいました。 ボードのD8ピンと、LEDストリップのデータピン、GNDとGND、5Vと5Vを接続。上記コードをコンパイルして書き込んで実行すると、虹色が動いているように光ります。フルカラーLEDはじめて使ったんですが、すごいキレイ。いくらでも見てられます。

macOS SierraからNucleoに書き込みできないとき

Nucleo-L432KCにmacOS Sierraから書き込めない 数日前に雷ガンマ線実験の新しい電源管理ボードのマイコンとして使っている、mbedマイコン「Nucleo-L432KC 」に新しいプログラムを書き込もうと思ったところ、MacからではUSBドライブとして認識されるものの、プログラムの花にファイルをドラッグドロップしても、ファイルとしてコピーされるだけでマイコンそのものへの書き込みとリセットが動きませんでした。 新しいファームウエアのダウンロード 2ヶ月ほど前に、このボードを受け取った直後に試験したときはプログラムの書き込みはMacからできたので、困ってしまいました。特に設定を変えたわけでもないので、弱ったなと思っていたところ、何年か前にもファームウェアをアップデートすると書き込めるようになったことがあることを思い出しました。 それで、ST MicroのNucleo-L432KCのウェブサイトから、新しいファームウエアのインストーラ(STSW-LINK007)をダウンロードしてみます。以下のスクリーンショットの水色の「ソフトウエア入手」ボタンをクリックすると、ライセンス契約の画面がでるのでACCEPTをクリック。メールアドレスを登録すると、そのメールアドレスにダウンロード用のリンクが送られてきます。 インストーラの起動 NucleoをUSBケーブルでMacに接続してから、インストーラのアイコンをダブルクリックします。 インストーラはJavaのプログラムなので、Homebrew等をつかって としてインストールしておきます。 インストーラの初回の実行ではセキュリティ設定によって起動がキャンセルされるかもしれません。システム環境設定→ セキュリティのウインドウを開いて、実行を許可するボタンをクリックしてから再度インストーラをダブルクリックすると起動できます。 ファームウエアの書き込み 以下のようなウインドウが出てきます。一番左上のドロップダウンメニューにST-LINK/…と言う文字が出ていれば接続したボードが認識されています。Open in update modeをクリックすると、ファームウエアの書き込みモードでボードを接続しなおしてくれます。 Upgradeボタンをクリックするとファームウェアの書き込みが始まります。書き込みは10秒くらいで終わると思います。 ファームウエアの更新後、プログラムを書き込めるようになりました よかったです。これで無事にMacで開発がつづけられます。さっそく電源管理ボードに新しく搭載してもらったI2C シリアルROM (EEPROM)のAT24C512Cの動作を確認したところ、書き込み・読み出しができることがわかりました。実はEEPROMに自分のプログラムからアクセスするのは初めてだったので、新しく使えるデバイスが増えて、ちょっと感動です。(最初、自分で書いた回路図に書かれていたAT24C1024Cという部品番号を信じて、256バイト単位でアクセスしたら書き込みも読み出しもできなくてはまったのですが、P板.comでの部品実装の際に、部品の入手性の問題で実際にはAT24C512Cを実装してもらっていたことがわかりました。AT24C512のブロックサイズである128バイト単位でのアクセスに変更したところ、ちゃんと動作することが確認できました)。

Zynqを使ったデータ取得(DAQ)ボード

大学の同期でいまはJAXAの石川くんの、Zynqを使ったデータ取得(DAQ)ボードが論文としてでていました。 High-speed X-ray imaging spectroscopy system with Zynq SoC for solar observations, Ishikawa et al. 2017 (arXiv) 豪華にZynq XC7Z045を載せたベースボードに、ドーターボードとして200Msps/12bitのADCを載せたりできるようです。石川くんの実験では太陽フレアのロケット観測向けにCMOSセンサを読み出すそうです。すごいね。消費電力は11Wということなので、やっぱり上のクラスのZynqは消費電力が大きいですね。  

フィリップスの湯沸かし器を修理した – シンガポール日記 Day 565

引っ越してきてオーチャードのOG(小型家電はベスト電器よりお買い得なことが多い)で購入したフィリップスの湯沸かし器。お茶屋コーヒーを飲むときにすぐ(1分くらい)でお湯が湧くので、購入後1年半ほど便利に使ってきました。 数日前に、持ち上げると中(湯沸かしの水を入れる部分じゃなくて、底の部分)でカラカラと音がなるようになってしまいました。通電時には1800Wも消費して、おそろしい熱量で水を沸騰させるので、中で中途半端にショートしていたりすると、本体部分なんか簡単に溶けてしまいます。危険なので修理することにします。 裏蓋を外す 3つのネジのうちの一つがいじりどめのネジになっています(マイナスネジの真ん中が膨らんでいて、普通のマイナスでは回せない)。幸い、昔Macの修理用に購入した特殊ドライバセットに対応するビットがあったので取り外すことが出来ました。 Amazonだとたとえばこのセットに入っていますね。 https://www.amazon.co.jp/AC6088A-38in1特殊ドライバーセット-ヘクスローブ-iphone5-ハッピーセット/dp/B00ASARYZQ 接点を固定するためのネジが外れている 蓋をあけてみると、ネジが外れて転がっていました。これがカラカラ音の原因。このネジは台座から電源供給を受ける接点部品を固定するためのもののようです。写真の左下のネジ穴にネジがハマっていないのがわかります。これのネジを締め直して修理完了です。 蓋を閉じて抵抗を測定 万が一どこかをショートさせていると怖いので、手持ちのテスターで抵抗値を測定したところ、35Ωくらいだったので大丈夫なようです。商用電源の電圧が240Vだとすると、お湯を沸かしているときは240 V / 35 Ω = 6.8 Aも流れるようです。そりゃはやくわきますね。。。すごい熱量。  

Maker Faire Singapore 2017 – シンガポール日記 Day 493

2017年07月22日(土)のおはなし。 去年のSUTDでのMaker Faire Singapore 2016に続き、今年も行ってきましたMaker Faire Singapore 2017。今年の開催場所はジュロンにあるScience Center(子ども科学博物館)。本当はmakerとして参加したかったのですが、いくつか検討していた作品がどれも完成しなかったので来年に持ち越し。ただの見学者として参加です。(2月にあった事前説明会 Towhallには行ったけど、結局申し込みできず→ その時の記事「Makers Townhall at Science Center – シンガポール日記 Day 332」) まとめ 展示内容 他に唯一参加したことがあるMaker Fair Tokyoとくらべると、シンガポールは以下のような特徴があるように感じます。 小中高校生の展示が多い(発表・質問への受け答えが堂々としている) 日本のSTEM教育もどんどん世界標準のデバイスや教育プログラムをとりこんで、ガラパゴス化しないようになるといいですね。部活動でスポーツをやるのもいいけど、(英語と)数学と科学とプログラミングができるようになっておくと後々の年収に大きな差がつきます。 電子工作系のプロジェクトでArduinoやRaspberry Piよりもmicro:bitの使用率が高い…

NucleoとmbedのWeb IDEと加速度計で傾きアラームをつくる

メイカーの趣味を実生活に役立てるため、傾きに応じてブザーがなる装置をつくることになりました。以下が、ブレッドボードでプロトタイピングしたものの動作イメージ。 使用した部品 以下の部品を使用します。マイコン制御が必要なときにいつも使っているNucleo + mbedの組み合わせです。 Nucleo-L432KC (ブレッドボードにさせるCortex-M4マイコンモジュール) 加速度計 LIS3DH(秋月電子のDIPモジュールAE-LIS3DH) この加速度計をI2Cで読み出すためのライブラリはすでにを使うと一瞬です。 3軸の加速度情報がfloat[3]で取得できます。 裏面のサーフェスジャンパを3個ともはんだ付けして、I2Cで読み出せる設定にします。このモジュールのI2Cのアドレスは0x30になります(あとでライブラリのコンストラクタに渡すときに使います)。 ブザー (発振回路内蔵で電圧をかけるだけで音がでるもの; 秋月で100円のPB03SD12を使用) NucleoのGPIOピンの出力を直接接続。 配線 ブレッドボードにならべて、以下のようにピンを接続します。 プログラム開発の手順 mbedのウェブ上のIDEで、Nucleo-L432KCをプラットフォームとして追加し、新規プロジェクトを作成。テンプレートは”Display a message on PC using UART”等でOKです。 メニューバーのImportボタン→ 検索フィールドからLIS3DHを検索。Kenji…

レーザーカッターでジョイスティックの台をつくる

シンガポールでMakerになろうと思って、最近では2016/2017年の年末年始にESP8266でIoTボタンをつくったり、レーザーカッターを使えるファブスペースを見学したり、レーザーカッター用のMDFの板が買えるお店を調べたりしました。 3D CADとレーザーカッターの練習のためにアーケードゲーム用のジョイスティックを作ってみたのでまとめておきます。 ジョイスティックの部品の注文 1月ごろにAliexpressで部品を注文。ジョイスティックとメインのボタンが8個、制御用(コイン投入とかスタートに割り当てる小さめの)ボタンが2個、USBインタフェースボードと接続用のケーブル類がセットになってUSD 17くらい(2000円くらい)。配送に2〜3週間かかるけど、基本コースなら配送料は無料。 CADはAutodesk Fusion 360にしました CADは無料でつかえてほとんどプロフェッショナル向けと同等の機能がそろっているAutodesk Fusion 360にしました。でも、マニュアルやチュートリアルを見ずに直感で作業しようとしたら、これまで慣れ親しんだSketchUpと設計の進め方がぜんぜん違って、うまく使いこなせません。ビデオのチュートリアルはあまり好きではないのです、しょうがないなと思いつつ以下の「Designing a Lasercut Laptop Stand with Fusion 360」というビデオをみたところ、一気にやりたいことができるようになりました。このチュートリアルはおすすめ。英語の勉強にもなります。 レーザーカッター用データの作成 日曜日の夜に、録画してあったブラタモリをみながら図面を描きます。手順はほとんど上のビデオのとおり。 天板は280mm×200mm、側面板は高さ40mm。強度をたかめるために、側面板の間に、梁を2本わたしています。 大きい方のボタンの穴は直径3cm。小さいボタンは直径2.5cm。ジョイスティックの芯の穴は直径2cm、固定用のネジ穴は4.5mmにしました。 以下で紹介するオンラインで発注できる(シンガポールの)レーザーカッターサービスを使おうと思っていたので、板厚は4.5mmにします。上のチュートリアルにでているように、板厚をパラメタにしておけば、設計後に別の板厚にしないといけなくなっても簡単に変更可能です。 レーザーカッティングサービスを選ぶ 今回はThe Maker Storeというお店のレーザーカッティングサービスを利用しました。オンライン見積もりはできなくて、メールでDXF/Illustrator/EPS形式のファイルを提出して見積もりしてもらいます。…

Makers Townhall at Science Center – シンガポール日記 Day 332

昨日、Science Centerで開催されたMaker Faire Singapore 2017の説明会に参加してきました。4日間にわたるMaker Summit (キーパーソンによる講演)、Maker Conference (トーク)、Maker Faire (メイカーによる展示)のそれぞれのイベントの紹介と、会場となるScience Centerの施設のツアーがありました。 Science Center内の展示は、昔通った地元の児童会館(七尾児童会館)を思い出させる、古き良き科学館という印象。お土産屋さんも懐かしい感じで、とても味があっていい感じです。緑色の丸が縦に2つ並んだ装置は、チェーンで一番上まで運ばれた金属のボールが不思議な形のレールを転がってくる装置。こういうのは、いつまでみてても飽きません。 出展申し込みの第一弾締切は2017年4月末。シンガポールは雷が多いので、雷雲実験のガンマ線検出器と、できればもう一つ、面白い工作を出せたらいいなと準備中 Show and tell (すごいでしょ、と見せる面と、あなたにもできるんですよ、と原理や作り方を伝える・encourageする面)が重要ということなので、tellの部分もちゃんと準備しようと思います。