Raspberry Pi(ラズパイ)についてのまとめ

  • ガイド ( How to )
  • ありがとう数:0

はじめに

Photo by 写真AC

2012年に爆誕したラズパイは、

安価で、内蔵ハードディスクはついてないけど、

電源やSDカードで使えるシングルコンピュータです。

そんなラズパイについてのQAをまとめました。

STEP1RaspberryPiをPICライターに出来ますか

RaspberryPiをPICライターに出来ますか

電子工作に興味が出たのでPICを購入しようと思うのですが、
プログラムを書き込むPICライターをRaspberryPiで代用する事は可能でしょうか?

よろしくお願いします。

質問者さんが回路設計やプログラミングに慣れていれば、十分可能だと思いますよ。
PICは、LVPでない限り、書き込み電圧は別途確保する必要はありますので多少、回路を追加する必要があります。
PICライターの製作はいろいろ紹介されていますので、そのあたりの回路を参考になさってください。

GPIOポートを使ったシリアル通信について

GPIOポート(デジタルの汎用入出力)を用いてのシリアル通信について質問させて頂きます。
通常シリアル通信にはTxD,RxDといったシリアル通信用のピンを用いますが、これは通常1デバイスに一ポート程度しかありません。そこで、多数のシリアル通信デバイスを制御するのに、数のあるGPIOピンを用いることができないか、と検討しております。
具体的には、raspberry piやarduinoに搭載されるGPIOピンと制御したいデバイス(PICマイコンなど)のシリアル通信ポートを接続し、制御したいということです。
説明が下手で意図がうまく伝わらないと思いますが、できるかできないか、または参考になる資料など、なんでもいいので情報の提供をよろしくお願いいたします。
イメージしている接続を図示してみましたので、説明の足しになれば幸いです。

「できるか」の答えとしては「できます」。
ただし、ソフトウェアの負担がそれなりに重くなります。場合によっては割込も使うでしょう。
送信は、スタート、パリティ、ストップビットを付けて所定のタイミングでパラシリ変換するだけなのでまだ楽ですが、
受信は、
1. いつ来るかわからない受信を待ちつづけ
2. スタートビットの前縁を検知したら
3. 0.5ビット長後にスタートビットがまだ続いてることを確認し
4. 1ビット長毎に8回データを取り込みシリパラ変換し
5. 1ビット長後にパリティ検査し
6. 1ビット長後にストップビットを確認

という動作が要ります。
これが複数ある場合は、それぞれは同期もせず任意のタイミングでスタートするので、
「0.5ビット長」「1ビット長」を測るタイマ割込なりも独立に要ることになります。
(より細かいタイマとして兼用させる手もなくはないですが)

更に、速度可変、データ長は5,6,7,8ビット選択可能、パリティビットあり/なし選択可能、な機能も付けるならまた大変です。
まぁローカルな通信なら、可変にする必要ありませんが。

「調歩同期式」は送信、受信とも独立し双方がいつでも送信できるし、相手をパソコンでシミュレーションデバグできる、等のメリットがあり使いやすいと思いますが、
逆に言うとその必要がないなら冗長すぎるとも言えます。

パラレルポートでソフト処理で通信するなら、
SPI
http://www.ne.jp/asahi/rugbysensor/ohata/SPI_0.html
の方が、制約もありますがソフト的にはまだ作りやすいと思います。

DOSの時代にシリアルのデータ抜けが問題になった。16550では間に合わずハードウェアFIFO付の16550Aが使われたくらいです。ひとつづに専用のシリアル通信用ICが必要です。CPUでシリアル通信は無理です。

STEP2画面が出ないときは何を確認する?

Raspberrypiの画面が出ない。

raspberrypiの本体とPre-installのNoobsのソフトを購入し、テレビのビデオに接続
電源は別の5V電源、Key-board及びマウスを接続し、インストールを試みました。

最初は画面が出なかったので、数字の4を押すと画面が出ましたので、画面の
通り(ラズベリーパイで遊ぼう)という本を見ながら、進めていきました。
ところが、インストールが完了し、OKというボタンをクリックした所画面が消えてしまいました。
そのうち出てくるだろうと、2時間ほど放っていましたが、画面はとうとう出て来なくなりました。

仕方がないので、いったん強制的に電源を切断し、暫くして投入すると
LEDは点滅し始めてソフトのスタートが始まっている様な気配ですが
最終的には画面は出て来ません。

