平凡サラリーマンの日々ブログ

サラリーマン奮闘記

⑨Arduinoで楽しもう!

見出し画像

 

ご覧頂きありがとうございます。

今回の記事では、フローチャートについてです。


(1)フローチャートとは

プログラミング経験無い方も、業務などで作成した経験がある方もいらっしゃるのではないでしょうか?

フローチャート”は、まず言葉の意味から”流れ図”って想像いただけます

長方形・ひし形・楕円形などの記号で表示し、流れの方向を矢印で繋げ視覚的に表した図の事です。

厳密にはフローチャートの記号は日本工業規格(JIS)で決められています。

特別なアプリやソフトがなくても、紙とペンで思考を手書きで整理できるので便利です。

普通にoffice のパワポやエクセルならツールバーの、図形の中に、フローチャートがありますが、清書する前の下書きは、やはり 紙とペンでノートに記述するのが良いと思います!

(2)フローチャート一般的な種類

種類もいろいろあり、ここでは一般的なものを記述してます。

■文書フローチャート
:会社などで文書や書類の流れを記したもの

■データフローチャート
:システムのデータの送信経路を記したもの

■システムフローチャート
:プログラム、サーバー、ネットワークなどシステムの物理的な構成要素をデータがどのように経由するかを記した図

■プログラムフローチャート:プログラム処理や管理形態を記した図

(3)フローチャートの記号

ここでは、よく使われる「基本の型」を記述します。
もちろんこれ以外にも記号は種類あります。

(4)フローチャートを書くメリット

これを作ったことある方は納得されると思いますが、
これ作ったあとは、思考が体系化(思考が構造化されたイメージ)されますよね。

プログラミングでも、いきなりコードを書くのではなく、まずは頭の整理のためにフローチャートはやっておいたほうが良いプロセスです。

<メリット例>
①無駄の無いプログラムで、重複な無駄な処理を書くことを防止
②プログラミングの速度が上がる
③機能の付け忘れがなくなる

(5)フローチャート作成で気をつける点

① フローは流れを上から下へ、左から右へ流れるよう要素を配置すること
② 上から下に流れるときは、線でつなぐ、それ以外の場合は矢印でつなぐ。
③ 処理の流れを表す線は,箱から離れていないか?
④ 分岐の条件が間違っていないか?
⑤ 条件分岐からの出力の線に はい(Yes),いいえ(No) などを
  正しく付記してあるか?逆になっていないか?
 ※yes noは省略しない。
⑥ 箱への入力が 2 本になっていないか?
⑦ 箱の横から入力が入っていないか?
⑧ 白黒で作成したか?
 網掛けすることで箱の中の文字が読みづらくなっていないか?
⑨ 図記号と図記号の間隔は開けて重ならないようにすること
⑩ 時系列が分かるよう並列に書かずテキストは簡潔に分かり易くすること

 上記ルールをわかりやすく図解化すると ↓

(6)Arduinoでの具体例

 一番簡単な、Lチカのプログラムをコードからフローチャートすると
下図のようになります。

<スケッチ(コード)表記>

void setup() {
 pinMode(13, OUTPUT);	    // 13 ピンを出力に設定
}

void loop() {
 digitalWrite(13, HIGH);	// 13 ピンを HIGH に設定
 delay(1000);				// 1000ms (1秒)待つ
 digitalWrite(13, LOW);	    // 13 ピンを LOW に設定
 delay(1000);				// 1000ms (1秒)待つ
}

フローチャート表記>

 最初は、上記のように

「スケッチ(コード)」と「スケッチ」を両方つくり

見比べてみるとよいです。

 あと、フローチャートは かならずプログラミングする時の為だけのツールでは無いので、日常の何気ない行動をフローチャートにして訓練するのも面白いのではないでしょうか?

 プログラミングというと、難しい暗号のような羅列された文字を想像しますが、このようなフローチャートの思考の訓練も同時に重要となります。

 下の書籍はとても、参考になります。是非ご覧ください!

 

 

 

 

今回の記事はここまでになります。

ここまで読んで頂き、ありがとうございます!

 それでは 次回の記事でお会いしましょう!

 

 

ニーチェの好きな言葉

