お気持ちの表明

思考を雑に外出していきます

GitHub PageをReactで作ってみるまでのメモ

転職活動している時に、自己紹介代わりにGistにかいといた職務経歴書を投げつけていた。 転職活動中に会う人だからいいけど、初対面で投げつけるにしてはちょっと重すぎない?????となっていた。 で、ゆるふわなプロフィールページほしくない???となり、GitHub Pageの存在を思い出し、ReactNative書いてたし、Reactでイケるやろ!!!とやったときのメモ

Hello, World的なところまで

公式の以下のページを参考にしつつ、進めていく

[username].github.ioリポジトリを作る。 私の場合mrtry.github.ioで作った。

f:id:symmt9302:20180507163035p:plain

作ったリポジトリをcloneする 私の場合はこんなかんじ

$ git clone https://github.com/mrtry/mrtry.github.io

テキトーなhtmlを作ってpushしてみる

$ cd mrtry.github.io
$ echo "Hello World" > index.html
$ git add -A
$ git commit -m 'init'
$ git push origin master

https://mrtry.github.ioにアクセスしてみると、見れる。爆速。

f:id:symmt9302:20180507163117p:plain

create-react-appでそれっぽいのをつくる

趣味の問題でTypeScriptでやっていきます。

$ create-react-app my-pages --scripts-version=react-scripts-ts

こうなります

$ ls
README.md          node_modules       public             tsconfig.json      tslint.json
images.d.ts        package.json       src                tsconfig.test.json yarn.lock

startしてみます

$ yarn start

ババーンとできます

f:id:symmt9302:20180507163328p:plain

git initとかしていきます

$ git init

.gitignoreは、/buildコメントアウトしときます

$ cat -n .gitignore
     1  # See https://help.github.com/ignore-files/ for more about ignoring files.
     2
     3  # dependencies
     4  /node_modules
     5
     6  # testing
     7  /coverage
     8
     9  # production
    10  #/build
    11
    12  # misc
    13  .DS_Store
    14  .env.local
    15  .env.development.local
    16  .env.test.local
    17  .env.production.local
    18
    19  npm-debug.log*
    20  yarn-debug.log*
    21  yarn-error.log*

buildします

$ yarn build

ここまでやったやつをpushしても、GitHub Pageのドキュメントルートは/buildになっていないので、Webページは見れないです。

User Pagesのドキュメントルートを無理くりいじる

/buildをドキュメントルートとしたいので、以下を参考にいじっていきます

sourceというブランチを生やしておく

$ git checkout -b source
$ git push origin source

Default Branchsourceにする

f:id:symmt9302:20180507163416p:plain

masterを消して、subtreeをbuild/にしたmasterを作ってpushする

$ git push -f --delete origin master
$ git subtree push --prefix build/ origin master

masterはこんな感じになる

f:id:symmt9302:20180507163444p:plain

めでたく、Reactの画面が出てくる

f:id:symmt9302:20180507163515p:plain

基本的にsourceで作業して、作業が終わったらこれらの処理をガッとやればデプロイってかんじになりそう というわけで、雑にこんなスクリプトを書いた

cd $(git rev-parse --show-toplevel)
yarn build
git add -A
git commit -m 'deploy'
git push -f --delete origin master
git subtree push --prefix build/ origin master

シュッとやったリポジトリはこちらになります

できたページはこんなかんじです

参考

株式会社オトバンクを退社しました

タイトルの通り株式会社オトバンクを退社しました。
新卒で入社して、丸2年務めた感じになります。

オトバンクでやってたこと

オーディオブックのサービスaudiobook.jp(旧名:FeBe)に関わっていました。

列挙してみると、こんな感じです

少人数だったので、いろいろなことに手を出していました。 最初はサーバーサイドエンジニアでしたが、入社半年後からはアプリエンジニアをしてました。 未経験ながら、既存のAndroidアプリの保守をやったり、ReactNativeで新規開発をしたことは、とても良い経験になったなあと思っています。

