ON THE HAND

引っ越しました http://tech.andhandworks.com

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

このエントリーをはてなブックマークに追加

  1. --/--/--(--) --:--:--|
  2. スポンサー広告

WiiリモコンとArduinoでQuadcopterを飛ばす(2):材料その2

【ご注意】
ここで紹介する方法を使って、周囲に人や建物がある場所で飛ばすのはお奨めしません。
Wiiリモコンのセンサ等はラジコンに用いることを想定されておらず、
操作不能に陥り想定外の場所に暴走したり墜落することがあります。
十分に安全な対策を取った上で実施してください。


前回は本体の材料を説明しました。
続いて残りの材料について説明します。

  • Quadcopter 本体(フレーム/電気系統/駆動系)
  • プロペラ
  • バッテリー
  • フライトコントローラー
  • 受信機
  • 送信機
  • その他のオマケ


プロペラ


ホームセンターなどで売っている工作用のプロペラでは駄目です。飛びません。
マルチコプター用のプロペラを使います。

前回紹介した HJ450 だと7~10インチのプロペラが使えるようです。
プロペラが大きい方が揚力がありますが大きすぎると隣のプロペラにぶつかります。
一方、小さい方が制御しやすいような印象を受けます。

Quadcopterは4つのモーターのうち2個が逆回転しますので、
正逆反転のセットが必要です。

RCイーテックさんでプラスチックのプロペラを買いましょう。
正逆反転セットをお好きな2色で多めに買っておきましょう。

何故2色なのかと言うと、Quadcopter は飛行中に前後を視認しにくいので
前後のプロペラの色を変えておくと良いためです。

最近はAmazonでカーボンファイバーのプロペラが売られていますが、
いきなりこれに手を出すのはお奨めしません。

基本的に自作コプターは不安定で、そんなものを Wii リモコンで操作しようとすると
最初は制御できずに暴走しまくります。
カーボンファイバーは非常に丈夫な反面、体に当たると酷いことになります。
最悪の場合、失明しかねません。
私も脚に激突してパンパンに腫れました。

プラスチックのプロペラでも危険なことには変わりありませんが、
一応、プロペラの方が折れてくれるのでまだマシです。
そもそもカーボンファイバーのプロペラは高いので勿体ないですしね。

バッテリー


いわゆる LiPo バッテリー(リチウムイオンポリマー)を使います。

11.1V 3S で 30C 2200mAh 程度で、、、と言っても
最初は「何それ?美味しいの?」という感じかと思います。

「11.1V」は電圧です。
電圧が変わると電源制御も変わってしまいます。
異なる電圧のものを選んではいけません。

「3S」はセル数です。
1つのパックに3つの LiPo パックが入っているものが3Sです。
1パックあたり 3.7V 程度なので 3S は 11.1V です。

「30C」はバッテリーの能力を意味していて
「バーストレイト」と呼ばれるようです。
2200mAh で 30C の場合は、
2200[mAh] x 0.001 x 30[C] = 66[A]
という訳で最大 66A まで流せます。
つまり、値が大きいほど高速に充電でき、電気を食う状況で使えます。

「2200mAh」は容量です。
2.2A で1時間放電できるだけの容量を持っています。

大は小を兼ねる、、、と思いがちですが、
プロペラでも説明した通り、最初は暴走して墜落しまくります。
LiPo バッテリーは傷ついた状態で使うと爆発の危険があり、捨てるしかありません。
最初は低容量の安いもので練習するのをお奨めします。


LiPo バッテリーの充電にはバランス充電器という
特殊な充電器を使います。

例えば、3S Lipo の場合、合計が11.1Vだったとしても
1つのセルが2.0Vだったら残りの2つのセルは
3.7Vを超えてしまい寿命が縮みます。

それを避けるため、バランス充電器は全てのセルの電圧が
3.7V を超えないようにバランスを取りながら充電してくれます。
また、放電機能も持っていて各セルが同じ性能を出すように
「慣らし」放電をしてくれます。

本当は Hyperion というメーカーのものが良いらしいですが、
かなり高いので私は iMax という安物を使っています。

フライトコントローラー


Quadcopter の飛行を制御する中枢部です。
Multiwii SE V3.0 を使いましょう。
私が使っているのは V2.5 ですが、V3.0 はピンが
水平方向に出ていて組み立てやすい”はず”です。
使ったことないので知りませんが。
なお、「SE」が有りと無しで機能が違うので「有り」の方で。

名前に「Wii」と付いていますが、Wiiリモコンの信号を
受けられる訳ではありません。

どこかの偉い人が Wii リモコンを分解し、加速度センサを
Arduino に取り付けて作ったため Multiwii と呼ばれています。
世の中には凄い人がいるものですね。

で、Arduino 互換なので Arduino IDE でフライトコントローラーのプログラムを焼きこみます。
詳しい方法は次回以降で説明します。


以前も紹介したことがある FTDI USB シリアル変換モジュールです。
Multiwii SE V2.5 の場合、PCに接続するために必要です。

Multiwii SE V3.0 には USB コネクタが付いているようなので
必要ないかもしれません。

受信機