見出し画像

 

(この記事は 最短1スクロールでさらっと読めます!10秒)

有名な格言「神は死んだ」の

ニーチェドイツの哲学者、フリードリッヒ・ウィルヘルム・ニーチェ

モチベーション上げたい時、

心が疲れた時

よみかえしてます

画像1

画像2

画像3

画像4

画像5

画像6

画像7

画像8

画像9

画像10

 他にも良い言葉いっぱいのこしてますよね。

読みが足りないかもですが、お薦め 3選

下の3冊 かなりお薦めです!もうニーチェって名前がかっこよすぎです。

哲学とかまったくわからないけど、哲学的な観点で読むより

自分の心にぐさっとくる言葉を拾うだけでも良いかなと思います。

 

 

 

 

 

 

 

 

 今回の記事はここまでになりますが

ここまでお読み頂きありがとうございます。

いいね・フォロー頂けると 記事投稿の継続の励みになります。
どうぞ今後とも宜しくお願い致します。

 

 

習慣化!夜ランニングの体感記

みなさんは、どのような運動をしてますか?

私の場合は、見出しにもありますように

”夜”のランニングを1週間に、1度の楽しみにしてます。

頻度も1週間にたったの、1回だけ!(少ない?)

逆に、その1回/週間 を大切にして、夜ランニングするようにしている。

画像1

ランニングする目的は、私の場合ですと

1番目の理由は、『健康の為!』

2番目の理由が、『体型維持の為』

3番目の理由が、『 仕事の生産性向上の為』

となります。

かれこれ 10年近く継続しています、病気や何か特別なことが無い限り、

2週間以上あけたことは無いです。

もう習慣化してしまってるので、2週間近くまったくランニングしない期間があると、気持ちが、"もやもや"する。。。
その"もやもや"が嫌なので走ります。

画像2

 

ランニングする上で、いろいろ障壁あります(習慣化するまでの障壁)

一番の障壁は、面倒くさい、つらそうといったマインドセットの部分ではないでしょうか?

そして平日は仕事の疲れで、継続のモチベーションが下がるので色々試した結果、土曜日か日曜日の夜に走ることにしております。

ランニングというと、気候(台風・強風)などの天気が悪い日ありますよね。
そんな天気でも、雨や雪などであれば 走っちゃいます。雨の日のランニングって案外気持が良いモノです。

ただ、最初からそんなポジティブにはなれない期間もありました。習慣化される前は天候が悪いときに、『今日は辞めておこうかな~』という思考になってました。

それは

『辛いこと(走らないこと)から、自分自身を逃がすため』、

そして

『自分自身の行動を正当化する為』、

また、

『自分を説得する理由を探してる為』

と気づき、それじゃダメだなって克服しました。

前述でもあるように、今では天候が悪いときでもランニングも楽しむようにしてます!

障壁を感じるマインドセットで、短期ですぐに効果を感じられず、モチベーション下がり、それも継続障壁の要因と思います。

それに対しては、

すぐに成果を感じれるものを、最初ランニング始めた頃はノートに書き出し、しっかり認識することで習慣化が実現しました。

それにより長期目標(ダイエットでマイナス10kg減)も達成できるといった、当たり前と言えば当たり前の話しになります!

私の場合、ランニング直後にすぐに感じられる成果(短期目標達成感)で書き出した内容を下記に示します

大きく『5選』ですが 

① ランニング後 頭髪を洗うと、サラサラになり、髪のコンデイションが良くなる。頭皮の皮脂が浮き出て、デトックス感覚でリフレッシュ!

② 次の日に、いつもよりお腹が空いている感覚があり、あ~燃焼してるんだなって嬉しくなります!ここでがっつりは食べずに注意!

③ 出勤前のベルトの紐がスムーズです。(体型チェックで男性が一番認識できるセンサーともいえるものではないでしょうか)、上述②に対して、物理的な感覚を認識できますし!

④ 汗が 数日さらさらしている感覚が気持良い

⑤ 1週間の心と体にたまったものを、いったん吐き出してリセット etc

 などになります。まだまだ実はあると思いますが書き出すことが重要です。

