14/11/28: ArduinoのSdFatライブラリのリファレンス

http://www.arconlab.com/lab/Arduino/Library/SD%20Reader%20-%20Fat32/html/class_sd_file.html

14/11/28: ハイサイドpMOSで電源制御が微妙にうまくいかない

ハイサイドpMOSのゲート(G)をマイコンでON/OFFしようとしてて、G=0にしてONにしようとしてもVDDより低い電圧にしかならず、Gの電圧をみようとGにオシロのプローブをあてるとVDDまで上がる、という現象に遭遇。

原因は、Gを駆動しているピンが出力になっていなかったこと。 G=0にしているつもりが0Vまで下がっておらず(G=1のときからほとんど下がっていない)、プローブをあてると電荷が放電してpMOSがONになる、ということだった。

14/11/28: Arduinoのdelay()

内部ではTimer0を使っている。 つまりdelay()を使うなら電源制御でTimer0を止めてはいけない、ということ。

その他にも、このあたりの内部リファレンスは参考になる。

http://garretlab.web.fc2.com/arduino_reference/language/functions/time/micros.html

http://garretlab.web.fc2.com/arduino_reference/language/functions/time/delay.html

http://garretlab.web.fc2.com/arduino_reference/language/functions/time/micros.html

14/11/27: Arduinoでstrcmp

strcmpの比較対象がbyte[]だと、型ががあわん、とエラーになるが、

 strcmp((const char *)a, "hoge")

みたいにconst char *型にcastすればよろし。

http://stackoverflow.com/questions/18001956/arduino-c-convert-byte-array-to-string-or-other-comparable-text-format

14/11/27: IMAPとGmailの対応

http://gmail.1o4.jp/imap.html

14/11/21: マトリクスLEDのきえるはずのLEDが薄く点灯する

駆動のタイミングで、各ピンの駆動初期化で全A=0、全K=0にするとき、一瞬だけ(10us)早く全K=0にしてたのが原因。これぐらいの時間でも、目でわかるくらい、薄く点灯してしまう。

14/11/20: InskcapeからWord等へ図のはりつけ

Copy&Pasteで、ベクタ形式で張り付けられるんだそうだ。しらなんだ。

この方法だとビットマップで張り付けられるっぽい→ http://d.hatena.ne.jp/jasmine_88/20120401/1333268128

形式を指定して貼り付け、で拡張メタファイル、を選べばOKっぽい→ http://superable.wordpress.com/2011/09/15/%E3%83%91%E3%83%AF%E3%83%BC%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%AB%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E7%94%BB%E5%83%8F%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91/

14/11/19: iPhoneのWiFiテザリングが見つからない場合

90秒ルール、というのがあるようだ。 http://news.mynavi.jp/articles/2013/06/24/ipadiphonehacks/

ただ、それでも見つからない場合があって、iPhoneを再起動(電源OFF→ON)したら見つかった、という場合もある。

14/11/18: ArduinoのSDとSdFat

SdFatのほうが高速、ということのようだ。

http://forum.arduino.cc/index.php?topic=90073.0

14/11/18: Emacsで行番号を表示する/しない

linum-modeで表示できる。.emacsに書いておくと起動時に表示できる。(あるいは表示させたくないときは書かない) http://lisphack.blog137.fc2.com/blog-entry-14.html

14/11/13: Win8.1にしてからときどき勝手に全ウインドウが最小化される

どうも"StartMenu8"のせいっぽい。困ったな。 http://answers.microsoft.com/ja-jp/windows/forum/windows8_1-performance/windows81/97c81b4f-50ee-4ab0-9df6-e4a293158cda

14/11/12: Node.js+nobleでkonashiをつつく

ちょっとあやしいけど、できた。 要はconnectしてdiscoverして、service(0xff00=KONASHI_SERVICE)をdiscoverして、必要なcharacteristics(PIOの出力なら0x3000=KONASHI_PIO_SETTING_UUIDと0x3002=KONASHI_PIO_OUTPUT_UUID)をdiscoverして、それらにwriteする。 ただし、この2つはWriteWithoutReplyなので、nobleのwriteによれば、第2引数はfalseにしないといけないはずなのだが、そうすると書き込みが行われない(callback関数に返ってこない)。第2引数をtrueにすると書き込みができるっぽい。ここだけ謎。

var noble = require('./index');

noble.on('stateChange', function(state) {
  if (state === 'poweredOn') noble.startScanning();
  else noble.stopScanning();
});

noble.on('discover', function(peripheral) {
  noble.stopScanning();
  peripheral.connect(function(error){
      console.log('connected to ' + peripheral.uuid);
      peripheral.discoverServices(['ff00'], function (error, services){ // 0xff00=KONASHI_SERVICE_UUID
        var konashiService = services[0];
        konashiService.discoverCharacteristics(['3000','3002'], function(error, characteristics){
		characteristics[0].write(new Buffer([255]), true); // 0x3000=KONASHI_PIO_SETTING_UUID
		characteristics[1].write(new Buffer([255]), true); // 0x3002=KONASHI_PIO_OUTPUT_UUID
        });
      });
  });
});

14/11/10: 卓駆でアーカイバDLLをまとめてインストール

http://www.kmonos.net/lib/caldix.ja.html

14/11/10: Androidアプリ開発の備忘録(断片的)

14/11/09: Linux Bluezでkonashiをつつく

http://www.slideshare.net/kobashin/ble-32572318

こちらを参考に、Linuxでコマンドラインでkonashiをつついてみる。

sudo hcitool lescan ; scan
sudo hcitool lecc ??:??:??:??:??:?? ; 接続
sudo gatttool -i hci0 ??:??:??:??:??:?? -t random -I

