2017年6月25日日曜日

macOS 10.12 Sierraでが見つからない場合の解決方法

macOSにアップデート後、<string.h>が見つからないとg++コンパイラに言われるようになりました。Google先生に聞くとすぐに出てきました。


問題

macOS 10.12 Sierraで<string.h>が見つからないと言われる


解決方法

ターミナル.appを開き

xcode-select --install

を実行します。終わり。

string.hが見つからないと表示され、アクセス管理周りとかを想像しましたが、案外すんなり解決したのでよかった...

2017年6月24日土曜日

macOS 10.12 SierraでUSBシリアルデバイスを接続するとクラッシュする問題

そろそろ問題なさそうだったのでmacOSのバージョンをSierraにアップデートしたところ、3Dプリンタ(Kodama Trinus)との接続時にカーネルパニックを起こしてクラッシュするようになりました。解決したのでまとめます。


問題

macOS 10.12(Sierra)にUSBシリアルデバイスを接続するとOSがクラッシュする。


解決方法

CH340系統のUSBシリアルデバイスを接続するとクラッシュするようです。CH340といえばFTDIに並び、中華Arduinoによく搭載されているUSBシリアルのチップです。どうやらkextが悪さをしているようですが詳細は不明。
調べると有志の方がSierra対応のドライバを出していました。

Signed Mac OS Driver for Winchiphead CH340 serial bridge

https://blog.sengotta.net/signed-mac-os-driver-for-winchiphead-ch340-serial-bridge/




ダウンロードの場所


この情報の出所は以下のページです。

OSX Always Crashing - Kodama Forum

2017年6月3日土曜日

大学編入して2ヶ月が過ぎたのでまとめ。

高専から、地方の大学に編入して2ヶ月が過ぎました。同時に下宿を始めて同じく2ヶ月です。
大学生活を始めて、良かったことも悪かったこともそこそこあったので備忘録の意味も込めてまとめます。高専からの編入を考える人が見てくれたらいいなぁ。

大学の良いところ


楽しい講義

楽しい講義が多いです。全く関係ない学科でも興味のある講義を聴講できたり、履修できたりするので、新しい分野に触れられます。自分は人工知能に関連して脳神経科学に興味があったので、それ系の講義を受けていますが今までネットで調べていたのが馬鹿馬鹿しくなるくらいの知識の宝庫です。知らないことは調べられないというのを痛感しました。

高専生は強い

 編入生だと自己紹介をすると、大体高専生優秀だよねという反応が返ってきます(本当に)。私の編入した大学は地方とは言っても旧帝大、センター試験を受けて進学した人たちは、進学校で優秀な成績を収めてきた猛者たちです。出身を聞いてみると高専に進学した私たちの1ランク2ランク上の進学校の名前が出てきてビビります。どう考えても彼らの方が優秀そうな気がするのですが、実際のところ高専生は対等以上に戦えます。高専にも光と闇があるのでむやみに持ち上げることはしないですが、高専で鍛えられた実践力は高専生が思っている以上にすごいみたいです。
ただし、社会科目など教養に関わる部分は完敗という感じです。

成績リセット

 単位変換の過程で高専時代の成績は消滅しました。正確にはGPAに反映されていないという意味です。編入時に高専の単位を大学の単位に変換するのですが、単位の変換には1:1変換だけでなく1:2や2:1といった変換が存在します。GPAは取った単位の成績の平均で計算するのですが、等価交換でない変換が存在する以上、成績も同時に変換すると変換の仕方によって成績が変わってしまうことになります。おそらくそのため成績を変換しないのではないかと思います。ありがてぇ...

社会的ステータス?

 正直これについてはどうでもいいのですが、大学生であるというのと高専生であるというのでは世間の見方も変わります。大抵の人はそもそも高専生ってなんだよというところから始まるのでそれだけでも、大学生はステータス的に強い(ような気がする)です。


大学の悪いところ