継続化のこつは、まず1回~数回 ランニングしてみて、そこで得られた 体感メリットをnoteなどに書き出すと良いでしょう!

短期目標の達成感で、モチベーションが継続され、習慣化の入口に立ち、そこからさらに継続する事で、長期目標を達成し、継続する為の習慣化行動が磐石なものになります。

 さて、見出しにもありますように、一番重要なランニングの時間帯ですが、

私の場合ですと
夜ランニングするようにしてます。

いわゆる『夜ラン派』です。

その理由は夜のメリットの方が、個人的には多いと勝手に体感している為。

■夜ランの『メリット』
①景色などの視覚情報が入ってこないので、ランニングに集中できる。
   結果的に、運動の質が高まる    ※でも星は綺麗で癒やされる
②日焼けしない(紫外線への対策)
③夏は気温が昼間にくらべ低いので熱中症などの対策
④成長ホルモンの分泌が増幅され、筋力アップに効果的
⑤ランニング後の頭髪を洗った後の爽快感
⑥交通量が少ないのと、周囲が暗いので車の存在が明確にわかりやすい
⑦昼ランより排気ガスが少ないような気がする。体感的には朝ランが一番空気が澄んでいるとは思います。
 空気の澄み具合   朝ラン > 夜ラン > 昼ラン
⑧夜は人目が気にならないので服装に気を遣わなくてよい     etc
■夜ランの『デメリット』
①安全面 (やはり昼間よりは劣る)
②興奮して寝れなくなることもある
③冬場は、昼より気温が低いので寒い

個人的には,メリットの方が多いと感じているので夜ランしております。

 また 夜ランをより良くするポイント3選

・走る前に必ず、水分補充してからランニング

・明るめのウエアを身に着ける!靴は特に蛍光色などGood!

・鈴などのついた軽いキーホルダーをランニングポーチなどに付け、
 存在を音で知らせるのも良いです!
(こちらが認識出来ても、向かってくる歩行者や運転者が認識できてない場合あるので鈴などの音は良いです)

  こちらの商品がおすすめです!

 

 

 

 

 

 

 

今回の記事はここまでになりますが

今後も しっかりランニング前に準備をして、今後も習慣化継続します。

また、最後になりますが今回の記事では、スポーツ医学などの各分野の専門的なことが、まったくわからない、超ど素人の体験感覚で記載している旨ご了承願います。

 ここまでお読み頂きありがとうございます。

いいね・フォロー頂けると記事投稿の継続の励みになります。
どうぞ今後とも宜しくお願い致します。

アバター顔のみ

これからは知的創造の時代だ!日本の「特許(パテント)制度概要」と「無料検索方法」について

はじめまして、数あるなかよりご覧頂きありがとうございます。

本記事は日本の特許制度”概要!”について記述しますが、枝葉末節詳細の正確性と再現性を担保する記事ではない旨了承ください。
(詳しくはお近くの特許の専門である弁理士さんに聞いてみるのも良いかもしれません)

また、今後時系列で制度変わることもあるかと思いますが※本記事は 2021年7月時点での概要となります。

 

(1)日本の特許概要

■特許制度の期間
 ・・・特許権は、登録した時に発生し出願から「20年」をもって満了します

■出願公開制度
 ・・・出願日から「1年半(1年6か月)」を経過すると「公開」されます(同じようなイノベーションが行われたりするのを防ぐため)

■出願審査請求制度
 ・・・出願(特許出願)したら、「審査」の請求をしなければ、審査されない。
 審査をする請求(審査請求)する機関は、出願日から 「3年(3年以内)」です。

■権利について

特許権は発明を保護するための権利です。

特許が認められたアイデアを、権利者に無断で使用することはできません。

三者が無断でその特許発明を実施していればそれを排除することができます。

また、特許権は、他の人に譲(ゆず)ることができます。

さらに、他の人に利用を許して、そのかわりにお金(ライセンス料)をもらうこともできます

(2)特許取得要件

まず 思えておきたい、とても重要な条文(第2条)があります

 
「発明」とは、
自然法則を利用した技術的思想の創作のうち高度なものをいう。


 また「新規性」「進歩性」を満たすことです

