株式会社インデペンデンスシステムズ横浜

システム開発エンジニアの西田五郎が運営しております。Raspberry Pi や Arduino その他新規開発案件のご依頼をお待ちしております。

Raspberry PiやArduinoでのソリューション提供について

いつもお世話になっております。株式会社インデペンデンスシステムズ横浜の西田五郎です。

このページではRaspberry PiやArduinoでのソリューションのご提供についてご説明、ご提案をします。Raspberry PiやArduinoとは何かから始めて、Raspberry PiやArduinoで何が出来るのか、ソリューション提供として具体的には何が出来るのかといった内容についてです。

また、株式会社インデペンデンスシステムズ横浜の西田五郎の自己紹介や近況等ご報告したいと思います。よろしくお願いします。
(最終更新日 2021年9月8日)

Raspberry Piについて

Raspberry Piとは

Raspberry Piとはイギリスのラズベリーパイ財団によって教育目的で開発されてきたシングルボードコンピュータです。シングルボードコンピュータとはパソコンやサーバといったコンピューターの分類の一つで、文字通りシングルボード(一枚の基板上)に構成された比較的小型のコンピュータです。Raspberry Piの仕様はオープン(オープンソースハードウェア)となっています。

以下はRaspberry Pi4 Model Bです。

WikipediaのRaspberry Piのページによると初代は2012年2月15日の発売となっています。私の場合は何かの展示会で見かけて購入しようと思いましたが注目する人が多かったのか実際に購入出来て手元に届くまでかなり時間がかかったと記憶しています。

パソコンと同様に以下のような構成でモニター、マウス、キーボード等の周辺機器を接続することが出来て、パソコンと同じように利用することが出来ます。(※マウスと比較するとRasoberry Pi自体の大きさも想像していただけると思います。またこのモニターは7インチです。)

なぜRaspberry Piなのか

それでは、なぜこのRaspberry Piを教育用途以外でも活用しようとしているのかということですが、仕様がオープンであり、ソフトウェア関連も含めたオープンソースの文化が利用出来るということがあります。また元々教育用の想定なので本体自体は比較的低価格という理由もあります。

ですが、それらにもまして大きな理由はRaspberry Piが圧倒的に普及しているからです。WikipediaのRaspberry Piのページによると売上台数は累計3,700万台(2021年1月21日時点)となっています。

圧倒的に普及しているとはどういうことかというと圧倒的に情報量が多いということです。実際に私も実務では世界的に公開されている情報を元に作業を進めていて、自分でも微力ながら実務的な情報を発信しています。

また圧倒的に普及しているということは新規開発やサポートも継続されており、OSもアップグレードされ使いやすくなっているということです。

Raspberry Piでの産業用途利用の課題と解決方法

それでは、普及しているからといってもRaspberry Piは元々の目的は教育用途です。産業用途利用では課題もあります。まず、ここでは「産業用途利用」という表現を使っていますが、幅広い分野の小規模からの実務稼働での利用です。この実務稼働での課題です。

電源操作の問題

Raspberry Pi本体には電源スイッチがありません。そのため基本的な使い方としては、電源操作はUSBケーブルの抜き差しです。これでは、少なくともシャットダウン処理が出来ませんので不安定な状態で電源のみ切断することになります。

解決方法
やはりこういった解決にはオープンソースの仕様が役立つのですが、別途いろいろなアドオンを用意することが可能です。電源操作のアドオンを用意して安全な電源操作を可能にします。

以下は株式会社NEKORISUさんのRas p-Onという製品を重ねた状態です。この製品はRTC(リアルタイムクロック)も搭載されていて電源を切っても現在時刻が保持されます。そのためボタン電池も搭載されています。

他にも全世界的に同様の製品が開発されています。これらを利用すればこの電源操作の問題は解決可能です。

SDカードの耐久性問題

Raspberry PiはSDカードからOSを起動します。そのためSDカードに問題が生じるとOSそのものが起動しなくなり、全体的に機能しなくなります。私も実際にRaspberry Piを再起動したら起動しなくてどうもSDカードに不具合が生じたと考えられる場合もありました。一方で半年とか1年という期間で稼働させていても不具合なく稼働した実績もあります。つまり、どうしてもSDカードでの運用には不安があるということです。

解決方法
高耐久性や産業用といった種類のSDカードを使用する。
SDカードにも種類というか「書き込み方式」があります。SLC方式という種類が最も耐久性が高く高耐久性、産業用とされています。

USB起動にする。
SDカードからの起動ではなくUSB起動(USB接続のHDDやSSDドライブ)にする。
別途HDDやSSDドライブを用意してそのドライブから起動する方法があります。