やっと出ました。Arduino UNOです。
Wiiリモコンの操作を受けるために Arduino で Bluetooth を受信します。
以前、ラジコンの自作でも紹介した通り、USB Host Shield と Planex の
Bluetooth USB ドングルも使います。
SparkFun の Shield を使う場合は改造が必要ですのでこちらをご確認ください。

通常はラジコン用プロポの受信機を付けるのですが、
今回はWiiリモコンで操作したいので Arduino で自作します。

ただし、Bluetooth の通信可能距離は 10m 程度なので
調子に乗って飛ばし過ぎないように注意しましょう。



送信機

Wiiリモコンです。
どこのご家庭でも余ってますよね。Wiiリモコン。
ちなみに、普通にマルチコプター用のプロポを買うとそれだけで1万円以上します。

その他のオマケ

当然空撮したいですよね。
GoPro を付けたいところですが、そんな良いカメラを付けるなら
Quadcopter も DJI などのちゃんとしたものを買いましょう。

かと言って、普通のデジカメだと結構重くて不安定になります。
撮れなくはないですが。(一応試しました。)

そこで、お奨めなのがこの Hoten X-Z-18 です。
性能は劣悪ですが 5g しかなく、micro SD に録画できます。

ただし、Walkera というマルチコプター用で、独自のコネクタは
Arduino や Multiwii には繋がらない上、録画ボタンもありません。

どうやって録画するのかと言うと、ケーブルを加工して接続した上で、
このカメラが理解できるパルス信号を Multiwii または Arduino から送信します。
どのような信号を送れば良いのかは次回以降で説明します。

このカメラで撮影するとこんな感じになります。
どのくらい性能がショボいか分かるかと思います。



以上で材料がそろいました。

はっきり言って材料費だけで既製品が数台買えます。
この先も凄まじい茨の道が待っています。
よほどの物好きでなければ、とっとと諦めて既製品を買いましょう。


一応続きます。

このエントリーをはてなブックマークに追加

スポンサーサイト
  1. 2015/04/30(木) 22:12:01|
  2. Quadcopter
  3. | コメント:0

WiiリモコンとArduinoでQuadcopterを飛ばす(1):材料

【ご注意】
ここで紹介する方法を使って、周囲に人や建物がある場所で飛ばすのはお奨めしません。
Wiiリモコンのセンサ等はラジコンに用いることを想定されておらず、
操作不能に陥り想定外の場所に暴走したり墜落することがあります。
十分に安全な対策を取った上で実施してください。


最近、何かと話題の Quadcopter (クアッドコプター)です。
Wiiリモコンで操縦できるQuadcopterを自作してみました。

操縦が下手な上にチューニングが甘いですがこんな感じになります。



事前に人がいないことを確認したのですが、やっているうちに人が集まってしまいました。
後ほど説明する緊急墜落コマンドや不時着モードを実装はしているものの、
それにしても暴走等の恐れを考えると少々危険な状態でした。

本体が大破するならまだ良いですが、人に怪我をさせたら
洒落にならないのでくれぐれもご注意ください。
というか、真似しないでください。
(じゃぁ書くな、と言われそうですが、技術説明として。。。)

Quadcopter を自作するには少なくとも次のものをそろえる必要があります。

  • Quadcopter 本体(フレーム/電気系統/駆動系)
  • プロペラ
  • バッテリー
  • フライトコントローラー
  • 受信機
  • 送信機
  • その他のオマケ


それぞれ必要な材料を説明していきます。

本体(フレーム/電気系統/駆動系)


本体と一口に言っても部品の種類が結構多いです。
主に次のものが必要です。
  • フレーム
  • ブラシレスアンプ
  • ブラシレスモーター

フレームのサイズや重量とモーター出力等の関係が色々あり、
1つずつ揃えると結構面倒です。

フレーム

フレームは Amazon で NEEWER の HJ450 を買いました。

ただ、軸間距離がもっと短い(要は小型)の方が扱いやすいかもしれません。
今回は受信機を自作するので多少揚力が欲しいのですが、
ここまで大きくなくても構いません。

大きくなるほど本体重量が増して危険性も増します。
できるだけ小さいフレームをお奨めします。

ブラシレスアンプ


フライトコントローラーからの制御信号に従って
モーター入力電源を制御するものです。
BEC と呼んだりするようです。
今回は 20A のものを4個使っています。
謎な見た目な割に結構高いです。

ブラシレスモーター

モーターと言ってもミニ四駆用のDCモーターとかじゃダメです。
高精度の回転速度制御を行うためにブラシレスモーターというものを使います。

今回は A2208 KV1400 というものを4個使っています。
本体の重量等で種類が決まるらしいですがよく分かりません。

プロペラ固定用のアダプタが付属しています。
ものすごく失くしやすいですが、失くすと再入手が困難なので注意しましょう。

その他


BEC やモーターは結構高いので飛行中にリード線が切れると切ない想いをします。
そのため、電気系統の接続部分はこのようなバナナプラグで繋ぐと
抜き差しができて幸せです。

あとは100均でプラスチックの結束帯を買ってくると大活躍します。



…と、本体の材料を一通り説明しましたが、やはり選定が難しいので
本体についてはRCイーテックさんなどで組み立てキットを買った方が無難です。

本体の説明だけで長くなってしまったので続きは後ほど。