「新規性」 ・・・ 発明が新規性がある場合は、要件を満たすことが必要

・その発明が出願前に 公然と知られていない
・その発明が出願前に 公然と実施されてない
・その発明が出願前に 配布された刊行物やインターネットなどを通じて公衆に利用可能となってない

 ※ここでいう公然とは 守秘義務を負わない人に公にする事

「進歩性」 ・・・ その発明の属する分野で先行技術を参考にして容易に発明できるものではないこと

(3)審査フロー

特許審査フローは、特許庁ホームページから確認できますが
下図のようになります(2021.07月時点)

画像1


(3)出願費用

大きく 「出願時」・「審査請求時」・「維持金」が発生します。

細かい金額は 都度特許庁HPで確認しましょう。

 維持金も、年数と請求項の数によってランニングコストがかわります

でも、個人で出願したら イニシャルコストもランニングコストも難しいし、
企業内での出願は 会社に譲渡してしますし、、、

(4)国際特許

本記事では日本特許の概要ですが、特許の権利は各国で独立してます。

特許庁ホームページから、世界各国のパテントを確認できます


https://www.jpo.go.jp/toppage/links/others.html

画像2

 


(5)先行技術の調査(超簡単で無料で簡単に特許を調べれる方法)

ここでは、自分の考えた発明・アイデアが 出願する・しないにかかわらず、無料で調べる方法を記載します。

自分の考えたアイデアって、結構 もうすでに公開されていることって多いんですよね。。。だから難しいんですが(笑)

あと、簡単な図がこの検索で調べれるので、見ていて面白いですし、自分の発想力を刺激されて有益だと思います。

 少しそれましたが、経済産業省特許庁のホームページのリンクから可能です。具体的には 下図のようなホームページ画面(リンクは下に貼ってます)に飛びましょう。 

 

画像3

 下図のようなトップ画面が開けたら、成功です!

画像4

ここからさらに 虫眼鏡の背景、青部分の簡易検索で調べます。
ここでは、◎特許・実用新案 の部分をチェックします

画像5

フリーキーワードは、例で 『人工知能』 と入力します。
そうすると結果の数が表示されます!

画像6

テキスト表示検索だと、このように表示(興味のあるところをクリック)

されるので,見たい文献番号をダブルクリックする

画像7

↓ このような感じで表示されたら成功です!

画像8

さきほどのテキスト表示を、PDF表示にすると下図のような感じです。
内容は同じで、どちらの表示を好むかだけなのでお好きなほうで!

画像9

まずは、このリンク先で いろいろキーワード検索して

公開されている、テクノロジーイノベーションを肌で感じましょう!

下記は参考までに、私が勉強した本になります!

 

 

 

 

 

 

 

 

 

本記事は、ここまでとなります。

ここまで読んでいただきありがとうございます。

もしよろしければ、「フォロー」・「いいね」頂けると 励みになります。

 ではまたお会いしましょう!

⑧Arduinoで楽しもう!



≪今回の記事はモジュール関数(コードの集合)についてです≫



見出しにあるような、『関数』と聞くと、まっ先に 数学などの三角関数や1次関数、2次関数などを思い浮かべるのではないでしょうか?

もちろんそれらの、数学的な関数
三角関数 sin(rad) cos(rad) tan(rad) などもありますが。実はプログラミングにもあります。

『関数』は、ある「変数」を入れると、それによって決まる「値」や「式」とイメージしてください。

例えば

f(x) = x + 20 でこの関数f は、変数xによって値が決まります。
例として xが15ならば f(15) = 35 になります。

Arduino関数も、考え方は似てますが、計算処理以外にもいろいろなことが可能になります。

機能ごとに分割して特定の仕事をこなすことが可能で、このモジュール単位を『関数(function)』と呼びます。
プロシージャあるいはサブルーチンと呼ばれる場合もあります。

■コードを関数化(モジュール)することのメリットはいくつもあります。

1.関数は、プログラムをコンパイルするときに、
  エラーが出にくく、出たとしてもデバックが容易
2.関数は、同じ処理を同じ場所にまとめてくれるので、
  コーダーが何度も考えたり、繰り返し修正する必要が少なくなる。