これからのこと

まだ決まっていません!!!!

絶賛求職中でして、次もAndroidアプリエンジニアをやっていきたいと思っています。

主軸としては、以下の2点を大事にしてます

  • toCなサービス開発に関われるところ
  • アプリ専任チームがあるところ

もしなにかイイ話があれば、一度ランチやら飲みに誘っていたけるとうれしいです!
連絡はTwitterにて、リプなりDMいただければ、レスできると思います!
職務経歴書を送ることもできます!

ほしいものリスト

気が乗ったら、お願いします 👏

カリーヴルスト

f:id:symmt9302:20180422205040j:plain

カリーヴルストって知ってます?
ドイツ料理らしく、ケチャップにカレー粉を混ぜたソースにソーセージやらフライドポテトをつけて食べる感じのものです
雑に作れる割に結構美味しいのでよくやります
私は、ケチャップ、カレー粉、胡椒、にんにく、ウスターソースをテキトーに入れて混ぜてソースとしてます
酒のいいつまみになります

私からは以上です

スープカレー作った

お料理ブログ書きたいなぁと思ってたけど、
スマホアプリから写真貼ればラクやん?と気づいたので、雑に書いてみる。
アプリから写真あげて、PCで編集してるけど、なぜかmarkdown編集できなくてつらい。
(スマホアプリの設定で、編集モードをmarkdownにしておけば問題なかったらしい)

最近過食気味だったので、糖質少なめな具だくさんスープを作って生きております。
トマトスープが作りすぎて飽きたので、最近はスープカレーをガッとやってます。
今日は、キャベツと玉ねぎと豚肩が入ったスープカレー作っていきます。

とりあえず、肉をいい感じに切って、塩水につけておきます(ブライニング...?)。
下味つくとか、肉が柔らかくなるとか、そんな効果があるはず。

f:id:symmt9302:20180408193344j:image

キャベツ半玉を切って、洗って、濡れたまま鍋に入れて火にかけて蒸しておきます。

f:id:symmt9302:20180408192318j:image

15分ぐらい蒸していると、半分ぐらいまで量が減るんで、それまでは放置
f:id:symmt9302:20180408193353j:image

その間に、玉ねぎに塩振って、多めの油で揚げ焼く勢いで火強めにして炒めてく

f:id:symmt9302:20180408192020j:image

今日はこれぐらいでやめた。
これぐらいになるタイミングでキャベツがいい感じに蒸しあがってたりする。f:id:symmt9302:20180408193413j:image

これにスパイスを突っ込んでルウ的な何かを生成していく。
カレー粉、バジル、にんにく、チリペッパー、胡椒、ボーンブロスの素などなど...。
f:id:symmt9302:20180408193903j:image

蒸しあがったキャベツにつっこみます
f:id:symmt9302:20180408194257j:image

肉と水とケチャップとウスターソース、味見をしつつ塩を突っ込みます。
肉は焼いたほうが風味つくけど面倒なのでやめました。
f:id:symmt9302:20180408194623j:image
あとは沸騰しないぐらいで火を止めて、予熱で肉に火が通ったぐらいで完成です。
f:id:symmt9302:20180408200138j:image
盛ったらこんな感じになりました。
飲酒した後とかに飲むと最高って感じになれます。
f:id:symmt9302:20180408200303j:imageこれで平日を乗り切っていくぞい。 完

Alexaから家の家電を制御できるようにした際の格闘記録 その1 やりたいことの確認と購入した部品とライトの制御まで

あらまし

ざっくりこんなかんじでした

  • 最近自宅作業が多くなってきて、家環境整えてきてえ〜というお気持ちが高まっていた
  • 最近流行りなスマートホームってよさげやん。やってみたいやん。
  • Raspberry Piかって、Alexaつっこめば1台で全部できそうやん?
  • やっていき〜〜〜