このエントリーをはてなブックマークに追加

  1. 2015/04/30(木) 17:13:25|
  2. Quadcopter
  3. | コメント:0

おもちゃの手回し発電機で遊ぶ

ものすごく簡単な割に子どもにかなりウケたアイテムを紹介します。

Arduino や Raspberry Pi はおろか電子部品は皆無です。
おもちゃの手回し発電機に少し大きめのモーターを繋いだだけ。
6歳男児が粘土でプロペラ風の何かを作っていたのでぶん回してもらいました。



材料



「ホームカイト」という手回し発電機でプロペラが回る室内用の凧を使います。
これ単体でも結構楽しいのですが、なぜか Amazon やトイザらスで
投げ売りされているようです。

普通に手回し発電機を買うとおもちゃでも1,500円くらいするのですが、
ホームカイトを分解すると、500円くらいで手回し発電機が手に入る上、
カラーバリエーションが豊富で発電機のハンドルの色も選べます。

おまけに、凧にはプロペラを回すための小型モーターが付いていて
これもまた単体で買うと500円くらいするシロモノです。
さらにプロペラまで手に入ります。

発電機、モーター、リード線、プロペラを外してしまえば残る部分は凧だけ。
ほとんどゴミが出ません。
部品取りとして非の付けどころがない逸品です。


モーターは壊れたインクジェットプリンタから大きめの
DCモーターを引っこ抜きました。

モーター単独で買うと結構高いです。
ハードオフなどでジャンクプリンタを見つけてくると良いかもしれません。
プリンタを分解するとものすごい勢いでゴミが出ますが…。

作り方


  • ホームカイトのリード線を途中で切る

  • 切った線をモーターに繋ぐ

以上、終わり。
馬鹿馬鹿しいので写真も無しです。

ホームカイトを破壊したくない場合は発電機の裏蓋を外して
内部のジェネレータ(ただのDCモーター)に別のリード線を
はんだ付けしましょう。

発電機のケースは結構柔らかくてカッターで削れます。
合わせ目を適当に削ってリード線を通す隙間を作ると扱いやすいです。


粘土が大きくなると発電機のハンドルに掛かる負荷も上がって、
エネルギー保存則を体感できます。なんちゃって。

また、繋ぎ先を電球にすれば当然光りますし、手回し発電機が1台あれば遊び方は無限大。

ホームカイト万歳。投げ売り万歳。

このエントリーをはてなブックマークに追加

  1. 2015/04/15(水) 23:59:46|
  2. その他
  3. | コメント:0

Raspberry Pi で家庭内電話網を作る

Raspberry Pi で PBX (IP 電話サーバ)を構築し、
古いスマホで内線電話を掛けられるようにしてみました。
4歳女子に渡してみたところ、自分用の電話ができたのが
嬉しかったのか、ことあるごとに電話が掛かってきます。

ちゃんと設定すると外線との発着信も可能なのですが、
今回は飽くまでリアルなおもちゃ電話として使えるものを
目指します。

Raspberry Pi は先日ファイルサーバにした Rasbpian の
環境
を使います。

Asterisk vs RasPBX

Raspberry Pi を PBX にするために Aterisk という
ソフトウェアを使います。
実はRaspberry Pi にはRasPBXというディストリビューションがあります。
これを使うといきなり PBX が動作し、Webブラウザから設定変更等も
できるようです。

ただ、今回はおもちゃ電話が目的で、他の用途と兼用したいので
RasPBX ではなく Asterisk 単体でインストールしました。

Asterisk のインストール

apt-get でインストールするだけです。
pi@raspberrypi ~ $ sudo apt-get install asterisk
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
        :
必要なユーザも自動的に作成されます。

Asterisk の設定:/etc/asterisk/sip.conf

まず、/etc/asterisk/sip.conf で電話番号を作ります。
巨大な設定ファイルですがほとんどコメントアウトされています。
general セクションだけ探して書き換えたら、あとは末尾に 書き足せばOKです。
[general]
localhost=192.168.11.0/255.255.255.0
            :
[5130]
type=friend
username=5130
secret=PASSWORD
canreinvite=no
host=dynamic

[5134]
type=friend
username=5134
secret=PASSWORD
canreinvite=no
host=dynamic
general に指定するネットワークアドレスは Raspberry Pi が
繋がっているネットワークのものに書き換えてください。

カッコ書きの数字は電話番号です。
何桁でも構わないですが、先頭の番号だけは揃えておくと
後の設定が楽です。

username と PASSWORD は電話機を登録する際の
ID とパスワードなのですが、宅内だけで使う場合は
イイカゲンで構いません。

Asterisk の設定:/etc/asterisk/rtp.conf

デフォルトで10,000個のポートを使用するようになっているので
適当に減らします。
rtpstart=10000
;rtpend=20000
rtpend=10010

Asterisk の設定:/etc/asterisk/extensions.conf

[default] セクションを下記のように変更します。
exten => _5XXX,1,Dial(SIP/${EXTEN},30)
exten => _5XXX,2,Congestion
exten => _5XXX,102,Busy
「_5XXX」というのは「5で始まる4ケタ」という意味です。
sip.conf で作った電話番号に合わせて適当に書き換えてください。

