Euviccです。
とりあえずVNCでMacからラズパイをいじれるようになったところで例のごとく作業が止まってしまっていました。はじめの一歩、いや半歩踏み出して何かやった気分になる。いつもの悪い癖ですね(苦笑) おいおい、こんなことじゃいかんだろ。一応壮大な構想があるんじゃなかったのか?(汗
壮大かどうかはともかく、Raspberry Piであればこそできることってのを念頭に置いて考えてみると、こんな感じかな?
- ・大きな目標
- ラズパイをサーバにし、家の外(主にiPhone)からアクセスしてなんかする――手近に思いつくところではエアコンの制御とか(^^; あとは部屋の照明のスイッチON/OFFとかもできればいいなあ……
- ・目先の目標
- ↑はとりあえず色々設定したり開発したりせにゃならんのはわかる。具体的なことはわかんなくてもとりあえず大変そうなのはわかる。なので、このへんから試してみようと思う。
- 環境整備編
- Node.jsのインストール
- Nodeのパッケージjohnny-fiveとraspi-ioのインストール
- VScodeのインストールとカスタマイズ
- とにかく触ってみる編
- 諦めてパーツセットを仕入れる
- WiringPiライブラリをインストール→直接操作を試す
- 開発実践編
なんでNode.jsかっていうと、仕事でたまたま触る機会があって興味を抱いたのですよねNodeに。で、コレを使えばサーバサイドでjavascriptが動かせて、極小単機能のWebサーバとか作れちゃうって聞けば、そりゃあやってみたくなるじゃない?w さっき書いた「大きな目標」とやらにも近づくよ?(((o(*゚▽゚*)o))) さらに1.2に書いたパッケージを導入できればラズパイのH/Wも動かせるってんなら、もうやらなきゃダメだよね。
1.3のVScodeについては、ちったあ使いやすいコードエディタが欲しいなって思ったのがきっかけ。既にMacさんには入れてあるし、コード書くならソッチでやった方が明らかに効率いいじゃんとは思うけど、折角だから"MicrosoftのVisual StudioがLinux上で動く!!"をやってみたかったのさw
2は……つまるところ我慢できなかったってだけでw とにかくLEDをチカチカさせてみたかった。他にも
3の実践編については……また後で話そう(`・ω・′)キリッ
やれそうなところから手をつける:まずはNode.jsから
nvm+Node.js最新Ver.編
今回も例のごとくQiitaをガン見させてもらいましたw で、こちら↓を参考にしてみた。
qiita.com
いやもうちょっと正確に言うと、上記のエントリを見つけたからこそ直近目標の1.1と1.2が発生した、ということですね(^_^;)
Raspbianには既にNode.jsが入ってるらしいが、バージョンを確認してみるとあちこちのサイトで言われてる通り、旧い。現状最新の"Raspbian Jessie with PIXEL"であっても、この状況は同じ。そんなわけで、現状入ってるNodeを削除して記事通り/usr/local/nvm
ディレクトリを作り、chmod
してアクセス権限変えて、さてではインストール開始。以下のコマンドを連続で実行する。
pi@ras-pi_euvicc:~ $ git clone https://github.com/creationix/nvm.git /usr/local/nvm pi@ras-pi_euvicc:~ $ source /usr/local/nvm/nvm.sh pi@ras-pi_euvicc:~ $ nvm ls-remote pi@ras-pi_euvicc:~ $ nvm install v5.4.0
たぶん、無事に入った……のかな?(^_^;) node -v
してみるとv5.4.0
という表示が。一応、成功してるっぽい。
パッケージのインストール編
Nodeが無事に入ったんならこれでnpmが動くね。ではパッケージを入れてみよう。さっきも書いたjohnny-fiveってヤツと、raspi-ioだ。ちなみにこいつら何者かっつーと
johnny-five.io
本来Arduino向けらしい。これをラズパイに対応させるPlug-inが
github.com
コイツってわけだ(((o(^∇^)o)))
まあ、すぐには使わんけどね。寧ろWebサーバ立てるんならExpressの方が先かもしれん。Expressってなあ、コレだ。
Express - Node.js web application framework
github.com
まあ、コッチは後回しにしましょう。
ではインストール開始。
pi@ras-pi_euvicc:/usr/local/nvm $ npm install johnny-five npm WARN checkPermissions Missing write access to /usr/local/nvm/node_modules nvm@0.33.4 /usr/local/nvm └── johnny-five@0.11.6 extraneous npm ERR! Linux 4.9.35-v7+ npm ERR! argv "/usr/local/nvm/versions/node/v5.4.0/bin/node" "/usr/local/nvm/versions/node/v5.4.0/bin/npm" "install" "johnny-five" npm ERR! node v5.4.0 npm ERR! npm v3.3.12 npm ERR! path /usr/local/nvm/node_modules npm ERR! code EACCES npm ERR! errno -13 npm ERR! syscall access npm ERR! Error: EACCES: permission denied, access '/usr/local/nvm/node_modules' npm ERR! at Error (native) npm ERR! { [Error: EACCES: permission denied, access '/usr/local/nvm/node_modules'] npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'access', npm ERR! path: '/usr/local/nvm/node_modules' } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm ERR! Please include the following file with any support request: npm ERR! /usr/local/nvm/npm-debug.log
なんですと?? インストール……失敗した?_| ̄|○ il||li コンソール出力を読み直してみる。あ、そりゃダメだ。permission denied
やもん。権限不足で/usr/local/nvm
にアクセスできてへんやないか(汗 またやらかしたなオレは(´・ω・`) 慌ててchmod 777 /usr/local/nvm
し、気を取り直してもう1回。
pi@ras-pi_euvicc:/usr/local/nvm $ npm install johnny-five > serialport@4.0.7 install /usr/local/nvm/node_modules/serialport > node-pre-gyp install --fallback-to-build node-pre-gyp ERR! Tried to download(404): https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.7/serialport-v4.0.7-node-v47-linux-arm.tar.gz node-pre-gyp ERR! Pre-built binaries not found for serialport@4.0.7 and node@5.4.0 (node-v47 ABI) (falling back to source compile with node-gyp) make: Entering directory '/usr/local/nvm/node_modules/serialport/build' CXX(target) Release/obj.target/serialport/src/serialport.o CXX(target) Release/obj.target/serialport/src/serialport_unix.o CXX(target) Release/obj.target/serialport/src/serialport_poller.o SOLINK_MODULE(target) Release/obj.target/serialport.node COPY Release/serialport.node make: Leaving directory '/usr/local/nvm/node_modules/serialport/build' nvm@0.33.4 /usr/local/nvm └── johnny-five@0.11.6 extraneous
ん〜、またなんか警告らしきものが出てるけど、一応インストールには成功してるっぽい。
お次はraspi-io。こちらも、johnnyの時同様permissionの問題が解決できてればちゃんと入るようです(^_^;)
pi@ras-pi_euvicc:/usr/local/nvm $ npm install raspi-io > raspi-gpio@5.0.0 preinstall /usr/local/nvm/node_modules/.staging/raspi-gpio-4bf6d7b0c035b9457346e860b9f9f7f7 > sh ./script/pigpio.sh pigpio is already installed, skipping installation > raspi-pwm@5.0.0 preinstall /usr/local/nvm/node_modules/.staging/raspi-pwm-5ff61ef2401444349103a99463455e92 > sh ./script/pigpio.sh pigpio is already installed, skipping installation > raspi-soft-pwm@4.0.1 preinstall /usr/local/nvm/node_modules/.staging/raspi-soft-pwm-f0d3e3fd9555971e4d3fcd77acb27090 > sh ./script/pigpio.sh pigpio is already installed, skipping installation npm WARN install:promirepl@1.0.1 EACCES: permission denied, symlink '../promirepl/bin/prominode.js' -> '/usr/local/nvm/node_modules/.bin/prominode' > i2c-bus@1.2.2 install /usr/local/nvm/node_modules/i2c-bus > node-gyp rebuild make: Entering directory '/usr/local/nvm/node_modules/i2c-bus/build' CXX(target) Release/obj.target/i2c/src/i2c.o SOLINK_MODULE(target) Release/obj.target/i2c.node COPY Release/i2c.node make: Leaving directory '/usr/local/nvm/node_modules/i2c-bus/build' > pigpio@0.6.2 install /usr/local/nvm/node_modules/pigpio > node-gyp rebuild make: Entering directory '/usr/local/nvm/node_modules/pigpio/build' CXX(target) Release/obj.target/pigpio/src/pigpio.o SOLINK_MODULE(target) Release/obj.target/pigpio.node COPY Release/pigpio.node make: Leaving directory '/usr/local/nvm/node_modules/pigpio/build' > raspi-i2c@6.1.0 postinstall /usr/local/nvm/node_modules/raspi-i2c > echo "Enabling I2C at boot time, you may be asked for your password" && sudo env "PATH=$PATH" script/enable_i2c.js Enabling I2C at boot time, you may be asked for your password Checking if I2C is enabled at boot time Enabled I2C at boot time YOU MUST REBOOT YOUR PI BEFORE USING I2C! nvm@0.33.4 /usr/local/nvm ├── raspi@5.0.1 extraneous ├── raspi-gpio@5.0.0 extraneous ├── raspi-i2c@6.1.0 extraneous ├── raspi-io-core@2.0.1 extraneous ├── raspi-led@2.0.0 extraneous ├── raspi-pwm@5.0.0 extraneous └── raspi-soft-pwm@4.0.1 extraneous pi@ras-pi_euvicc:/usr/local/nvm $
ほらね、入った♪ なお、コレを使って実際に何かやってみた(組んで動かしてみた)レポートは次回以降のエントリに書こうと思います(テヘッ ←当然まだやってない&入れた時点で満足した人w
VScode入れてみちゃおう
つまるところコードエディタが欲しかったんです。ターミナルでvi(vim)使うとか、正直オレには無理です(^^; VScodeなら、WindowsでもMacでもLinuxでも入れられるはずだから問題ないよね? RaspbianのパッケージマネージャにはVScodeはいなかったので、じゃあここは本家からもらってくればいいよね!と公式サイトにアクセス。
code.visualstudio.com
"for Debian/Ubuntu"と書かれたペンギンアイコンのリンクから、無事パッケージのアーカイブ(.deb)を入手できました。
そのまま作業続行。普通にWindowsのノリでファイルをダブルタップしてインストールを開始するがーーん? なんか文句言われたぞ?
vscode-doc-jp.github.io
やはりLinuxだもん、きっとコマンドラインから入れなきゃダメなんだよ(´∀`*)とまあ短絡的に解釈して、Webを彷徨って別の方法を探したところ、見つけたのが↑コチラ。なるほど、ローカルに落としたdebファイルからはこうやるのか(°д°)
sudo dpkg -i <file>.deb sudo apt-get install -f
やってみる……失敗(°д°;;)ガーン ええと、もうなんか根本的なレベルでダメでした。だってこう(意訳)言われたんだもん(´・ω・`)
CPUが違っとるんじゃボケm9(^Д^)プギャー
恥ずかしっ(//∇//) ホンっっま恥ずかしっ(汗 俺バカでしょ? DLしたのはAMD64向け、ラズパイのCPUはARMですよ、あーた!? 入るわけがない(恥 ……でもあれ? ARM向けのパッケージなんてM$の公式にはなかったよ? てことは、やはりラズパイにVScodeは無理なのかなあ?
当然ここでGoogle先生の出番。"VScode Raspberry Pi"で検索かけるだけ。速攻見つかったw
Visual Studio Code for Chromebooks and Raspberry Pi
おお(°д°) オープンソースで有志が出してるわけか! スバラシイムスカクン!!(;;*´Д`*)ハァハァ
Webサイトの中身をとりあえずざーっと流し読みし、インストールのためのコマンドを探す。ラズパイ向けのインストール手順は簡単に見つかりました。
. <( wget -O - https://code.headmelted.com/installers/apt.sh )
……やべえ、コマンドが解読できない(泣) えっなに? ". <"てどういう意味だっけ? あれ?リダイレクション?(O_O)ワケワカメ おっと、ここで止まっちゃっててもしょうがないのでコレはもはや呪文、ネットという亜空間からVScodeを呼び出して使役するための召喚呪文なんだ(`・ω・′)キリッと割り切るw 書いてあるとおり先にsudo -s
して一時的にroot
に昇格*1し、実行。
pi@ras-pi_euvicc:~ $ sudo -s root@ras-pi_euvicc:/home/pi# . <( wget -O - https://code.headmelted.com/installers/apt.sh ) --2017-09-20 01:44:48-- https://code.headmelted.com/installers/apt.sh code.headmelted.com (code.headmelted.com) をDNSに問いあわせています... 104.27.187.80, 104.27.186.80, 2400:cb00:2048:1::681b:bb50, ... code.headmelted.com (code.headmelted.com)|104.27.187.80|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 特定できません [application/x-sh] `STDOUT' に保存中
:
(中略)
:
Installation complete! You can start code at any time by calling "code-oss" within a terminal. A shortcut should also now be available in your desktop menus (depending on your distribution). root@ras-pi_euvicc:/home/pi#
おおおおお(°∀°) 無事インストールに成功です! エビデンスを示しましょう。
メニューを展開すると、確かにいる。Code - OSS
なるものが! そして……
ほらね、VNCを通して見えるラズパイのデスクトップにVScodeのウィンドウが見えるでしょ?(°∀°)アヒャ とはいえ、Macに繋いでる間は殆ど使わないと思います(^_^;)
だいぶ長くなった(といってもリンクとコマンドとstdoutを切り貼りしただけだけど)ので、一旦ここで切ろうと思います。相変わらず環境整備までで終わって実作業にはな〜んも入れてないが、今回は「やりたいことが決まった」ことを書くのが目的だったんで、そこはよいのです(`・ω・′)キリッ
次回は迷走するEuviccの悪いクセがさらに発揮される予定ですw ではまたノシ
*1:最初はこれを忘れて見事に実行失敗しました