2021年12月17日
プログラミング
ラズパイでオリジナルPCをつくろう!〜メリーゴーランド編〜


はじめに
この記事は新しい技術にチャレンジし続けるpalanのアドベントカレンダーDay17の記事です!
昨日は「nodeのバージョン管理ツールnの紹介」についての記事でした。
今日はラズパイでオリジナルPCをつくろう!〜メリーゴーランド編〜という記事を書いていきます。
突然ですがみなさん、こんな悩みありませんか?
「ノートPCを持ち歩くのって重くて結構しんどいんだよなぁ…」
「おしゃれな小さいカバンに入る、コンパクトで軽いPCが欲しい…」
ノートPCって案外重くて1日持ち運ぶと疲れてしまいますよね。
また、おしゃれした日は身軽な小さいカバンを持ちたくても、PCのことを考えると結局大きいカバンを選んでしまうなんてことも。
そんなお悩みを持つ皆さん。
大丈夫です。
小さなPCを作ればいいんです。
ということで今日はメリーゴーランド型(?)の小さなPCを作ろうと思います。
CAUTION
※当記事でご紹介する内容は長期間の動作に耐えうる保証のないものです。あくまでも読み物としてお楽しみください。
0. 使うもの
今回の記事で使う主な材料はこちら。
材料
- メリーゴーランド 1個
- Raspberry pi 1個
- micro SDカード 1個
- HDMI接続できる液晶 1個
- モーター 1個
- マウス、キーボード 各1個
- ジャンプワイヤー、くぎ、ネジなど 適宜
- 工具 適宜
メリーゴーランド
まずは主役となるメリーゴーランドを用意します。
今回はこちらのフライングタイガーで販売されていたメリーゴーランドのオルゴールを使おうと思います。
片手で持てるくらいのサイズ感で、主にプラスチック製なのでとっても軽いです。
残念ながらもう販売されていないようですが、タイミングが合えばメルカリなどでゲットできます。
もちろん同じものでなくても、メリーゴーランドならなんでもいいです。
Raspberry pi & micro SDカード
コンピューターにはRaspberry pi(以下ラズパイ)を使います。
OSを入れるmicro SDカードも一緒に用意します。
最新のラズパイ4Bなどがスペック的に好ましいですが、2021年現在コロナの影響による半導体不足でびっくりするほどラズパイが手に入らないので、今回は手元にあるラズパイZero Wを使用します。
コンパクトなPCを目指すためBluetooth対応のラズパイがいいと思います。
HDMI接続できる液晶
液晶には今回こちらの「OSOYOO HDMI 3.5インチLCDディスプレイ」を購入しました。
3.5インチという手のひらサイズで、専用ドライバをインストールすればタッチ操作もできます。
※今回は専用ドライバーを入れずに進めています
また、こちらの商品はGPIO接続とHDMI接続どちらもできます。
GPIO接続のみの液晶でもいいのですが、GPIO側で遊ぶこともできるように今回はHDMI接続もできる液晶を購入しました。
正直かなり小さい液晶ですので、個人的な感想としては文字を読んだりの作業には向かない印象でした。(本末転倒ですが)
画像や動画を確認するような用途にはいいかもしれません。
(上の写真では画面の端に黒枠ができていますが、これは解像度を変更することで調整できます)
裏側はこんな感じ。
ちなみにHDMI接続する時は、別途GPIO経由でラズパイから電源を持ってくるかマイクロUSBで独自に電源を持ってくる必要がありますのでご注意ください。
つまりどうしてもGPIOを空けておきたい場合は、ラズパイと液晶の二つの電源をマイクロUSBでそれぞれ供給する必要があるということです。
すでに外で使うPCには不向きな仕様となってきました。
モーター
今回はメリーゴーランドですし…モーターも用意しました。
連続回転が可能なモーターが欲しいなと思って「FEETECH 連続回転サーボ FS5106R」を購入しました。
その他 材料
その他はモーターとラズパイを接続するジャンプワイヤーや、メリーゴーランドのパーツに合うネジなどを適宜用意しました。この辺は臨機応変に。
今回、フライングタイガーの商品を使ったということでメリーゴーランドに一部インチネジが使われていたのですが、秋葉原の西川電子部品さんで調達できました。
こちらに行けばネジはなんでも揃う気がします。
あと穴あける系の作業が多いので電動ドリルがあると便利です。
1. 構想を固める
メリーゴーランドのPCを作ろうと思った時、まずはどんなPCにするかの構想を固める必要があります。
自分はどんなメリーゴーランドを作ることができるだろうか…
どんな夢の世界を作ることができるだろか…
そう自分自身の心に問いかけて、作りたい姿を探ってください。
アイデアスケッチとかを描くと良いかもしれません。
▲実際に作る前に描いたアイデアスケッチ
まぁこれくらい適当でもなんとかなる。
2. ラズパイのセットアップ
ラズパイのセットアップをしておきましょう。
ラズパイのセットアップは公式ドキュメントや日本語記事もいっぱいありますのでここでは詳しくご紹介しません。
基本的にはこちらの公式ドキュメントに従って
Raspberry Pi Imagerを母艦のPCにインストールし、このImagerを使ってSDカードにOSをインストールします。
OSのインストールができたら、SDカードをラズパイに挿し電源・液晶に繋げば起動するかと思います。
3. 分解
ラズパイの準備ができたら、次はメリーゴーランドを解体してPCへと改造できるようにします。
何度見ても可愛いメリーゴーランドですね。
まず馬たちの支柱を引っこ抜き
馬を追い出します。
きれいに分解できました。
シンプルな作りのおもちゃは案外簡単に分解・組み立てができるので、恐れずにとにかく分解していきます。
このメリーゴーランドは元々オルゴールなので、土台部分にはオルゴール部品が入っていました。
今回はここをモーターに付け替えて、馬を回せる楽しいPCにしようと思います。
4. モーター駆動
メリーゴーランドを回すためのモーターの制御をしていきます。
今回は先述のように連続回転ができるサーボモーターを使うことにしましたが、最初の試作段階では小さめのステッピングモーター(28BYJ-48)で試していました。
このステッピングモーターで回した感じ
思ったよりメリーゴーランドを回すのは高負荷だったようで、これだとパワーが足りず脱調してしまいました。
そこで新たに揃えたのが FS5106R サーボモーター です。
赤の線を5V電源、黒の線をGND、白の線をGPIO4に繋ぎます。
pythonのコードは以下の記事を参考にさせていただき、pigpioというライブラリを使った制御をしていきます。
参考: Raspberry Piに360度回転するサーボモーターを取り付けて移動できるようにする
import pigpio
import sys
servo = 4
pi = pigpio.pi()
while True:
try:
pi.set_servo_pulsewidth(servo, 1000)
except KeyboardInterrupt:
pi.set_servo_pulsewidth(servo, 0)
pi.stop()
sys.exit()
回してみた結果はこちら
面白くなってきました。
5. 組み立て
モーターを土台部分にセットしていきます。
支柱とサーボホーン、底面とモーターをそれぞれタミヤのユニバーサルアームでよしなに固定し、ちょうど良い高さになるようにスペーサーを使って間を繋ぎます。
でかいモーターを使ったため土台の高さをだいぶはみ出てしまいました。まぁそんなこともある。
次は馬たちも組み立て直していきます。
今回、液晶のサイズがメリーゴーランドぎりぎりで馬を設置する場所が限られるため、元々の【木の棒で固定】から【紐で天井から吊るす】ように変更しようと思います。
紐へ付け替えるにあたって、100均のビーズや紐でアレンジしてみましょう。
可愛くて良い感じです。
液晶にひっかかると回転がうまくいかないので、馬は泣く泣く屋根の外側に取り付けることにしました。
最後に液晶を設置します。
液晶の固定は面積の都合上、スペーサーに引っ掛ける感じにしました。
今回はとにかく液晶周りをコンパクトにしないと馬が引っかかってしまうため、コンパクトなケーブルを血眼で探し回ったのですが、結果的に以下の製品で落ち着きました。
hdmiメス→ミニhdmiオス ケーブル
液晶に付属しているU字のオスオスコネクタと併用。
マイクロusbオス→usb2.0オス ケーブル
amazonのレビュー見ると不良も多いようなので注意。自分は一回の購入でちゃんと使えるものが届きました
外で使用できるようにモバイルバッテリーも購入しました。
今回の場合、二口同時に電源供給ができるものが良さそうです。
さて準備は整いました!
6. 完成!
ついに完成です!
小さいカバンにも入る!!
トールサイズ!!(?)
そして回る!!
ここまで見せる気のない液晶もなかなかないですね。
ちなみにモーター音がまぁまぁデカイので、外で使うと迷惑です。
まとめ
今回はラズパイを使ったオリジナルPCを作ってみました。
みなさんも年末年始のお休みを使って、家にあるメリーゴーランドをPCに改造してみてはいかがでしょうか!
プログラミングのお仕事に関するご相談
Bageleeの運営会社、palanではプログラミングに関するお仕事のご相談を無料で承っております。
zoomなどのオンラインミーティング、お電話、貴社への訪問、いずれも可能です。
ぜひお気軽にご相談ください。
この記事は
参考になりましたか?
5
0
関連記事
簡単に自分で作れるWebAR
「palanAR」はオンラインで簡単に作れるWebAR作成ツールです。WebARとはアプリを使用せずに、Webサイト上でARを体験できる新しい技術です。
palanARへ
palanでは一緒に働く仲間を募集しています
正社員や業務委託、アルバイトやインターンなど雇用形態にこだわらず、
ベテランの方から業界未経験の方まで様々なかたのお力をお借りしたいと考えております。
運営メンバー