3.関数は、スケッチのサイズを小さくします。
  メモリ容量に優しい。それにより使用効率がよくなります。
4.関数は、コードを他のプログラムで再利用することが容易になります。    5.関数は、とても秩序立ったプログラムの状態を保てます。

■モジュール化イメージ図

画像1

■構造化思考

関数の組み合わせで、単純な処理から、複雑な処理にできるようになります。もし関数がないと、とても長いスケッチになってしまい、他人が見てわからないだけでなく本人も読み返したときに分からなくなる可能性があります。

そういうときに意味のあるかたまりごとに処理をひとまとめにして、サブアッシー部品のようにすることで頭の中が整理されます。

その意味のある塊のモジュール関数を、つなぎ合わせて「スケッチ」の全体をつなぎ合わせることで大きな部品を作ることが可能です。

部品の部分が1回書いておけば何度も再利用ができます。

そしてなによりも、省力化・効率化が可能です。

■具体的なやり方

下図のように、画面上部メニューを選択します

画像2

ライブラリ内の関数をスケッチで使いたいときは、ヘッダーファイルの宣言が必要です。呼び出し方はメニューの「スケッチ」タブ→「ライブラリをインクルード」をクリックします。

ZIPファイルは、PCの管理しやすいパスで管理しておきます

下の↓ この例では、サーボモータを制御するために利用されるServoライブラリをインクルードします

#include <Servo.h>
Servo myservo; // create servo object to control a servo