ウェイな人たちがいる

 進学校出身の学生ばかりなのでそんなものいないと思っていた時期が私にもありました。一体どこで彼らが改造されているのかは非常に興味がありますね。潜在的ウェイが顕在化しただけかもしれないですが。ウェイな人たちはそれはそれで楽しんでいるので悪いところとも言えないです。

 私の学部は偏差値こそ高くても、学内ではゆるい部類らしくとても暇です。週19コマ入れているのでほぼ毎日4コマあるのですがそれでも暇です。座学ばかりで演習が少なく、課題がある講義も少ないので負荷があまりに低いです。座学にも内容があるんだかないんだか分からないものがちらほら存在するので、実質毎日3コマあるかないかくらいの気分です。出席とらない講義も多々あります。定期試験が恐ろしいですね。

交友関係

 編入生は既存の学部生に馴染みづらいです。3年にもなると受ける講義がバラバラですし、そもそも誰が同じ学部の同じ学科なのかよくわかりません。サークルに入ったり、積極的にアプローチしていかないと編入生で固まっているだけになります。それはそれで楽しいのですが、残り短い花の大学生活を満喫するためには入学してすぐに動き出す必要があります。


以上がまとめになります。高専から就職するのも楽でいいですが、大学に入るとさらに見識が広がります。高専生の実践力と大学の知識が合わさり最強に見えるのでオススメです。



P.S. お金の面

 大学にはお金がかかります。そうは言っても医学部に行くとかではない限り、学部2年間で私立でも二百万ちょっとです。国立なら百数十万くらい。しかし、お金の面は奨学金という名の無利息・低利息借金でどうにでもなります。借金してまで行くのかという話になりますが、生涯賃金がどの程度増えるのかということを勘定に入れてみましょう。奨学金を払ってもなお収入増になるか、プラマイゼロといったところです。2年間モラトリアムを延長し知識をつけてより有利に人生を進められると思えば全然アリな選択肢です。
 また、H29からJASSO奨学金には所得連動型の返済が追加されたので、就職後返済額が多すぎて辛いというような状況もかなり改善されると思います。
 世の中にはお金がなくて大学いけなかったというような話が溢れてますが、多くの場合、本人が何かしらの言い訳として言ってるだけか非常に昔の話です。間に受けないようにしましょう。本当にお金がない家庭にはJASSOは一種奨学金(利息なし)を貸してくれます。普通の高専生の学力なら編入試験は真面目に試験勉強をすればなんとかなりますし、お金の面も先述の方法で何とでもなります。
 無論、奨学金が通らないような家庭(親がヤクザとか金持ち)で、かつ資金援助が得られないような状況であればどうしようもないですが、世の中には驚くほど色々なサービスや団体があるのでしっかり調査することが大切です。

2017年3月27日月曜日

【Tips】Macのアプリケーションのアイコンを変える方法


今時のアプリケーションはお洒落で格好いい感じのアイコンが主流ですが、 古いアプリケーションや個人製作のアプリケーションには酷いデザインのアイコンがあったりします。

よく使うアプリケーションはDockに並べたいところですが酷いデザインのアイコンが混ざるとテンションが下がりますし、 他が綺麗な分目立ちます。

そこでアイコンを変更する方法を調べました。

※この記事は、Automatorで作ったアプリケーションがAutomatorのアイコンと同じになるので変更しようという趣旨で書いています。


方法



  1. アイコンを変更したいもの(フォルダとかアプリケーションとか)を右クリックして情報を見る(⌘I)を選択します
  2. ファイル名や拡張子などの情報が表示されたウィンドウが開きます
  3. 左上のアイコンの部分に好きなアイコン画像(.icns)をドラッグ&ドロップするとアイコンが変わります(すぐには適用されないので気になる場合は再起動)

変更後のアイコン


アイコン画像(.icns等)を作るには

Image2Iconというアプリがオススメです。 MacAppStoreで検索すると出てきます。 課金すると書き出せる形式が増えますが、 フリーでも.icnsに書き出せます。 

今回はいらすとやの「ネットオークションで落札できなかった人のイラスト(女性)」を使用しました。



他のアプリケーションのアイコンを使うには

アイコンを設定する際、icnsのようなアイコン画像だけでなく他のアプリケーションのアイコンを流用することができます。 画像をドラッグ&ドロップする代わりにアプリケーションやファイルをドラッグ&ドロップすることで設定できます。






【Tips】ターミナルウィンドウを無しでシェルスクリプトを実行する方法



Macでシェルスクリプトを実行する方法には.shのファイルを作ってターミナルから実行する、 .commandのファイルを作ってダブルクリックする方法があります。