Asterisk の再起動

ここまでできたら Asterisk の設定は完了。
日本語化?案内音声の変更?は?何それ?美味しいの?

再起動します。
pi@raspberrypi ~ $ sudo service asterisk restart
Stopping Asterisk PBX: asterisk.
Starting Asterisk PBX: asterisk.

スマホの設定

Google play / AppStore で "SIP" と検索すると色々なアプリが見つかります。
使いやすいものを入れれば良いかと思います。

Android はOSがSIPの機能を持っているのですが、
使いにくいので別アプリを入れるのがお奨めです。

子どもでも比較的分かりやすそうなものとして、私は次のアプリを入れました。

いずれのアプリも sip.conf で設定した電話番号とユーザ名、パスワードを設定します。
WiFi を ON にして Raspberry Pi と同じネットワークに接続しておく必要があります。

電話を掛けてみる

以上で全ての設定が終わりました。
電話を掛けてみましょう。
発信側は当然のことながら、着信側もバックグラウンドでアプリを起動しておく
必要があるのでご注意ください。

古いスマホを子供に渡しておくと親のスマホに本当に着信するので
結構盛り上がります。

このエントリーをはてなブックマークに追加

  1. 2015/04/14(火) 22:38:20|
  2. Raspberry Pi
  3. | コメント:0

Arduino 互換機を自作する(4):仮組み~完成

もくじ

  1. Arduino 互換機を自作する(1):導入
  2. Arduino 互換機を自作する(2):部品を選ぶ
  3. Arduino 互換機を自作する(3):ブートローダーを書き込む
  4. Arduino 互換機を自作する(4):仮組み~完成


今回は前回ブートローダーを書き込んだ ATmega328p を使って
ついに Arduino 互換機を組み立てます。

外部クロック版の回路図は次のようになります。
一見、部品が多いように見えますがHEADER-1~4 はただのヘッダピンです。
また、FTDI USB シリアル変換モジュールはヘッダピンに挿しているだけなので
はんだ付けは不要です。
ArduinoExternalClockCircuit.jpg

内部クロック版の場合はこんな感じ。
面倒なのでヘッダピンの記載は省略しました。
ArduinoInternalClockCircuit.jpg

外部クロックの方がオシレーター(水晶発振器)関連の分だけ
部品が多いですが、それ以外はどちらも手順は同じです。

ブレッドボード上に仮組みする


はんだ付けの前にブレッドボード上で動作確認します。
仮組みの時点ではヘッダピンは不要です。

組み終わったら、FTDI USB シリアル変換モジュールから
PC に USB 接続して Arduino IDE からスケッチを書き込みます。

スケッチ書き込み時に指定する Arduino の機種は
前回、ブートローダーの書き込み時に指定したものと同じです。

動作確認の定番と言えば「Lチカ」ですね。
サンプルスケッチの Blink を実行すると D13 の
LED が点滅すると思います。

ユニバーサル基盤に配置


ブレッドボードで上手く動作したら、
今度はユニバーサル基盤上に実装します。
ヘッダピンは切り離して使えるタイプのものを
6ピン、5ピン、4ピン、14ピンの4個に分けておきます。

はんだ付けをする前に全ての部品を一旦配置してみて、
配線を飛び越えないといけない部分などの取り回しを
確認しておくことをお奨めします。

ポイントになりそうなところをいくつか説明しておきます。

22pin GND と 20pin AVcc
これらのピンはそれぞれ 8pin GND と 7pin Vcc に
ショートさせるのが推奨されています。
ただし、これはノイズ対策が目的なので、
モーター制御などのノイズが発生するケース以外は
やらなくても一応は動作します。

チップの裏側から配線を飛ばすのが簡単ですが、
7pin-20pin と 8pin-22pin の結線が互いに交差してしまうので
どちらか一方はチップの外側を迂回させるか、
被膜付きのジャンパー線を飛ばす必要があります。

FTDI USB シリアル変換モジュール
今回に限ったことではありませんが、ATmega328p の RX を
モジュールの TX に、TX を RX に繋ぎます。
RX-TX とはそういうものです。

モジュールの 6pin GND が ATmega328p の
1pin RESET 側に来るように6ピンのヘッダピンへ
配線すると、少々トリッキーですが下図のように
固定抵抗やコンデンサを駆使して線の交錯を避けられます。
図のうち赤い線が基板背面、緑と部品が基板表面です。
ArduinoMakingGNDConnection.png

このようにしてピンヘッダを付けておくと、
USBシリアル変換モジュールのピンソケットを
そのままピンヘッダに挿せるので便利です。

以前も書きましたが、このような使い方ができるため、
USBシリアル変換モジュールはケーブルの付いていない
ピンソケットタイプのものがお奨めです。

ユニバーサル基盤にはんだ付け


慣れている方にとっては常識でしょうが、
一応、ユニバーサル基盤ではんだ付けするときの注意を。

  • 配線は部品の脚を使う。
    固定抵抗などの脚を基板裏側で曲げながら
    他の部品と繋いでいきます。
    出来るだけリード線を使わない方がすっきりします。

  • 両端と曲がり角だけはんだ付けする。
    脚を曲げて繋ぐ際、直線部分ははんだ付けしません。
    ハンダがもったいないしブリッジしやすくなるので。
    私は曲がり角でズレないようにはんだ付けしますが、
    人によっては本当に両端しかしないのかも。

  • 隣同士の部品はハンダブリッジで繋ぐ。
    すぐ隣に接続先がある場合はわざとはんだをブリッジさせます。
    部品の脚を曲げると弓型になってしまって不細工です。



ユニバーサル基盤を割る


普通ははんだ付けの前に割るのかもしれませんが、
私は途中で配置変更ができるようにはんだ付けが
終わるまで割りません。
そのため、割るのに失敗すると部品が全部無駄になります。

ユニバーサル基盤の不要な部分を割るには、次のようにします。

  1. 表面にカッターで一直線に切れ込みを入れる。
    穴と穴の間を順に結んでいけばOK。

  2. 切れ込みを入れた直線に定規を当ててペンチで挟む

  3. 定規の側から見て谷折りにへし折る


もっと上手に割れる方法をご存知の方は教えてください。


以上で、このような Arduino 互換機が完成です。
写真左下の6ピンのピンヘッダにUSB シリアル変換モジュールを挿せば
PCと接続できます。
青いコンデンサのあたりを整理するともう少し小さくできるかも。
ArduinoMaking_board.jpg


まだ作り方を調査中ですが、いずれここに MAX3521e という
USB ホストコントローラーを載せて USB Host Shield 内蔵に
したり、モータードライバも内蔵して Wii リモコンラジコン
モジュールを作れないかと考えています。

設計できたらそのうち紹介します。

このエントリーをはてなブックマークに追加

  1. 2015/04/11(土) 22:44:13|
  2. Arduino
  3. | コメント:2

Arduino 互換機を自作する(3):ブートローダーを書き込む

もくじ

  1. Arduino 互換機を自作する(1):導入
  2. Arduino 互換機を自作する(2):部品を選ぶ
  3. Arduino 互換機を自作する(3):ブートローダーを書き込む
  4. Arduino 互換機を自作する(4):仮組み~完成


前回選んだ部品で Arduino 互換機を作っていきます。
早速組み立てたいところではありますが、実は多くの場合はそのままでは動きません。

Arduino IDE からスケッチを書き込むには、あらかじめ ATmega328p に
ブートローダーというプログラムが書き込まれている必要があります。
今回はブートローダーの書き込み方を説明します。

スイッチサイエンスさんのATmega328pは
内部クロックで動作させるための
ブートローダーを書き込んであります。

これを使用する場合はブートローダーを
自分で書き込む必要はありません。

一方、秋月電子通商さんなどで
素のATmega328pを買ってきた場合や、
スイッチサイエンスさんで買ったものを
外部クロックで動作させる場合は
ブートローダーを書き込む必要があります。
(本当はブートローダー無しでスケッチを
書き込む方法もあるのですが、
その話はまたいずれ。)

ブートローダーを書き込むには、書き込み用のデバイスが必要です。
なんと、Arduino で書き込み機を自作することができます。

書き込み機用のArduinoを自作しようとしてもそのための書き込み機が
ありませんので、最初だけはブートローダー書き込み済みの
Arduino を調達する必要があります。

1台も Arduino を持っていない状態で Arduino を自作する方は
あまりいないと思いますので、今回は Arduino UNO を使います。

Arduino UNO を使って Arduino を1台分自作してしまえば、
その1台をブートローダー書き込み機にして2台目を作ることが可能ですので、
それ以降は Arduino UNO は他の用途に回していただいて構いません。

内部クロック用ブートローダーを書き込む


  1. Arduino 公式サイトのMinimal Circuit のページから
    Breadboard1-5-x.zipをダウンロードします。
    Arduino IDE1.0.x をお使いの場合は Breadboard1-0-x.zip のようです。

  2. マイドキュメントのArduinoフォルダに「hardware」というフォルダを作成します。

  3. ダウンロードした ZIP ファイルを展開してできた breadboard フォルダを
    hardware フォルダに放り込みます。

  4. Arduino UNO と PC を USB ケーブルで接続して Arduino IDEを起動

  5. サンプルスケッチから ArduinoISP を選んで Arduino UNO に書き込みます。
    ArduinoISPmenu.jpg

  6. 一旦 USB ケーブルを抜いた後、Arduino UNO とブレッドボードを使って下記のように回路を組みます。
    SimpleBreadboardAVR.png

  7. 再度 USB ケーブルを接続し、メニューから図のように選択
    ATmega328pInternalMenu.jpg

  8. 「書き込み装置」でArduinoISPを選択してブートローダーを書き込みます。



外部クロック用ブートローダーを書き込む


外部クロックの方が部品点数は多いですが手順は簡単です。
  1. サンプルスケッチから ArduinoISP を選んで Arduino UNO に書き込みます。
    ArduinoISPmenu.jpg

  2. 一旦 USB ケーブルを抜いた後、Arduino UNO とブレッドボードを使って下記のように回路を組みます。
    コンデンサは22pFのもの、抵抗は10kΩのものです。
    以前はArduino UNOのRESETとGNDの間に10μFの電解コンデンサを入れることになっていたようですが、
    なぜか現在はその記述が削除されています。
    無しでも問題なくブートローダーが書き込まれていますので必要ないようです。
    BreadboardAVR.png

  3. 再度 USB ケーブルを接続し、メニューから図のように選択
    Arduino Duemilanove か Arduino Nano あたりを選んでおけば良いようです。
    ATmega328pExternalMenu.jpg

  4. 「書き込み装置」でArduinoISPを選択してブートローダーを書き込みます。



以上で ATmega328p へのブートローダー書き込みは完了です。
公式サイトには Arduino UNO を経由したスケッチの書き込み方法も書かれていますが、
無視して構いません。

次回以降で FTDI モジュールを使ったシリアル接続回路も組み込んでいきますので、
Arduino UNO 無しでもスケッチを書き込めるようにします。

このエントリーをはてなブックマークに追加

  1. 2015/04/08(水) 22:18:26|
  2. Arduino
  3. | コメント:0

BASIC で動く教育用パソコン(?) IchigoJam

これまた色々とそそられる珍妙な教育アイテムが発売されました。

BASIC でプログラミング!
こどもパソコン IchigoJam


私自身、小学生のころにファミコンを買ってもらえず、
なぜか家にあった PC6001 (CPUは超高速4MHz、RAMは大容量16KB!)で
N88 BASIC の本を見ながらインベーダーゲーム的な何かを
数時間掛けてコーディングしてはゲームをする日々、
という健康的な子ども時代を過ごしていたので、
IchigoJam のコンセプトにはそこはかとなくノスタルジーを感じている次第です。

・・・いや、私のことはどうでもよいですね。

個人的印象を抜きにすると、なかなかシュールな製品のようなので
少し紹介してみたいと思います。

コンセプト


製品コンセプトは
プログラミングが最高の遊びだったあの頃を現代技術で再現!
だそうです。

あ、やっぱりそうなんですね。
「こどもパソコン」と銘打ってはいるものの、本当のターゲットはこどもじゃないようで。

パソコンなのか?


起動すると BASIC の実行環境になっているようです。
当然ながら Windows のようなグラフィカルなOSはおろか、
Linux のようなコマンドラインOSすら、と言うか、
今どきのOSらしいOSなんて皆無。

これを「パソコン」と呼ぶ男気に脱帽です。
もしかしたら「こどもパソコン」だから「パソコン」ではない、という話なのかもしれませんが
大人用パソコンより遥かにストイック。

「あの頃」とやらの表現を使うなら「パピコン」ですね。

BASIC、、、だと?


プログラミング教育用と言いながらなんと BASIC。
いまどき BASIC を覚えたとして一体何の役に立つんでしょうか。

ただ、改めて何の言語なら良いのか考えてみると、なかなか難しいのも確かです。

C だと「ポインタとは」から始まるし
Java も「オブジェクトとは」だし、色気づいて Python 選んでも
記法が独特で初めての教育には向かなさそうだし。

PS/2キーボード


わざとなのか、DIP のはんだ付けだけで USB Host に対応するのが
無理があったのか分かりませんが、いずれにしても
PS/2 キーボードなんてまだ手に入るんでしょうか?
Get Started Set」というフルセットですら
USB - PS/2 変換コネクタを使っているのが素敵です。


それにしても、組み立てキットが 1,500 円はなかなか魅かれます。
平安京エイリアンでも動かしましょうか。

このエントリーをはてなブックマークに追加

  1. 2015/04/07(火) 22:50:03|
  2. 製品レビュー
  3. | コメント:0

Arduino 互換機を自作する(2):部品を選ぶ

もくじ

  1. Arduino 互換機を自作する(1):導入
  2. Arduino 互換機を自作する(2):部品を選ぶ
  3. Arduino 互換機を自作する(3):ブートローダーを書き込む
  4. Arduino 互換機を自作する(4):仮組み~完成


前回、簡単に自作できる Arduino 互換機には内部クロックと外部クロックの2種類があることを説明しました。
どちらも必要な部品はほとんど同じなのでまとめて紹介します。

今回紹介する部品で組み上げるとこのようになります。
この写真は外部クロックのタイプです。
ArduinoMaking_board.jpg

Arduino UNO が 140mm x 90mm なのに対して、
自作版は 45mm x 35mm なので 1/3 程度の大きさになっています。
上手に部品配置するともっと小さくできるかもしれません。

その代わり、Arduino UNO のような USB や外部電源などの
端子類はありませんし、市販のシールドも使えません。

これを作るのに必要な材料は次の通りです。
一式だけ必要な道具と、1台分の材料に分けて説明します。

【一式だけ必要な道具】

FTDI USB シリアル変換アダプタ


自作 Arduino では必須の重要アイテムです。
オンボードで USB コネクタを載せないため、
マイコンチップにこのモジュールを繋いで
Arduino IDE からスケッチを流し込みます。

変換モジュールにはケーブル付きのものなど
何種類かありますが、リンク先のようなアダプタ型が
安くて小さいのでお奨めです。

通常はソケットにジャンパー線を挿して使いますが、
今回はこのアダプタのピン配列に合わせてピンヘッダを
用意して基板に直接挿せるようにする予定です。

余談ですが、配線を間違えると逆電圧が掛かって速攻で壊れます。
私だけかもしれませんが、ケアレスミスで頻繁に壊すので
出来るだけ安いものを選ぶようにしています。

Arduino UNO


Arduino を作るのに Arduino が必要
という罠。
ATMega328p というメインチップに
ブートローダを書き込むために使います。
UNO でなくても構いません。

内部クロックで構わない場合は
スイッチサイエンスさんが販売しておられる
ブートローダ書き込み済み ATMega328p を
使用すると Arduino UNO は不要です。

10μF 電解コンデンサ


ブートローダを書き込む場合に必要です。
・・・なはずなのですが、私は無しでも書けました。
真似して壊れても知りません。

半田ごて


何でも良いのですが、精密機器用に小手先が細くなっているものが
お奨めです。

あと当然ながらハンダも必要です。
はんだ付けが不慣れな方の場合はハンダ吸い取り器もあると安心です。
ハンダがブリッジしてしまった場合、吸い取り器無しで復旧するのは
かなり大変です、って言うかほとんど無理。

ブレッドボード


小さいもので構いません。
はんだ付けの前に仮組みで動作確認するのに
使います。

リンク先の 85mm のものでもATMega328p を
2個横並びで挿せます。
一方をブートローダー書き込み用、もう一方を
書き込み対象にすると、ブレッドボード1個で
コンパクトなブートローダー書き込み機を
実現することも可能です。

【材料】

ATmega328p-PU


Arduino のメインチップです。
DIP タイプ(脚付き)の "-PU" の他に、
表面実装用の "-AU" もあります。
間違えて注文するとはんだ付けで
ひどい目に逢います。

リンク先は内部クロックを使用するように
ブートローダーを書き込み済みのものです。
ブートローダーを上書きして外部クロックに
することも可能ですが、ブートローダーを書くなら
秋月電子通商さんのブートローダー無しのタイプ
方が安いです。

いずれにしても1個ずつ買うと送料が馬鹿になりません。
電子部品全般に言えますが、小さくて単価も安いので
どうしても少量購入は損ですね。

まとめ買いするか、秋葉原に行ったときに実店舗で買うようにしないと、
チマチマと注文していたら宅配業者への献金状態です。

ユニバーサル基盤


リンク先は25枚パックです。
「25枚もいらないよ。」と思うかもしれませんが、
1枚ずつ買うと高くて馬鹿馬鹿しいので、
遊び倒すならこのくらいがお奨めです。

ただ、安いだけあって端割れや剥がれなどが多いです。
人へのプレゼントにするならバラ売りなど
質の安定したものを買った方が良いかもしれません。

ピンヘッダかピンソケット


切り離して使えるタイプのピンヘッダです。
いかにも怪しい中国業者でも間に入って
安心させてくれるAmazonさんって素晴らしい。
秋葉原に行ける場合は秋月電子通商さんが安いです。

シールドを使いたいのであれば Arduino UNO と
同じ形状のピンソケットも市販されています。
が、わざわざピン配置まで合わせて頑張るなら
Arduino UNO を買った方が(以下自粛)

16MHz 水晶振動子


外部クロックの場合にだけ必要です。
内部クロックの場合は無しで構いません。

超高速 16MHz です。16GHz ではありません。

発光ダイオード


最近はホームセンターでも売っていますが、
1個3百円くらいすることが多いです。

通販で買えば100個で200円程度。
そう、100個。通販ならね。

このリンク先の LED は頭が小さくて
脚も短いので結構使いやすいです。

0.1μF セラミックコンデンサ


1台あたり2個ずつ使います。

リンク先の sapporo boueki さんは Amazon の
中でも手に入りにくい低単価の部品を
少量パックでもかなり安く出しています。

送料が掛かるので、抵抗、コンデンサ、
圧電スピーカなど、量を消費するものを
まとめて注文すると良いかもしれません。

22pF セラミックコンデンサ


Amazon では手に入らないようなので 秋月電子通商さん で。
これも1台に2個ずつ使います。
内部クロックの場合は不要です。

10kΩ抵抗


これもホームセンターで買うと高いですが、
ネットなら20本で42円。
でも送料が230円。

という訳で、やはりまとめ買いか秋葉原推奨。

1kΩ抵抗





他にもタクトスイッチなど付けておいた方が便利なものはありますが、
必須ではない部品は省略しました。

どうしても単価が安いのでネットで買うと送料が馬鹿になりません。
「都内近郊だが秋葉原が遠い」という場合は、横浜エリアなら
石川町に「エジソンプラザ」さんという不思議な一角があります。
また、多摩エリアの場合は分倍河原に「エステーシー府中」さんという、
これまた何とも表現しがたいお店があります。

それぞれなかなか良い味を出しておられるので、
お店の紹介も気が向いたらそのうちに。

次回からようやく作り始めます。

このエントリーをはてなブックマークに追加

  1. 2015/04/05(日) 18:44:22|
  2. Arduino
  3. | コメント:0

Arduino 互換機を自作する(1):導入

もくじ

  1. Arduino 互換機を自作する(1):導入
  2. Arduino 互換機を自作する(2):部品を選ぶ
  3. Arduino 互換機を自作する(3):ブートローダーを書き込む
  4. Arduino 互換機を自作する(4):仮組み~完成