で、その後、gatttoolの操作。

connect ; 接続
primary ; handleの確認

これを、konashiのUUIDの対応をみながら調べると、

  • ハンドラ0x001f = UUID:0x3000 : KONASHI_PIO_SETTING_UUID
  • ハンドラ0x0023 = UUID:0x3002 : KONASHI_PIO_OUTPUT_UUID ということがわかる。 そこでこのハンドラを使って、データを書き込む。 konashiのAPIでは、例えば「PIO2=2:PIOの2ピン目」で、「HIGH=1」「OUTPUT=1」と定義されているので、例えば
    char-write-cmd 0x001f 04
    とすると、ハンドラ0x001fに0x04が書き込まれる、つまりPIO2が出力に定義される。続いて
    char-write-cmd 0x0023 04
    とすれば、ハンドラ0x0023に0x04が書き込まれる、つまりPIO2にHIGHが出力され、LED3が点灯する。

次はnobleでこれをやる。

14/11/07: Chromeの下に現れるダウンロード情報の消し方

ダウンロードするたびにChromeの下のほうに現れるが、Ctrl+Jでダウンロードページを開くと、その下のほうの表示は消える。つまりCtrlJ→CtrlWで、それを消せることになる。

14/11/07: sudoでnode/coffeeを実行する

nobleはsudoする必要がある(と書いてある)が、sudo時のパスは、自分のパスとは違うので、sudo時に探せるようにrootのパスを通すか、パスが通っているところにシンボリックリンクを張る。

http://stackoverflow.com/questions/4976658/on-ec2-sudo-node-command-not-found-but-node-without-sudo-is-ok

14/11/06: gitのリポジトリを手元にもってくる

git clone git://github.com/....

みたいにアドレスを指定すればOK。gitコマンドはgit shellなどで実行。

14/11/06: nobleでkonashiをつつく

konashiの各service, characteristicsのUUIDは公開されている。 http://konashi.ux-xu.com/documents/#core-ble

なので、これらを指定してつつけば、konashiをつつける。

ちなみにこれらは4桁(2byte)の短縮UUIDで、実際のUUID(32桁=128bit)は、 "Bluetooth Base UUID"をつけて、0000-????-0000-1000-8000-00805f9b34fb (????=短縮UUID) http://blog.fenrir-inc.com/jp/2013/09/bluetooth-le-firststep.html

Node.js用のBLEライブラリであるnobleは、UUIDを指定してつつく関数がある。 https://github.com/sandeepmistry/noble

橋本商会さんの、BlendMicroをnobleでつつく、のCoffeeScriptを参考にする。 http://shokai.org/blog/archives/9047

ちなみにCoffeeScriptは、JavaScript(js)のラッパーみたいなもの(?)で、JavaScriptに変換される。 http://ja.wikipedia.org/wiki/CoffeeScript

橋本商会さんのCoffeeScriptには、ServiceとCharactersiticsを探すところでこんな記述がある。

     peripheral.discoverServices [], (err, services) ->
       service = _.find services, (service) -> service.uuid is UUIDs.service
       service.discoverCharacteristics [], (err, chars) ->
         tx = _.find chars, (char) -> char.uuid is UUIDs.tx