しかしどちらの方法もターミナルアプリケーションのウィンドウが開いて鬱陶しいので解決策を探しました。 特に.commandは実行後にプロセスが完了しましたというウィンドウが残るので邪魔くさいことこの上ないです。


解決策


Automator.appを使います。 Automatorは昔からあるMacのアプリケーションで一口に言えばOS全域で使えるExcelマクロです。 作ったマクロはアプリケーションとして保存できるのでダブルクリックで起動するとマクロが実行されます。


方法


  1. Automatorを起動して新規書類を作成します
  2. 左側のサイドバーにテンプレートなマクロがまとめられているので、シェルスクリプトを実行するマクロを探します(検索窓に"シェル"と打てば出てきます)
  3. 出てきたマクロを右側のワークフローにドラッグ&ドロップします
  4. 好きなシェルスクリプトを打ち込みます(リストメニューからシェルも選べます)
  5. 保存(⌘S)でアプリケーションとして保存します
  6. ダブルクリックすればウィンドウなしで実行されます

デフォルトではアイコンがAutomatorのロボっぽいやつのままなのでアイコンを変更するとよりいい感じになります。方法はこちら

2017年3月22日水曜日

CraftWareがダウンロードできない問題

最近3Dモデルをスライスしてgcodeに起こすスライサーソフトを色々試しています。 Curaとかslic3rが有名ですね。

問題

CraftWareというソフトを見つけたので試そうとしたところダウンロードリンクが機能しておらず、 Mac版がダウンロードできませんでした。


解決策


WebインスペクタでwinのインストーラのURLを見て、そこから連想されるmac版のアドレスを打ち込んだらダウンロードできました。

直リンクはアレなのでURLだけ貼っておきます。 ホームページにもちゃんとアクセスするなどしてください(Cookieがどうのという案内が出ていたので直にアクセスしてもダウンロードはできないかもしれないです)。

https://craftware.craftunique.com/download/mac/CraftWare_1.14_and_CraftPrint_1.04

2017年3月3日金曜日

格安サーボSG90にバージョンがあった話

SG90というサーボモータはArduinoを使った電子工作界隈では非常によく使われているサーボです。 $2 以下の信じられない値段で売っています。 最近ロボットの製作に取り組んでいるのですが、 SG90に異なる仕様のものがあることに気づきました。

性能に差がなければそれでいいのですが、 若干差があるようなのでメモしておきます。 多くの中国製品の例にもれずコピーかとも思ったのですが変なところから買っているわけではないのでそうでもなさそうです(もしかしたらコピーかもしれませんが...)。


明らかに歯の異なる歯車

形の異なるサーボホーンを設置するための軸


左と右のサーボで細かな差異があるのがわかると思います。 左は2016年の7月ごろに購入したもの、 右は2017年の1月ごろに購入したものです。 最上部から見える歯車の歯数やサーボの軸の白いプラスチックの形状が異なることがわかります。コピーを行うにしてもわざわざ歯車を設計し直すことは考えにくいため、 いつの間にかバージョン変更があったと考えるのが妥当かと思います。 写真には写っていませんが、 サーボの制御基板自体も右側の新型(?)の方が小さくなって綺麗に収まっています。 可動時の音も新型の方が小さくなっています。

もっともここまでは新しくなってよかったというレベルなのですが、 左の旧型と右の新型ではサーボの軸の寸法が異なります。 旧型は直径4.7mm、 新型は直径4.9mmです(誤差はあると思います)。 また飛び出している長さに関しても旧型は2.6mm、 新型は3.4mmと大きく異なります。 当然新型の方が便利なのですが、 うっかり旧型設計でCADのモデルを書いたりすると困ったことになるので注意が必要そうです。

2017年3月2日木曜日

Kickstarterで投資する楽しさと注意点

2016年度にKickstarterで投資した5つほどのガジェット類が出揃ったのでまとめようと思います。まとめは下の方にあります。

※紹介しているものは出資を締め切っています。 プロジェクトが成功し一般販売を始めたものもあるので探せば買えるものが大半です。


Kickstarterとは


