カテゴリー: 日常ブログ

  • Arduino言語におけるswitch case 構文

    Arduino言語におけるswitch case 構文

    Arduinoにおいて、さまざまな条件分けをしたいとき、if文で構成することがほとんどだと思います。
    しかし、条件分岐が10とか20とか(あんまりないとは思いますが)あった時はどうしましょう。

    C/C++言語にはswitch文があり、C/C++言語をベースとしているArduino言語も同じ構文が使えます。

    以下にプログラム例を記載します。

    switch (var) {
      case 1:
        // varが1のときに実行する処理
        break;
      case 2:
        // varが1のときに実行する処理
        break;
      default: 
        // どのcaseラベルにも一致しないときに実行する処理
        // defaultは、省略可能
      }

    varが変数であり、varが1の時、case 1の処理が実行されます。
    varが2の時、case 2の処理が実行されます。
    varが1, 2以外の時は、defaultの処理が実行されます。

    case 1, case 2の処理後の “break;”はそれぞれのcaseの処理が終了したということを示す文です。
    この文がないと、エラーを起こしたりします。

    defaultの処理において、break; が必要ないのは、defaultは最後の条件分岐になり、最後の処理というのが明白なためです。
    ただ、書いてはいけないわけではなく、書いても問題なくプログラムは動きます。

    また、default: 自体も省略することができます。
    if else構文のelseの省略のような感覚です。

    個人的にはswitch case構文はif構文よりもプログラムを見たときのスッキリさはあると思います。
    そこまで難しいコードでもないので、ぜひ使ってみてください。

  • 聞かされる発表から聞かれる発表へ!

    聞かされる発表から聞かれる発表へ!

    大学生活において避けては通れないもの、その一つが発表です。
    授業だけでなく、研究室、ゼミ、サークル活動などでも人の前に立ち、発表する機会は多くあります。

    小学校から高校までは授業を受けるだけであり、長い時間の発表というのはなかなか行う機会が少なかったのに、
    急に大学に入ると人前に立たされることが多くあります。

    ただ、周りの人たちの中には発表が苦手であったり、嫌いだったりする人が多くいるのも事実であり、
    発表自体も発表が下手だなー、退屈なだーと感じてしまう人は残念ながら多くいます。

    そこで、大学生活で培った発表のノウハウをどんどん載せていきます。

    今回は発表を行う上での心の部分です。

    発表が下手な人たちの典型例として、聞かされる発表を行なっているということです。
    例として、
    ・一枚のスライドの説明時間が長い
    ・発表に空白の時間がある
    ・スライド枚数が多い
    ・話の繋がりがわからない
    などです。

    基本的に発表を聞く人たちは、発表を聞きたいという意欲はほとんどないと思った方がいいです。
    誰もあなたの発表に最初から興味を持っている人はいないのです。

    発表を聞く人たちの気持ちは、中学校で30分ぐらいの校長先生の話を体育館で聞いている気分です。
    学生時代に校長先生の話を毎度興味津々で聞いていた人は少ないでしょう。

    このような聞きたいという意欲のない聴衆に対して、自分本位の発表をすることによって、自分自身は満足するかもしれませんが、聴衆は退屈します。

    人によっては、聴衆が楽しそうでない、スマホを触っている、寝ているなどの様子を見て、自分の発表はだめなんだと自己嫌悪に陥る人もいるでしょう。

    そのようにならないために、聞かれる発表をする必要があります。

    聞かれる発表には小手先の発表の技術も大切であるが、もっとも重要なのは自分自身の発表に対する考え方である。
    その考え方が変われば、聴衆を意識した発表になるでしょう。

    聞かれる発表のために重要なことは、
    ・発表で最も伝えたいことは何かをはっきりする
    ・発表はシンプルに、最小限に
    ・自分がわかりにくい、気になると感じるところはなくす
    です。

    発表で10あったとする。
    10を同じテンションで話すと聴衆にも全く何も残らないが、1つだけを重要そうに話すと、その他の部分は全くゼロかもしれないが、その1だけは少なからず頭に残るだろうと思います。

    話したい内容を絞り、短く端的に、そしてわかりやすく

    意見を押し付けるような発表ではなく、自然と聞いてもらえるような発表というのを目指す。
    それを意識していれば、自然と発表はよくなっていくと思います。

    発表がうまいなという人がいれば、その人たちに色々きいてみましょう、
    そういう人がいなければ、発表のお手本としてよく取り上げられる、スティーブ・ジョブズ、オバマ大統領などの発表を見てみましょう。
    彼らの発表は言葉だけで、多くの人に伝えることができます。
    それは、技術もすごいが、最も、自分の伝えたいことがはっきりしているという点があると思います。

  • 詳しいことは分かりませんが、Pythonでプログラミングしたいです!(1)

    詳しいことは分かりませんが、Pythonでプログラミングしたいです!(1)

    プログラミングの勉強を始めるにあたって、いったい何から始めるかっていうのが最初の関門だと思います。
    ネットで調べたりしたはいいけど、そこからじゃあどうしましょう。プログラムを書くソフトは一体どうしたらいいの?

    僕自身それでかなり困りました。

    プログラムを書くにあたって書くためのツールが大きく二つあります。
    一つは対話型であり、一つは文章型です。(ここでは分かりやすく。正しいのかはイマイチわからないですが…)

    対話型は文章を一つ打ったら、一つ返答が返ってくる
    という具合に一文一文プログラムを書いて実行してを繰り返します。

    文章型は作文をしたらその感想が返ってくる
    というように、一気にプログラムを実行するイメージです。
    いわゆる想像するプログラムは文章型であり、訳のわからないコードがたくさん並んでいるように見えるかと思います。

    ただ、文章型のプログラムをしようとした際にじゃあ一体どのソフトでやるのか?というのが困ります。

    それも、プログラミングを学ぶ初級では対話型を行うことが多いが、中級になると急に文章のコードを書くようになり、何を使って書くかはあまり明記されなかったり、本によって全く違ったりします。

    対話型はコマンドプロントであったり、ターミナルなどの、もともとパソコン本体に既存のもので
    “Python”と打ってから始めます。

    しかし文章型のプログラムはどれで書くのでしょうか。

    文章型のプログラムの多くは、IDE(総合開発環境)によって書くことがほとんどです。(困ったときには”Python IDE おすすめ”で検索するとたくさん記事が出てきます。)

    僕の文章型のプログラムを書くときに普段使っているのは
    Jupyter NotebookとPyCharmです。
    (Jupyter はジュピターと読む派と、ジュパイターと読む派がいるみたいです。)

    統計解析やグラフを書くときはJupyter Notebook、機械とか動かしたり、複雑なプログラムはPyCharmを使います。

    それぞれどんな感じなのかを説明していきたいと思います。

    まずJupyter Notebookについて。
    これはAnacondaをダウンロードすると付随して入ります。
    Jupyter Notebookを起動すると、まずSafariやFirefoxなどのパソコンのブラウザが開きます。

    そして、パソコンのファイル一覧が表示されます。
    そこで目的のフォルダーを開き、右上のほうにあるnewをクリック。
    その後、Python3をクリックすることで下の画像のような画面が開かれます。
    このファイルを保存すると *.ipynbファイル となります。

    一つ一つの塊にプログラムを打ち、上部にあるRUNというボタンをクリックすることによって、各固まりずつプログラムを動かすことができます。

    グラフや統計を行う際に、この一つの塊ずつコードを実行するというのはとても利点となります。
    なので僕はよく利用してます。

    PyCharmは *.py ファイルを開くときに使っています。
    開けるファイルが違うので、注意が必要です。

    PyCharmは他のサイトを参考にしてみてください。
    (まだあんまり使ったことがないので、詳しい使い方に関しては今後の記事で紹介したいと考えています。)

    Anacondaのサイトはこちらから

    Jupyter Notebookのサイトはこちらから

    PyCharmのサイトはこちらから
    ダウンロードはprofessionalではなく、灰色のCommunityのほうが無料で使えるほうです。
    はじめはそちらのダウンロードをおすすめします。

    Jupyter Notebookは最近頻繁につかっているので、僕の学習のメモとして、そしてプログラムを学びたい方向けに今後も更新していきたいと思います。

  • ねじ位置が分からなくなっちゃう!!アイデアで解決☆彡

    ねじ位置が分からなくなっちゃう!!アイデアで解決☆彡

    パソコンのHDDをSSDに換装するとき、グリスの塗りなおし、もしくは家具家電が壊れた時に、自分で直そうとするとき、ついついねじをなくしちゃいがちです。

    ねじをなくすとホームセンター等で購入せねばならないうえ、ぴったりあうねじを見つけるのは至難の業です。
    僕もスイッチのプロコントローラーを直そうとしたときに、ねじをなくし、買いに行きました。

    近年中国市場で出回っている電子機器の部品等がAliExpressやWish等で購入できるようになり、メルカリ等のフリマアプリでジャンク品を気軽に購入できるようになったことから、自分自身で直そうとする試みをする人たちが非常に多くなりました。
    コロナの感染拡大により、家で過ごす時間も増え、なおこのブームが加速されたと思います。

    ただ、やはりねじの管理はモノを直すうえで基本的なことであり、しかし重要なことの一つであると思います。
    そこで僕がジャンク品修理の際にどのようにねじ管理をしているのかを紹介したいと思います。

    これは百円均一に売っている裏が粘着シールになっているマグネットシートと、透明なトレーで作成できます。
    僕の買ったときには、マグネットシートは文房具コーナーに、透明なトレーは収納コーナーにありました。

    マグネットシートを適当なサイズにカットし、それを張り付けることで作ることができます。

    このトレーは重ねることができるものであるとなおよく、作業中にそのトレーを分解した順に重ねることでよりどの位置のねじかがわかります。
    ねじと一緒に細かいパーツも置くことができるのも押しポイントだと思います。

    簡単に作ることができるので、ぜひ活用してみてください。

  • 一か月プログラミングの勉強をしてみての感想

    プログラミングを学習して一番実感するのは、自分が果たしてプログラミングができるようになっているのかどうかわからないということです。

    いままでずっと、プログラミングは英語のようなもので、勉強するにしたがってだんだんと言語のようにすらすらと書けるようになっていくのではないかと考えていました。
    しかし、実際には、そうなっていくような感じはあまりしませんでした。

    プログラミングは必要に迫られたときに勉強する感じであり、逆に言うと使わなければ身につかないんだなと思いました。
    僕自身DeepLabCutによって解析結果が出ましたが、あまりにも膨大なデータなため、それをどうにかしてわかりやすくグラフにする必要性がありました。

    エクセルでもグラフはかけるのでしょうが、膨大なデータであり、エクセルで開くのだけでも非常に時間がかかりました。
    そういったデータを処理し、グラフにするためにpythonを使用しようと決め、勉強しながらプログラムを書くことにしました。

    プログラムを書いてみて、プログラムを書くこと自体はそこまで難しくないと思いましたが、自分のやりたい処理をグーグルで探すことが難しいなと感じました。
    どういう処理をしたいかを考え、それにあうプログラムコードを調べ、入力していくという作業の繰り返しでした。

    これを踏まえ、先に話した言語のようなものではなかったということについて、どちらかというと常に英和辞典をもって話しているような感じであり、どのようなことでもある程度時間をかければできるが、経験によって調べる速さ、プログラムのスマートさが変わっていくのだと感じました。

    また、自分で書いたコードは財産となり、同じような処理を行おうとした際にそれをコピペして少し変えてつかうということが頻繁にあります。

    まだまだプログラミングを始めたばかりで、ミーハーなのでそういうことを語れる身ではないのかもしれませんが、今後始める方の参考になればと思います。