Raspberry Pi Compute Moduleを検討する。
Raspberry Piには始めから産業用途利用を想定したRaspberry Pi Compute Moduleもあります。こちらはSDカード起動ではありません。

コストの問題

ここまでの問題を解決すれば結局はコストがかかり、Raspberry Piを利用するメリットはなくなるのではと考えられます。

解決方法
これに特別な解決方法はありません。Raspberry Piを利用しないで他のメーカー製の産業用専用コンピュータを利用するのか、パソコンやサーバを利用するのか、広範囲に検討するしかないと思います。

全体的な責任問題

これは技術的な問題ではないです。どういうことかというとRaspberry Piは元々教育用であり、産業用途で利用してどういった保証があり、問題があった場合に誰が責任を取るのかということです。

解決方法
もし、障害が発生した場合に多大な責任を負う可能性がある場合はもちろん他の選択肢を検討した方がいいです。Raspberry Piを利用するのであれば、そのメリットとこういった責任問題を事前に十分に合意してから進める必要があります。

これはオープンソース文化との距離感をどう捉えて「自己責任」も含めた範囲でどう対応出来るかを検討するかだと思います。

低コストで短期間での実稼働開始(オープンソース利用)を取るか、100%近い保証があるとしても高コストで実稼働まで長期間を要する(メーカー製、メーカー保証)という選択肢を取るかです。

Raspberry Piでのソリューション

ソリューションという表現を使いましたが、ここまでの内容も踏まえてRaspberry Piで何が出来るのかということです。ここでは私がある程度の知識や実績がある内容が中心です。

センサーネットワーク(IoT)関連

Raspberry Piをゲートウェイとしたセンサーネットワークの構築です。以下はテスト・デモ用ですが環境モニタのシステムです。温度、湿度、気圧、照度をモニタしています。

クラウド側は以下です。ここではAmbient様を利用しています。

もちろん他のクラウドや独自開発でのサーバーアプリケーションとの連携も可能です。IoT関連においてはRaspberry Piでの活用領域は幅広いと思います。

GUIアプリケーション

GUIを利用したアプリケーションです。以下では画像を表示していますが、デジタルサイネージをイメージしました。オリジナルのアプリケーションでクラウド連携、スケジュール制御等の独自の動作が可能です。独自の動作で効果的に情報を表示することが可能です。

以下はリレーをコントロールするためのデモ用アプリです。Raspberry PiにはGPIOが実装されているので機器制御も得意分野です。

遠隔監視・遠隔操作系システム

カメラと連携した遠隔監視や遠隔操作のシステムです。
以下は、Raspberry PiとWebカメラ、モータードライバ、タミヤの部品等で製作したリモコンカーです。

カメラの映像がネットワークを経由して以下のようにブラウザでモニター出来ます。

こういった遠隔監視・遠隔操作系システムの構築であればSkyWayがいろいろと応用出来ると考えています。このSkyWayを利用することにより、リアルタイムコミュニケーションの技術である「WebRTC」を自前のサーバを構築する必要がなく利用出来ます。

もちろん、Raspberry PiでもSkyWayが利用出来ますので、各種カメラ連携やGPIO(リレー)連携で遠隔監視・遠隔操作系のシステムを構築することが可能となります。

独自のサーバーとして

Raspberry Piに別途大容量のストレージを接続すれば独自のサーバーとして運用が可能です。以下は株式会社ビズライト・テクノロジー様のBH3です。Raspberry Piを産業用途に現場導入する上で必要な対策が取られています。つまりこういったRaspberry Piの状態であれば常時稼働のサーバーとしても運用可能ではないかということです。

ハードウェアとしてのサーバーとしてはもちろんのことアプリケーションサーバーとしても運用が可能です。Linux系のオープンソースの資産が利用可能です。

それでは、どのようにしてサーバーとして稼働出来るようにインターネット上に公開するかということですが、例えばですが、remote.itというサービスがあり安全にRaspberry Piを公開することが出来ます。

その他の用途

パソコンの代替として
簡単な用途のパソコンとしても利用出来ます。特定のアプリケーション専用として稼働させればパソコンよりコストがかからないと思います。

教育用コンピュータとして
忘れてはいけないといいますか、本来のRaspberry Piの目的です。コンピュータサイエンスだけではなく、STEM、STEAMという範囲での教育用に有効です。

その他先端技術関連
私自身ではまだまだの分野ではありますが、以下の分野でもRaspberry Piは有効活用出来ると思います。今後調査、試行錯誤の上、実績を挙げていきたいと考えています。
エッジAIシステム
ROS(ロボット関連)
— 等々