Webを検索しても、自分が理解できるような回答に巡り合いませんので
どのように対処したらよいか教えてください。

新しい、SDカードを用意し、公式Wiki を読んで、Raspbian をインストールしてみてください

http://elinux.org/RPi_Easy_SD_Card_Setup
(初心者の方でも、この程度の英語は読めるはずです)

Noobs はうまくいかなかったとのことなので、ご自身の母艦パソコンのOSに応じて
3.2節 or 3.3節 or 3.4節 をご覧になり、Raspbian をインストールしてください

これでだめなら、初期故障の可能性があります。 購入先に相談してください

(ほんとはシリアルコンソールつないで見てね、って言いたいんですが
 初心者の方には難しいかもしれません。)
 

STEP3編集ソフトについて

raspberrypiと編集ソフト

ここの所ずーっとraspberrypiと使うソフトを設定していますが
その設定に使う編集ソフトが、vim、leafepad、nanoとか沢山使用例が
有って、初心者の私は頭がこんがらがって来ています。
linuxの編集ソフトが色々と使えることは分かりましたが
例えばvimを使って書かれている物を、そのままnanoの編集ソフトに
置き換えて書くことは、多分出来ないのでしょうね。
又、編集ソフトを使ってlineを書き込んでいく時、行ナンバーが
書かれていないのですが、必要無いのでしょうか。
VIMはリナンバーで行を書き込むことは出来るようなんですが。
私は初心者なので、取り説に書いてあるlineをそのまま書き写すことしか
出来ません。
全部入れ終わってもソフトが動いていないようなので、間違っているように
思えてなりません。

後、raspberrypiとwindows-PCとを、wi-fiを使ってteratermを使って
書き込んでいますが、$ startxのコマンドでLXterminalを起動ししているときは
文字のリモートは出来るが、グラフィックの画面はwindowsのteratermの画面には
出て来ない様ですが、raspberrypiのグラフィックの画面はwindowsには
反映されないのでしょうか。

(1)例えばvimを使って書かれている物を、そのままnanoの編集ソフトに置き換えて書くことは、多分出来ないのでしょうね。

できます
これらはテキストファイルというものを編集するエディターというソフトです
どのソフトでもテキストファイルが編集保存が出来ます
Windowsでいうならば秀丸エディタで編集しようがメモ帳で編集しようがファイルを触れるという意味では同じということです
個人的にはvimをお勧めします。Linuxでは一番広く使われている設定ファイル編集用エディタですので

どのみち少々癖のあるソフトですので、操作に難があるならWindows用のなれたエディタで編集してアップロードするという手もあります
sambaで共有して直接Windowsから触ることも可能です

(2)raspberrypiのグラフィックの画面はwindowsには反映されないのでしょうか。

teratermには反映されません

グラフィック画面をWindowsから触るにはXサーバーというソフトを使います
いろいろありますが1例
http://memo.tank.jp/archives/8138

>例えばvimを使って書かれている物を、そのままnanoの編集ソフトに
>置き換えて書くことは、多分出来ないのでしょうね。

設定ファイル(テキストファイル)のどこを書き換えるか…という問題でしかないので、
エディタに何を使おうが利用者の自由です。
# Windowsでテキストを編集するのに秀丸ではダメでメモ帳でないといけない。ということはありません。
まぁ、文字コードの問題が出る場合もありますが…。
編集や保存の操作方法に違いがあったりしますが、そこらヘンは読み替えればいいだけです。
# ということで、私はもっぱらvim使っている。(たまに元のvi起動しちゃってミスることはあるが)

>又、編集ソフトを使ってlineを書き込んでいく時、行ナンバーが
>書かれていないのですが、必要無いのでしょうか。

普通は要りません。
目安程度に見ておきましょう。
現在編集中(カーソルのある)行が何行目か…というのはエディタ次第でしょうね。

>$ startxのコマンドでLXterminalを起動ししているときは
>文字のリモートは出来るが、グラフィックの画面はwindowsのteratermの画面には
>出て来ない様ですが

teratermはCUI操作用のソフトですし。
Raspberry piのGUIを操作したいのならRaspberry piのHDMIにモニタ接続してください。
# マウスとキーボードも接続が必要です。

>raspberrypiのグラフィックの画面はwindowsには
>反映されないのでしょうか。

Windows側にXサーバソフトを入れて、そちらに表示するように設定する。(「Windows Xサーバ」で検索)
 http://sourceforge.jp/magazine/09/10/14/0753240
