2013/09/30

MacのPage Up / Page Down キーをWindowsと同じ挙動に

Mac で ページをスクロールするとき、Page Up/Down キーを押すとIビームカーソルがついてきません。

このため、スクロール後に Iビームカーソルを移動しようとすると、スクロール前の画面に戻ってしまい「ムキーッ」となることが多々あります。

この挙動をWindowsと同じようにするには、下記の内容で、~/Library/KeyBindings/DefaultKeyBinding.dict というファイルを作ります。

// ~/Library/KeyBindings/DefaultKeyBinding.dict

{
    "\UF72C" = "pageUp:";                          // page up
    "\UF72D" = "pageDown:";                        // page down
}

私は、Home, Endキーの挙動もWindowsと同じようにしたいので、下記のようにしています。

2013/09/25

Mac に Django をインストール

MacでもWindowsでもLinuxでも pip が使えれば、どれもやりかたは同じです。

ここではvirtualenv環境にDjango入れてみます。

$virtualenv --no-site-packages -p /opt/local/bin/python3.3 django
$. django/bin/activate
$sudo pip install django

Django-1.5.4 が入りました。

$cd ~/test
$django-admin.py startproject django_test_0
$cd django_test_0
$python manage.py runserver

ブラウザで http://127.0.0.1:8000/ を開いてDjangoが起動しているのを確認。

2013/09/15

Raspberry Pi でGPIO(LED点滅とSW入力)のテスト

GPIOのテストとして、WiringPi のインストール → LED点滅 → SW入力 やります。

WiringPi インストール

$ssh -p 22122 rpi
$sudo apt-get install git-core

$cd ~/src
$git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ ./build

これで /usr/local/bin/gpio が入る

$ cd examples
$ make really-all

これでサンプルプログラムがビルドされる

ポート出力テスト(LED点滅)

上の写真のように結線して

$ sudo ./blink

LEDが1秒周期で点滅する

ポート入力テスト(SW入力)

(3.3Vの結線と330Ωは不要でした)

上の写真のように結線して

$ sudo ./wfi

スイッチを押す→放すのたびに myCounter++ する様子がプリントされる

Waiting ...  Done. myCounter:     1
Waiting ...  Done. myCounter:     2
Waiting ...  Done. myCounter:     3
Waiting ...  Done. myCounter:     4
Waiting ...  Done. myCounter:     5

2013/09/09

XC8用のUSBライブラリはどこにある?

残念ながら、今現在はXC8用のUSBライブラリはないようです。

しかし、近々リリースされる気配はあります。

どうやら、近年はUSB ライブラリ単体ではなくて、他のライブラリ(グラフィックやmTouch等)と同梱になったようです。

最新のMicrochip Libraries for Applications (v2013-06-15)をダウンロードして、その中の MCHPFSUSB Library Help.pdf を見ると、

Find out what the USB development team is working on and what will be out in the near future.

Description

The following are the projects that are being worked on. These may not be released in the next release but are in development

• Implement XC8 compiler support for PIC18 targets in the USB device demos

とありました。

2013/09/08

秋月の PIC18F14K50 ボードでLチカ

ひさびさにPICやります。とりあえず、恒例のLチカです。

秋月で

を買って、下記をダウンロード。

ブレッドボードに秋月ボードを挿して、LEDを適当に接続。

File > New Project > Microchip Embedded > Standalone Project > PIC18F14K50 > None > PICkit3 > XC8 > led0

File > New File > Microchip Embedded / XC8 Compiler / main18.c > main

して、New File > Lチカのコードを書きます。クロックは秋月ボード上の12MHz Xtal を使うことにします。

PICkit3を接続して、秋月ボードにUSBケーブルを挿し+5Vを供給。

ビルドして、書き込み(Run > Run Project)。

これだけのことですが、勝手が分からずに時間がかかりました。

なお、書き込みだけではなく、PIC18F14K50 を PICkit3 でデバッグするには 別途 Debug Header が必要なので要注意です。

参考にさせていただいたサイト

2013/09/07

PICkit3 で Debug Header が必要な品種

PICkit3 でデバッグしようとして、

A debug header is required to debug this device.

と言われたら、ひょっとするとそのデバイスは Debug Header が必要なPIC かもしれません。

Processor Extension Pak and Header Specification

の 「TABLE 1: REQUIRED DEBUG HEADERS BY DEVICE」という、9ページ目あたりのリストにあるものが「Debug Header が必要なPIC」と見て良さそうです。

PICの型番だけを抜粋すると、現時点では下記が「Debug Header が必要なPIC」のようです。

PIC10F200
PIC10F202
PIC10F204
PIC10F206
PIC10F220
PIC10F222
PIC10F320
PIC10F322
PIC10LF320
PIC10LF322
PIC12F508
PIC12F509
PIC12F510
PIC12F519
PIC12F609
PIC12HV609
PIC12F615
PIC12HV615
PIC12F617
PIC12F629
PIC12F635
PIC12F675
PIC12F683
PIC12F1501
PIC12LF1501
PIC16F505
PIC16F506
PIC16F526
PIC16F610
PIC16HV610
PIC16F616
PIC16HV616
PIC16F627A
PIC16F628A
PIC16F630
PIC16F631
PIC16F636
PIC16F639
PIC16F648A
PIC16F676
PIC16F677
PIC16F684
PIC16F685
PIC16F687
PIC16F688
PIC16F689
PIC16F690
PIC16F716
PIC16F785
PIC16HV785
PIC16F1503
PIC16F1507
PIC16LF1503
PIC16LF1507
PIC18F13K50
PIC18F14K50
PIC18LF13K50
PIC18LF14K50
PIC24F04KA200
PIC24F04KA201

PICkit3でデバッグしたいなら(ICEとして使いたいなら)、これらはできるだけ避けたほうが無難です。

2013/09/06

行末とコメントを除いた部分の行末を行き来する end-of-line

Emacsで C-e するとコメントがあろうがなかろうが行末に飛びます。

いたって普通の動作です。

しかし、カレント行にコメントがある場合は、コメントではない部分の末尾に飛んでほしいと、以前から思っていました。

言葉にするとややこしいのですが、下の画像のようなことがしたかったわけです。

C-e すると、まずはコメントではない部分の末尾にジャンプ。

もう一度 C-e すると、行末にジャンプ。

さらにもう一度 C-e すると…、これ以降トグルです。

長年の希望が叶ったので記念に貼っておきます。

ちなみに、ソースの * が付いている2行のコメントアウトを外すと、

コメントではない部分の末尾 → コメントの先頭 → 行末

と飛びますが、ちょっと煩雑すぎる気がしたので無効にしています。