(以下は幅広い応用範囲のイメージです。)

Arduinoについて

Arduinoとは

ここからはArduinoについてです。

Arduinoは2005年からイタリアで開発が始まったワンボードマイコンに分類されるコンピュータです。ワンボードマイコンとはRaspberry Piのシングルボードコンピュータよりももっと簡単な構成のコンピュータです。分類に関してはそれ程厳密なものではなく単に「マイコン」や「マイコンボード」と呼んでいたりもします。

開発された目的は専門家ではなくても、より簡単にハードウェアのプロトタイピング(試作)から開発が出来るようにということです。

発音に関しては私はカタカナでは「アルドゥイーノ」という発音で呼んでいます。これが多いと思いますが、「アルデュイーノ」または「アルディーノ」に近い呼び方をされる方もいらっしゃいます。あまり厳密に考えなくてもいいと思っています。

以下は代表的なモデルの一つのArduino UNOです。

Arduinoの特徴としては、Raspberry Piと同様に仕様はオープン(オープンソースハードウェア)となっています。また通常はArduinoというとArduino互換機や派生プロジェクトも含めたハードウェアを指し示しますが、広義には開発環境やコミュニティも含めてArduinoと表現することもあります。それぐらい一つの「文化」となっていると思います。

なぜArduinoなのか

それでは、なぜこのArduinoを積極的に活用しようとしているのかということですが、Raspberry Piと同様に圧倒的に普及しているからです。圧倒的に普及しているということは情報量が多いということです。

また、Arduinoの標準の開発環境はArduino IDEといいますが、これもオープンな仕様のため、Arduino互換機や派生プロジェクトでの開発もこのArduino IDEを利用して開発することが出来ます。また世界中のハードウェアメーカーが自社の製品をArduinoで利用出来るようにArduino向けのライブラリを公開しています。

つまり、世界中の様々なハードウェアをArduinoという考え方で利用出来るということです。

以下はArduino IDEの画面の例です。

以下では非接触温度センサーの実験をしています。

またここでRaspberry Piと同様のそれでは問題があった場合に誰が責任を取るのかということですがこれもRaspberry Piと同様です。オープンソース文化(Arduinoの文化)との距離感をどう捉えるかだと思います。

Raspberry Piと何が違うのか

ここで出てくる疑問としては、Raspberry Piとは何が違うのか、どちらかを使えばそれでいいのかということです。結論としてはどちらかだけ使えばいいということではなく、特徴を理解して使い分けたり、協調させたりすればいいです。以下から一般的な利用方法で比較します。

OSが稼働するかどうか

Raspberry Pi はOSが稼働するが、ArduinoはOSは稼働しない。これが大きな違いです。

Raspberry PiはOSが稼働してパソコンと同じような使い方が出来ます。ArduinoはOSは稼働しないで単独のプログラム(Arduinoではスケッチといいます。)が実行されます。これはどっちが優位かということではなく以下の役割に基づいてものです。

それぞの得意な役割


OSが稼働するので各種周辺機器も利用可能
ネットワークも標準で利用可能
アプリケーションの並列稼働可能
GPIOでハードウェアの制御も可能
(OSのセットアップや様々なバージョン管理が必要)


開発環境(Arduino IDE)からすぐに使える
電気信号の処理、制御がメイン
つまり、ハードウェアのコントロールが得意

Arduinoでのソリューション

Raspberry Piと同様にここまでの内容も踏まえてArduinoで何が出来るのかということです。ここでは私がある程度の知識や実績がある内容が中心です。私はソフトウェア系のエンジニアですのでハードウェア開発そのものよりアプリケーション連携の分野が得意です。

プロトタイピング(試作)

そうはいってもやはりこれがArduinoの本筋です。センサーや駆動系を接続、連携して期待している結果を得られるかどうかの実験にはArduinoは適しています。既に公開されているライブラリがあればプロトタイピングも短期間で結果が出せます。

こういったプロトタイピング時の実験結果をパソコンを取り込んで解析するためのパソコン側のWindowsアプリケーション開発も可能です。

以下はArduino UNOに超音波距離センサーを接続した実験です。

Raspberry Piとの連携

Raspberry PiとArduinoを連携すれば、例えばですが、Raspberry Piを経由してネットワークからのハードウェアの遠隔操作を行い、その様子をRaspberry Piに接続したカメラでのモニタリングするといった連携も可能です。

以下、Raspberry PiとArduino UNOをUSB接続しました。

Raspberry PiでArduinoからのテストデータを受信しています。

Androidスマートフォンとの連携