とか、VNCで接続する。(「Raspberry pi VNC」で検索)
 http://azwoo.hatenablog.com/entry/2014/01/20/232545
とかして下さい。

STEP4GUIプログラミングをしたい

ラズパイでGUIプログラミングしたい

現在raspberry pi3を使用しています。このラズパイにタッチパネルディスプレイを接続しています(waveshare社製 7inch HDML LCD)。

このタッチパネルを利用して、大きいコマンドボタンを描画して、トグル動作でON,OFFを表現してその信号を出力に設定したGPIOピンに出力したいと思っているのですが、使いやすくて優しいGUI開発環境などをご教示頂きますよう、よろしくお願い致します。

GPIOの制御などのプログラムはラズパイではpythonを使うことが多いです。

ぜひよろしくお願い致します。

RaspbianなどのLinux系OSに特にこだわりがなければ、Windows 10 IoT Coreを使ってみるのも一つの方法だと思います。Windows 10のパソコンが別途必要になりますが、プログラムはWindows Universal Appとして動作するので、デスクトップ上でボタンの配置や、押した際などの挙動を確認をしてから、ラズパイでGPIOのリモートデバッグをするという作業ができるので、GUIメインであればアプリの開発の敷居は低いです。

ちなみにWindows 10 IoT CoreでもPythonによる開発はできますが、スクリプト言語という仕様上、GPIOの処理はやや遅い傾向があります。一方で、C++は高速だけどマイクロソフトの独自仕様が絡んでプログラムの難易度がかなり高いので、学習する余裕があればC#でプログラムを組むことのがベストでしょう。

STEP5Pythonを手軽に学ぶための環境づくり

Pythonを手軽に学ぶための環境づくり

プログラミング言語として比較的簡単に習得できるというので、Pythonの学習本を買いました。
VBAのようにさらっと立ち上げてプログラムを始めるというわけにはいかないので、結局全然手をつけていません。(プログラムの経験はVBAくらいです)

どうしたら学習環境を構築できるでしょうか?候補としては
1.Raspberry Pi(所有しています)
2.Windowsで使えるようにセットアップ
3.LinuxをVMWareかなにかでインストールしてそこからPython

すぐ立ち上げてすぐ終了でき、できれば会社のPCと自宅のPCで同じ環境が構築できればなお素晴らしい。あとSublime Textなるツールもあるそうで使ってみたいのです。できればWindowsでできないでしょうか?

いまさらですが、C#にすればよかったかなとも思っています。無料のVSがあるので。でもほぼ初心者日曜プログラマとしてはC#は習得が大変かなと思ったのでPythonの本を購入しました。

2番のラインで考えても、2.7系列なら

https://www.python.org/downloads/release/python-2711/

から「Windows x86」って書かれたインストーラをダウンロード(上が64ビット版、下が32ビット版)、あるいは3.5系列なら

https://www.python.org/downloads/release/python-351/

から同様に「Windows x86」から「executable」と書かれたインストーラをダウンロード(他はWeb版とか組み込み用とか特殊用途)して、あとはインストーラをダブルクリック、指示に従ってインストールしていけばいいだけ、です。
あとは終了、ですね。

Pythonは本体に「IDLE」と言う開発環境も付いてきますし、まあ、要するにVBと基本的には変わりません。Ready to Rockになっています。

> あとSublime Textなるツールもあるそうで使ってみたいのです

これはテキストエディタ(Windowsで言うとメモ帳みたいなモノ)ですね。基本的に有償ツールです。

Sublime Text:
https://www.sublimetext.com

解説は次のページで。

今日から使える!Sublime Textの使い方【初心者向け】:
http://techacademy.jp/magazine/3060

ただ、基本的にはMacの方で人気あるブツですし、取り敢えず「Pythonを動かす」だけならPython付属のIDLEで充分だと思います(スタートメニューからPythonを辿って、中にIDLEがあります)。

画像: IDLE
左手がテキストエディタ部分、右手が実行部分として撮影。
テキストエディタにコードを書いて、プルダウンの[Run]から[Run Module]を選ぶ、または[F5]キーを押せば実行されて、右手に実行結果が表示される。

このユーザなら私の疑問や悩みを解決してくれそうと思ったら、
質問への回答をリクエストすることができます。

関連するタグ

特集


感謝でトクする時代へ!感謝経済に参加しよう!

ピックアップ

ページ先頭へ