クラウドファンディングの一種で、 クラウドファンディングとは誰かがこんなものを作りたい広めたいという企画をWeb上で公開し、みんなでそれにお金を出してプロジェクトを支援するというものです。 クラウドと聞くとクラウドサービスみたいなものを想像すると思いますが、クラウドファンディング = Crowdfunding であり群衆(crowd)からfunding(投資)を集めるという意味の造語です。

投資とは企画にお金を払うことであり、 見ず知らずの人の企画にお金を出す意味がわからないと思うのですが、 これには企画する人と投資する人双方が得をするための仕組みがあります。 クラウドファンディングにはリワード(reward[褒賞])というものが用意されており、 投資額に応じて企画者からプロジェクトが達成された場合に何かしらの見返りがあるわけです。 例えば、新しいイヤホンを作りたいというプロジェクトでは$1の投資でステッカー(シール)$40の投資でイヤホン本体が送られてくるということが考えられます。 企画者は大抵、 大量の需要は見込めない物(マニアックな機械だとか自家製ソース、小説、映画e.t.c...)、 需要はあるけれどビジネスとしては成り立たない代物をプロジェクトとして出資を募ることが多いです。 企画者は実現しにくいプロジェクトのお金を集めて実行することができ、 投資者はプロジェクト成功の見返りに何かしらを受け取る、これがクラウドファンディングのいいところです。

ただし気をつけなければならないのはあくまでこれが投資であるという点です。 販売ではないのでお金を払えば品物が受け取れるという保証はありません。 お金を払うのは企画であって、 お金を払った時点で基本的に品物は存在しないからです。 出資を募ってみんなから集めたお金で開発したり製作したりします。 当然失敗すればそれでおしまいです。 決してお店では買えない物を生み出す素晴らしいプロジェクトが存在する一方で、 多額の投資を集めて失敗するプロジェクトや、 酷い出来のゴミが到着するパターンも存在します。

幸い、今回投資を行った5つのプロジェクトは無事完了しました。しかし当然問題もありました。


1. TRINUS(3Dプリンタ)




Kodamaという会社が企画した3Dプリンタのプロジェクトです。 全体が金属製パーツの3Dプリンタでありながら$299程度で本体を受け取ることができました。 積層ピッチ0.05mm、出力可能な体積は120x125x125でPLA・ABS・NylonなどPolymakerのフィラメントには全て対応しています。 動画のお兄さんが喜んでいるように非常にシンプルな部品構成で簡単に組み立てることができることも特長です。 この価格帯の3Dプリンタでは最強と言えるレベルの性能を持っています。 しかし到着は数ヶ月遅延しました。

最近時間が空いて使えるようになりましたが実に素晴らしい出来です。 日本ではDDDJapanというところが代理店をしているのでそこから購入できます(DDDJapanのTrinusのページ)。


2. OrbitKey 2.0(キーホルダー)




鍵がうるさく音を立てないキーホルダーです。 普通のキーホルダーでは鍵同士がぶつかりあってちゃりちゃり(?)とうるさい音を立てますがこのキーホルダーではそれがないため非常にスマートに鍵を持ち運べます。 あと見た目が結構格好いい。 2.0とついていることからわかるように最初に成功したプロジェクトのアップデート版です。 Kickstarterでは成功したプロジェクトの品物を改良して新しいプロジェクトを再び立ち上げるということも行われます。 既に2ヶ月程度使用していますが試用感・評判とも良好です。


3. Omega2(小型Linuxボード)




Omega2は以前あったOmegaという小型Linuxコンピュータの次世代版です。 性能の異なるOmega2・Omega2+の2つのバージョンを揃えそれぞれ$5、$9の出資で本体を受け取れます。 小型で低価格の本体にWifi(802.11 b/g/n)・Bluetooth 4.0(BLE expansion)・15のGPIO(PWMあり)とIoTのために生まれてきたようなコンピュータです。 CPUクロックは580MHzあります。


4. IoT HAT for Raspberry Pi




Raspberry Pi zero用のWifi & Bluetooth拡張ボードです。Wifi(802.11n)とBluetooth 4.1をRaspberry Pi zeroに追加できUFLアンテナもつなげる優れものです。 Raspbianネイティブのドライバで動くのでドライバ周りで苦労することはないです(やったことがある人はわかるかもしれないですが、Raspberry Piに市販のWifiドングルを繋ぐのはそこそこ大変です)。