やりたいこと

  • Raspberry PiにAlexaを入れて、
  • 音声制御でおうちの家電をいい感じに制御して、
  • 快適なおうち生活を送っていきたいっ...!!!!!!

完成図

こんなかんじでイケるようになりました オフトゥンから出ずに暖房つけれるので最高ですね

Alexaパイセンから家電制御できるようにしたーーーーー!これで布団から出ずにエアコンいじったり、電気消せるーーー!

やったこと

一覧としてはこんな感じでした

  • Raspberry Pi 3買った
  • 必要な電子部品等を買った
  • コンセントから電源とるライトをオンオフできるようにした
  • エアコンを赤外線LEDで制御できるようにした
  • Raspberry PiにAlexaを召喚
  • MQTTサービスを利用して、AlexaからGPIOの操作をする

書いててクソ長くなって気力が死んだので、とりあえずライトの制御までを書いていきます

Raspberry Pi 3買った

普通にAmazonで買いました。

ケースは個人的にイケメンと感じたのでこれにしました。

SDは家にあった32GBのをつかってみましたが、16GBぐらいでたぶん十分だった。

必要な電子部品等を買った

以下の部品らを秋月で買ってきました

あと、マイクをつなげるのに、USBのサウンドボードを買った

秋月で買わなかったけど、延長コードも1本必要でした 以下のような感じで、途中から裂いたりできるタイプ

コンセントから電源とるライトをオンオフできるようにした

机にある電気をラズパイから制御できるようにしてきます。 ソリッドステートリレーが活躍してくれます

写真を撮り忘れたんですけど、雰囲気は以下のブログのような感じです

物理の実装

とりあえず、物理層の実装はこんな感じです

  1. 秋月のソリッドステートリレーのキットを組み立てる
  2. コンセントの延長コードを準備して、適当な位置で真ん中を裂く
  3. 2本になったうち、片方のケーブルを切って、ソリッドステートリレーキットのACの+-部分につなぐ
  4. ソリッドステートリレーキットのDCの+-部分には、RaspberryPiにつなげれるようにする
  5. DCの+-部分はRaspberry PiのGPIOとGNDにつなぐ

これで準備はできた感じです。

回路に問題ないかを確認したかったら、角電池とバッテリースナップを準備して、DCのところに抜き差ししてみるとサクッと確認できて便利です

あとは、Raspberry PiのGPIOピンにDCの部分をつないで、GPIOをHIGHにしてやると電気がつくはずです

アプリ層の実装

GPIOをいじってRaspberry Piからソリッドステートリレーをオンオフできるようにしてみます。 GPIOを操作するにはWritingPiが導入ラクだし使うのラクだったので、使ってます。

導入は以下みたいなコマンドをぶったたけば終わるのでちょろいです

$ sudo apt-get install libi2c-dev git 
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi 
$ ./build

実際にGPIOをHIGHにしたりLOWにする際は、こんなかんじでやります

$ gpio -g mode 18 out // BCM 18ピンをoutモードにする
$ gpio -g write 18 1  // BCM 18ピンをHIGHにする

ピンの番号がわからないときは、gpio readallを叩くとわかります 実際のピンに対応するBCM番号や、現在のモードと値がわかったりします。

例えば、さっきのコマンドを叩いたあとにgpio readallしてみると、 BCM 18に当たるGPIO.1というnameの行がModeOUTV1になっていたりします

$ gpio readall
 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5v      |     |     |
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 0 | IN   | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | IN   | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 1 | OUT  | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | OUT  | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+

ここまでできたら、ソリッドステートリレーのDC部分をGPIO.1GNDにつないでみると、ライトがついてくれるはず。

もし、つかなかったら、以下を確認してみましょう。

  • gpio readallをして、繋いでいるところのGPIOのV1になっているかを確認
    • さっきの例だとGPIO.1V1になっていればいい
  • DCのところに乾電池とかを繋いでみて、ライトが点灯するか
  • GPIOの読む際、Raspberry Piの向きがあっているか -私はこれをミスりまくって時間を溶かした

