質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

4回答

794閲覧

Raspberry-Piをマイコンとして制御したい

Uka

総合スコア28

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2020/04/20 14:22

ラズパイにセンサを取り付けてマイコン制御したいと考えています。
現状、ラズパイのコマンドプロンプトから.pyプログラムを実行し、センサの値を取得することはできますが、この方法だと都度コマンドを実行しないと動作してくれません。
ArduinoやESP32と同じように、一度プログラムをコンパイルしてしまえば同じ動作をしてくれるようにするにはどのようにしたらいいでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ラズパイはOSの無いArduinoとは仕組みが異なるので、自動でプログラム起動するには、自分で設定を行う必要があります。

TaroToyotomi さんが既に回答しているように、systemdを使っても良いのですが、ラズパイには複数の自動起動方法がありますので、自分にあったものを選択するのが良いかと思います。以前Qiitaにまとめた記事を書いているので、もしよろしければ参考にしてみてください。

Raspberry Piでプログラムを自動起動する5種類の方法を比較・解説

投稿2020/04/21 12:21

karaage0703

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Uka

2020/04/21 15:52

>karaage0703さん ご回答ありがとうございます。 リンク先参考にさせていただき、簡単にできそうな1と3について試してみましたが、どちらもうまくいきませんでした。ラズパイはまだ使い始めたばかりで、設定ファイルなどをいろいろいじっているうちにエラーを起こしてしまっているかもしれません。。 1.の/etc/rc.localについては、ファイルを開くとswapファイル・・・についてのコメントがでて、exit0の前に追記しようとしても入力ができません。 3.のcrontab @rebootについては、とくにエラーはでませんでしたが、再起動してもファイルの自動実行はされませんでした。(LEDの常時点滅プログラム) なにか考えられる原因などありましたらご教示いただけるとありがたいです。よろしくお願いいたします。
karaage0703

2020/04/23 14:20

もう解決したようですが、1. に関して回答します。swapファイルに関しては、エディタの使い方の問題だと思います。使いやすいエディタで編集してもらえば良いです。
Uka

2020/04/23 14:28

>karaage0703さん、 ご回答ありがとうございます!プロンプトのnanoコマンドからプログラムを書いていますが、たしかに使いづらいと思っていました。ほかのエディタも検討してみたいと思います。
guest

0

systemdで自動的に.pyスクリプトを実行するようにスケジュールすればよいと思います。

https://qiita.com/molchiro/items/ee32a11b81fa1dc2fd8d

投稿2020/04/20 15:27

TaroToyotomi

総合スコア1430

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Uka

2020/04/21 15:33

>Taro Toyotomiさん ご回答ありがとうございます。 リンク先の「ラズパイ起動時の自動実行」を参考に試してみましたが、再起動してもプログラムの自動実行はされませんでした。(LEDの常時点滅させるプログラム) a.serviceファイルの中身については、以下のように修正し、LED.pyをoptフォルダ内に配置しました。 なにか考えられる原因などありましたらご教示いただけるとありがたいです。 ------------------- [Unit] Description=do something [Service] ExecStart=/usr/bin/python /home/pi/opt/LED.py [Install] WantedBy=multi-user.target
guest

0

自己解決

ご教示いただいたsystemdを使って解決することができました。
ありがとうございました。

※以下のリンク先を参考にしました。
https://www.raspberrypirulo.net/entry/systemd

1.sudo nano /lib/systemd/system/LED.serviceで、LED.serviceプログラムを作成する。

2.以下、LED.serviceプログラムの中身(今回は、python3でLED.pyを動かす)

[Unit]
Description = LED

[Service]
ExecStart=/usr/bin/python3 /home/pi/LED.py
Restart=always
Type=simple

[Install]
WantedBy=multi-user.target


3.実行したいpythonプログラムを/home/pi/の配下に置く。

これ以降の手順は参考したリンクのとおりです。

投稿2020/04/22 16:37

Uka

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

たんに、.pyプログラムを終了するように組んでしまってるから終了しているだけです。
終了しないようにコードを組みましょう

投稿2020/04/20 23:26

y_waiwai

総合スコア88024

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Uka

2020/04/21 15:40

>y_waiwaiさん ご回答ありがとうございます。 自作のプログラムを常時動作させるためには、別途ラズパイ自体の設定を変える必要があるようなので、確認してみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問