5. Teensy 3.5 & 3.6




Arduino IDEでも開発が可能な高性能マイコンボードです。 性能に差のあるTeensy 3.5と3.6のモデルが$23、$28の出資で受け取れました。 既に先行しているTeensyがいくつもあり問題がないのかは知りませんがAliexpressなどでTeensy 2.0のコピー(?)をよく見かけます。 機能は挙げれば切りがないので省きますが、これがあればマイコンでしたいことはほぼ全てできると言えるレベルに仕上がっていると思います。 20以上のPWMは通常17DOF程度の人型のロボットを動かすのにも足りますし、RTCとmicroSDスロットが搭載されているので簡単な処理機能のついたデータロガーとしての活躍も期待できそうです。


投資して思ったこと


今回投資したプロジェクトのリワードは個人的に痒いところに届く絶妙なものばかりで届いた品物の完成度は十分に満足のいくものでした。 チームとはいえプロジェクトを実行するのは企業団体ばかりではないのでかなりの質のものが送られてきたことは素直に驚きました。 もちろん適当に投資を行ったわけではなくチームの信頼性や過去のプロジェクトの実績等を見てかなり堅実な投資の仕方をしたと思います(過去に成功しているプロジェクトは製造過程へのノウハウがあるのでその辺でこけにくい)。

しかしそれでもリスクはありました。特にTRINUSは高額であること、Kodamaがいまひとつよく分からない企業であったこと、度重なる遅延、チームからのUpdate(近況報告)の少なさと挙げれば切りがない始末でした。 結果的に素晴らしい品物が届きましたが、報告が少なすぎるため発送までのコメント欄はパラノイア状態の人で溢れかえっていました。


投資の楽しさ


どこにも出回っていないものが作り出されるのを支援すると言うのはとても楽しいです(届けばさらに楽しいし嬉しい)。 これがクラウドファンディングが流行った最たる理由だと思います。 企画者たちが試行錯誤して近況をアップデートするたびわくわくしました。 さながら有料のブログといったところでしょうか。 

もちろんガジェットだけではなく、 プロジェクトの中には秘伝のソースをたくさん作って分けてあげるから投資してほしいといったものもありました。 海外の家庭の味もまた決して簡単に得られるものではないので非常に魅力的に思います。


投資の注意点


Kickstarterで投資する場合に注意すべき点は以下の通りです。

  • 利益が含まれないので一般販売よりも安い
  • 目標額の出資が集まらなければプロジェクトはキャンセルされる
  • 上記の理由でプロジェクトがキャンセルされればお金は戻って来る
  • プロジェクトは必ず失敗のリスクが伴う
  • 失敗した場合に返金される保証はない(戻って来る場合でも時間がかかる)
  • 予想外のお金がかかることがある(通関や仲介業者の手数料)
  • 届いた品物の品質は保証されない
  • 製品保証はない
  • プロジェクトの説明が適当だったりするプロジェクトには出資するべきではない

随分と恐ろしい感じになりましたがこれは間違い無く注意点です。 しかし、これらのリスクを背負ってでも出資をする価値はあると思います。 現に多くの人が利用していますし、 それだけ人を惹きつける魅力があるということです。 ただしKickstarterのようなクラウドファンディングを利用する際にはそれがショッピングではないということを必ず胸に留めておくべきだと思います。

2017年1月31日火曜日

【Tips】ArduinoとPWM

LEDの明るさを変えたりサーボモーターに角度の信号を送る時、PWMというものを使います。 Arduinoを使ってDIYをするときに避けては通れない道なので、簡単にまとめます。


PWMとは


PWMとはPulse Width Modulationの頭文字を省略した略語で、パルス幅変調という意味です。 平均電圧を変化させることで0Vと5Vしか出力できないコンピュータで1Vや2.5といった電圧を出すために使います。


仕組み


ArduinoでdigitalWrite()関数を使うとき、ピン番号を指定してHIGHやLOWと書きますが、これは電気的には5Vと0Vです。 よくコンピュータの世界は1と0でできていると言われますが、電気的に言えばコンピュータは1を5V、0を0Vとして動作しています。 逆に言うと、1Vや2.5Vのような中途半端な電圧を使うことはできません。