まず変数servicesに、peripheralがもつサービスを入れて、その中に狙いのサービス(この場合は最初に定義しているUUIDs.serviceがあるかを探す。

ちなみに_.findは、CoffeeScriptで、リスト(配列)から要素を探すメソッド。 http://codedehitokoto.blogspot.jp/2012/06/coffeescript-undersorejs-02collection.html

この例では、servicesの各要素をserviceという変数に順に入れて、service.uuidがUUID.serviceに一致するものを探して、それをservice、として返している。

続いてそのサービス内のCharacteristicsを探して、UART送信(tx)を探す、という手順。

ちなみにLinuxからBLEをつついたり、BLEのService, Characteristicsの構造などはこちらが詳しい。 http://www.slideshare.net/kobashin/ble-32572318

14/11/04: gnupackのEmacsとgnuserv

http://rainbowdevil.jp/?page_id=680

14/11/04: AndroidSDK事始め

http://techfun.cc/android/windows-android-sdk-install.html

14/11/01: Win8.1でCisco Any Connect

ちょっと小細工がいる模様。 http://somenman.blogspot.jp/2014/06/windows81-cisco-anyconnect.html

14/11/01: Emacs24でのファイル名補完

以前はTABまたはSPCでファイル名が補完できたが、最近はTABだけ、という仕様のようだ。慣れたほうがいいのかな。。。 http://at-aka.blogspot.jp/2005/12/emacs-22050-find-file-spc.html

14/10/31: WordPress→Facebook連携のRSSGraffitiのエラー

以前設定していた、WordPressの新規投稿をみつけてFacebookに投稿してくれるRSSGraffitiがエラーになってた。たぶん先日の停電のときにWordPressのRSSの取得に失敗してエラーで止まっていた模様。(何回かretryすればいいのに・・・) 手動でRSSアイコンをクリックしてONにすれば連携再開。 http://miphoant.exblog.jp/19459858

14/10/31: gnupackとWin8.1

Cygwinとかemacsを展開するだけで使えるgnupackというのがあって、便利そう。 http://sourceforge.jp/projects/gnupack/

ただしWin8.1では少し手直しが必要っぽい。

http://hardsoft.at.webry.info/201401/article_2.html

(14/11/1追記)emacsの追加設定とか

http://d.hatena.ne.jp/sandai/20120304/p2

ちなみに最近は設定は.emacsに書くのではなく、/home/.emacs.d/init.el に書くものらしい。(14/11/2追記)いや、どうもこのファイルは読み込んでいないっぽい(あえてエラーのあるファイルにしてもEmacs起動時にエラーが出ない).emacsに書くと反映される。

http://sakashushu.blog.so-net.ne.jp/2014-04-27

14/10/29: ATmega+SPIデバイス(Slave)へのISP書き込み

ATmegaのSPIに別のSPIデバイスがつながっている状態でISP書き込みしようとすると、1つのSPIバスに複数のデバイスがつながることになる。 ATmegaのプログラムで、SPIデバイスをOFF(CSn=1)にしていれば、電源ON時にSPIデバイスは電気的にSPIバスから切り離されているので、ISP書き込みは問題ないが、SPIデバイス非動作時の消費電流を測るために、SPIデバイスの電源を切り離し、CSn=0にするプログラムを書き込んだ後、SPIデバイスの電源をつなぐと、SPIデバイスにとっては、常時CSn=0なのでMISOを駆動していることになるため、この状態だとISP書き込みができない。そこで、MISOをいったん切り離して常時CSn=0としないプログラムをISP書き込みすれば、問題なし。 というわけで、このような構成では、SPIデバイス側のMISOは必要に応じて切り離せるように半田ジャンパをつけておくべき。

14/10/28: MacでNode.jsでBlendMicroとBLE

橋本商会さんが,Blendmicro (http://redbearlab.com/blendmicro/) をMacのNode.jsからつつくのをやっておられる. http://shokai.org/blog/archives/9047

というわけで, Node.jsの入れ方(基本的にnvm (Node Version manager)とあわせて使うのが吉,か)

http://tmlife.net/programming/javascript/nvm-nodejs-install.html

↑ではNode側のプログラムとしてecho.coffeeが紹介されている.*.coffeeとは,CoffeeScriptというやつで,Nodeのパッケージの一つ.なので npm install coffee-script -g で入れておけばOK

http://niwaringo.tumblr.com/post/16353537096/windows-node-js-coffee-script

ついでに,BLEライブラリnobleも,npmで入れておく.

ただし肝心のMacのBluetoothが4.0非対応(BLEが使えない)のため,実際の動作検証はまだ.

ちなみに橋本商会さんはBlendMicro用のBLE用ライブラリもつくっておられる.

http://shokai.org/blog/archives/9064

橋本商会さんによると、USB-Bluetooth4.0ドングルはなんでもよいわけではないらしく、nobleが対応していないといけないんだそうで、BroadcomのチップはOKとのこと。

USBドングルのメーカーとチップセットの情報

http://d.hatena.ne.jp/kinneko/20140219/p1

http://mino.blog.eonet.jp/minoproject/2014/02/bluetooth-usbwi-2a01.html

http://qiita.com/tesujiro/items/0d07c2bf57ecb86a8e00

http://smart.diipedia.net/bluetooth-usb.html

14/10/26: GitHub以外のGit

GitHubだけがGitじゃない。

http://qiita.com/kajiemon/items/85391e4e0729887653f2

14/10/26: GithubをWindowsで

このあたりがお手軽か。 http://wp.yat-net.com/?p=3874

14/10/26: Node.jsのお手軽実行環境

BLEをPCからつつくのには、Node.jsがとりあえずお手軽そうなんだけど、そのNode.jsと、それとあわせてつかnpmのお手軽実行環境。 http://webgoto.net/239/

14/10/24: ATmegaでSPIの設定レジスタ(SPCR)が書き込めない

SPCRに何を書き込んでも、読みだすと0、という現象に遭遇。 原因は、その前にPPR(PowerReductionRegister)で、SPIをオフにしていたのが原因だった。

14/10/22: AtmelStudio6.2で、ATtinyを書き込むとき、ISPクロックが1MHzになってしまう

どうも同じ症状の人がいるんだけど、何ともない人もいる、模様。再インストールしたらなおるんだろうか。ちなみに2つめに紹介されているBuild1156でも、同様。

http://www.eevblog.com/forum/microcontrollers/atmel-studio-6-2-avrisp-mkii-clock-resets-too-high/

http://www.avrfreaks.net/forum/atmelstudio-62-build-1153-deleting-eeprom

14/10/15: バックミンスターフラーレンC60の展開図

http://www.water.sannet.ne.jp/masasuma/masa/e10-3g2.pdf

14/10/15: MacでThinkPadキーボードをつかう

細かい設定の備忘録.「変換」「無変換」キーをMacで使う方法なども.

http://www.dream-seed.com/weblog/archives/2013/07/29124/

14/10/09: Excelでt検定

http://www.f.kpu-m.ac.jp/c/kojin/asano/kiso/topics/kentei/top.html

http://office.microsoft.com/ja-jp/mac-excel-help/HA102928067.aspx

http://www.geisya.or.jp/~mwm48961/statistics/bunsan1.htm

14/10/02: ARM(CortexM0)まわりでいくつか

命令2(16bitのThumb命令をそのまま記述)、15-0bit=命令1、と書くと、命令1→命令2、の順で実行される。

  • バスはAHB-Liteなので、クロック同期とはいえ、ふつうのクロック同期とはちょっとタイミングが異なる。例えばデータ書き込みは、アドレスとHWRITE=1になる→次のクロックで、書き込むべきデータが出てくる(さっきのは利用リクエストで、実際にはこのタイミングでAHBが利用可能になるため)、となる。
  • "gcc -S"でアセンブラを吐いて、それをちょっといじって、"as"でアセンブルすればバイナリにできるので、変数をレジスタに置くとかの手動最適化ができる。

14/10/02: XBee単体で定期的にデータ収集

IRコマンドで周期設定、D0とかでピンごとに機能を指定。

http://www.eleki-jack.com/wakamatsufan/2012/07/5zigbee.html

14/10/02: ARM-gccのオプション

https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html

Cortex-M0用にコンパイルするなら、-mcpu=cortex-m0 -mthumb、あたり。

ちなみに-mthumbをつけないと、 "error: target CPU does not support ARM mode"と出て、なんのことかと思ったら、Thumb命令しか使えない(=ThumbでないARM命令は使えない)、という意味。わかってしまえばなんともないけど、「ARMのCortex-M0なのに、ARMがnot supportとはなんぞ?」と思ってしまった。

14/10/01: Vyattaでのbash問題対策

とりあえずhttpsアクセスを止めれば問題なし、との見解。 http://www.brocade.com/downloads/documents/technical_support_bulletins/brocade-assessment-bashabug-vulnerability.pdf

14/09/25: GNU assemblerで機械語に変換

http://inaz2.hatenablog.com/entry/2014/05/30/004109

14/09/21: iPhoneのストレージ使用「その他」を削除する

http://www.appps.jp/1913833/

14/09/21: Dropboxの保存場所をSDカードにする

Dropboxをアンインストール→SDカードをNTFSでフォーマット→Cドライブ内にマウント→Dropboxをインストール時に保存場所を「詳細設定」で指定、という手順でいける模様。

http://kidzunajp.blogspot.jp/2014/03/windows81sd.html

14/09/17: NetWalkmanのコネクタ(WM-Port)のコマンド

UARTでコマンドを送って制御できる

http://strv.blog.shinobi.jp/%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA/wm-port%E8%A7%A3%E6%9E%90%E9%80%94%E4%B8%AD%E7%B5%8C%E9%81%8E

(2014/9/18追記) AudioOutは、Pin9-GND間に適切な抵抗(例えば4.7kΩ)をつなぐと設定できるが、UART信号接続されている(またはTXD-RXDをショート)必要がある。

http://www.wdic.org/w/WDIC/WM-PORT

(2014/10/2追記)本体をしばらく(数分)操作しないと、本体がスリープモードに入るようで、RXD=Hにしたあとすぐに(500ms後ぐらい)に0x40を送っても、認証(?)されないっぽい。かといってこの時間をあけすぎると、認証に間に合わない。500msごとに2回ぐらい送る、あたりが順当か。

14/09/16: Inkscapeでオブジェクトを円形に配置する

http://inkscapedesign.web.fc2.com/practical/tiling-circle.html

14/09/12: Hirose HR10Aコネクタのはずしかた

#ref(): File not found: "HR10Ascrew.jpg" at page "akita/2014"

簡単そうでてこずったので・・・この写真の赤と赤のところをネジみたいにひねる。

14/09/10: 秋月Ir受信機のピン配置

昔、秋月で売ってた、少し大きい赤外線受信機 CRVP1738 のピン配置

#ref(): File not found: "CRVP1738pin.jpg" at page "akita/2014"

14/09/09: PSoC1duinoのE2PROM

PSoC1duinoで使っているAN2100のブートローダは、フラッシュ領域の最後のほうをブートローダが使っているので、E2PROMで使えない。AN2100のメモリマップを確認し、あいているところ(CY8C27443なら0x3500直前)をE2PROMで使う。

14/09/09: Eagleの基板配線で未配線を確認する。

Air-wire、と呼ぶらしいが、そういうスクリプト(ULP)がある模様。zoom-unrouted.ulpあたりか。 http://electronics.stackexchange.com/questions/34917/finding-air-wires-in-eagle

14/08/28: TeraTermでSSHでvlsisv07につなげて、VNCをPortForwardingでつなぐ

KainsWiFiはVNCで使うポートが閉じているようなので、ポートフォワーディング。 以下はVNCのディスプレイ番号が73(ポート5973)の場合の例。

  • sshでvlsisv07に接続
  • SSH Port Forwardingの設定で、localpost=19573 (本体のポート+10000)、to remote machine=vlsisv07.ec.t.kanazawa-u.ac.jp、port=5973
  • vncでつなぐとき、VNC serverに、localhost::15973、を指定して接続

14/08/27: ArduinoUNOでATmegaにArduinoブートローダを書き込む

http://www3.big.or.jp/~schaft/hardware/bootloader_sketch/page003.html

14/08/25: ATmega(Arduinoでない)でEEPROM

http://cega.jp/avr/avr-eeprom_h

14/08/21: 実物の形状にあわせた部品の設計

一例。

  1. 対象物を定規といっしょに写真に撮る
  2. その写真をInkscapeにインポートし、写っている定規がInkscape上の寸法とあうようにリサイズ
  3. その写真をロック(オブジェクトのプロパティ→ロック)
  4. それにあわせてつくりたいものの輪郭線を描き、写真を消してSVGで保存
  5. 123D DesignでSketchとしてインポート。ただしInkscape上の1mmがSVGでは単位が[px](1mm=3.543px)になるので、インポート時に3.543倍になっている。そこでSketchをScaleでUniformに1/3.543=0.2822倍に縮小

14/08/20: iMovieで動画の一部に説明書きのようなものを加える一方法

背景が透明なPNG画像をピクチャ・イン・ピクチャすれば、描画図形だけが動画にオーバーレイ表示される。そこで、動画画像を画面キャプチャしてInkscapeにインポートし、それにあわせて描画して、画面キャプチャの外枠に透明な長方形を描いておいて、ビットマップ(PNG)にエクスポートした画像を、動画サイズにあわせてピクチャ・イン・ピクチャすればOK

https://discussionsjapan.apple.com/thread/10134447

14/08/19: InkscapeでExportしたビットマップ画像の背景

InkscapeでExportしたビットマップ画像(*.png)は、背景が透明になっている。こちらにあるように、

convert -background white -alpha off ??.png ??.bmp

のように2つのオプションをつけて変換すると背景を白(この場合は)にできる。

http://pen.agbi.tsukuba.ac.jp/~RStiger/hiki2/?Imagemagick

14/08/18: EagleのAutoroute

電源などの配線を先に手動でやったあとの、細い信号線だけだと、けっこう使えるかも。配線の幅やViaはRouteで使う指定が使われ、DRCルールはDRCで指定されているものが使われる。

14/08/09: FT230XでArduinoをDTRリセット

FT230XはDTR端子がないけど、RTS端子を使えばDTRリセットがかけられる。

https://forum.sparkfun.com/viewtopic.php?f=5&t=32587

14/08/01: Eagleで複数要素のプロパティをまとめて変える

Change(スパナのアイコン)→対象のプロパティ→要素を順番に左クリック、でできる。(例えば回路図部品のピンのピン番号の表示の有無、など)

http://yak-shaver.blogspot.jp/

14/08/01: Arduinoでwhileループのフラグを割り込みでクリアする

while(f);

の、fを、割り込みのようにループの外でクリアする、というプログラムを書くと、このwhileループを抜けない、ということがある。 これはコンパイルの最適化で、whileが無限ループになっているのが原因(の場合が多い)ので、このfを、volatile宣言しておく(と解決する場合がある)。

http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=1774

14/07/15: スイッチサイエンスの委託販売

http://trac.switch-science.com/wiki/PersonalWorkDistribution

14/07/04: Replicator2XのX移動の脱調

ときどきおこる。原因を調べた経緯のメモ。

  • 脱調なので、モータのトルク不足?と、エクストルーダのモータと交換→なおらず
  • すべり機構がひっかかってトルク不足と、グリスを塗布→なおらず
  • モータの駆動波形をみてみると、A層が「ときどき」0Vにはりつく→モータドライバ故障?と推測
  • モータドライバを別モータ用と交換→なおらず(ちなみに↓これ) http://www.wayengineer.com/a4982-stepper-motor-driver-module-makerbot-p-6812.html#.U7Zus_l_uSo
  • モータドライバ-モータ間のケーブルの断線を調べたところ、ケーブルを動かすと断線する場合があることを発見→ケーブルをつけかえ(モータドライバ側を残して、モータ側を新ケーブルに交換して接続)→OK

14/06/27: USBバスのプルアップ/プルダウン抵抗

両方とも15kΩだと思い込んでいたが、ホスト側が15kΩ、デバイス側が1.5kΩ。

http://www.picfun.com/usb03.html

14/06/27: ATmegaのTimer2を外部32kHz水晶でうごかしてSleepを起こす

どうもsleepからタイマ2割り込みで起きないと思ったら、データシートに注意が書いてあった。Timer2設定関係のレジスタ書き込みが、実際に各レジスタに書き込まれるのは外部32kHzクロックにあわせておこるが、その周期が内部クロック(1MHzとか)と比べて100倍以上長いので、十分またないといけない。そのために、レジスタ(ASSR)に、各レジスタへの書き込みがちゃんと行われたことを示すフラグがあるので、それをチェックして、ちゃんと書き込みが行われことを確認してからsleepに入らせましょう、という話。

教訓:データシートをちゃんと読もう。

14/06/25: ATmegaのT0/T1をカウンタのクロックとして使う

Counter0/1のクロックとして外部ピンのT0/T1を使えるが、データシートのとおり、 T0/T1はclkIOで同期化されてからカウンタに入るので、IOクロック程度より高い周波数の信号はNG

14/06/24: ATmegaのUARTをCプログラムから使う

http://www.clarestudio.org/elec/avr/mcu-usart.html

14/06/24: インダクタンスをピアース発振回路の発振周波数として計測する

http://ednjapan.com/edn/articles/0711/01/news145.html

14/06/23: ArduinoでPCINT割り込み

http://forum.arduino.cc/index.php?topic=80928.0

14/06/21: iPodで動画をループ再生させる

プレイリストをつくっておく、のが吉。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1268706467

14/06/20: VisualC#でボタンなどを配列にしてまとめて配置する

http://dobon.net/vb/dotnet/control/buttonarray.html

14/06/18: MacOSXで、DNS検索ドメインを指定

例えばhogeから、hoge.ec.t.kanazawa-u.ac.jpを補完(?)させたいなら、「検索ドメイン」にec.t.kanazawa-u.ac.jp、を入れておく。

http://nauthiz.hatenablog.com/entry/20100929/1285778758

14/06/13: Eagleでクリーム半田用マスクをつくる

Gerberデータ用のCAMファイルを書き換えて、tCreamも書き出す。

http://yuki-sato.com/wordpress/2014/02/16/eagle%E3%81%A7%E3%83%A1%E3%82%BF%E3%83%AB%E3%83%9E%E3%82%B9%E3%82%AF%E7%94%A8%E3%82%AC%E3%83%BC%E3%83%90%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B/

CraftROBO向けだと、スイッチサイエンスさんのULPでDXFを書き出すのが現実的。

http://trac.switch-science.com/wiki/EagleCraftRobo

14/06/13: Win8でArduinoLeonardなどの署名なしドライバをインストールする

Win8→http://freesoft.tvbok.com/win8/testmode.html

Win8.1→http://setsuna-no-yume.cocolog-nifty.com/blog/2013/10/windows81-8fa3.html

14/06/11: InskcaeSVGの単位

座標やサイズの表現は1px=1/90inch、が単位で、変えられない。 http://www.kabipan.com/computer/inkscape/

14/06/11: 負の数の四捨五入

当たり前問えばあたりまえだけど、正だとint(x+0.5)でいいが、負だとint(x-0.5)が正しい。

14/06/09: VirtuosoっぽいフリーのレイアウトエディタGlade

http://www.peardrop.co.uk/glade/

14/06/08: LEFフォーマットの仕様

LEF(Library Exchange Format)の仕様は、どうもフリーのものではない模様。 http://www.si2.org/openeda.si2.org/project/showfiles.php?group_id=6#p44

14/06/08: SVGの図形の変形(transform)属性

http://www.hcn.zaq.ne.jp/___/SVG11-2nd/coords.html#TransformAttribute

14/06/06: Excelのマクロを編集する

まずはメニューバー(リボン)で「開発」を表示させる、というところがスタート。 http://msdn.microsoft.com/ja-jp/library/office/ee814737(v=office.14).aspx

14/06/04: 新しいArduinoボードの設定ファイルとか

自分のArduinoディレクトリ(ArduinoIDEで設定できる、標準でスケッチを保存しておくディレクトリ)の中にhardwareというディレクトリを掘って、その中に、ボードごとにboards.txtとかをおいておくと、ArduinoIDEから新しいボードとして選べる。

14/06/03: AVRStudio6.2+AVRISPmkIIの接続のタイミング

AVRStudio6.2で、AVRISPmkIIで書き込みをしようとして、AVRISPmkIIとマイコンを接続していない状態で、AVRStudio6.2のTools→ProgrammingでAVRISPmkIIを選び、ターゲットのマイコンを選んでApplyしたところで、"Toolsに接続できない"というエラーが出る。てっきりAVRISPmkII-PC間の接続の問題(USBのドライバがあたってないとか)かと思ったら、この時点でマイコンと接続を試みるようで、ターゲットのマイコンをちゃんとつないだら、Applyできた。ちょっとまぎらわしい(というかAVRStudio6.1のときと挙動が違うような気がする)。

14/05/31: Wordpressの投稿があったことをFacebookへ通知を投稿

http://takaslife.com/2013/06/22/facebook-rssgraffiti-setting/

14/05/29: iMovieでビットレートを指定して動画ファイルを書き出す

ちなみにニコ動一般会員は600kbps以下。 http://akisute.com/2009/12/imovie-08.html ただしiMovieでビットレートを指定すると画質が大幅に落ちるので、 iMovieから高画質でExportしたあと、「つんでれこ」でmovにするのがよさそう。 http://ch.nicovideo.jp/tdenc/blomaga/ar128361

14/05/27: フリーで使えるBGM

MusMus(クレジット表示すれば基本フリー):http://musmus.main.jp/

14/05/16: タクトスイッチのお試しセット

http://www.chip1stop.com/dispDetail.do?partId=ALPS-0008756

14/05/15: ATmega169でArduino

液晶コントローラ内蔵のATmega169をArduino化しようという話。 Atmel純正ボードのAVR ButterflyをArduino化するとうというArduinoButterflyというのがキーワードか。

https://code.google.com/p/butteruino/

http://www.avr-developers.com/cputable.html

http://forum.arduino.cc/index.php/topic,24280.0.html

14/05/14: Autodesk 123Dで平面図をインポート

SVGやEPSで平面図をインポートできる。

https://media.dmm-make.com/item/221/

14/05/13: 7セグ液晶をマイコンで駆動

http://awawa.hariko.com/avr_lcd_drive.html

14/05/10: LCRメータでのLs/CsとLp/Cp

http://www.home.agilent.com/agilent/editorial.jspx?cc=JP&lc=jpn&ckey=1357788&nid=-11143.0.00&id=1357788

14/05/09: Arduinoで静電容量式タッチセンサ

http://kousaku-kousaku.blogspot.jp/2008/10/arduino.html

14/05/05: Facebookで誰かをタグづけする

入力中に@をいれて名前(の一部)を入力すると出てくるリストから選ぶ。 http://selfyoji.blog28.fc2.com/blog-entry-3243.html

14/05/03: Eagleで面付け

http://blog.goo.ne.jp/jh3kxm/e/6d974ef0d3aaa6fc3b675f9f7a1eccaa

14/04/30: ATtiny85/3.3VでDigisparks

ATtiny85上でソフトウエアUSB実装でArduinoスケッチの転送ができるDigispark、あたりまえといえばあたりまえだけど、電源を3.3Vにすると、以下の3点の部品でうごく。

  • PB4(3p): D+(22Ω経由)
  • PB3(2p): D-(22Ω経由) / D-は15kΩ1.5kΩ(14/06/28訂正)でVDD(3.3V)へプルアップ ブートローダは、以下を参考にmicronucleusを書き込んでおく。 ドライバとArduinoIDE(ちょっと手が入っているみたい)は、こちらから。

http://paperduino.eu/doku.php

14/04/27: Inkscapeで歯車を描く

http://d.hatena.ne.jp/seinzumtode/20120521/1337602009

http://mylifeyourlife.net/2012/10/inkscape-drawing-gear/

14/04/27: ATmega+ソフトウエアUSBでArduino

ATmega328でやっている例。

http://make.kosakalab.com/arduino/make/usbasp/index.html

14/04/10: iMovieで編集したタイトル(字幕)が消えてしまう

iMovieを再度起動すると、編集したはずのタイトル(字幕)が消えちゃってることがあるんだけど、どもも環境依存で再現性のないFAQの模様・・・困ったな。動画ファイルに書き出しておく、というのが確実なバックアップか。 https://discussionsjapan.apple.com/message/100813733

14/04/09: iMovieでピクチャ・イン・ピクチャ

http://support.apple.com/kb/PH2243?viewlocale=ja_JP&locale=ja_JP

14/04/09: iMovidで使う写真のフォーマット

bmpやpngは、iPhotoで取り込めるし、↓の方法でiMovieに直接取り込めるが、タイムラインにはめこめないっぽい。*.jpgならいずれもOK。 [#h5ab108a]

14/04/08: iMovieで使う写真をiPhotoを経由せずに取り込む

http://gori.me/mac/26324

14/04/04: MacOSXのシリアルターミナルソフト

このあたりが便利そう。

https://www.macupdate.com/app/mac/31352/coolterm

14/03/30: platexで上下左右の余白を指定する

geometryパッケージを使うという方法もある。 http://joker.hatenablog.com/entry/2012/07/09/153537

14/03/25: Rohm WiFiモジュールがスリープから復帰しない

RohmのWiFiモジュール(BU1805)で、いったんスリープに入れると、アクティブに戻そうとコマンドを送っても戻らない、という現象に遭遇。 いろいろ調べた結果、データシートに書いてある、SDCLKピンをRXDピンに接続しろ、という点を見落としていて、これがつながっていなかったのが原因。

教訓:ピンの機能はちゃんと読もう。

14/03/23: ATtinyにArduinoスケッチを転送する

ArduinoUNOをISPライタにすれば(SPI経由で)スケッチを転送できる。 http://d.hatena.ne.jp/jonki/20131109/1383977233

14/03/21: BluetoothのHIDプロファイルをマイコンでつつく

Sparkfunで売ってるRN42HIDというモジュールは、マイコンなどからUART経由でつつけて、PCからはHIDデバイスとして見える。つまりBT接続のマウスやキーボードを作れることになる。プレゼンマウスでもつくるか。

http://yak-shaver.blogspot.jp/2013/05/rn-42-ek-hid.html http://addsict.hatenablog.com/entry/2013/07/27/164647

14/03/20: Win8の標準カレンダーでGoogleカレンダを表示

http://iinamotto.com/2013/10/1553.html

14/03/17: MeadoowでSPCでファイル名補完

http://at-aka.blogspot.jp/2005/12/emacs-22050-find-file-spc.html

14/03/13: StrawberryLinuxDaVinciArduinoLeonard的に使う

http://dev.tetrastyle.net/2012/02/leonardo.html

14/03/07: Arduinoで他デバイスとSoftwareSerial通信しながらSD記録

Arduinoで他デバイスとSoftwareSerial通信しながらSDカードに記録する、というのをやっているとき、SoftwareSerialで受信したデータを、デバッグ用にSerialで表示するだけならOKだが、それとあわせてSDカードに記録すると、記録の途中でハングる、という現象に遭遇。記録するデータを増やしていくと途中でハングるようになり、また途中から表示されるデータ(配列に格納)も化けているので、てっきりRAMの使いすぎで配列変数の領域をSDカードライブラリが浸食(?)しているのが原因だろう、とふんでいたのだが、結果として全く違う原因だった。SoftwareSerial通信が2400bpsと低速なのでナメていたが、SDカードの記録もそれなりに時間がかかるので、SoftwareSerial受信しながら記録すると、受信が追いつかずにデータを取りこぼし、デバイス側の送信が終わっているのにArduino側で取りこぼしていて受信を待っている、というデッドロックになっていたのが原因だった。「途中から表示されるデータが化ける」という現象からRAM不足と思い込んでいたのも問題。RAM不足でなくても、受信されるべきデータが受信されない(=配列に入らない=配列の中身は受信前のデータ)ことでデータが化ける、という可能性もある。

というわけで教訓。

  • RAMが足りないのが原因、という思い込みはよくない
  • シリアル送受信のタイミングは適宜確認をするべき。特にACKを返すなどのハンドシェイクや受信バイト数決めうちの場合は、確実に受信できているかをよく確認するべき。

14/03/07: Arduinoをsleepさせて、WatchdogTimerで定期的に起こす

http://radiopench.blog96.fc2.com/blog-entry-447.html

14/03/06: Arduino ProのA6/A7

Arduino ProとかでA6/A7があるものがあるが、ATmega168/328の仕様上、この2つはADC6/7なので、AD変換の入力専用ピン=ふつうのI/Oピンとしては使えないので注意。

ちなみにD0=0という通しのピン番号だとA0=14となり、A6=20も使えるように見える(コンパイルでエラーになるわけではない)がI/Oピンとしては使えないので注意。

14/03/06: Arduinoスケッチをコマンドラインから書き込む

「13/11/22: ArduinoのスケッチのHEXファイルをブランクAVRに書き込む」の方法で*.hexをつくっておいて。avrdudeで書き込める。

http://avr.paslog.jp/article/2455700.html

例えばこんな感じ。

avrdude -c arduino -P COM2 -p m328p -b 57600 -V -u -U flash:w:"hoge.hex":a

14/03/05: たくさんの静止画から動画をつくる

http://zapanet.info/blog/item/2653

14/03/05: Windows8のMicrosfotアカウントでPCの設定を同期しない

タスクバーの位置とか勝手に同期されて有難迷惑。

http://pcmanabu.com/windows-8-1-synchronization/

14/03/05: Windows8(64bit)での32bitDLLの置場

Windows\System32、じゃなくて、Windows\SysWOW64、か?(まだよくわからない)

14/02/25: FT232Hの245FIFO転送

StrawberryLinuxのFT232Hボードで、FT232Hを245FIFOモードにして8ビットデータをがばがばPCへ転送しようとしたが、どうも入力のはずのD0-D7に与えている信号(今回はADコンバータ)の振幅がやけに小さく(電源3.3Vなのに0〜1V程度)なってしまうので、色々原因を調べていたら、FT232HのRD#ピンがLにしたまま(未接続)で、読み出し(つまりFT232HのD0-D7は出力ピンになる)動作が行われいた模様。RD#=1に固定したら、問題なくデータ転送できているっぽい。ちなみにVCPドライバを使えば、PC側からは普通のCOMポートとして見える。

14/02/22: オープンソースなWiFi接続の家電リモコン IRKit

http://getirkit.com/

14/02/17: VisualC#コンソールアプリで途中で終了

exit(1)とかは使えないので、return;すればそこで終了 http://y-okamoto-psy1949.la.coocan.jp/VCpp/vcpp2010Win32/NewProject/

14/02/12: WiFiのBSSID

BSSID(Basic Service Set Identifier)は、インフラストラクチャモードではアクセスポイントのMACアドレス、と定義されている。

http://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%BB%E3%83%83%E3%83%88%E8%AD%98%E5%88%A5%E5%AD%90

14/02/12: 各種レンズマウントのフランジバック

フランジバック(レンズの底面から撮像面までの距離)。Cマウント=17.526mm、CSマウント=12.5mm、マクロフォーサーズ=19.3mm http://www.uniel-denshi.co.jp/CCTV-LENSES/MOUNT/C-MOUNT.html

http://homepage3.nifty.com/fujigiken/gijututechou/mountfb.htm

14/02/12: VisualC#で指定した時間待つ

http://dobon.net/vb/dotnet/process/sleep.html

14/02/12: VisualC#コンソールアプリケーションでシリアルポート

using System.IO.Ports;して、SerialPortのオブジェクトをつくればOK

http://msdn.microsoft.com/ja-jp/library/cc825644.aspx

14/02/10: VisualC#で数値をコンマつきで表記

http://www.atmarkit.co.jp/fdotnet/dotnettips/620number3groupsep/number3groupsep.html

14/02/07: VisualC#でシリアルポートから行末まで読む

serialPort.NewLine = "\r";

みたいにして行末コード(この例では'\r'=0x0d=CR)を指定して、

string buf = serialPort.ReadLine();

とやると、stringで1行分読み出せる。

http://tmp.junkbox.info/e14.html

14/01/31: Emacsでscratchを閉じちゃったときに、再度開く方法

C+x b バッファ名 (=Switch to Buffer)、で存在しない名前をつければ、新規にscratch(終わるとき保存するか聞かれない)をつくれる。

http://stackoverflow.com/questions/234963/re-open-scratch-buffer-in-emacs

14/01/30: FPGAでNTSCやHDMIを吐く

http://www.kumikomi.net/archives/2009/03/11circ3.php?page=24

http://sa89a.net/mp.cgi/ele/fpga_hdmi.htm

(2014/4/28追記)http://nahitafu.cocolog-nifty.com/nahitafu/2013/08/spartan-6hdmi-a.html http://hamsterworks.co.nz/mediawiki/index.php/Spartan_6_1080p

14/01/28: iOSの日本語入力で、連絡先に登録されている人名を候補に出す/出さない

設定→一般→キーボード、の自動修正、でON/OFFできる模様。

http://macfan.jp/guide/2012/10/04/iphone_74.html

14/01/28: Win8でGnuToolsやunzip.dllなど

http://www.windowsreference.com/free-utilities/gnu-utilities-for-windows-with-unix-utils/

http://www.madobe.net/archiver/index.html

14/01/26: Win8でファイル削除時に確認メッセージを表示する

「ゴミ箱」のプロパティから。こんなところに設定項目があるのか。

http://homepage2.nifty.com/nonnon/Chinamini/win8/win8-h009.html

14/01/16: MacOSXのVNCクライアント

標準でついているようだ。 http://d.hatena.ne.jp/shimtom/20111110/1320852590

14/01/15: ArduinoのUARTのボーレート

内蔵8MHzで動かすと、ハードウエアUARTのSerialでも115200bpsはしんどそう。特に受信が、よく文字化けする。SoftwareSerialだと、38400bpsでもあやしい。9600bpsあたりで使うのが無難か。

14/01/15: ATmega328のSPIの/SS

ATmega328のSPIは、SlaveSelectの/SSピンがPB2に割り当てられている。 もちろんソフトウエア的に、他のピンをSlaveに対するSlaveSelectとして使うこともできるが、ATmega内蔵SPIの仕様として、この/SSピン(PB2)は必ず出力ピンに設定しておかないといけない。そうしないとMasterに設定(SPCR:MSTR=1)しても、Slaveに変わってしまう(SPCR:MSTR=0になる)。

14/01/15: XBeeをファクトーリセット

http://www.nekotorobot.com/2012/06/xbee.html

14/01/14: SIMロックフリーiPhone4 + iOS7でdocomo MVNO

データ通信専用のMVNOは、使えない模様。SMSオプションをつける、ことで解決できるらしい。 http://nahareport.blogspot.jp/2013/10/ios7iphone4sim.html

どんなカラクリなの?と思ったらこういうことらしい。 http://techlog.iij.ad.jp/archives/487

14/01/14: Win8で起動時にデスクトップを表示

http://www.atmarkit.co.jp/ait/articles/1302/22/news054.html

14/01/08: StrawberryLinuxDaVinciのArduinoとしてのピン番号の対応表

http://wave2.iobb.net/pplog2/displog/27.html