Raspberry PI 3用のADCボード

PCM1808(24-bit 96kHz ステレオ AD変換器)を用いた、ADCボードです。

http://select.marutsu.co.jp/list/detail.php?id=258

pi@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: sndrpipcm1808ad [snd_rpi_pcm1808_adc], device 0: PCM1808 ADC HiFi pcm1808-dai-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

pi@raspberrypi:~ $ arecord -vD hw:0,0 -c 2 -d 60 -r 96000 -f S16_LE test96.wav
Recording WAVE 'test96.wav' : Signed 16 bit Little Endian, Rate 96000 Hz, Stereo
Hardware PCM card 0 'snd_rpi_pcm1808_adc' device 0 subdevice 0

LilyPond(2)

あなたは、あなたのソースコードをLilyPondが生成するMIDIファイルを再生することによってデバッグできます。\scoreブロックの中に、\midiブロックを挿入するだけです。

\score {
  \new StaffGroup <<
    \new Staff << \global \violineOne >>
    \new Staff << \global \violineTwo >>
  >>
  \layout { }
  \midi {
    \tempo 2 = 90
  }
}

LilyPond

LilyPondは、楽譜を作成するためのプログラムです。

どのように動作するのか見てみましょう。これが、ソースコードです。解読は容易でしょう。これを書くのに5分間程かかりました。

\version "2.18.2"
\header{
  title = "Sinfonie in g"
}

global = {
  \tempo "Molto Allegro"
  \time 2/2
  \key g \minor
}

violineOne = \new Voice \relative g''{
  \set Staff.instrumentName = #"Violin 1 "

  \clef "treble"
  r2 r4 ees8(\p d) d4 ees8( d) d4 ees8( d) d4( bes')
  r4 bes8( a) g4 g8( f) ees4 ees8( d) c4 c
  r4 d8( c)
}

violineTwo = \new Voice \relative g'{
  \set Staff.instrumentName = #"Violin 2 "

  \clef "treble"
  r2 r4 ees8(\p d) d4 ees8( d) d4 ees8( d) d4( bes')
  r4 bes8( a) g4 g8( f) ees4 ees8( d) c4 c
  r4 d8( c)
}

\score {
  \new StaffGroup <<
    \new Staff << \global \violineOne >>
    \new Staff << \global \violineTwo >>
  >>
  \layout { }
}

ソースファイルをセーブしてコンパイルして、pdfファイルを得ます。そうら、できた!

Raspberry PIとpigpioライブラリ(2)

シェルコマンドpigsが、GPIOを制御するために提供されています。

pi@raspberrypi:~/Zpigpio $ sudo pigpiod

pi@raspberrypi:~/Zpigpio $ pigs w 4 1
pi@raspberrypi:~/Zpigpio $ pigs r 4
1
pi@raspberrypi:~/Zpigpio $ pigs w 4 0
pi@raspberrypi:~/Zpigpio $ pigs r 4
0

Raspberry PIとpiscope

piscopeは、Raspberryのためのディジタル波形ビューアーです。それは、選択されたGPIOの状態(ハイかロー)を、ローカルでもしくはリモートで表示します。

Raspberry PIとカーネルビルド(2)

あなたはソースをたとえばLinuxプラットフォームの上でクロスコンパイルすることもできますが、仮想マシンを使った場合は、SDカードの取り扱いが少しだけ面倒です。

私は、X11関連とかの不要なパッケージを捨てることにより、ローカルビルドを続けることにしました。

pi@raspberrypi:~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       5.8G  2.1G  3.4G  38% /

pi@raspberrypi:~/Zkernel/linux $ time make -j4 zImage modules dtbs
real	65m26.604s
user	235m23.420s
sys	11m3.260s

オプション-j4を用いるとCPU温度が結構高くなるので、デバイスを冷やすために小さなファンを用いました。

pi@raspberrypi:~ $ vcgencmd measure_temp
temp=60.5'C

そして、最後にこのようになります。

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.9.30-v7+ #1 SMP Mon May 29 07:24:28 UTC 2017 armv7l GNU/Linux

pi@raspberrypi:~ $ cat /proc/version
Linux version 4.9.30-v7+ (pi@raspberrypi) (gcc version 4.9.2 (Raspbian 4.9.2-10) ) #1 SMP Mon May 29 07:24:28 UTC 2017

pi@raspberrypi:~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       5.8G  3.6G  2.0G  66% /

Raspberry PIとカーネルビルド

最初に現在のSDカードのイメージを保存しておきます。

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.9.25-v7+ #994 SMP Fri Apr 28 16:56:00 BST 2017 armv7l GNU/Linux

pi@raspberrypi:~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       5.8G  4.3G  1.2G  79% /
devtmpfs        458M     0  458M   0% /dev
tmpfs           462M     0  462M   0% /dev/shm
tmpfs           462M  6.4M  456M   2% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           462M     0  462M   0% /sys/fs/cgroup
/dev/mmcblk0p6   65M   21M   45M  33% /boot
tmpfs            93M     0   93M   0% /run/user/1000
/dev/mmcblk0p5   30M  398K   28M   2% /media/pi/SETTINGS

Mac-mini:Zraspberry $ sudo dd if=/dev/rdisk4 bs=1m of=raspberry20170529.img
7695+0 records in
7695+0 records out
8068792320 bytes transferred in 397.093440 secs (20319631 bytes/sec)

Mac-mini:Zraspberry $ ls -l
total 15759360
-rw-r--r--  1 root  staff  8068792320 May 29 08:03 raspberry20170529.img

そして、ソースをビルドしますが、しかし・・。

pi@raspberrypi:~/Zkernel $ git clone --depth=1 https://github.com/raspberrypi/linux

pi@raspberrypi:~/Zkernel $ cd linux
pi@raspberrypi:~/Zkernel/linux $ KERNEL=kernel7
pi@raspberrypi:~/Zkernel/linux $ make bcm2709_defconfig
pi@raspberrypi:~/Zkernel/linux $ time make -j4 zImage modules dtbs
scripts/kconfig/conf  --silentoldconfig Kconfig

...fatal error: error writing to /tmp/cc4wpGOn.s: No space left on device...

pi@raspberrypi:~/Zkernel/linux $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       5.8G  5.5G   32K 100% /