しかし、LEDの明るさを変えるためには電圧を変化させる必要があります。 昔、理科の実験で豆電球を光らせたことがあると思いますが、豆電球は電圧を高くするほど明るく、電圧を低くするほど暗く光ったはずです。 LEDにも同じことが言えます。

そこで必要になるのが平均電圧という考え方です。 時間あたりに5V(HIGH)になっている時間を1秒間5Vを出力すれば平均電圧は5Vとなり、0.5秒間5Vを出力して0.5秒間0Vを出力すれば平均電圧は2.5Vになります。 下の画像では1秒間うち0.5秒間5Vを出力したものと、1秒間のうち0.2秒間5Vを出力した場合のグラフを示しています。


LEDを点滅するスケッチを描いてみると、平均電圧が2.5Vになる方が平均電圧が1Vの時よりもLEDがよく光ることがわかります(時間を1秒にすると点滅してしまうので、5ミリ秒くらいに調整してください)。

つまり5Vと0Vを切り替えることで電圧が変わっているのと同等の効果を得ることができます
そして、5Vになっている時間のことをパルス幅といい、この幅を変えることを変調と言っています。 これがPWMという名前の由来です。


デューティー比

先の画像の電圧のグラフでは、5Vにしている時間と0Vにしている時間が変わると平均電圧が変わることが分かったはずです。 この時間の比をデューティー比と言います。 平均電圧2.5Vであればデューティー比は50%、平均電圧1Vであればデューティー比は20%です。


ArduinoでPWMを使う


一定時間ごとに5Vと0Vを切り替えることで、電圧を変えるのと同等の効果が得られることが分かりましたが、loop()関数の中でいちいちdigital(10, HIGH)とかやるのは面倒です。 また、Arduinoに2つLEDを繋いで、別々の明るさにしたい時にはさらに面倒なことになります。 そこでArduinoにはPWMの機能を簡単に使えるようにした関数が用意されています。

analogWrite(10, 127)

これは10番ピンにデューティー比50%のPWM信号を出力するという意味です。 オシロスコープを使って波形を見るとArduinoが5Vと0Vを勝手に切り替えてくれているのが分かります。 この関数では、デューティー比0%から100%を0〜255の数字に割り当てています。つまり、数字が大きいほど平均電圧が高くなり、LEDを繋いでいればLEDがより明るく光ることになります。

PWM機能が使えないピンがある

便利なPWMですが、実は使えるピンの番号と数が決まっています。Arduino Nanoでは下の画像のPWMと書かれているD3、D5、D6、D9、D10、D11の6つのピンでしかPWMを使うことはできません。



2017年1月30日月曜日

【Tips】Arduino Nanoで測距センサーを使う方法

Arduino Nanoで超音波測距センサーHC-SR04を使ってみようと思います。

超音波測距センサーとは

超音波測距センサーはソナー(Sonor)とも呼ばれる部品です。スピーカーから超音波を飛ばし、物に当たって跳ね返ってきた超音波をマイクで拾うことで距離を測ります。

音は340[m/s]で進むので音を出してから音を拾うまでの時間を計れば音の進んだ距離がわかるという仕組みです。




回路図


回路を次のように接続します。5Vの位置が分かりにくいですが間違えないようにしてください。



ちなみにArduino Nanoのピン名は以下のとおり。




プログラム



説明


31行目

pulseIn()関数はピンの入力がHIGHかLOWになっている時間を返す関数です。上のプログラムではpulseIn(echo, HIGH)としているので、echo(D11)ピンがHIGHになるとHIGHになっている時間を計測してマイクロ秒で返してくれます。

37行目

この行では距離を計算しています。単位変換を行っているので謎の数字が入っていますが、本質は単純です。




このことを念頭に置いて時間と距離と速さの関係を考えてみます。音速は340 [m/s]で一定なので音の移動時間が判れば、音の移動した距離が分かることになります。



プログラムではduration/2となっていますが、これは距離を半分にするためです。音はスピーカーから出て壁に当たり、マイクに入るという経路を移動しているため、音が移動するのにかかった時間は実際には往復時間となるため半分しているわけです。


動作確認