オフにする際は、V0にすればよい

$ gpio -g write 18 0  // BCM 18ピンをLOWにする

こんなかんじで、Raspberry Piからライトをオンオフできるようになりました。

次の記事ではエアコンを制御したときのことを書こうと思います〜。

Raspberry Pi Zero Wのセットアップ

あらまし

最近、リモート勤務が多くなって、自宅にいる時間が長くなってきたので、家環境をいい感じにしたい気がしていました。 冬休みを長めに取ったし、冬休みのお勉強がてら、おうちハックをキメてこうと思って、Raspberry PiのZero Wと3を買いました。

今日はとりあえず、Zeroのほうのセットアップをしたので、忘備録として書いとこうと思います。

やったこと

  • 家に既にあったRaspberry Piのホスト名を変えておく
  • はんだ付けする
  • イメージをSDに書き込む
  • Host名を書き換える

家に既にあったRaspberry Piのホスト名を変えておく

私の家には、家に既にRaspberry Pi Model Bがある。
電源を入れてsshしようとすると、avahi-daemonで使っているホスト名が被って繋がらなさそうな気がした。

とりあえず、今稼働中のRaspberry Piのホスト名を変更する。 ホスト名を変更したければ、/etc/hosts/etc/hostnameに記載されているraspberrypiという名前の箇所を任意に書き換えればいいので、書き換える。 今そのRaspberry Piは、低温調理機以外の運用をしていないので、sous-vide-cooker-piと命名しといた。

以下、元あったRaspberry Piの書き換えたファイル

$ cat /etc/hostname
sous-vide-cooker-pi

$ cat /etc/hosts
127.0.0.1   localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

127.0.1.1   sous-vide-cooker-pi

はんだ付けする

各種センサーを買ったりしたら、こいつを介して操作なり、値取得したいと思ったので、自前でピンをはんだ付けしとく。

f:id:symmt9302:20180101021043j:plain

はんだ付け最中に、カメラのコネクタ的な箇所を折ってしまった様子..........。
まあ、カメラつかわないと思うので、気にしないことにしておく。

f:id:symmt9302:20180101021016j:plain

イメージをSDに書き込む

とりあえず、本家からイメージをとってきます

デスクトップ環境はいらないので、LITEのほうを落としました

f:id:symmt9302:20180101020717p:plain

落としたイメージはEtcherという便利ツールでSDに書き込みます。 OSXでSDのイメージ焼くのダルかった印象あるんですけど、これつかうとサクッといけて最高でした。

セットアップを進める際に、OTGという機能を使ってUSB経由でRaspberry Piの設定をいじりたいので、書き込んだSDの中にある2ファイルを書き換えておく。

cmdline.txt

rootwaitquiet の間に modules-load=dwc2,g_ether を追記する

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=37665771-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet init=/usr/lib/raspi-config/init_resize.sh

config.txt

末尾にdtoverlay=dwc2を追加する

$ echo "dtoverlay=dwc2" >> /Volumes/boot/config.txt

ssh

sshできるようにするために、中身は空で良いのでsshというファイルを作っておく

$ pwd
/Volumes/boot

$ touch ssh

$ ls
COPYING.linux          bcm2708-rpi-0-w.dtb    bcm2708-rpi-cm.dtb     bcm2710-rpi-cm3.dtb    config.txt             fixup_db.dat           kernel.img             ssh                    start_db.elf
LICENCE.broadcom       bcm2708-rpi-b-plus.dtb bcm2709-rpi-2-b.dtb    bootcode.bin           fixup.dat              fixup_x.dat            kernel7.img            start.elf              start_x.elf
LICENSE.oracle         bcm2708-rpi-b.dtb      bcm2710-rpi-3-b.dtb    cmdline.txt            fixup_cd.dat           issue.txt              overlays               start_cd.elf

