豆腐とコンソメ

読者です 読者をやめる 読者になる 読者になる

豆腐とコンソメ

幸せと、主にラズパイとpythonについて書きます。

Pythonでキーイベントを取得したかったけどできなかった話←できました。

tohutokonsome.hatenablog.com

以前、ラジコンのコントローラーをつくった記事を書きました。

その中で、キーボードから入力した値をもとに操作する機能は、以下の機能を参考にさせていただきました。

qiita.com

ただ、特定キーを押している状態、特定キーを離した状態というイベントを検出できると、よりコントローラぽくなるので、そんなことができる素敵なpythonモジュールがないかを探してました。

その中で、一番よさそうなpythonモジュールを見つけました。
が、想定通りの動作ができていないです。
解決策が見つけたら書くぞ!という意気込みを兼ねて、一旦記事に起こします。

pynput

キーボードやマウスを制御したり、入力内容の監視がシンプルにできるみたい。
キーロガーとかで使ったりするのかしら。
pypi.python.org

実行環境とインストー

(raspberry_3.5.1) masao-3:keyboard konoe_mario$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.10.5
BuildVersion:   14F1713

(raspberry_3.5.1) masao-3:keyboard konoe_mario$ pyenv versions
  system
  3.5.1
  3.5.1/envs/raspberry_3.5.1
  3.5.2
  pypy3-2.4.0
* raspberry_3.5.1 (set by /Users/konoe_mario/.pyenv/version)

(raspberry_3.5.1) masao-3:keyboard konoe_mario$ sudo pip install pynput

サンプルコード

公式サイトの入力内容の監視を行うmサンプルコードをそのまま使用。
キー入力をlistenerがキャッチしてくれて、キー入力が行われると、on_pressに設定した関数を呼んで、キーが離されるとon_releaseに設定した関数が呼ばれる。

from pynput.keyboard import Key, Listener

def print_something():
'''
デバック用
'''
    print('hi tohu!')

def on_press(key):
    #この関数が呼ばれているかどうかチェックするための処理
    print_something()

    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
            key))


def on_release(key):
    print('{0} released'.format(key))

    if key == Key.esc:
        # Stop listener
        return False

if __name__ == '__main__':

    with Listener(
        on_press = on_press,
        on_release= on_release
    ) as listener:
        listener.join()

動かない

上記サンプルコードを、ターミナルで実行すると、「Command」「Shift」「Control」「option」などの入力は検知するのだけれども、通常の英数字のキー入力は検知してくれていない。

StackOverFlowにすごくそれっぽい質問もあがってたのだけれども、どうも原因が違うのではないかと思う。

stackoverflow.com

そもそもon_press関数内のprint関数が英数字の場合は呼ばれていない。

(raspberry_3.5.1) masao-3:keyboard konoe_mario$ python pynput_sample.py 

(raspberry_3.5.1) masao-3:keyboard konoe_mario$ python pynput_sample.py 
##キー入力を検知すると、on_press内の「hi tohu」が出力される
hi tohu!
special key Key.cmd pressed
Key.cmd released
hi tohu!
special key Key.alt pressed
Key.alt released
hi tohu!
special key Key.shift pressed
Key.shift released
hi tohu!
special key Key.ctrl pressed
Key.ctrl released