Eishi Saito 総務
SIerやスタートアップ、フリーランスを経て2016年11月にpalan(旧eishis)を設立。 マーケター・ディレクター・エンジニアなど何でも屋。 COBOLからReactまで色んなことやります。
sasakki デザイナー
アメリカの大学を卒業後、日本、シンガポールでデザイナーとして活動。

やまかわたかし デザイナー
フロントエンドデザイナー。デザインからHTML / CSS、JSの実装を担当しています。最近はReactやReact Nativeをよく触っています。
Sayaka Osanai デザイナー
Sketchだいすきプロダクトデザイナー。シンプルだけどちょっとかわいいデザインが得意。 好きな食べものは生ハムとお寿司とカレーです。

はらた エンジニア
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

こぼり ともろう エンジニア
サーバーサイドエンジニア。SIerを経て2019年7月に入社。日々学習しながらRuby on Railsを使った開発を行っています。

ささい エンジニア
フロントエンドエンジニア WebGLとReactが強みと言えるように頑張ってます。

Damien
WebAR/VRの企画・開発をやっています。森に住んでいます。

ゲスト bagelee

かっきー

まりな

suzuki
miyagi

ogawa
雑食デザイナー。UI/UXデザインやコーディング、時々フロントエンドやってます。最近はARも。

いわもと
デザイナーをしています。 好きな食べ物はラーメンです。

taishi kobari
フロントエンドの開発を主に担当してます。Blitz.js好きです。

kubota shogo
サーバーサイドエンジニア。Ruby on Railsを使った開発を行いつつ月500kmほど走っています!
nishi tomoya

aihara
グラフィックデザイナーから、フロントエンドエンジニアになりました。最近はWebAR/VRの開発や、Blender、Unityを触っています。モノづくりとワンコが好きです。
nagao
SIerを経てアプリのエンジニアに。xR業界に興味があり、unityを使って開発をしたりしています。

Kainuma
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

sugimoto
asama
ando
iwasawa ayane

oshimo
異業界からやってきたデザイナー。 palanARのUIをメインに担当してます。 これからたくさん吸収していきます!