wifiの設定

wpa_supplicant.confというファイルにWiFiの設定を記述する このファイルを作成しておくと、OS起動時に/etc/wpa_supplicant/wpa_supplicant.confを上書きしてくれるとのこと

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="自分ちのWiFiのSSID"
    psk="対応するPW"
}

ここまでできたら、Zero本体にSDカードをセットし、micro USBデータポートとPCのUSBポートを接続する
(ついでに購入していたケースに収めた)

f:id:symmt9302:20180101020649j:plain

OSXの「共有」の設定画面から「インターネット共有」を選択しRNDIS/Ethernet Gadgetをオンにして、「インターネット共有」をオンにする

f:id:symmt9302:20180101020705p:plain

ここまで一通り終えて何も問題なければ、USB経由でRaspberry Piにアクセスできるようになっている。
raspberrypi.localpingを飛ばすと、疎通が取れることを確認できる。

$ ping raspberrypi.local
PING raspberrypi.local (192.168.2.2): 56 data bytes
64 bytes from 192.168.2.2: icmp_seq=0 ttl=64 time=0.418 ms
64 bytes from 192.168.2.2: icmp_seq=1 ttl=64 time=0.437 ms
64 bytes from 192.168.2.2: icmp_seq=2 ttl=64 time=0.367 ms
64 bytes from 192.168.2.2: icmp_seq=3 ttl=64 time=0.334 ms
64 bytes from 192.168.2.2: icmp_seq=4 ttl=64 time=0.421 ms
64 bytes from 192.168.2.2: icmp_seq=5 ttl=64 time=0.317 ms
^C
--- raspberrypi.local ping statistics ---
6 packets transmitted, 6 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.317/0.382/0.437/0.046 ms

で、疎通が確認できたのでSSHしてみる
が、前のRaspberry Piの設定が残ってて怒られた\(^o^)/

$ ssh pi@raspberrypi.local
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for raspberrypi.local has changed,
and the key for the corresponding IP address 192.168.2.3
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:OKg7/purvgRAstmPcBClMoguGxtTq/fYEXgsncrr+uA.
Please contact your system administrator.
Add correct host key in /Users/symmt/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/symmt/.ssh/known_hosts:12
ECDSA host key for raspberrypi.local has changed and you have requested strict checking.
Host key verification failed.

こうやって、以前のキーを無効にしておく

$ ssh-keygen -R raspberrypi.local
# Host raspberrypi.local found: line 12
/Users/symmt/.ssh/known_hosts updated.
Original contents retained as /Users/symmt/.ssh/known_hosts.old

これで、sshすると接続できるはず ifconfigして、WiFiもつながっていることを確認する

$ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

