Arduino言語参照

Arduinoクイックリファレンス

p5.js教材:2018秋(受講時)のデザインとプログラミング講義資料

秋葉原へ

電子工作の部品がありすぎて面白かった。
店内の男性率約95パーセント。

予備知識ゼロで飛び込んでしまったため分からず、一旦本を買ってカフェで予備知識を少し入れてから再突入した。

購入したものたち

総額2万超...
本とモーターシールドが結構でかい。

遊んでみる:傾きを測る。


上手くいかず...

  • x,yの値がovfになる。
  • zの値がnanになる。

ovfの意味

https://github.com/arduino/Arduino/issues/6718

印刷時に10進数が10桁​​を超えるとSerial.printでovfが発生する。

対処方法がわからない。

エラーコードで検索してみると恐ろしいことが出てくる。
https://teratail.com/questions/51471

→もう簡単なことをやって検証してみる。

基板自体に問題はなさそう。

感圧センサーを使用した。

3軸加速度センサーも成功。

スクショは撮り忘れた。
ovfしないよう、floatではなくintにすることによって解決。

メモ:
たまに不具合があるようなので、うまく動かない場合、
  • USBを接続し直す
  • Arduinoを再起動
をまずは試してみる。

Arduinoとp5.jsを連携させる。

p5.botsというライブラリーを使って、Arduinoとp5jsを連携させたい。

p5.botsライブラリ

このようにファイルを作る。

npmをインストールする。

https://www.suzu6.net/posts/45/

 homebrewを使ってインストールとnodebrewでnpmのバージョン管理をする。

何をやってるのか理解するのが難しい。

p5botsサーバーを入手する。

ターミナルに以下を入力して、実行する。

npm install -g p5bots-server

bots-goコマンドがないらしい

指示通りにやっても、command not foundが表示される。

【注意点】nodeのバージョンを指定のものにする必要がある。

動かなかった理由はこれ。
上記の手順でnodeをダウンロードすると、最新バージョン(12.0くらい)になってしまう。

それをver0.12を使うよう設定し直す必要がある。

【注意点】nodeをver0.12にした状態で、p5botsサーバーを入手する。

nodeのバージョンを変える方法
https://upd.world/nodejs-npm-install/#3_Nodejs_npm

この状態で、サーバースタート。

bots-go -d の後にファイルを続くターミナルウィンドウに貼り付ける。

しっかりと、bots-goコマンドを認識してくれる...!

StandardFirmataをArduinoに書き込む

Webブラウザ上で、localHost:8000に接続する。


動いた。思わず部屋で叫んだ。(6/11 13:00)

他にも、スクリプトに多少のエラーがあるため、コンソールで自分でデバッグする必要があった。

動作確認に使用したコードとスケッチを下に添付。

index.html


sketch.js

一行目の

var b = p5.board('/dev/cu.usbmodem1451', 'arduino');

↑は自分のArduinoのポートを入力する。

スケッチ


何を作るかを決める(6/10月曜日)

完全に計算外。スケジュール管理をミスってしまった。

後にやってみたいもの①


後にやってみたいもの②

https://www.facebook.com/MONOxIT.jp/videos/458996831576859/

コンセプトではなく、技術から考えてみたい。

技術から考えるため、沢山買ってある。

購入したセンサー・モーター・ディスプレイ
・3軸加速度センサー
・RGBカラーセンサー
・圧力センサー
・反射型フォトセンサー
・超音波距離センサー
・においセンサー
・DCモーター
・ソレノイド(プッシュ型)
・ドットマトリックスLED

においセンサーが気になる。

"メチルメルカプタンや硫化水素に、低濃度から非常に感度の高い反応する。"

※1 メチルメルカプタン・・・たまねぎが腐ったような臭い
※2 硫化水素・・・たまごが腐ったような臭い
ソース

参考

使ってみた①
使ってみた②
使ってみた③(実際にこれを元にした)
回路図サンプル
スケッチサンプル

回路図

33Ωの抵抗を持っていなかったため、1kΩで代用してみる。
しかし、1kΩの場合、「数時間の慣らし」が必要になってしまうという。

実際には、抵抗を全く無しにするとすぐに使える。

スケッチ


センサーを延長させたかった。

ピンソケットというものが必要らしい。
持っていないため、購入する時間があれば使いたい。

においセンサーを動かそう。

全部520になる。うまくいっているのかわからない。(うまくいっていなかった)

抵抗器を外したら、変化が出るように。平常時の値を計測。

こちらのシリアルプロッタより、おおよそ210~290が平常時の計測結果と見られる。

この計測結果より、
少し臭い場合は140以下
臭い場合は25以下
とする。

センサーに付属のガス感度特性表を元に数値を決めた。

においセンサーを何に応用するか?

・口臭チェッカー
・SFCの臭い計測
・お店の臭いチェッカー(空気清浄コントロール)

こいつも使いたい。

Thingiverseからダウンロードし、Meshmixerでカット。
https://www.myminifactory.com/object/3d-print-london-nose-from-meard-street-38628

魚が付いてくる好きなやつをフォークして使おう。

Fishfeeding
Fish class

まさか...processingで書かれていた...

はじめからprocessingでやっても良かったかもしれない。

さっさとArduinoのセンサーの値をp5.jsで扱いたい。


動きませんでした。


エラーに。コードの書き方が不明。

ぜんぶb.pin()で動かせる訳ではないようだ...

反省点

・最初は参考になるものが多いやつでやるべきだと反省。
・フィジカルな要素とインタラクティブなものが作れることが、電子工作の大きな強みだと思うが、ビジュアライゼーションをできなかったのは勿体なかった。悲しい。
・Lチカのような簡単な事例をいくつか取り組んで、どういう原理で動いているのか、コードを理解する必要があった。
・道具の用意もあるため、4日前には何を作るか決めた方が良かった。