##こっから下は英数字の入力を行ったところ
1111
111
ugokanai
^[^[^[
^[[A

英数字の場合、コンソールに普通に入力できてしまうので、スペシャルキーとは挙動が違うのかもしれない。
ただ、StackOverFlowの質問を見る限り、特になんの制御もなくできてるっぽいんですよね。。。

sudoが足りなかった

sudo実行で普通にできました。Kさん、ありがとうございました。

(raspberry_3.5.1) masao-3:keyboard konoe_mario$ sudo python pynput_sample.py 
Password:
hi tohu!
alphanumeric key None pressed
a<0> released
hi tohu!
alphanumeric key None pressed
s<1> released
hi tohu!
alphanumeric key None pressed
d<2> released
hi tohu!
alphanumeric key None pressed
f<3> released

その他候補

すっごい適当だけれども、pynput以外に試したものを、メモがてらに記載しています。

msvrct

Windowsでしか動かないので、採用しなかった。

keyboard

ホットキーの設定をしたり、キーイベントの監視をしたりいろいろとできそうだった。

pypi.python.org

が実行するとOSErrorになる。

OSError: [Errno 45] Operation not supported: '/dev/uinput'

公式をよく読んでみると、ちゃんと書いてありました。
「Hook and simulate keyboard events on Windows and Linux

Pygame

pythonのゲーム開発向けのモジュール。
導入するだけしてみたけれども、今回やりたいことだけにしては、大掛かりな印象を持った。
GUI画面を用いてコントローラーにするのには、いいのかもしれない。
でも、python3.5.1では、キー入力のイベント検知が動かなかった。

PySDL2

Pygameの後継らしい。
こっちではpython3.5.1でもキー入力イベントを検知することができた。

RaspBerryPiでラジコンをつくる(8):コントローラをつくる

tohutokonsome.hatenablog.com

とりあえず簡単なコントローラーができたので、日記がてら書きます!

ここでは、初歩的にPCのコンソール画面からキーボードで操作することを目標にやってみます。

全体図は以下になります。
f:id:konoemario:20170515231731j:plain:w500

コントローラ部分

キーボードから入力した値を、socket通信でRaspBerryPiZeroに連携します。
具体的には、以下の制御で動かそうと思います。

  • W:前進
  • S:後退
  • A:タイヤの向きを左に
  • D:タイヤの向きを右に

キーボード入力の値は、input関数なんかは

①キー入力
②Enter

という操作をしないといけなくて、煩わしいので以下の記事を参考(というかそのまま)にさせていただきました。
「termios」というpythonモジュールを使用することで、Enterを押さずして、1文字ずつ値を取得できます。

取得した文字は、取得するたびにsocket通信でRaspBerryPiに送信します。

※参考にさせていただいた記事
Pythonでキー入力を検出する(Enter無しで) - Qiita
Pythonによる通信処理 - Qiita

実際のコントローラーの制御は、以下の通りです。

legocarの制御(コントローラー)

そもそも、PC側にコントローラーを用意しなくても、RaspBerryPiにSSHでログインして、直接操作することも、もちろんできるんだけれども、せっかくなのでsocketで通信することにした。

ちなみに接続方式は、アドホックで接続しています。
ラズパイをアドホック接続で使用する - 豆腐とコンソメ

余談というか後で改善するところ

「termios」によるキーボード入力を検知する方法もよいのだけでども、キーボードイベントをもっと手軽に取得したかった。
(特定のキーをおしっぱにしている状態を検知するとか)

参考にさせていただいたサイトにもあるんだけれども、「msvcrt」モジュールが、どうやらそれっぽい。
ただ、Windowsでしか動かないみたいなので実装は見送った。

これ以外にも、pythonのゲームライブラリである「PyGame」やその後継?の「PySDL2」なんかも試したが、とりあえず「termios」で落ちるついた。
これ以外にも、ホットキーを割り当てるいい感じのモジュールがありそうだったので、検証しだい別途まとめます。


受信部分

今度はRaspBerryPi側に置くコードです。

以下の機能ごとにモジュールを作成しました。

  • クライアントのsocketのデータを取得してレゴカーを制御する機能に値を渡す。
  • 受け取ったデータをもとにレゴカーを制御する。

実際のコードは以下の通りです。

クライアントからの命令を受信して、レゴカーに渡す

レゴカーの制御

受信部分に関しての課題

  • アクセルとハンドルが並列で処理できるようにする
  • socket通信をもう少ししっかり学ぶ

blog.amedama.jp

RaspBerryPiでラジコンをつくる(7):少し改善

前回、作成したレゴカーに少しだけ改善を行ったのでまとめます。

tohutokonsome.hatenablog.com

レゴの電池ボックスを使用する

今までは、単三電池*4の電池ボックスを使用していました。

f:id:konoemario:20170506195209j:plain:w500

しかし、手元にはレゴの電池ケースがあったので、こちらを使用してみることにしました。

f:id:konoemario:20170515214612j:plain:w500

これは、単三電池6本を格納することができるので、合計で9Vになります。

ただ、残念なことにこのレゴ電池ケースは、以下のようにレシーバにブロックで接続できる便利仕様となっています。

f:id:konoemario:20170515214833j:plain:w500

ラズパイに接続する際はブレッドボードで使いたいので、このままでは使うことができません。

もっといい方法があるかもしれませんが、ここでは思い切って、コードを切ってしまいました。

f:id:konoemario:20170515215242j:plain:w500

線は4本あるのですが、こちらの動画の1:35、およびQuitaの記載内容を信じて真ん中2本を使用しましたが、問題なく動いています。

www.youtube.com

qiita.com

最終的にはブレッドボートとこんな感じでセットにすることができました。

f:id:konoemario:20170515220935j:plain:w500

ラズパイZeroのケースをレゴに固定する

こちらは、定番ですが、フリスクのケースを買ってきて、プラスチックカッターで適当に切り抜きました。

f:id:konoemario:20170515215738j:plain:w500

100均のプラスチックカッターだと、結構な力を必要として手がいたくなったので、大きいものがあるとよさそうです。
ただ、あまり力をいれすぎてもケースが割れるということも起こります。

簡単なケースを作成したら、レゴに固定していきます。

ここでは、ネジを使って固定することにしました。

f:id:konoemario:20170515220038j:plain:w500

このネジを使ってフリスクにネジ穴をぐりぐりとあけます。

マイナスドライバーとドリルネジみないたものを使ってむりやりあけました。

その後、こんな感じで穴を通します。
これでラズパイZeroとフリスクのケースが固定されます。

f:id:konoemario:20170515220311j:plain:w500

ここからさらにレゴのブロックとネジについている付属の六角ナットとシャーシ?(っていうんですかね)を用いて、ネジを固定すると、いい感じにレゴブロックにくっつくけることができます。

f:id:konoemario:20170515220321j:plain:w500

フリスクのふたがものすごく雑ですが、こんな感じで取り付けてます。

f:id:konoemario:20170515220755j:plain:w500

改善後

少しだけすっきりしました。

f:id:konoemario:20170515221008j:plain:w500

次回は、コントローラーの作成を行います。

tohutokonsome.hatenablog.com

レゴMモーターがモータードライバーを使用した場合に回転しない(知恵袋用)

Yahoo知恵袋に質問する際に、状況説明がしづらいのでこちらに記載します。

状況

こちらのDCモーターと、モータードライバ(DRV8835)を使用しています。
DCモーター FA−130RA−2270L: パーツ一般 秋月電子通商 電子部品 ネット通販

DRV8835データシート
http://akizukidenshi.com/download/ds/akizuki/AE-DRV8835-Ss.pdf

以下の回路で接続しています。
f:id:konoemario:20170514125335p:plain:w500

このとき、このDCモーターは正常に回転します。

一方、正常に回転したDCモーターの代わりに、レゴのMモーターをまったく同じ回路で接続すると、ピーという音が聞こえるのみで回転しません。
試しに、回転方向に手動で力を加えて回してあげると、回転しはじめます。

※レゴのMモーター
レゴ パワーモーターM サイエンス&テクノロジー シリーズ用 8883 | レゴ サイエンス&テクノロジー EV3 | レゴ エデュケーション通販 SUZUMORI ショッピング

より正確に書きますと、レゴモーターは分解して、以下のようになっております。
f:id:konoemario:20170514131258j:plain:w500


尚、レゴモーター自体の動作確認は、以下のように電池と直接つないだ時に、正常に回転することを確認しています。
※レゴのMモーターの動作電圧9Vと書いてあったのですが、6Vでも動作することを確認しています。
f:id:konoemario:20170514125350p:plain:w500

こちらは蛇足かもしれませんが、気になったので記載します。
以下のように、テスターを経由してモーターに接続した場合には、レゴモーターが回転することが確認できました。

f:id:konoemario:20170514125344p:plain:w500

申し訳ありませんが、よろしくお願い致します。

2017/5/15 追記

いまだに、事象は解決していない。
TA7291のモータードライバーを使用すれば、レゴのMモーターを動かすことはできることは確認済み。

モータードライバー TA7291P (2個入): 半導体 秋月電子通商 電子部品 ネット通販

勉強中や趣味でやってる言語の成果物はどうやって管理してる?

日記

Pythonについて勉強します、と言い出してラズパイに手をだしてからは、 なぜかレゴブロックをいじっている時間が一番多い今日このごろ。

ラジコンのコントローラーにようやく着手しはじめたので、Pythonを再度触り始めました。

エディタはPycharmを使っているのですが、あまりの自分の煩雑さに愕然としたというただの日記です。

※役に立つアドバイス等は一切ないのです。

プロジェクトの中がぐちゃぐちゃ

頻繁に使用している(正確に書くのであれば、このプロジェクトしかない)Pychmaプロジェクトをキャプってみました。

f:id:konoemario:20170510211329p:plain:w500

モジュール名の命名規則もぐっちゃぐっちゃですが、初めたころからの「HelloWorld」から、本を見ながら書いたコードや、試してみたいコードやらなんやらでカオスです。

VisualStudioみたいなIDEつかっててもそうなんですが、ソリューションやプロジェクトの構成単位ってのが、あんまりわかってないです。 DLLやexeが〜ってのはなんとなくわかるのですが。

話がそれましたが、PythonのPychamによるプロジェクトであれば、どんな単位で作成するのが適切なんでしょうか。

リソースを管理するディレクトリがぐちゃぐちゃ

これも昔からなんですが、ちょっと勉強してみるか、と始めた系のソースやらなんやらが、いたるところに散らばっていて悲しくなります。

(例)ぐちゃぐちゃの例
~/PycharmProjects 
~/git
~/html
~/myc
~/work/php
~/work/html
~/Desktop/Project/Empty
/Library/WebServer/Documents/phpfile

きっちりやってる方はどう管理しているのかを知りたいです。

githubリポジトリもぐちゃぐちゃ

自端末でリソースを管理するからだめなんだ!とおもいたちgitを導入しましたが、ものすごく中途半端な状態で放置されています。
これも冒頭のプロジェクトと同様でリポジトリの適切な単位がわかってないせいかと思います。

f:id:konoemario:20170510221758p:plain:w500

電子工作の収納箱もぐちゃぐちゃ

ここまでくると、人間の問題も多いにあるよな、、、と反省するのですが、電子工作で使用した部品も自分の本能に従って整理整頓されています。

f:id:konoemario:20170510221702j:plain:w500

何かおすすめの管理術があれば書籍でもいいので教えてください。。。

銭湯のドライヤーに感心した

日記

GW明けの今日、風邪を引いて会社を休んだ。

日曜の朝から体調が悪く、夕方には悪寒と共に寝込んでしまった。

定期的に適当な体調不良で会社を休んでるだけに、本気で体調が悪い時にどうしたらいいのか悩む。

これだけ体調が悪いのだから、前日から明日休むといったほうが真実味が出るかもしれない、でも社会人って一晩寝て様子みるのが常識なんじゃないか、ただGW明けの朝連絡すると、長期休暇明けで案の定こいつ休んだなと思われてしまう、と。

結果、翌朝さらに体調が悪化していたので、死にそうになりながら連絡をした。
人間余裕がないと、その辺もどうでもよくなる。

これを普段の生活でコントロールできればもっといいのにとお思う。

本題

GWが実家に帰省しました。

お風呂はせっかくなので、近所の銭湯へ。

ちょっと混んでたけれども、満喫できました。
サウナ入った後の水風呂が大好き。水風呂に入ると、いつもタイタニックの終盤シーンを思い出す。

お風呂から上がって、髪を乾かそうとドライヤーを手にとった。

ふと隣のドライヤーを見ると、「ナノドライヤー 髪がつやつやに!」みたいな広告と共に、実際にナノドライヤーが置いてあった。

昔からあることなのかもしれないけれども、この手法に感動した。
銭湯って風呂上がりに髪を乾かすから、ドライヤーって必要になるし、こういった場で実際に使ってみて効果があるのであれば欲しくなっちゃうよなーって。

他にも、使ってみて驚くシャンプーとか、そういうのもいけるなぁと思い、さっそくナノドライヤーを使ってみようとしたところ、「5分 100円」の文字が目に飛び込んだ。

僕は普通のドライヤーを使うことにした。

冷静に考えると不思議。

てっきり、ナノドライヤーは、メーカーから銭湯側に、タダでもいいから置いて欲しいと言われているのかと思っていた。

そうではなく、銭湯側が、ナノドライヤーを独自に購入して、5分100円で原価を回収しにいっているのだろうか。
もしくは、なのドライヤーレンタルプランがあるのだろうか。

答えをしっている方がいたら教えていただきたい。

(追記)勝手な想像
銭湯のコーヒー牛乳やら、フルーツオレの瓶が120円の銭湯屋はほんとにわかってない、みたいな記事を書こうとしていた。

というのも、脱衣所の貸しロッカーの金額が100円で、お風呂から上がって、ロッカー開けたら100円戻ってくるじゃないですか。

この100円、財布に戻してもいいんですが、風呂上がりで暑いし、服着てないなかで財布触るのも煩わしいので、使っちゃってもいいかなっていつも思うんですよ。

そこで、前述のコーヒー牛乳が100円で購入できると、即座に買ってしまうわけです。
それなのに120円としていると、わざわざ財布から20円ださなきゃいけないじゃないですか。

これがいけてないなぁって思います。

僕は風呂上がりのフルーツオレが好きなので、142円でもなんでも買いますが。

で話が元に戻ると、ナノドライヤーの100円も同じ理屈なのでしょうか。
さらにいえば、銭湯に置いてあるマッサージ系の機器もそれ系なんでしょうか。
(こちらは100円かどうか知りませんが)

銭湯マイスター教えてください。

RaspBerryPiでラジコンをつくる(6):とりあえず動くものができました

電子工作経験がゼロでしたが、とりあえず動くものができたのでまとめます!

いろいろと試行錯誤してお金が地味にかかったので、これからはじめる方の最短距離になればと思います。

ただ、制御部分がさっぱりできていなかったり、モーターがいまいちだったり、改善点はいっぱいあるので、変更しだい記事を上げていこうかと思います。

お子様がいる方には、夏休みの宿題とかに、かなりおすすめです。

RaspBerryPiでモーターを動かす(1) - 豆腐とコンソメ
RaspBerryPiでモーターを動かす(2) - 豆腐とコンソメ
RaspBerryPiでモーターを動かす(3):圧倒的力不足 - 豆腐とコンソメ
RaspBerryPiでモーターを動かす(4) - 豆腐とコンソメ
RaspBerryPiでラジコンをつくる(5) - 豆腐とコンソメ

できるもの

ものすごくごちゃごちゃしてますが、とりあえずの完成図はこちら! f:id:konoemario:20170506162521j:plain

動いているところ
youtu.be

必要なもの

作成にあたって、実際に使用したものを書きます。
ただ、ラジコンパーツにレゴを使っているので、やっぱり高くなっちゃいます。
なので安く済ませたいという方は、タミヤの楽しい工作シリーズを使用する路線のほうが安くすみそうです。
でも、レゴそのものも楽しいので、悪くない買い物だと思います!

RaspBerryPiおよび、周辺機器

まずは本体と周辺機器です。
このへんはラジコンどうのこのではなくラズパイセットアップ共通のものになるので、詳しい内容は割愛しちゃってます。

その都度、おすすめのものがでたりしているので、個々で検索してもらったほうがよさそうです。

  • RaspBerryPi Zero 600円
  • microSDカード8GB  1000円〜
  • Wifiドングル 1000円〜
  • マイクロUSB-USB変換 500円ぐらい
  • USB電源アダプタ(5V 2A〜2.5A) 1500円〜
  • HDMIケーブル      1000円〜
  • HDMIアダプタ(ミニ to 標準) 200円ぐらい
  • gpio-hammmer-header 800円ぐらい
  • キーボード (自宅にあったものを流用)

f:id:konoemario:20170506192914j:plain:w500


以下はあったら便利なもの

  • USBハブ 1000円〜
  • RaspBerryPiZero用のケース

USBハブは、あったら便利なもの、としてますがあったほうが絶対にいいです。 また、USBハブには電源をラズパイから供給するバスタイプと、別途外部から電源をもらうセルフタイプがありますが、バスタイプにして、いろいろとUSB機器を挿すと、ラズパイの電源がもたないみたいな記事を見たことがあったので、セルプタイプを購入しました。

エレコム USBハブ 2.0対応 4ポート ACアダプタ付 1.0m ブラック U2H-TZ410SBK

エレコム USBハブ 2.0対応 4ポート ACアダプタ付 1.0m ブラック U2H-TZ410SBK


購入する場合のリンク

ここでは、本体とピンヘッダーだけ紹介します。 在庫の関係で、別々のサイトになっちゃいました。
ラズパイについては送料の方が高くつきます。

ここでZeroをひとつ買ってみました。
Raspberry Pi Zero 取扱開始のお知らせ - Raspberry Pi Shop by KSY
こっちでgpio-hammer-headerを買いました。
GPIO Hammer Header - スイッチサイエンス



電子工作で必要なもの

こちらは電子工作で使ったものをあげています。

  • はんだごて 1000円〜
  • はんだ吸い取り線 150円
  • ジャンパー線(オス-オス、オス-メスを10本ずつぐらい) 500円ぐらい
  • ブレッドボード 130円
  • グルーガン 300円〜
  • プラスチックカッター 100円
  • やすり 100円
  • 各種ドライバー (自宅にあったものを使用)


f:id:konoemario:20170506193942j:plain:w500

はんだごていらないかと思いきや、レゴのモーターを触る場合に必要になっちゃいます。その際、はんだ吸い取り線もあるといいので一緒に。

ブレッドボードで思い出しましたが、LEGOにくっつけることができる「Cake Board ケーキボード」も試してみました。
が、思った以上に外れやすいので、あまりお勧めできません。

プラスチックカッター、グルーガンは100均一で売ってるみたいですが、グルーガンは見つけることができず、ホームセンターで購入しました。
この辺りがでてきちゃうと、レゴだけじゃ無理だったんだなと察する方がいらっしゃるかと思います。

購入する場合のリンク

はんだごて、吸い取り線、グルーガン、プラスチックカッター、やすりは近所で購入しました。
ブレッドボード・ジャンパーコード(オス−メス) 15cm(赤) (10本入): パーツ一般 秋月電子通商 電子部品 ネット通販
ブレッドボード・ジャンパーコード(オス−オス)(10cm)20本セット: パーツ一般 秋月電子通商 電子部品 ネット通販
ミニブレッドボード BB−601(白): パーツ一般 秋月電子通商 電子部品 ネット通販



ラジコンのモーターを扱う上で必要なもの

  • モータードライバ 300円
  • 抵抗(3kΩ以上) 100円
  • 単三電池ボックス4本用 70円
  • 単三電池4本 80円

f:id:konoemario:20170506195209j:plain:w500

電池と、モーターを制御するためのモータードライバが必要になります。
モータードライバーを使用するにあたり、抵抗も必要みたいなので合わせて揃えます。

テスト用のDCモーター(130円ぐらい)を合わせて購入したら便利かもしれません。

購入する場合のリンク

モータードライバー TA7291P (2個入): 半導体 秋月電子通商 電子部品 ネット通販
カーボン抵抗(炭素皮膜抵抗) 1/4W 5.1kΩ (100本入): パーツ一般 秋月電子通商 電子部品 ネット通販
電池ボックス 単3×4本 リード線: パーツ一般 秋月電子通商 電子部品 ネット通販
単3形アルカリ乾電池 ゴールデンパワー製 LR6 (4本入): 電池一般 秋月電子通商 電子部品 ネット通販
DCモーター FA−130RA−2270L: パーツ一般 秋月電子通商 電子部品 ネット通販

ラジコンのモーター

ここからはレゴのパーツが出てきます。

  • レゴ M-Motor 8883 (通称、Mモーター) 1650円
  • マイクロサーボモーター 400円

レゴ M-Motor

車を動かす肝となるモーターです。
Mモーターは「パワーファンクションセット」に含まれています。
ただ、パワーファンクションセットは5000円ぐらいするので、単品のモーターだけ購入したほうがお買い得です。

(自分は、レゴ (LEGO) テクニック RCトラックレーサー 42065を購入した際、一緒に入っていたのを使ってます。)

単品だと1650円で、当初は割高だなぁって思ってました。 というのも、一番安いDCモーターなら130円程度で購入できるのです。
ただ、130円のDCモーターで試したのですが、トルクが足りなくって動きませんでした。

こちらのレゴのモーターのトルクを参考にさせていただきました。
lego.masa-lab.net

これと同じレベルのモーターを買うとした場合、1000円以上はするんじゃないかと勝手に思ってます。だとすれば、そこまで高くないかもしれません。

とはいえ、Mモーターを使っている現時点もパワー不足が否めないので、モーター関係は改善しだい別途まとめます。

レゴ M-Motorの線をジャンパー線にする

レゴのM-Motorですが、ケーブルがレゴの電池にくっつくようになってます。
今回、モーターはモータードライバーとブレッドボート経由で接続したいのですが、このままでは接続できません。
なので、モーターの中身を開けて、ジャンパー線とつなぐようにします。

f:id:konoemario:20170506203301j:plain:w500

モーターの開け方は、こちらの動画が参考になります。
www.youtube.com

肝心の作業風景ですが、集中のあまり、全く撮っていませんでした。。。
130円のDCモーターとジャンパー線を一度つなげてみて、感覚を掴んでからやったほうがよさげです。

需要があれば、もっかいモーターの中身を開けようかと思いますので、ご連絡いただければと思います。

マイクロサーボモータ

車を曲げるために必要なモーター。 レゴ公式のサーボモーターもあるみたいだけれども、市販のサーボモーターで間に合いました。

マイクロサーボ9g SG−90: サーボ 秋月電子通商 電子部品 ネット通販

とはいえ、M-motorと同じで、そのままは使えないです。

こちらは、プラスチックカッター、やすりで不要な部分を削って、グルーガンでレゴの部品とくっつける工程が必要になります。

f:id:konoemario:20170506204430j:plain:w500 f:id:konoemario:20170506204602j:plain:w500 f:id:konoemario:20170506204718j:plain:w500

これは以下の参考動画をそのまま真似しました。
www.youtube.com

ラジコンカー本体

そして最後に、車の本体です。

  • LEGO テクニック [42037] 8500円

レゴ (LEGO) テクニック フォーミュラ・オフロードカー 42037

レゴ (LEGO) テクニック フォーミュラ・オフロードカー 42037

8500円かよ!たけえ!となるかもしれませんが、個人的にこのレゴの車は感動しました。作っていて、すげええ!となります。
極端な話、今回のラズパイのラジコンカーという挑戦を抜きにしても、素敵な商品だと思います。

ステアリング機構がうまくできないなぁなんて悩んでいただけに、公式のステアリングの出来の良さにびびりました。

f:id:konoemario:20170506205509j:plain:w500

また、エンジン部分もギアが絡まって、かっこよさが滲み出ています。

f:id:konoemario:20170506205646j:plain:w500

以上で、必要な部品は揃ったので、あとはそれを組み合わせていくだけです!

長くなったので、別の記事で書こうと思います。

ぜひ読んでいるみなさんも車作ってみてください!

モバイルバッテリー (追記)

肝心なものを忘れてました。
ラジコンなので、コンセントから電源を供給するのではなく、モバイルバッテリーから電源を供給します。

  • モバイルバッテリー(5V 2A〜) 1300円〜

いろいろあるかと思いますが、以下を使用しました。

tohutokonsome.hatenablog.com