usb0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether be:00:90:c1:b0:26  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.105  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::213:71d8:461d:dc5d  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:d3:1a:24  txqueuelen 1000  (Ethernet)
        RX packets 408  bytes 63330 (61.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 122  bytes 21324 (20.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Host名を書き換える

ホスト名が他のRaspberry Piと被らないように変更しておく

$ cat /etc/hostname
raspberry-pi-zero

$ cat /etc/hosts
127.0.0.1   localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

127.0.1.1   raspberry-pi-zero

変更したホスト名でpingできることを確認する

$ ping raspberry-pi-zero.local
PING raspberry-pi-zero.local (192.168.2.7): 56 data bytes
64 bytes from 192.168.2.7: icmp_seq=0 ttl=64 time=0.694 ms
64 bytes from 192.168.2.7: icmp_seq=1 ttl=64 time=0.319 ms
^C
--- raspberry-pi-zero.local ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.319/0.506/0.694/0.188 ms

これで一通りの設定はできたと思うので、おしまい そのうち電子工作したらまた書く

参考

マイクプリアンプを作った話

このブログ記事は、 Dark - Developers at Real Kommunity Advent Calendar 20179日目の記事になります。
どちゃくそ遅れていまして、ごめんなさい〜〜〜〜〜〜〜〜〜〜〜。

今日は最近やったマイクプリアンプの話でも雑にしてます。

マイクプリアンプつくった経緯

私は歌うのが好きで、たまに歌ったやつを練習がてらスマホで録音したりするんですよね。
特にどこかに晒すわけでもなく、自分で聴ければいいやってレベルだったので、
スマホについてるマイクで録音をしていました。

そんな私なんですが、最近nanaってサービスを知りました。

めっちゃ面白いじゃん!!!
って思って、スマホで録音したのを投稿してみたりしたんですけど、
使っているスマホのマイクなので、音質が気になり始めたんですね。

で、今はスマホ用のオーディオインターフェースがあったりするので、買ってみました。

TASCAM マイク ギターインターフェース iPad iPhone iPod touch用 iXZ

TASCAM マイク ギターインターフェース iPad iPhone iPod touch用 iXZ

ちなみに、マイクはコレです

BEHRINGER XM8500

BEHRINGER XM8500

これにダイナミックマイクをXLRケーブルで繋いで録音してみたんですが、ボリュームが小さい。
ボリュームをあげるには、マイクプリアンプというボリューム上げるくんが必要になるんですが、
これが買おうとすると安くても5,000円ぐらいするんですね。

既に3,000円つっこんで、更に5,000円突っ込む気にはなれない...。
でも、自作なら2,000円もかからずに作れるのでは?と思って、今回作ってみました。

必要な部品

実際に作るのに必要な部品は以下になりました

必要なもの 金額
プリアンプキット 700円
XLRコネクタ(オス) 324円
XLRコネクタ(メス) 410円
配線 300円
スイッチ 80円
バッテリースナップ 20円
ダイソーに売ってたカードケース 100円

で、合計金額1,934円となり、2,000円いかなかったですね〜。

しかもこの必要なもの一覧、カードケース以外は全部学生の時に買って家に余ってたので、
追加出費したのは100円で済みました。最高。

作り方

やったことはこんな感じ

  1. プリアンプキットの説明書を読みながらはんだ付けする
  2. カードケースに穴をあける
  3. がんばって部品を入れ込む

今回は、マイクプリアンプのキットを買ったので、説明書読んではんだ付けするだけで済みました!
キットをつかって作る分には、プラモデル感覚でモノが作れるので、最高です。

電子工作で一番の難関ぽいのは、個人的にはケースの準備だと思います。
私はよくダイソーにいって調達しています。
最近は、今回も利用しているアクリル製カードケースがめっちゃいいサイズで最高となっております。

ちなみに、穴開けたりするときは、タミヤのリューターを使ってます。
電池式で軽いしまあ便利です。

タミヤ クラフトツール 電動ハンディリューター 74042

タミヤ クラフトツール 電動ハンディリューター 74042

完成形

こんな感じでできました。

f:id:symmt9302:20171224231602j:plain

使うときはこんな感じで、マイクとオーディオインターフェース間にかませます。 ボリューム操作は、オーディオインターフェース側でよしなにします。

f:id:symmt9302:20171224231617j:plain

録音もいい感じの音量でできるようになって、最高でした。

おわりに

こういう電子工作は結構敷居高く感じられる人が多い印象ですけど、
説明書つきのキットなり、作りたいものの回路さえゲットしちゃえば、
難易度的にはプラモデルつくるのと、そう変わりないです。たぶん。

私はオーディオ系のものをつくるのが好きで結構ハマっていました。
マイクとかイヤホンが好きな人は、レシピがよく落ちてるので、つくってみるときっと楽しいです。

最近はRaspberry Piと連携してIoTなこともできますし、
電子工作に触れてみると、プログラミングで遊べる幅も広がって楽しいですよ!
もうすぐ冬休みですし、暇な人はぜひRaspberry PiとLED買ってきてビカビカさせてみたりしてください。笑