測った距離を表示するためのディスプレイがArduino Nanoには無いので、今回のプログラムではシリアル通信を使ってコンピュータにデータを送っています。Arduino IDEにはシリアル通信で送られてきたデータを表示するためにシリアルモニタという機能が付いているので使ってみます。Arduino IDEのウィンドウの右上(下の画像の赤丸のところ)をクリックすると、データが表示されると思います。



以上です。訂正等は下のコメント欄へどうぞ。

2017年1月27日金曜日

【Tips】タイトルバーの無いアプリケーションにキー入力をする方法



公開した『Aoica's Nihongo Tool』の製作にあたって、タイトルバーの無いウィンドウを作成したところ、Storyboard上でViewに配置したNSTextFieldにどうやってもフォーカスを合わせることができない(入力できない)という問題に突き当たりました。

ボタンは押せるのでウィンドウはアクティブであろうという仮定の元、調べた結果、canBecomeKeyというBOOLの変数がtrueだとキーウィンドウ(キー入力を受け付けるウィンドウ)になるということが分かりました。


問題点


タイトルバーの無いウィンドウにキー入力をすることができない

押せないNSTextField


解決方法


NSWindowのサブクラスMyWindowを新たに作成し、canBecomeKey: BOOLのgetメソッドをoverrideし、常にtrueを返すようにすることで解決しました。もっと美しい(正しい)やり方があればコメント欄で教えてください...


【Tips】Raspberry PiでArduino IDEを使う




最近はコンピュータ学習にRaspberry Piを使うみたいですね。
部活の1年生がRaspberry Pi 3を持っていてビックリしました(講義で使うらしい)。
Raspberry PiでArduino IDEを使うにはどうしたらいいのか、調べたのでメモします。


やりたいこと

  • Raspberry Pi(Raspbian OS)でArduino IDEを使う。
  • 中華製Arduino互換機を接続する。

インストールのやり方


Arduino IDEは非常にシンプルにインストールできます。

  1. インターネットにつなぐ
  2. コンソールでsudo aptitude update
  3. コンソールでsudo aptitude install arduino
  4. 左下のメニューにArduino IDEが追加されている
以上。

Arduinoを入手する


いくらArduinoが安いとは言っても、Arduino Unoの純正は3000円以上するのでたくさん買うには向いていないです。そこでArduino Nanoの中国製互換基板を使うことになりました。


相変わらずの価格


Aliexpressで1つ$2.19 US(300円しない程度)で購入できました。
Freeshippingと書いてあれば送料無料、Estimated Delivery Timeは配送時間を示してます。
いくら安くても評価が低いお店から買わないようにしましょう。


中華製Arduino Nanoの問題点?


Arduino Nanoに限らない話ですが、新しいデバイスを接続する際にはドライバが必要になります。ところが、このArduino Nano互換機はCH340(公式はFTDI)という公式とは違う中国製ドライバが必要になります。ダウンロードすると当然のごとくソースコードとMakefileが入っているのでLinux初心者にはきついかもしれません(Raspberry Piでは上記インストールの過程で勝手に入ったっぽい)。

ちなみに公式のダウンロードページには古いドライバは置いていないので、古いMac(OSX 10.8など)でドライバをインストールしようとしたら、ネットを探し回るハメになりました。

Aoica's Nihongo Tool 1.0(α版)



最近再びMinecraft熱が再燃して、友人と身内のサーバーで遊ぶようになりました。Macで日本語入力するためのツールが無くて不便なので勉強も兼ねてツールを作成しました。

名付けて『Aoica's Nihongo Tool』です。バージョンは1.0αとしました。是非使ってください。ダウンロードリンクは一番下にあります。バグの報告はコメント欄にお願いします。


スクリーンショット





設定の仕方


この設定をしないとtまたは/キーに反応しない、もしくは起動できません
まず「システム環境設定」アプリケーションを開きます。



「セキュリティとプライバシー」をクリックします。



「一般」タブの「すべてのアプリケーションを許可」(赤丸の所)をクリックします。



「プライバシー」タブをクリックし、アクセシビリティから「Nihongo Tool」(赤丸の所)にチェックを入れます(一度起動しないと表示されないかもしれないです)。

以上で設定完了です。



Aoica's Nihongo Tool 1.0 ダウンロード
対応動作環境OSX 10.9〜