ArduinoとAndroidスマートフォンとの連携も可能です。Androidスマートフォンアプリとクラウド連携やハードウェア制御も可能です。

以下はArduino MEGAとAndroidスマートフォンを接続したデータ通信のテストです。

教育用コンピュータとして

ArduinoもRaspberry Piと同様に教育用としても大変普及しています。プログラミングの初心者にはArduino IDEでのプログラミングの前に、Scratchのようなビジュアルでのプログラミングでの学習が普及しています。
Scratchでは以下のようにプログラムを書きます。(リストの操作の例です。)

その他のワンボードマイコンについて

その他のワンボードマイコンとしましたが、Arduino IDEでArduinoと同様の開発方法で開発出来る特徴あるワンボードマイコンが様々開発されています。その中でここではM5Stackシリーズだけですが、取り上げたいと思います。

M5Stackシリーズ

M5Stackシリーズは中国・深センのM5Stack社が開発、発売しているマイコンモジュールです。ワンボードマイコンという表現よりマイコンモジュールや開発モジュールという表現の方が適切だと思います。

M5Stackシリーズは様々な種類が発売されておりますが、LCD、バッテリー内蔵でスイッチ類も実装されているモデルが多くあり、これに別のハードウェアを接続してすぐにプロトタイピングが可能になる優れた製品だと思います。

電源は入っていませんが、以下のような製品です。

以下は人感センサーの実験の様子です。

このような開発がArduinoと同様にArduino IDEで開発可能です。私のようなソフトウェアエンジニアとしてはM5Stackシリーズを利用するとプログラム開発に集中出来ます。

株式会社インデペンデンスシステムズ横浜 西田五郎について

ここからは私、株式会社インデペンデンスシステムズ横浜 西田五郎についてです。

自己紹介(PR)・略歴


(2021年5月15日作成動画です。音声が出ますが、画面下のコントロールバーを非表示にすると字幕も表示されます。)

1965年:大阪府出身
1989年:愛知工業大学 工学部 経営工学科卒業(経営工学科は当時の学科名)
1989年:システム開発会社就職
(別の企業へ転職後も含めて合計6年間程、正社員として開発の仕事に従事
その後は契約社員、個人事業で開発の仕事に従事)
2002年:合資会社インデペンデンスシステムズ横浜設立
2007年:株式会社インデペンデンスシステムズ横浜へ組織変更

株式会社インデペンデンスシステムズ横浜はもちろん今も継続中です。特に社員は私のみで、必要がある場合は同業者のエンジニアやWebデザイナの方々に依頼して対応して来ました。

開発実績

開発実績に関しては幅広いプラットフォームやOSで幅広い分野の開発を行ってきました。プログラミング言語に関しても複数の主要な言語での実績があります。Raspberry Piでは実務ではPythonを利用しています。

直近ではやはりここまでご説明してきたRaspberry PiやArduinoでの開発やRaspberry PiやArduinoとWindowsアプリケーションやクラウド連携の開発が中心でした。その他ロボット系、機械制御系から、明確なAI分野ではありませんが大量のデータ解析やデータ分析の計算処理のプログラミング実績もあります。この分野はAIにつなげていきたいと思っています。

その他、それ以前からの顧客の社内業務システム開発やサーバメンテナンスなど出来る範囲でいろいろとやってきました。

もしですが、詳細の開発経歴書を確認したいという場合はご連絡頂ければ最新の状態で提出します。

お仕事のご依頼について

2021年9月の稼働状況ですが、小規模の開発や技術的なサポート等は対応可能です。お問い合わせ下さい。

比較的余裕のある状態ですので以下のような広範囲な依頼に対応可能だと思います。

月単位でのフルタイムでの稼働(勤務型・リモート型)
Raspberry PiやArduinoで簡単な試作をしてみたい
(簡単な回路も組み立てられます)
Raspberry PiやArduinoの使い方を教えて欲しい
(個人の方の勉強や趣味的なご依頼も含めて)
分野に関係なく広範囲のシステム開発関連
新人教育関連のお手伝い(サブ講師の実績はあります。)
— 等々です。

正式に受注するまでのご相談は無料です。まずは内容をお伺いします。どういった対応が可能がご説明させていただければと思います。

ご依頼は以下からお願いします。
お問い合わせフォーム(共有SSL)はこちらから

またはこのサイト右下のヘルプアイコンからのコンタクト(時間によってはチャット画面になっています。)もご利用下さい。

以上、よろしくお願いいたします。

特定商取引法に基づく表示はこちらから

投稿日:2021年5月7日 更新日:

執筆者: