2017年11月8日水曜日

DRV8835を使った2輪倒立ロボの小改良

昨年作ったDRV8835利用の2輪倒立ロボの、その後の改良です。

赤外線受信素子を搭載し、テレビのリモコンで操縦できるようにしました。手持ちの東芝RegzaとLAPIOという液晶TVのリモコンのコードをデコードするようにしてあります。


モーターのPWM音が低周波でうるさいので、周波数を上げました。
このため、今まではモータードライバ用にProMiniの4,5,6,7番ピンを使っていましたが、8,9,10,11番ピンに変更し、
TCCR1B = TCCR1B & B11111000 | B00000001;
でPWM周波数を変更しています。


モーターからのノイズ対策を強化しました。それでもモーターに大電流がながれるとProMiniがリセットされてしまうことがあります。回路図です。



2017年8月7日月曜日

棒テンプ時計の精度アップ ー Gyro Sensor version

メーカーフェア2017で木楽らぼのブースに足を運んでくださった方々、ありがとうございました。また、改良のアイデアをくださった方がたにも感謝いたします。今後の開発に生かしたいと思います。同様の原理は振り子時計にも応用可能ですので、挑戦してみたいと思います。

テンプの回転検出のために磁気センサを使っていたのですが、ビッグサイトのメーカーフェア会場ではなぜか地磁気をうまく検出できず、急きょジャイロセンサに変更しました。





回路図です。



ソースコードです。ジャイロと磁気センサを#defineで切り替えられるようにしました。

最初の投稿はこちら

2017年6月21日水曜日

GR-ADZUKIで倒立振子ロボADZUMIN

MAENOH!さん作の倒立振子ロボに赤外線リモコンとサウンドを追加してパワーアップしました。



GR-ADZUKIに最小限の追加パーツで実現しています。
倒立振子は、GR-ADZUKI+ジャイロ加速度センサ(PU6050)+ダブルギヤ+車輪+電池。
赤外線モジュール追加で、リモコン操縦(NEC、家製協、SONYフォーマット)。
FETとスピーカー追加で、おしゃべり。
SDカード追加で、ランダムおしゃべりと音楽。
サーボ追加で、首振り。


回路図です。

 
ソースコード(v47)はこちら
古いソースコード(v41)はこちら
古いソースコード(v40)はこちら

「簡単な操作方法」(v47)はこちら(pdfです)
古い「簡単な操作方法」はこちら(pdfです)

倒立アルゴリズムの解説はこちら(pdfです)

サウンド用SDカードの追加方法はこちら
サウンドファイルの説明はこちら(pdfです)

(更新2017年8月6日、回路図にFETの型名を入れました)

(更新2022年11月1日、pdfへのリンク切れを修正しました)


2017年5月18日木曜日

Processingでm2xのデータをダウンロード

******************************
2020/4/19追記
2020年4月現在m2xは停止しています
******************************

最近流行りのIoTを試したみたいと思い、AT&Tのm2xを使ってみました。(無料で使えます)
m2xへのアップロードの例はネット上でいろいろ見ることができるので、ここでは、Processingを使ったm2xからのダウンロードを紹介します。

Processingのスケッチはここ


スケッチ内のfinalで宣言されている変数を適当に変えれば、動くはずです。
dataFile: PC内にcsv形式で保存されるファイルの名前です。


apiKey: m2xに登録されているPRIMARY API KEYです。
deviceId: m2xに登録されているDEVICE IDです。


stream: m2xに保存されているデータの名前(STREAM ID)です。




データファイルがない状態でスケッチを起動すると、dataFileで指定された名前のファイルがスケッチフォルダに作成され、m2xからストリームごとに一番新しいデータを1つずつダウンロードして、csv形式でファイルに保存して終了します。
データファイルがある状態でスケッチを起動すると、データファイルを読み込み、ストリームごとに、データファイルの最後のデータ以降のデータをm2xからダウンロードし、ファイルに追加します。最後にcsv形式のファイルを保存して終了します。
時刻はGMTです。



2017年4月27日木曜日

棒テンプ時計の精度アップの試み


メーカーフェア東京2017で展示しました


棒テンプ時計というのは、下の写真のように、時計上部にある、水平に回転するテンプの往復周期に基づいて時を刻む時計です。動力源はおもりです。摩擦や、加工精度、温度、湿度などの影響で一日に十分から数十分の誤差が生じ、それが累積していくので、実用には耐えるとは言えません。



今回は、この棒テンプに取り付けて、慣性モーメントを増減させることにより、テンプの往復周期を一定に保つ仕掛けを作ってみました。まずは全体像です。電源は単四Ni-MHを2本です。



本体正面です。左の黒い基板が地磁気センサー、中央が液晶、下にあるのがねじ付きステップモーターです。黒い球状のものがおもり(釣り用のもの)で、これが左右に移動します。


次に背面です。小さい緑色の基板がモータードライバ、見えにくいですがピンク色の基板がGR-KURUMI、右の黒い基板が磁気センサーです。



時計に本装置を取り付けた状態です。写真では地磁気センサーの代わりにジャイロセンサーがついています。どちらでも可能ですが、磁気センサーのほうが消費電力が小さいようです。



動作原理は、地磁気センサーでテンプの回転を検出し、その周期をリアルタイムクロックで計測します。誤差がある程度以上大きくなった場合に、ステップモーターで小さなおもりを左右に動かし、テンプの慣性モーメントを調整して、誤差を解消します。一週間程度動かして、誤差は+/-約1分程度で十分に実用になります。現状では、電池の寿命が約1ヶ月ですが、さらに低消費電力化を検討中です。

紹介ビデオです。


回路図です。



ソースコードはこちら(別ウィンドウで開きます)

ジャイロセンサーバージョンはこちら

最終更新 2017/8/7


2017年4月14日金曜日

ペルーで現地SIMを使ってみました

2017年の4月にペルーを旅行したとき、現地プリペイドSIMを使ってみました。
リマのシェラトンホテルの隣のショッピングセンター内のMovistar(写真)で契約しました。MovistarやClaroの小さなカウンターは、ショッピングセンター内にいくつかあるのですが、そこではSIMカードの発行はできないようでした。




受付で番号をもらい、順番が来るとディスプレイに番号が表示されるので、階段を上がったところのカウンター(写真)で、パスポートを見せて、契約書を作ります。このとき名前の横に拇印を押します。




 その書類を持って階段を下り、支払い窓口で5ソル(約180円)を払います。クレジットカード使えました。隣の窓口でもう一度パスポートを見せて、SIMカード(写真)をもらいます。3つのサイズのどれでも使えるようになっています。




アクセスポイントの設定は、
名前:movistar internet
APN:movistar.pe
ユーザー名:movistar@datos
パスワード:movistar
MCC:716
MNC:06
認証タイプ:PAP
APNタイプ:default,supl

1日0.1MBまでは無料でデータ通信ができるというようなSMSが来るので、メール程度でしたらチャージしなくても使えるのかもしれません。

チャージはIncafarmaで行いました。契約書を見せてその電話番号にチャージしてもらいます。1GB分で45ソルをクレジットカードで支払いました。




チャージした金額を使う方法は、まず*515#をダイヤルすると、スマホの画面にメニューがでてきますので、その中の2番「MEGAS Internet」を選ぶために、2を押して送信ボタン(表示がスペイン語なのでなんと書いてあったか忘れましたが)を押します。
次に、
1 S/9 x 200MBx5d
2 S/7 x 150MBx5d
3 S/5 x 100MBx3d
とういうようなメニューがでるので、これは、9ソルで200MBを買うと5日間使えると解釈し、1を押して送信すると、SMSが何通か来て使えるようになりました。ただし私がこの操作をしたのは、チャージしてから数時間後でしたので、チャージ直後にデータが使用できるかどうかはわかりません。

その後は、*515#の直後に出るメニューから1を選ぶと、残りのバイト数がSMSで送られてきますので、残り少なくなったら、再度200MBを購入していました。こういう方式なので、最初に1GB分チャージしなくても、必要な時に必要なだけチャージするほうが良いかもしれません。私は結局滞在中の使用量が800MB以下でしたので、9ソル無駄にしました。

通信速度下の写真のとおりで、4月4日16:34のデータはクスコで、4月6日0:45のデータはマチュピチュ村で測った結果です。4月6日17:58のデータはクスコのホテルのWIFIです。ちなみにスマホは、富士通のArrows M03です。




上記文章には推測が含まれていますし、最良の方法ではないかもしれないので参考までに。

2017年1月1日日曜日

うるう秒検出に失敗

アイテンドーの40kHz JJY受信機とArduino ProMiniで1月1日のうるう秒を検出すべく、待ち構えていたのですが、スケッチのバグで検出失敗。しかし、通常ではマーカーが来るべき8:59:59に0が来たのはわかりました。Sunの右の3がうるう秒情報ビットで、うるう秒挿入後に0に戻ってます。


ハードウェです。温度センサーやディスプレイがついているので、ごちゃごちゃしています。バーアンテナは、電子回路から少し離した方が、ノイズの影響を受けにくいようです。千葉県鎌ケ谷市の西向きの窓際で、金属の雨戸を閉めてあっても受信できます。