ビール界のジ・O?! 隠しギミックもあるよ [アルコール系]
こんばんは。珍しく夜の更新です。
今回も少し珍しいビールを飲んだので紹介です
「トンゲルロー プリオル」
ベルギー産のビールでお値段は350円前後。
お店の紹介ラベルで「トンゲルローのビールの中で最高峰」と書いてあり、
その響きに負けて購入しちゃいました。
トンゲルローって何かって知りません(汗)
お味の方は雰囲気的に最初はエビスに近いかな。
芳醇な香りがあり、コクがある系が好きな人にはオススメな味です。
ただ、このビールの凄い所は喉を通り過ぎた後です
口の中にスパイシー+柑橘系の香りが広がります。
その秘密は…
ラベルを確認すると成分にコリアンダー、オレンジピールがありました。
この2つがビンゴだと思います。
この香りは全く嫌味がなく、飲み終わってからワンテンポ遅れて
優しく広がって来るので余韻を楽しむのにはもってこいです。
ビールの芳醇な味と隠れた香りが相まって、
大人な雰囲気を味わえる1本でした
「茶色に近い黄色」「最高峰」「隠れたスパイスと香り」
以上の3つからこのビールを勝手にビール界のジ・Oと命名します。
ちなみに夕飯は妻お手製のグラタンでした。
こちらも、まじ美味かった
美味しい夕飯に、美味しいビール、いい日でした。
さて、最近はブログタイトルと全く関係ない記事ばかりでした
明日から真面目にロボット制作再開していきまーす
今回も少し珍しいビールを飲んだので紹介です
「トンゲルロー プリオル」
ベルギー産のビールでお値段は350円前後。
お店の紹介ラベルで「トンゲルローのビールの中で最高峰」と書いてあり、
その響きに負けて購入しちゃいました。
トンゲルローって何かって知りません(汗)
お味の方は雰囲気的に最初はエビスに近いかな。
芳醇な香りがあり、コクがある系が好きな人にはオススメな味です。
ただ、このビールの凄い所は喉を通り過ぎた後です
口の中にスパイシー+柑橘系の香りが広がります。
その秘密は…
ラベルを確認すると成分にコリアンダー、オレンジピールがありました。
この2つがビンゴだと思います。
この香りは全く嫌味がなく、飲み終わってからワンテンポ遅れて
優しく広がって来るので余韻を楽しむのにはもってこいです。
ビールの芳醇な味と隠れた香りが相まって、
大人な雰囲気を味わえる1本でした
「茶色に近い黄色」「最高峰」「隠れたスパイスと香り」
以上の3つからこのビールを勝手にビール界のジ・Oと命名します。
ちなみに夕飯は妻お手製のグラタンでした。
こちらも、まじ美味かった
美味しい夕飯に、美味しいビール、いい日でした。
さて、最近はブログタイトルと全く関係ない記事ばかりでした
明日から真面目にロボット制作再開していきまーす
ビール界に赤い彗星現る?! [アルコール系]
おはようございます。
えっと…ちょっと遊んでみます
Chihiroは変わった飲食物が好きで、海外ビールに少しだけハマってます。
そこで先日、面白いビールを見つけたので紹介したいと思います。
こちら(グラスをもっと綺麗に拭いておくべきでした)
赤いスパークリングワインやシャンパンに見えますがビールです
Liefmansというベルギー産のビールです。
ビンの裏にある説明文を見ると
チェリーをベースに18ヶ月間熟成させた後、ストロベリー、ラズベリー、チェリー、ブルーベリー、エルダーベリーのフレッシュジュースをブレンドして…
んー何か凄すぎて何から突っ込めばいいか
とりあえず飲んで見ました…甘い!!
昔飲んだファンタのトロピカルパンチ味を思い出しました。
ただ微かにビールの酸味やコクもあって、言われてみるとビールです。
でもベリー系の甘酸っぱさが強くて、スパークリングワインの方が近いです。
ビールが苦手でカシオレとかが好きな女性にはいいかもしれませんね。
甘い物やチーズなどを食べるときにLiefmansを合わせると
酸味がいいアクセントになって楽しめるかもしれません。
ということで、よかったら試してみて下さい。
1点だけ注意!! 日本の夕飯には絶対にあいません。
間違っても夕飯の時に開けないでね。。。Chihiroは爆死しました
えっと…ちょっと遊んでみます
Chihiroは変わった飲食物が好きで、海外ビールに少しだけハマってます。
そこで先日、面白いビールを見つけたので紹介したいと思います。
こちら(グラスをもっと綺麗に拭いておくべきでした)
赤いスパークリングワインやシャンパンに見えますがビールです
Liefmansというベルギー産のビールです。
ビンの裏にある説明文を見ると
チェリーをベースに18ヶ月間熟成させた後、ストロベリー、ラズベリー、チェリー、ブルーベリー、エルダーベリーのフレッシュジュースをブレンドして…
んー何か凄すぎて何から突っ込めばいいか
とりあえず飲んで見ました…甘い!!
昔飲んだファンタのトロピカルパンチ味を思い出しました。
ただ微かにビールの酸味やコクもあって、言われてみるとビールです。
でもベリー系の甘酸っぱさが強くて、スパークリングワインの方が近いです。
ビールが苦手でカシオレとかが好きな女性にはいいかもしれませんね。
甘い物やチーズなどを食べるときにLiefmansを合わせると
酸味がいいアクセントになって楽しめるかもしれません。
ということで、よかったら試してみて下さい。
1点だけ注意!! 日本の夕飯には絶対にあいません。
間違っても夕飯の時に開けないでね。。。Chihiroは爆死しました
ガンプラ制作日記(初回) [ガンプラ]
おはようございます。
このブログを始めた時に「時々、ガンプラも」と言っていました…。
まったく紹介してないですね
言い訳ですが年末からMGサザビーを作っています。
これ本当に凄いです…量が。説明書だけで40ページ超えてます
ブログの初回はサザビーをと思っていましたが、
春まで完成しそうにないのでやめました。
そこでChihiroが過去に作ったガンプラを少しだけ紹介します
まずはこちら、HG ジョニー・ライデン専用ザクです。
こちらは2年前ぐらいに作ったもので、全体にメタリックレッドを入れて、
軽くスジ彫りした後にデカールを追加しています。
続いてジェスタです。
こっちは作成に凄い時間がかかって30時間ぐらいかかりました。
前進にスジ彫りを追加して色は全て筆で入れました。
最後にチッピングを少し入れてます。
と、Chihiroの実力はこんな感じで「中の下」といった感じですかね。
写真より実物の方が綺麗なのですが、ここは写真のテクを磨かねばです
と、言った感じでこれからは少しずつガンプラも紹介していきまーす
このブログを始めた時に「時々、ガンプラも」と言っていました…。
まったく紹介してないですね
言い訳ですが年末からMGサザビーを作っています。
これ本当に凄いです…量が。説明書だけで40ページ超えてます
ブログの初回はサザビーをと思っていましたが、
春まで完成しそうにないのでやめました。
そこでChihiroが過去に作ったガンプラを少しだけ紹介します
まずはこちら、HG ジョニー・ライデン専用ザクです。
こちらは2年前ぐらいに作ったもので、全体にメタリックレッドを入れて、
軽くスジ彫りした後にデカールを追加しています。
続いてジェスタです。
こっちは作成に凄い時間がかかって30時間ぐらいかかりました。
前進にスジ彫りを追加して色は全て筆で入れました。
最後にチッピングを少し入れてます。
と、Chihiroの実力はこんな感じで「中の下」といった感じですかね。
写真より実物の方が綺麗なのですが、ここは写真のテクを磨かねばです
と、言った感じでこれからは少しずつガンプラも紹介していきまーす
Arduinoでモーターを制御 [Arduino入門編]
おはようございます。すみません、サボってました。。。
今日から再開です☆☆
さて今日はモーターを制御させてみようと思います。
「モーターの制御」とは、Arduinoから以下を制御させる事になります。
ー 普段はモーターを止めておく
ー あるタイミングでモーターを前方向に進める
ー あるタイミングでモーターを後方向に進める
普通にモーターを動かすだけなら何も使わずに接続するだけでいいのですが、
青ボタンが押されたら前進、赤ボタンが押されたら停止など、
タイミングによってモーターを制御する必要がでてきます。
そこで使用するのがモータードライバというチップです。
今回使用したのはTOSHIBA TA7267BPというチップ。
これはArduinoからチップに渡す入力端子が2つついていて、
その2つに渡す信号の組合せでモーターを制御できます。
つまり好きなモーターで動かすキャタピラを前に進めたり、
止めたり、戻したりができるようになるのです♪
ピン配置と使い方は以下です
PIN#1,2入力端子
この2つがモーターの回転方向を制御をする入力端子です。
この2つをArduinoと接続します。信号と動作の関係は以下です。
1/1 ブレーキ(モーター停止)
0/1 正回転でモーターを回す
1/0 逆回転でモーターを回す
0/0 ストップ(モーター停止)
PIN#3/5 出力端子
この2つをモーターに接続します
PIN#4 GND
ArduinoのGND側と接続します
PIN#6 Vs
乾電池側の+と接続します
PIN#7 Vcc
Arduinoの5Vと接続します
具体的な接続図とサンプルソースはこんな感じ
(回路図は使用しているチップの絵が見つからなかったので、
他で代用しました。。。ご了承下さい)
これでモーターが止まったり、右・左それぞれに回転します。
実際のキャタピラロボットではモーターが2つ必要なので、
その辺りの接続・ソースも追々紹介していきまーす。
今日から再開です☆☆
さて今日はモーターを制御させてみようと思います。
「モーターの制御」とは、Arduinoから以下を制御させる事になります。
ー 普段はモーターを止めておく
ー あるタイミングでモーターを前方向に進める
ー あるタイミングでモーターを後方向に進める
普通にモーターを動かすだけなら何も使わずに接続するだけでいいのですが、
青ボタンが押されたら前進、赤ボタンが押されたら停止など、
タイミングによってモーターを制御する必要がでてきます。
そこで使用するのがモータードライバというチップです。
今回使用したのはTOSHIBA TA7267BPというチップ。
これはArduinoからチップに渡す入力端子が2つついていて、
その2つに渡す信号の組合せでモーターを制御できます。
つまり好きなモーターで動かすキャタピラを前に進めたり、
止めたり、戻したりができるようになるのです♪
ピン配置と使い方は以下です
PIN#1,2入力端子
この2つがモーターの回転方向を制御をする入力端子です。
この2つをArduinoと接続します。信号と動作の関係は以下です。
1/1 ブレーキ(モーター停止)
0/1 正回転でモーターを回す
1/0 逆回転でモーターを回す
0/0 ストップ(モーター停止)
PIN#3/5 出力端子
この2つをモーターに接続します
PIN#4 GND
ArduinoのGND側と接続します
PIN#6 Vs
乾電池側の+と接続します
PIN#7 Vcc
Arduinoの5Vと接続します
具体的な接続図とサンプルソースはこんな感じ
(回路図は使用しているチップの絵が見つからなかったので、
他で代用しました。。。ご了承下さい)
#define PIN_MTR_GO 3 #define PIN_MTR_BACK 4 void setup() { pinMode( PIN_MTR_GO, OUTPUT ); pinMode( PIN_MTR_BACK, OUTPUT ); } void loop() { digitalWrite( PIN_MTR_GO, HIGH ); digitalWrite( PIN_MTR_BACK, HIGH ); delay(1500); digitalWrite( PIN_MTR_GO, LOW ); digitalWrite( PIN_MTR_BACK, HIGH ); delay(1500); digitalWrite( PIN_MTR_GO, HIGH ); digitalWrite( PIN_MTR_BACK, LOW ); delay(1500); digitalWrite( PIN_MTR_GO, LOW ); digitalWrite( PIN_MTR_BACK, LOW ); delay(1500); }
これでモーターが止まったり、右・左それぞれに回転します。
実際のキャタピラロボットではモーターが2つ必要なので、
その辺りの接続・ソースも追々紹介していきまーす。
ATP3011を使ってArduinoを喋らせよう [Arduino入門編]
おはようございます。雪、降ってますね
さて今日はArudinoを喋らせてみようと思います
使うのはこちら、ATP3011という音声合成LSIです。
このLSIは、Arduinoからメッセージをおくるだけで、
LSIに接続したスピーカーから、そのメッセージが音声として出力されます。
出力はUART,I2C,SPIの3種類をサポートしています。
要はArduinoで「Serial.println("aiueo");」と書くと、
「あいうえお」と喋るのです
しかも1個850円。これでロボットが喋ると考えると凄いです
さて、配線です。見ての通りピンがメチャクチャ多いです。
ただし使うのは以下のみで番号は左からです。
[下段]
2番目 RX
音声の受信ピンです。ArduinoのTX(送信)と接続すると送受信が成立して、
Arduinoが送ったメッセージが受信できます
4番目 SMOD#0 / 5番目SMOD#1
通信モードでArduinoから、どの形式でメッセージを送るかを制御します。
モードは以下で1だと5V、0だとGNDに接続します。
「S#0=1 / S#1=1でUART」「S#0=0 / S#1=1でI2C」
「S#0=1 / S#1=0 か S#0=0 / S#1=0でSPI」となります。
Serial.println("");を喋らすときはUARTモードになるので両方5Vに接続します
7,8番目 VCC/GND
7がVCCで8がGNDです。今回、VCCには普段の5Vではなく3.3Vを接続します。
理由ですが5vは他のサーボやセンサーなどで使用しているので、
同じにすると何かノイズ?が入って動作が不安定になりました。
抵抗・コンデンサを使って制御すれば大丈夫なんだろうけど
詳しくないので、他とは別の専用電源として3.3Vを使うことにしました
12番目 AOUT
音声出力端子でスピーカーに接続します。
データシートを読むと4KHzのローパスフィルタが追加が必要らしいです。
この辺りは詳しくないので、とりあえずスキップ。
14番目 PMOD#0、上段14番目 PMOD#1
動作モードでArduinoからのメッセージを喋らせるか、
LSI内部の固定メッセージを喋らせるかで以下のモードがあります。
「P#0=1 / P#1=1で基本:Arduinoからのメッセージで喋る」
「P#0=0 / P#1=1でセーフ:Arduinoからのメッセージで喋る」
「P#0=1/ P#1=0でスタンドアロン:LSI内部の固定メッセージを喋る」
「P#0=0 / P#1=0でデモ:LSI内部のメッセージを確認で喋る」
となります。
基本とセーフの違いはセーフの場合、送信ボーレートが9600固定となり、
Arduinoはデフォルトがボーレート9600固定なのでセーフモードにします。
こちらも1は5V,0はGNDへの接続になります
配線後の写真がこちら。
これで、「Serial.println("aiueo");」と書くと、
「あいうえお」と喋ってくれます
でも、ちょっと音量が小さいですよね?!この辺は次回で~
さて今日はArudinoを喋らせてみようと思います
使うのはこちら、ATP3011という音声合成LSIです。
このLSIは、Arduinoからメッセージをおくるだけで、
LSIに接続したスピーカーから、そのメッセージが音声として出力されます。
出力はUART,I2C,SPIの3種類をサポートしています。
要はArduinoで「Serial.println("aiueo");」と書くと、
「あいうえお」と喋るのです
しかも1個850円。これでロボットが喋ると考えると凄いです
さて、配線です。見ての通りピンがメチャクチャ多いです。
ただし使うのは以下のみで番号は左からです。
[下段]
2番目 RX
音声の受信ピンです。ArduinoのTX(送信)と接続すると送受信が成立して、
Arduinoが送ったメッセージが受信できます
4番目 SMOD#0 / 5番目SMOD#1
通信モードでArduinoから、どの形式でメッセージを送るかを制御します。
モードは以下で1だと5V、0だとGNDに接続します。
「S#0=1 / S#1=1でUART」「S#0=0 / S#1=1でI2C」
「S#0=1 / S#1=0 か S#0=0 / S#1=0でSPI」となります。
Serial.println("");を喋らすときはUARTモードになるので両方5Vに接続します
7,8番目 VCC/GND
7がVCCで8がGNDです。今回、VCCには普段の5Vではなく3.3Vを接続します。
理由ですが5vは他のサーボやセンサーなどで使用しているので、
同じにすると何かノイズ?が入って動作が不安定になりました。
抵抗・コンデンサを使って制御すれば大丈夫なんだろうけど
詳しくないので、他とは別の専用電源として3.3Vを使うことにしました
12番目 AOUT
音声出力端子でスピーカーに接続します。
データシートを読むと4KHzのローパスフィルタが追加が必要らしいです。
この辺りは詳しくないので、とりあえずスキップ。
14番目 PMOD#0、上段14番目 PMOD#1
動作モードでArduinoからのメッセージを喋らせるか、
LSI内部の固定メッセージを喋らせるかで以下のモードがあります。
「P#0=1 / P#1=1で基本:Arduinoからのメッセージで喋る」
「P#0=0 / P#1=1でセーフ:Arduinoからのメッセージで喋る」
「P#0=1/ P#1=0でスタンドアロン:LSI内部の固定メッセージを喋る」
「P#0=0 / P#1=0でデモ:LSI内部のメッセージを確認で喋る」
となります。
基本とセーフの違いはセーフの場合、送信ボーレートが9600固定となり、
Arduinoはデフォルトがボーレート9600固定なのでセーフモードにします。
こちらも1は5V,0はGNDへの接続になります
配線後の写真がこちら。
これで、「Serial.println("aiueo");」と書くと、
「あいうえお」と喋ってくれます
でも、ちょっと音量が小さいですよね?!この辺は次回で~
ブレッドボードで電子回路を組もう [電子工作、超入門編]
おはようございます。
そしてお久しぶりです
風邪をひいたり、忙しかったりで更新が遅れました。
今日からまた気合入れて更新していきます。
さて今回は「電子工作、超入門編」ということで、このカテゴリでは
抵抗やコンデンサの使い方など電子工作の
超、超、超入門をやっていきたいと思います。
私は学生時代も社会人でも電子工作を学んだことのない、全くの未経験です。
なので超入門です。間違いだらけかもしれませんが、
頑張って勉強して書いていきたいと思います。
初回は「ブレッドボード」というものを使って、
電子回路の組み方を説明して行きます。
ブレッドボードの絵はこちら
見ての通り、色んな種類がありますが基本的には同じです。
使い方は図にある線でひいた部分が電気的に繋がるようになっていて、
1)赤い部分はマイコンから5V,3.3Vなどの電極を繋ぐ
2)黒い部分はマイコンからGNDの電極を繋ぐ
3)青い部分は扱うハードウェアを繋ぐ
といった感じになります。
つまり青い部分の横同士は電気的に繋がっていないので、
扱うハードウェア同士を横に並べて使用する事になります。
また、大きい方のブレッドボードは2段構造になっていて、
上段の青い部分と下段の青い部分は繋がっていないので、
こちらも違うハードウェアを接続して問題ありません。
少しわかりづらいのでサンプルの回路がこちら
1)Arduinoから5V、GNDをそれぞれブレッドボードに接続
2)ボタンとサーボモータのVCC側をブレッドボードの赤に接続
3)ボタンとサーボモータのGND側をブレッドボードの黒に接続
Arduinoから供給される5VとGNDをボタンとサーボの両方が
ブレッドボードの繋がりにより受け取ることができます。
なので回路が組みやすいように赤と黒が横で、
ハードウェア接続部分が縦と垂直になっているわけですね。
私は家にハンダがなく、使う勇気もないので
今後はブレッドボードを使用してロボットなどを作成していきまーす
注)ブレッドボードは本来、テストや実験のためにあり「回路の実験」や
「ハードウェアの動作テスト」に使用します。
なので、ちゃんとした物を作りたい人はハンダや基盤を買って、
自分の回路を作って下さいねぇ~
そしてお久しぶりです
風邪をひいたり、忙しかったりで更新が遅れました。
今日からまた気合入れて更新していきます。
さて今回は「電子工作、超入門編」ということで、このカテゴリでは
抵抗やコンデンサの使い方など電子工作の
超、超、超入門をやっていきたいと思います。
私は学生時代も社会人でも電子工作を学んだことのない、全くの未経験です。
なので超入門です。間違いだらけかもしれませんが、
頑張って勉強して書いていきたいと思います。
初回は「ブレッドボード」というものを使って、
電子回路の組み方を説明して行きます。
ブレッドボードの絵はこちら
見ての通り、色んな種類がありますが基本的には同じです。
使い方は図にある線でひいた部分が電気的に繋がるようになっていて、
1)赤い部分はマイコンから5V,3.3Vなどの電極を繋ぐ
2)黒い部分はマイコンからGNDの電極を繋ぐ
3)青い部分は扱うハードウェアを繋ぐ
といった感じになります。
つまり青い部分の横同士は電気的に繋がっていないので、
扱うハードウェア同士を横に並べて使用する事になります。
また、大きい方のブレッドボードは2段構造になっていて、
上段の青い部分と下段の青い部分は繋がっていないので、
こちらも違うハードウェアを接続して問題ありません。
少しわかりづらいのでサンプルの回路がこちら
1)Arduinoから5V、GNDをそれぞれブレッドボードに接続
2)ボタンとサーボモータのVCC側をブレッドボードの赤に接続
3)ボタンとサーボモータのGND側をブレッドボードの黒に接続
Arduinoから供給される5VとGNDをボタンとサーボの両方が
ブレッドボードの繋がりにより受け取ることができます。
なので回路が組みやすいように赤と黒が横で、
ハードウェア接続部分が縦と垂直になっているわけですね。
私は家にハンダがなく、使う勇気もないので
今後はブレッドボードを使用してロボットなどを作成していきまーす
注)ブレッドボードは本来、テストや実験のためにあり「回路の実験」や
「ハードウェアの動作テスト」に使用します。
なので、ちゃんとした物を作りたい人はハンダや基盤を買って、
自分の回路を作って下さいねぇ~
Arduinoのソースを書いてみよう2 [Arduino入門編]
おはようございます。
さて、今回はArduinoソースの書き方に関する続きです。
前回if文があって、今後のためな気がしたので
[defineと関数定義]
[前回の復習]
・#defineは固定の数値、文字列を定義するのに使います。
僕は主にピン番号を定義する時などに使用します。
ピン番号を後で変えたくなった時に修正箇所が1箇所ですむから便利
・setup()はarduinoが動作する時、最初に一回だけ動く関数です
ここでは主にピン番号の設定やハードウェアの初期化を行います。
・loop()はsetup()完了後にコールされ無限に何度も実行されます。
この関数がArduinoのメインになり、ハードウェアの制御や状態確認を行います。
・delay()は引数に入れた値分だけ時間待ちを行い1000=1秒です
[ピンの操作]
[pinMode]
・ハードウェアを制御する場合、最初に書く関数です。
Arduinoに使用するピン番号と、そのピンの使用目的を教えてあげます
・第一引数で使用するピン番号をしていして、
・第二引数でINPUT(値を読み取る場合設定)かOUTPUT(値を設定したい場合設定)を書きます
[digitalRead,digitalWrite]
・digitalReadは「ボタン」や「センサー」などから値を取得するために使用します。
この場合、pinModeでINPUTを設定しておく必要があります。
・digitalWriteは「LED」や「モーター」などハードウェアに値を設定するために使用します。
この場合、pinModeでOUTPUTを設定しておく必要があります。
また第二引数にはハードウェアに設定する値(HIGH,LOW)を書きます。
[変数定義、if文、関数コール]
[変数]
・int VALUE=0;と書いているのが変数宣言です。
ハードウェアから取得した値など、覚えておきたい内容がある場合、
上記のように変数を宣言して値を設定しておきます。
上記のように関数に引数を渡す事も可能です。
[if文]
・「ボタンが押されたらモーターを動かす」などハードウェアから取得した値で
その後の動作を変えたい場合、if文を使用します。
if文は()の中に比較条件を書きます。
==:左辺と右辺の値が同じ
!=:左辺と右辺の値が異なる
>=:左辺が右辺以上(=をなくすと超過)
<=:左辺が右辺以下(=をなくすと未満)
上記のようにelse ifを使用すことで複数の条件で分岐が可能です。
どの条件に合致しない場合の処理はelseと書き、その中に書きます。
[関数定義]
・setup()やloop()にあったような関数は自分専用のものも定義可能です。
上記にあるmy_function()が自分用関数になります。
関数には引数を渡すことも可能です。
「モーターの制御回転」「モーターの停止」など
処理に共通部分がある場合、関数を使用して処理を一箇所にまとめ、
引数で微妙な違いをif文で切り分けるとソース共通化できて効率的です。
長くなりましたがArduinoの基本構文はこんな感じです。
さて、今回はArduinoソースの書き方に関する続きです。
前回if文があって、今後のためな気がしたので
[defineと関数定義]
#define AAA "aiueo" void setup() { } void loop() { delay(1000); }
[前回の復習]
・#defineは固定の数値、文字列を定義するのに使います。
僕は主にピン番号を定義する時などに使用します。
ピン番号を後で変えたくなった時に修正箇所が1箇所ですむから便利
・setup()はarduinoが動作する時、最初に一回だけ動く関数です
ここでは主にピン番号の設定やハードウェアの初期化を行います。
・loop()はsetup()完了後にコールされ無限に何度も実行されます。
この関数がArduinoのメインになり、ハードウェアの制御や状態確認を行います。
・delay()は引数に入れた値分だけ時間待ちを行い1000=1秒です
[ピンの操作]
// ハードウェアから値を読み取りたい場合 pinMode(11, INPUT); digitalRead(11); // ハードウェアに値を設定したい場合 pinMode(12 OUTPUT); digitalWrite(12,HIGH);
[pinMode]
・ハードウェアを制御する場合、最初に書く関数です。
Arduinoに使用するピン番号と、そのピンの使用目的を教えてあげます
・第一引数で使用するピン番号をしていして、
・第二引数でINPUT(値を読み取る場合設定)かOUTPUT(値を設定したい場合設定)を書きます
[digitalRead,digitalWrite]
・digitalReadは「ボタン」や「センサー」などから値を取得するために使用します。
この場合、pinModeでINPUTを設定しておく必要があります。
・digitalWriteは「LED」や「モーター」などハードウェアに値を設定するために使用します。
この場合、pinModeでOUTPUTを設定しておく必要があります。
また第二引数にはハードウェアに設定する値(HIGH,LOW)を書きます。
[変数定義、if文、関数コール]
int VALUE=0; VALUE=digitalRead(11); if( VALUE == HIGH ) { }else if( VALUE == LOW ) { }else { } if( VALUE != 0 ) { my_function(1) }else if( VALUE > 10 ) { my_function(2) }else if( VALUE <= 10 ) { my_function(3) }else { } void my_function(int MODE) { }
[変数]
・int VALUE=0;と書いているのが変数宣言です。
ハードウェアから取得した値など、覚えておきたい内容がある場合、
上記のように変数を宣言して値を設定しておきます。
上記のように関数に引数を渡す事も可能です。
[if文]
・「ボタンが押されたらモーターを動かす」などハードウェアから取得した値で
その後の動作を変えたい場合、if文を使用します。
if文は()の中に比較条件を書きます。
==:左辺と右辺の値が同じ
!=:左辺と右辺の値が異なる
>=:左辺が右辺以上(=をなくすと超過)
<=:左辺が右辺以下(=をなくすと未満)
上記のようにelse ifを使用すことで複数の条件で分岐が可能です。
どの条件に合致しない場合の処理はelseと書き、その中に書きます。
[関数定義]
・setup()やloop()にあったような関数は自分専用のものも定義可能です。
上記にあるmy_function()が自分用関数になります。
関数には引数を渡すことも可能です。
「モーターの制御回転」「モーターの停止」など
処理に共通部分がある場合、関数を使用して処理を一箇所にまとめ、
引数で微妙な違いをif文で切り分けるとソース共通化できて効率的です。
長くなりましたがArduinoの基本構文はこんな感じです。
Arduinoでボタンの制御(ポーリング方式編) [Arduino入門編]
おはようございます。
今日はArduinoを使ってボタンの制御を行っていきます。
ボタンの制御方法は以下の2種類があります。
1)ボタンの状態をArduinoから確認しに行く方法
2)ボタンが押されたらArduinoに通知してもらう方法
組込み用語としては前者をポーリング方式、
後者を割込み方式と言ったりします。
今回は前者のポーリング方式編です。
ポーリング方式はArduino側からハードウェア(今回はボタン)の状態を
定期的に読みに行って適宜状態を確認する方法です。
回路はこんな感じ~
[ブレッドボード側]
青ボタン:片方をプラス側、もう片方を抵抗10Kでマイナス側につなぐ
赤ボタン:片方をプラス側、もう片方を抵抗10Kでマイナス側につなぐ
LED:マイナス側を抵抗1KΩでマイナス側につなぐ
[Arduino側]
2番ピン:青ボタンのプラス側につなぐ
3番ピン:赤ボタンのプラス側につなぐ
4番ピン:LEDのプラス側につなぐ
5Vピン:ブレッドボードのプラス側につなぐ
GNDピン:ブレッドボードのマイナス側につなぐ
ソースコードはこんな感じ
今回はsetup()でピンの設定をINPUT,OUTPUTの両方を使用しました。
[値の読み込み方法]
コメントの1)でボタンなどの値を読み込む側はINPUTを設定しています。
コメントの4)でdigitalRead関数を使ってINPUTに設定した
ピンから接続先ハードウェアの状態を取得しています。
digitalWriteと違って書き込む値がないので引数は読み込むピン番号のみです。
[値の判定方法]
コメントの5)で青・赤ボタンの状態をチェックしています。
チェックにはif文という構文を使います。
基本構文に関してはまた別の機会に紹介しますね
これでloop()関数にて毎回、青・赤ボタンの状態をチェックしにいき、
状態に応じてLEDの点灯・消灯を行います。
これがポーリング方式でしたぁ~
次回は割込み方式でボタンを制御してみたいと思います
今日はArduinoを使ってボタンの制御を行っていきます。
ボタンの制御方法は以下の2種類があります。
1)ボタンの状態をArduinoから確認しに行く方法
2)ボタンが押されたらArduinoに通知してもらう方法
組込み用語としては前者をポーリング方式、
後者を割込み方式と言ったりします。
今回は前者のポーリング方式編です。
ポーリング方式はArduino側からハードウェア(今回はボタン)の状態を
定期的に読みに行って適宜状態を確認する方法です。
回路はこんな感じ~
[ブレッドボード側]
青ボタン:片方をプラス側、もう片方を抵抗10Kでマイナス側につなぐ
赤ボタン:片方をプラス側、もう片方を抵抗10Kでマイナス側につなぐ
LED:マイナス側を抵抗1KΩでマイナス側につなぐ
[Arduino側]
2番ピン:青ボタンのプラス側につなぐ
3番ピン:赤ボタンのプラス側につなぐ
4番ピン:LEDのプラス側につなぐ
5Vピン:ブレッドボードのプラス側につなぐ
GNDピン:ブレッドボードのマイナス側につなぐ
ソースコードはこんな感じ
#define PIN_NO_BTN_ON 2 #define PIN_NO_BTN_OFF 3 #define PIN_NO_LED 4 void setup() { // 1)ボタンは値を読み込む側なのでINPUTで設定 pinMode(PIN_NO_BTN_ON, INPUT); pinMode(PIN_NO_BTN_OFF, INPUT); // 2)LEDは値を書き込む側なのでOUTPUTで設定 pinMode(PIN_NO_LED, OUTPUT); } void loop() { // 3)ボタンの値を取得するための変数を宣言 int btn_on_check=0; int btn_off_check=0; // 4)赤、青の各ボタンの状態を取得 btn_on_check=digitalRead(PIN_NO_BTN_ON); btn_off_check=digitalRead(PIN_NO_BTN_OFF); // 5)青ボタン、赤ボタンのどっちが押された(HIGH)かチェック if( btn_on_check == HIGH ) { // 6)青ボタンが押されたらLEDをON(HIGH) digitalWrite(PIN_NO_LED, HIGH); }else if( btn_off_check == HIGH ) { // 7)赤ボタンが押されたらLEDをOFF(LOW) digitalWrite(PIN_NO_LED, LOW); } delay(50); }
今回はsetup()でピンの設定をINPUT,OUTPUTの両方を使用しました。
[値の読み込み方法]
コメントの1)でボタンなどの値を読み込む側はINPUTを設定しています。
コメントの4)でdigitalRead関数を使ってINPUTに設定した
ピンから接続先ハードウェアの状態を取得しています。
digitalWriteと違って書き込む値がないので引数は読み込むピン番号のみです。
[値の判定方法]
コメントの5)で青・赤ボタンの状態をチェックしています。
チェックにはif文という構文を使います。
基本構文に関してはまた別の機会に紹介しますね
これでloop()関数にて毎回、青・赤ボタンの状態をチェックしにいき、
状態に応じてLEDの点灯・消灯を行います。
これがポーリング方式でしたぁ~
次回は割込み方式でボタンを制御してみたいと思います
センサー部分作成 (1-4.サーボ、センサー編) [ロボット制作(tankun-mk1)]
おはようございます。外は星が綺麗ですよぉ~
今日はサーボ、センサーを取り付けて行きたいと思います。アマゾンさんで購入した「超音波距離センサー + アクリル マウント アングル + サーボモーター」です。
設置する目的は以下を行うためです
1)正面に壁を見つけたら停止する
壁を見つけるために超音波センサーというパーツで前方に物体があるかを検知します。超音波センサーは超音波を前方に発信し、その反射波を受信して対象物までの距離を検出するものです。
2)右と左を確認して障害物がない方向を見つける
この右、左を確認するためには超音波センサーを右と左に回転させる必要があります。この回転を行うのがサーボモーターです。サーボモーターは上に載せた物を「90°、120°、60°」と指定した角度に回転させる事ができます。
(超音波センサー、サーボモーターの動作、配線に関しては別記事に書きますね)
先に完成図がこちらロボットに顔っぽい物がつきました
下に見える青い箱がサーボモーターです。
上に見える目みたいなものが超音波センサーです。
超音波センサーとサーボモーターをつないでいるのが、
アクリルマウントアングルです。これはプラ板・棒などで自作も可能ですが、
3点セットで1000円前後と超音波センサー(300円)とサーボモーター(450円)を
それぞれ購入した時と値段がほとんど変わりません
それでは設置方法です。
まずは写真を参考にロボットの先端部分をカットしてみます。
設置するサーボは左右非対称のパーツなので、切り取る部分も少しずらしています。
そこにサーボモーターを設置します。
センサーとアクリルマウントを設置したのがこちら
センサーとアクリルマウントを先に作ります。
白い十字架みたいなものがサーボホーンといって、サーボモーターに付属しているパーツです。
アクリルマウントの穴の部分に上からサーボホーンをはめて、
それをサーボモーターに設置すれば完成です
次回からはArduinoに各パーツを制御する方法を個別に書いていきまーす。
今日はサーボ、センサーを取り付けて行きたいと思います。アマゾンさんで購入した「超音波距離センサー + アクリル マウント アングル + サーボモーター」です。
設置する目的は以下を行うためです
1)正面に壁を見つけたら停止する
壁を見つけるために超音波センサーというパーツで前方に物体があるかを検知します。超音波センサーは超音波を前方に発信し、その反射波を受信して対象物までの距離を検出するものです。
2)右と左を確認して障害物がない方向を見つける
この右、左を確認するためには超音波センサーを右と左に回転させる必要があります。この回転を行うのがサーボモーターです。サーボモーターは上に載せた物を「90°、120°、60°」と指定した角度に回転させる事ができます。
(超音波センサー、サーボモーターの動作、配線に関しては別記事に書きますね)
先に完成図がこちらロボットに顔っぽい物がつきました
下に見える青い箱がサーボモーターです。
上に見える目みたいなものが超音波センサーです。
超音波センサーとサーボモーターをつないでいるのが、
アクリルマウントアングルです。これはプラ板・棒などで自作も可能ですが、
3点セットで1000円前後と超音波センサー(300円)とサーボモーター(450円)を
それぞれ購入した時と値段がほとんど変わりません
それでは設置方法です。
まずは写真を参考にロボットの先端部分をカットしてみます。
設置するサーボは左右非対称のパーツなので、切り取る部分も少しずらしています。
そこにサーボモーターを設置します。
センサーとアクリルマウントを設置したのがこちら
センサーとアクリルマウントを先に作ります。
白い十字架みたいなものがサーボホーンといって、サーボモーターに付属しているパーツです。
アクリルマウントの穴の部分に上からサーボホーンをはめて、
それをサーボモーターに設置すれば完成です
次回からはArduinoに各パーツを制御する方法を個別に書いていきまーす。
Arduinoのソースを書いてみよう1 [Arduino入門編]
おはようございます。
では、前回のサンプルをベースにソースの書き方を
その前にArduinoでハードウェアを制御するまでの大まかな流れは以下です
1)制御するArduinoとハードウェアを接続する
2)Arduinoにハードウェアを接続した事を教える
3)Arduinoからハードウェアを制御する
まずは配線とソースはこちら
1)制御するArduinoとハードウェアを接続する
「Arduinoでハードウェアを制御する」とはArduinoからハードウェアに電気を流したり、止めたり、命令をだしたりすることになります。
そこでまず人の手で制御したいハードウェアとArduinoを各ピンで接続します。
まず電気はプラス側からマイナス側に流れます。
ハードウェアを制御する場合、電気はArduinoから供給したいので、
Arduinoのプラス側とマイナス側をハードウェアに接続すればいいことになります。
プラス側としてLEDのプラス側をArduinoの13番ピンに接続します。
これでArduinoから「13番ピンに電気を流す」と命令すれば電気が流れLEDが点灯し、「13番ピンに電気を流さない」と命令すれば電気が止まりLEDが消灯します。
マイナス側としてLEDのマイナス側をArduinoのGND(グランド)に制御します。GNDは電気のマイナス側を意味しています。
これでプラスとマイナスが繋がり電気が流れる仕組みが完成しました。
そして、これが電子回路の作成になります
2)Arduinoにハードウェアを接続した事を教える
Arduinoでは最初に「void setup(){中身}」を書きます。
これは初期設定用と思って下さい。
Arduinoが起動したらsetup()内の「中身の部分」が最初に一回だけ実行されます。
そこでsetup()の中では初期設定として主に以下を行います。
1)Arduinoで使用するピンを宣言する
2)(必要な場合のみ)ハードウェアの初期設定を行う
ここで「13番ピンを使うよ」と宣言すれば、Arduinoで13ピンに電気を流したり、
止めたりできます。宣言は最初に行えばいいのでsetup()で1回のみ行います。
宣言の行い方は以下です。
1)pinModeという関数をコール
2)第1引数には制御したいピン番号を設定
3)第2引数には制御が入力か、出力かを設定
第1引数は数値で13と書けばいいです。
ただし今回はソース冒頭に「#define」を宣言して設定しています。
#defineを使用すると「この変数は値を絶対に変えません」となり、
書き換えはエラーになります。ピン番号は固定なので#defineを使いました。
第2引数は「LEDのようにArduinoから命令をだしたいときはOUTPUT」
「センサーのようにハードウェアから情報を取得したいときはINPUT」と書きます。
3)Arduinoからハードウェアを制御する
次にvoid loop()です。
これはループの名の通り無限に繰り返される処理部分となります。
Arduinoではloop()を繰り返し処理を実行する仕組みになっています。
ソースにあるdelay(2000)は2秒待つという時間待ちになります。
ハードウェアの制御ですが以下で行います
1)電気の流す・止めるはdigitalWrite関数で設定
2)第1引数には制御するピン番号を設定
3)第2引数はHIGHで電気が流れ、LOWで電気が止まる
今回は間に2秒の時間待ちを入れてHIGH,LOWと順に宣言しています。
よって「2秒おきにLEDが点灯・消灯を無限に繰り返す」ことになります
長くなりましたが入門編第1回は終了でーす
お疲れ様でしたぁ~
では、前回のサンプルをベースにソースの書き方を
その前にArduinoでハードウェアを制御するまでの大まかな流れは以下です
1)制御するArduinoとハードウェアを接続する
2)Arduinoにハードウェアを接続した事を教える
3)Arduinoからハードウェアを制御する
まずは配線とソースはこちら
1)制御するArduinoとハードウェアを接続する
「Arduinoでハードウェアを制御する」とはArduinoからハードウェアに電気を流したり、止めたり、命令をだしたりすることになります。
そこでまず人の手で制御したいハードウェアとArduinoを各ピンで接続します。
まず電気はプラス側からマイナス側に流れます。
ハードウェアを制御する場合、電気はArduinoから供給したいので、
Arduinoのプラス側とマイナス側をハードウェアに接続すればいいことになります。
プラス側としてLEDのプラス側をArduinoの13番ピンに接続します。
これでArduinoから「13番ピンに電気を流す」と命令すれば電気が流れLEDが点灯し、「13番ピンに電気を流さない」と命令すれば電気が止まりLEDが消灯します。
マイナス側としてLEDのマイナス側をArduinoのGND(グランド)に制御します。GNDは電気のマイナス側を意味しています。
これでプラスとマイナスが繋がり電気が流れる仕組みが完成しました。
そして、これが電子回路の作成になります
2)Arduinoにハードウェアを接続した事を教える
Arduinoでは最初に「void setup(){中身}」を書きます。
#define LED_PIN_NO 13 void setup() { // 「13番ピンを使うよ」と宣言 pinMode(LED_PIN_NO, OUTPUT); }
これは初期設定用と思って下さい。
Arduinoが起動したらsetup()内の「中身の部分」が最初に一回だけ実行されます。
そこでsetup()の中では初期設定として主に以下を行います。
1)Arduinoで使用するピンを宣言する
2)(必要な場合のみ)ハードウェアの初期設定を行う
ここで「13番ピンを使うよ」と宣言すれば、Arduinoで13ピンに電気を流したり、
止めたりできます。宣言は最初に行えばいいのでsetup()で1回のみ行います。
宣言の行い方は以下です。
1)pinModeという関数をコール
2)第1引数には制御したいピン番号を設定
3)第2引数には制御が入力か、出力かを設定
第1引数は数値で13と書けばいいです。
ただし今回はソース冒頭に「#define」を宣言して設定しています。
#defineを使用すると「この変数は値を絶対に変えません」となり、
書き換えはエラーになります。ピン番号は固定なので#defineを使いました。
第2引数は「LEDのようにArduinoから命令をだしたいときはOUTPUT」
「センサーのようにハードウェアから情報を取得したいときはINPUT」と書きます。
3)Arduinoからハードウェアを制御する
void loop() { // LED点灯 digitalWrite(LED_PIN_NO, HIGH); // 2秒待つ delay(2000); // LED消灯 digitalWrite(LED_PIN_NO, LOW); // 2秒待つ delay(2000); }
次にvoid loop()です。
これはループの名の通り無限に繰り返される処理部分となります。
Arduinoではloop()を繰り返し処理を実行する仕組みになっています。
ソースにあるdelay(2000)は2秒待つという時間待ちになります。
ハードウェアの制御ですが以下で行います
1)電気の流す・止めるはdigitalWrite関数で設定
2)第1引数には制御するピン番号を設定
3)第2引数はHIGHで電気が流れ、LOWで電気が止まる
今回は間に2秒の時間待ちを入れてHIGH,LOWと順に宣言しています。
よって「2秒おきにLEDが点灯・消灯を無限に繰り返す」ことになります
長くなりましたが入門編第1回は終了でーす
お疲れ様でしたぁ~