void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop() {
for (int pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (int pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}


 

■モジュール関数 ライブラリについて

Arduinoの考え方のオープンソースな世界では、自前のモジュール関数をサイトで公開しており、それを利用することもできます。
公開されているモジュール関数も、モーター制御やインターネット接続など沢山あるので必要なときに使えます

日々世界中で新たな関数がつくられ、公開されております

その中でも大別して、標準ライブラリ・寄贈ライブラリ・非公式ライブラリなどがありますが、標準ライブラリは、Arduinoインストールと同時に一緒に入ってきます。下記参考までに。
https://www.arduino.cc/en/Guide/Libraries


話しはかわりますが、私はプログラムというかノートPCソフトを使う時、下図のようなスタンドを使います。疲れ防止です。かなりお薦めです!

 

ここまで読んで頂き、ありがとうございます!

今回の記事はここまでになります。

もしよろしければ、フォロー・いいね頂けると嬉しいです!

次回は、プログラムをわかりやすく、思考を体系化する「フローチャート

について投稿予定です。それでは 次回の記事でお会いしましょう!

 

 

⑦Arduinoで楽しもう!

今回の記事ではインストールしたArduino IDEを開いた時に表示される

画面の概要を説明いたします

Arduino-IDE」の表示画面は下図のような超シンプル画面です。

大きく 『3つの構成』 です。

「ファイルメニュー」・「ツールバー」・「プログラム画面」
になります!

画像1

「ファイルメニュー」

Windows用のソフトと類似しているので、あまり操作に困ることは無いと思いますが

 まずはファイルメニューです。主に2つまずは操作してください

①つめは、まずは初期設定で画面のみやすさや個人設定をしましょう。
僕は、下の赤枠を主に調整します。

画像2

画像3

 ②つめは ファイルメニューでは、Lチカをサンプルプログラムを開いてみましょう。

画像4

ツールバー

次は、ツールバーです。主なアイコンは次の①~⑤です

画像5

①Verify ・・・入力したスケッチ(プログラム)のエラーをチェックします

②Upload・・・入力したスケッチ(プログラム)をコンパイルして
Arduinoの基板マイコンにアップロードします

③New・・・新規作成、新しいスケッチを開きます

④Open・・・ファイル開くと同じでスケッチを開

⑤Save・・・編集中のスケッチを上書き保存する

⑥Serial Monitor・・・シリアルモニタ画面を開く。

 ただ慣れないうちは、保存や開・閉じるなどの一般的な操作はファイルメニューからもできるので、そちらからやっても大丈夫です。

「プログラム画面」

最後、3つめの構成でのプログラム画面は、別途プログラムの関数のところで説明しますので、今回の記事では割愛します。

 といったところで、本記事はそろそろ終わりですが

IDEの画面に慣れる近道は、まず「LEDチカチカ」をやりましょう。

単に点滅させるだけの単純作動ですが

マイコン基板や負荷とPC配線関連(USB含む)」

IDE画面から初期設定・操作」

「最低限のプログラム編集と実行」

の一連の作業を理解したうえで、複雑な回路や、複雑なプログラム関数のステップになります。

まずは周辺環境を構築するところからチャレンジしましょう!!

こちらの商品がおすすめです!

 

 

 

 

では,今回の記事はここまでになります。

次回の記事でお会いしましょう。

もしよろしければ、フォロー・いいね頂けると嬉しいです!

アバター顔のみ

⑥Arduinoで楽しもう!

これまでに何度かワードが出現していた、PWM制御ですが

今回の記事では、

PWM機能をイメージと先入観を感じてもらえればと思います。

では始めましょう。

⇒PWMって「Pulse Width Modulation」の略で、

変調方式の一つで、って言われても、イメージつかないですよね。

さっぱり…って感じですよね。。。

日常生活でも、カチカチとスイッチの切り替えしますよね。
PWM制御は そのスイッチの繰り返しON/OFFを高速でくりかえすイメージです。(もちろん手動でスイッチを高速で切り替えませんよ 笑)

この点滅を1秒間にだいたい100〜200回以上行うと、人間の目には早すぎて点滅として認識できないんです

時間の比率を変えると明るさが調整できる、ということになります。これが「PWM」制御です。

画像2

この図では、LEDをONにする時間とOFFにする時間は同じにしています。ON/OFFの繰り返し1回分のうち、DUTY(デューティー)50%をON、50%をOFFにしています。

Highの時の電圧は12Vであれば、これは「6Vの実効電圧(ここでは時間平均的な電圧)で連続点灯しているように見えます」が、人間の目には超高速すぎてon/offを繰り返しスイッチングしているようには見えません!

画像2

ここまででおわかり頂けたと思いますが

もうひとつ例としてあげると、
Duty値が75%のときは、実効電圧 9Vで連続的(実際はon/offしてますが)に光っているようにみえることになります。

画像3

 

さて ここまで色々 用語出てきましたが、最後に整理しましょう!

■パルス(PULSE)
パルスとは短時間に立ち上がる変化をする信号のことを言います。PWMでは図のように山と谷のある波形となり、その電圧がもっとも高くなる山の幅をパルス幅といい、その単位[s(秒)]は時間となります。
■周期
ON状態の山と山(図の黄色の部分になります)、つまり”パルス”同士の間隔を『周期』といいます。 また周期の逆数をとったものを『周波数』と呼び、単位を[Hz]もしくは[1/s]で表します。 これは、ある周期の波形が1秒の間に何回あられるかを意味しています。
~例~
1[Hz]:1秒間に1つの波形、5000[Hz]:1秒間に5000回の波形
といった具合です。

■デューティー比 [%]
『パルス幅』を『周期』で割り算したものをデューティー比といい
「デューティー比=パルス幅 / 周期」と表します。


上の図のような、ある一定時間だけONになる信号は「パルス信号(Pulse Signal)」と呼ばれています。「Pulse」とは「鼓動」などの意味です。

LEDを制御する際に、このパルス(Pulse)の時間幅(Width)を変えて制御しました。「変えて制御すること」は一般に「変調」と呼ばれていて、英語では「Modulation」と呼ばれています。
ということでこのような制御方法を「PWM制御」と呼んでいます。

今後も、PWM制御で LEDやDCモーターなどの制御する投稿記事を予定してまます。

参考までに下図の書籍はかなりお薦めです。

『最新版 モータ技術のすべてがわかる本 (史上最強カラー図解)』

史上最強カラー図解と本自体のタイトルでもあるように

文字よりも図の説明が上回っており、
モーターの種類や、モーターの基礎力学など説明されており、
今まで読んだモーター関連の本で一番理解しやすかったです!

 

 

 

 

ここまでお読み頂きありがとうございました。

是非 他の記事も読んでいただき、今後もフォロー・いいねよろしくお願いいたします! ではまた お会いしましょう!