inflearn logo
知識共有
inflearn logo

組み込みシステムの本質 - 基礎編(Embedded Systems Essentials)

Linuxのインストールからロボット制御まで、組み込み開発の全体の流れを一度に体験できる入門講座 組み込み開発を始めようとすると、どこから手をつければよいのか分からず、途方に暮れてしまいます。 この講座は、そんな方のために、PC 1台から始めてロボットを動かすまでの全体の流れを 一度に体験できるように構成されています。 Linuxのインストールと基本設定、Raspberry Piの準備から、 回路図やデータシートの読み方、基本的な通信インターフェースの実習まで扱い、 個々の深い知識よりも、全体の構造を理解することに重点を置いています。

難易度 初級

受講期間 無制限

Raspberry Pi
Raspberry Pi
Embedded
Embedded
robot
robot
embedded-systems
embedded-systems
python3
python3
Raspberry Pi
Raspberry Pi
Embedded
Embedded
robot
robot
embedded-systems
embedded-systems
python3
python3

お知らせ

17 件

  • jcrt님의 프로필 이미지

    こんにちは。
    コリンイ救助隊のフチュアッパです。
    今回は、講義で学んだ内容をもとに、実際の開発過程で一度は考えてみる価値のある話をしてみようと思います。

    講義では、IRセンサーを使って障害物を検知し、その結果に応じてモーターを制御する方法を学びます。
    しかし、実際の環境では、センサーが常に期待どおりに動作するとは限りません。

    • 障害物がないのに一時的に検知されたり、

    • 障害物があるのに一時的に検知されなかったり、

    • 周囲の環境によって、センサーの値が不安定になる場合があります。

    このとき、センサー値を読み取るとすぐにモーターを制御するとどうなるでしょうか?
    ロボットが不必要に停止したり、モーターが繰り返し動作したりする現象が発生する可能性があります。
    では、どのように改善できるでしょうか?


    最も簡単な方法の一つは、センサー値を一度だけ確認するのではなく、何度も確認することです。
    例えば、障害物を検知したらすぐに停止するのではなく、3回連続で検知されたときに停止するようにします。
    Pythonで表すと、次のようになります。

    count = count + 1 if detected else 0
    if count >= 3: stop_motor()

    ※理解を助けるための簡単な例であり、detectedは障害物の検知結果、stop_motor()はモーター停止関数を意味します。


    もちろん、実際の実装ではセンサーの測定周期とロボットの応答速度も併せて考慮する必要があります。
    このような小さな改善の積み重ねこそ、実際の組み込みソフトウェア開発において重要な部分です。

    今週の小さなチャレンジ!

    講義で実装した障害物検知機能を少し変更してみてはいかがでしょうか?
    障害物が1回、3回、5回連続で検知されたときに、それぞれモーターがどのように反応するかを比較してみてください。
    単に動作するコードを作成するだけでなく、なぜこのように動作するのか、どうすればより安定して動作できるのかを考える習慣を身につけていただければと思います。

    ありがとうございます。

    コリンイ救助隊より

    0
  • jcrt님의 프로필 이미지

    こんにちは。
    コリンイ救助隊のフチュパパです。

    講義に沿って実習を進めていると、動画とまったく同じようにしたつもりなのに動作しなかったり、予期しないエラーに遭遇したりすることがあります。そのようなときは、ひとりで長時間悩まず、気軽に質問を投稿してください。
    ただし、以下の内容も併せてお知らせいただけると、問題の範囲をより早く絞り込めます。

    • どの講義のどの演習か

    • どこまで正常に進行したか

    • どのような結果を期待していたか

    • 実際にはどのような現象が発生しているのか

    • 実行したコマンドとエラーメッセージ

    • 可能であれば、作成したコードと配線の写真

    たとえば、

    ❌ "GPIOの実習がうまくいきません。"
    よりも
    ⭕ "GPIO出力の実習中です。プログラムの実行までは正常で、エラーも発生していませんが、LEDが点灯しません。GPIO番号はXX番を使用しており、現在の配線とコードは以下のとおりです。"

    または、

    ❌ "SSH接続ができません。"
    よりも
    ⭕ "Raspberry PiとPCは同じルーターに接続されており、pingは正常です。ssh jcrt@192.168.x.xを実行するとPermission denied (publickey)と表示されます。"
    のようにお知らせいただけるとよいでしょう。


    質問を作成する際に「どこまで正常で、どこから問題が発生したのか?」を整理してみること自体が、よいデバッグの練習になります。それでもわからなくても大丈夫です。わかる範囲まで書いていただければ、一緒に確認いたします。


    受講中にわからないことがあれば、いつでもお気軽にご質問ください。

    ありがとうございます。
    コリニ構造隊より

    0
  • jcrt님의 프로필 이미지

    こんにちは。
    コリンイ救助隊のフチュパパです。


    いつの間にか、来週には秋夕の連休が間近に迫ってきましたね。
    まずは講義を見つけてくださり、継続して一緒に学んでくださっている受講生の皆さまに感謝いたします。


    長い連休の間は、しばらくお休みいただいてもよいですし、時間があれば、遅れていた講義を1つか2つずつ、ゆっくり進めてみるのもよいかと思います。
    組み込みの学習は、一度に多くの内容を覚えるよりも、実際に接続し、動かしてみて、行き詰まりながら一つずつ慣れていく過程のほうが大切だと考えています。
    修了を急がず、それぞれのペースで楽しく進めてください。

    ご家族と楽しく穏やかな秋夕(チュソク)連休をお過ごしください。:)

    ありがとうございます。
    コリニ構造隊より

    0
  • jcrt님의 프로필 이미지

    こんにちは。
    「コリニ構造隊」のフチュパパです。
    準備物リストのRC522 RFIDモジュールに関する内容を更新してご案内します。


    はんだ付け済みのRC522モジュール製品にはRFIDカードが含まれていないため、
    該当製品を選択された方のために、別途RFIDカードの購入リンクを準備物一覧に追加しました。

    image.png

    すでにRC522モジュールを購入済みでRFIDカードをお持ちでない場合は、
    追加されたリンクのカードも併せてご用意いただければ、講義の実習を進めていただけます。

    準備物に関して混乱がないよう、確認できた内容は引き続き更新していきます。

    ありがとうございます。
    コリニイ救助隊より
    The Coding Rescue Team

    0
  • jcrt님의 프로필 이미지

    こんにちは。
    コーディング初心者救助隊のフチュパパです。

    最新のRaspberry Pi OSではpigpiodがデフォルトでインストールされていないため、講義のPWM実習中に以下のようなメッセージが表示されることがあります。
    $ sudo systemctl status pigpiod
    Unit pigpiod.service could not be found.


    PWMの実習ではpigpioライブラリを使用するため、以下の手順でpigpiodをインストールして起動してください。
    $ sudo apt update
    $ sudo apt install -y git build-essential
    $ git clone
    https://github.com/joan2937/pigpio.git
    $ cd pigpio
    $ make
    $ sudo make install
    $ sudo ldconfig


    インストール後、以下のコマンドでpigpiodを実行します。
    $ sudo pigpiod


    正常に実行されているかどうかは、以下のコマンドで確認できます。
    $ pgrep pigpiod
    数字が表示されれば、正常に実行中です。
    その後、講義と同じようにPWMの実習コードを実行してください。
    実習中に同じ問題が発生した場合は、質問掲示板に投稿していただければご案内いたします。


    ありがとうございます。
    コリンイ構造隊より

    0
  • jcrt님의 프로필 이미지

    こんにちは。
    「コリニ構造隊」のフチュパパです。


    raspi-gpio GitHubリポジトリ

    講義の撮影時に使用していたraspi-gpio toolは、現在メンテナンスが終了しています。
    そのため、最新のRaspberry Pi OSでは後継ツールである pinctrl toolをご使用ください。

    講義で以下のように表示されるコマンドは
    $ raspi-gpio get 0
    現在の環境では次のように実行してください。
    $ pinctrl get 0


    講義で使用する基本的なget/setコマンドは
    raspi-gpioをpinctrlに変更して、同じように実行してください。


    ありがとうございます。
    コリンイ救助隊より


    0
  • jcrt님의 프로필 이미지

    こんにちは。
    「コリンイ救助隊」のフチュパパです。


    基本編で組み込みシステムの全体的な流れを身につけた方は、
    その概念を実際のSTM32とCコードで実装してみるファームウェア編へと進むことができます。
    ファームウェア編では、GPIO、UART、PWM、I2C、ADC、Timerを自ら実装し、最後にはそれぞれの機能を1つのファームウェアシステムに統合するプロジェクトまで進めます。


    現在、ファームウェア編では早期割引を実施中です。
    早期割引終了後も「組み込みシステムの本質」ロードマップを通じて、基礎編とファームウェア編を30%割引価格で受講できます。
    まだ基礎編を学習中の方は、焦る必要はありません。基礎編を十分に身につけた後、自然に次のステップへ進んでいただければ大丈夫です。


    周りに組み込みシステムやファームウェア開発を学びたい方がいらっしゃいましたら、「組み込みシステムの本質」ロードマップも併せてご紹介いただけますと幸いです。

    受講中に気になる点があれば、いつでも質問をお寄せください。


    ありがとうございます。
    コリンイ構造隊より

    0
  • jcrt님의 프로필 이미지

    こんにちは、
    コーリンイ救助隊のフチュパパです。


    『組み込みシステムのの本質 - 基本編』に続く2番目のコース、
    『組み込みシステムの本質 - ファームウェア編』がオープンしました。

    ファームウェア編のリリースを記念して、アーリーバード期間中、基本編も25%割引価格でご購入いただけます。
    また、既存の基本編受講生の皆様には感謝の気持ちを込めて、ファームウェア編の40%割引クーポンを別途提供いたしました。


    基本編で組み込みシステムの原理を理解し、
    ファームウェア編ではSTM32を活用して直接実装してみてください。
    多くの関心と講義の宣伝をお願いいたします。 :)


    ありがとうございます。
    コリンイ救助隊より

    0

¥9,658