今回はArduino互換機を自作する方法を紹介します。
そうです、Arduinoで自作するのではなく、Arduino 自作します。

と言うのも、試しに作ってすぐ解体するのであればArduino UNO で良いのですが
解体せずにいろいろ作る場合は自作するとかなり安上がりです。
一台数百円で作れますし、余分な部品を省いてかなり小さくなります。

一般に「Arduino 互換」と言うと、次の3パターンの意味があるようです。
  • Arduino IDEに対応(ソフトウェア的互換)

  • ピン配置が Arduino UNO などに合わせてあり、
    既成のシールドを使える(ハードウェア的互換)

今回作るのは、このうちのソフトウェア的な互換性を目指します。

ハードウェア的な方はピン配置だけの話なので
配線の取り回しと半田付けを頑張れば何とかなると思います。(たぶん)

ところで、Arduino UNO の真ん中にでかでかと鎮座するチップがあります。
ATmega328p と言うマイコンチップで、これを使って作ります。

ATmega328p には8MHzの振動子が内蔵されていて、
この内部クロックで動作させることで部品点数を減らせます。

一方、16MHzの高速(!)な水晶振動子で外部クロック動作を
させることも可能です。
正確に時間を扱う必要がある場合は外部クロックにする必要があります。

例えば、赤外線リモコンのキャリア周波数は38kHzなのですが、
赤外線送信だけなら内部クロックで十分です。

受信の場合は結構誤差が出るため、一発で正しく受信するには
外部クロックがおすすめです。
数回受信して平均を取るなら内部クロックでも大丈夫ですが。

前置きが長くなってしまったので続きは次回。
次は部品を選定します。

このエントリーをはてなブックマークに追加

  1. 2015/04/02(木) 22:55:29|
  2. Arduino
  3. | コメント:0

Romo 開封の儀


6歳男児が小学校入学祝いにNitendo 3DS が欲しいと言うので
ゲームをやりたいなら作ればいいじゃない、という訳で
半分だまして Romo を購入しました。

開封前は私の iPhone がないと遊べないということに気付いて
愕然としていたようですが、箱を開けた瞬間に一気に引き込まれて
大満足だったようです。

パッケージを開ける瞬間からのユーザ体験をよく考えてあり
非常に完成度の高い製品になっています。
簡単ですが開封の様子をご紹介します。

Romo1.jpg

パッケージはこんな感じ。
普通のパソコン用品のようなベロを引き出す箱ではなく
菓子折りのように蓋を引き上げて開封します。

蓋からして子供が開けやすいように配慮されているようです。

Romo2.jpg

開封。
ビニール袋や梱包材など面倒なものは一切なし。
なぜ中身がガタつかないのかと言うと、
蓋の裏側に梱包材が接着されているから。

開けた瞬間に製品に触れます。
パッケージデザイナーの思う壺で
徐々にテンションアップ。

Romo3.jpg
中身はこれだけ。
本体、説明書、充電ケーブル。
本当にこれだけです。

説明書は最低限の使用上の注意と保証書のみ。
一緒にクイックスタートガイドの小さな紙切れが1枚。

クイックスタートガイドの内容もこれだけです。
(1) お手持ちのiPhoneまたはiPod Touch を、
Romoベースに挿しこんでください。
(2) App Store から Romo アプリをダウンロードしてください。
(3) Romoアプリを開いてお楽しみください。

Romo4.jpg

先にアプリをインストールしておかなくて良いのか?
と思いながら言われた通りに iPhone を挿してみます。

すると、アプリのインストールが促されました。
なるほど。

ちなみに、Romo ベースには電源ボタンなんてありません。
iPhone を挿しこむと自動で起動します。

Romo5.jpg

アプリのインストールが終わると
突然、爆音でムービーが始まります。
Romo は宇宙からやってきたらしいです。

もうこの時点で家族全員 Romo に釘付け。

Romo6.jpg

ムービーが終わると Romo が可愛い動きで少し走ります。
テーブルの上で電源を入れたとしても心配無用。
ちゃんとテーブルの端で止まってくれるので大丈夫です。
1つ1つの配慮が眩しすぎて涙を禁じ得ません。

とは言え、あまり不安定な場所で電源を入れるのは
避けた方が良いでしょうね。

開封と起動だけでひとしきり盛り上がった後、
Romo に名前を付けたりオーナーの名前を
教えたりといった簡単な初期設定がありますが、
既にテンション Max なのでご機嫌で設定完了。

その間もいちいち頷いたり笑ったりと
Romo 君は素晴らしい動きを見せてくれます。

設定後はそのままチュートリアルへ。
チュートリアルと言っても、何かを教えてもらうのではなく、
生まれたばかりで前後移動もままならない Romo に
1つずつ動作を教えてあげる形で進みます。

もうここまで来ると Romo はすっかり友達です。


こんなに気持ちの良い製品は久しぶりに見ました。
少しでも開封時の楽しさが伝われば幸いです。

引き続き、Romo の遊び方が分かってきたら改めてレポートします。

このエントリーをはてなブックマークに追加

  1. 2015/04/01(水) 00:51:16|
  2. 製品レビュー
  3. | コメント:0
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。