ブログ - 最新エントリー

FREEDOM jr.IIIの新しいサンプルプログラムを公開しました。
ワイヤレスコントローラを使ったメニュー操作だけで、一通りの機能を扱うことができます。

FREEDOMjr.III Operation Sample Programページ

メニュー操作画面をムービーで少し紹介。


トップメニューの構成は以下の通り。

  • Control Mode : ワイヤレスコントローラのボタンに割り当てたモーションを再生したり、歩行したりします。
  • Motion Editor : モーションを作成、保存します。
  • Walk Adjust : 歩行パラメータを調整します。
  • HomePos Adjust : ホームポジションを調整します。
  • Chaeck Servo : Dynamixelとの通信やエラーを確認します。
  • Reboot : ブートローダに移行します。

 

アルミの塊

カテゴリ : 
新商品
2010-6-17 3:13

ドアにへばりついて走っていたキットの細部を分解して紹介します。

シャーシの主要パーツはアルミ、シャフト等はステンレスの切削物、ギアはポリアセタールとステンレスの組み合わせ。モータのギアヘッドを除いたギア比は 6.43:1になってます。


F1でのピット作業では タイヤ交換のスピードが命。このシャシでもいざというときのタイヤ交換はドライバ1本でOK。ギアトレイン類も簡単にばらばらに。
ねじがひしゃげる程なにかしでかしたらその限りではございません。


ホイールにはギアがついており、 こんな感じで1モータで2輪を駆動します。ここに指を挟んだら痛いじゃ済みませぬ


オプションの磁石キットを装備すれば磁性体にへばりつくことも可能です。吸着力の微調整は4隅のねじを回すだけ。
ネオジウム磁石なので一度鉄板にはり付いてしまうと外せる気がしませんし、こちらも指なんぞ挟んだらひとたまりもないでしょう。


モーターのマウントスペースはRE35と540K10に対応した広々設計(キットの標準は380K10)。


あとはブレードやカバーを自由にアレンジしてロボット相撲大会に出場したり、練習相手としても十分かと思います。このキットは近日発売しますが高くつきそうです

OLLO

カテゴリ : 
その他
2010-6-16 11:49

組み立ててみた。


組み合わせ次第でいろんな形がつくれるし、構成によっては単三電池1本で動くモータユニットがついてる。
子供の頃を思い出して黄昏てみてはどうだろうか。

USBスピーカ

カテゴリ : 
雑記
2010-6-10 18:30

これなんぞいかがでしょう。その名もOlasonic TW-S7
USBバスパワーで試聴に耐えるものなんぞないと思い込んでましたが、あるところにはあるもんです。

ACアダプタ不要で10Wクラスのパワーを発揮。


ディフューザーも効果ばっちし。


ちなみに、卵形ですけどニワトリじゃなくてダチョウサイズっす。Stereo Soundで購入すれば専用ケース付!

液晶ディスプレイ

カテゴリ : 
その他
2010-5-28 11:09



FREEDOM jr.IIIの胸部に装着することで、モーション作成や歩行パラメータ調整、ホームポジションの調整などがPCレスでリモコン操作のみでできちゃいます。単にSimple Termで表示されているものが液晶画面に表示されるだけですが。
まだまだ現地調整が手放せないロボット君にはコンソールは必要不可欠。思っただけで伝わる様になるのはいつの日になることやら。ま、人間同士の意思疎通ですら難しいんだから無理ですかね。
なお、こちらも近々商品化される予定です。


FDIII-HCスターターキット学習ガイドはいよいよ2軸へ。
写真はFDIII-HCスターターキットAX-12+とタミヤのユニバーサルプレートを使って作った車輪型ロボット。

今後この構成でライントレースや相撲などのサンプルプログラムを紹介する予定です。

そこにドアがあるから

カテゴリ : 
雑記
2010-5-26 16:39



いちよーこのぐらいのコードでえんとちゃう?
なんつー無意味なマルチタスク加減。

以前より「TOPPERSを動かす」というネタを書いてきましたが、諸々の環境を考えるとなかなか敷居が高いのかなと感じるところがあります。
RTOSと言われてもピンとこない方でも、見かけ上複数のプログラムが同時に動く環境が手に入るとなればちょっとは使ってみたくなるかなと思いまして、今月中にリリースする予定のGCC Developer LiteにはAT91SAM7Sシリーズ限定版のTOPPERS/ASPを簡単に利用できるターゲットを含めようと思っています。
TOPPERS/ASPは動的にタスクを生成する事は考慮されていませんので今回提供しようと考えている環境ではタスク数に制限が加わっていますが、割り込みハンドラ等はユーザ側のソースで自由に追加定義できるように手を加えてあります。また、デフォルトで定義されたタスクでは物足りない場合でも、単体でコンフィギュレーションできるよう考慮してみたいとも思っています。
こんなコードだけで3つのタスクが同時並行で動いたら面白いなぁと思われたら、ぜひ試してみてください。

新しくサポートしたデバイスはシステムクロックの指定が重要なため、任意に設定できるようにしました。また、このご時世ボーレートが9600bpsの倍数なんてケチ臭いのも間抜けなので、こちらも自由度を上げました。これで場合によっては転送速度を数百kbpsまで上げる事も可能です。
という事でbeta2としてこちらに公開しました。
2010/02/23

久々に新しい(単に作者が使っていなかっただけですが)ルネサステクノロジさんのチップを使ったボードに触れる機会がありました。秋月電子さんのSH7125ベースボードキットAKI-H8/3069Fマイコンボードキットの2種類。
ベステクで扱っているシリーズとは内蔵機能が違うので、ちょっとは楽しめるかなと思い選んだのですが、案の定現状のFlash WriterではこれらのフラッシュROMの書き換えは対応せず。もちろんFDTを使えば難なくイケますが、横着な作者にはやっぱりいろいろ面倒。
という事で、データシート見ると案外簡単そうだったのでFlash Writerをこの2機種のフラッシュROM書き換えに対応させてみました。マイコンのシステムクロックに依存する部分があるので設定上少々物足りないのですが、ひとまずベータ版としてここに置いておきます。現状は上記2機種に使用されているクロックが前提になりますので。

不具合があっても保証の限りではありませんが、絶対おかしい!って時はこちらにメールして下さいね。

それと、少しでもヤル気が出たら、今まで見捨てていたターゲットも復活させてみようかなと思ってたりします。もう用済み!と思われていたとしてもw。
指摘があったので chip_time.c と chip_timer.h をちょっと修正。
タイマのインターバルが10kHzになっていたので、1kHzにしました。これでホントに元のサンプルと同じ速度になったかな?
2010/01/29

 

タスクスイッチ用タイマ

タスクを並列に処理しているように見せかけるための機能を実現するのタスクスイッチ用のタイマらしく、マイコンに内蔵された時計を利用して一定間隔で何かしでかす仕掛けの様です。
という事でまだまだ理解が追いついてない状態で、この部分に手を加えてみようというのが今回のネタです。

Periodic Interval Timer (PIT)への変更

タスクスイッチ用のタイマに関するソースは ~/asp/arch/arm_gcc/at91sam7s/chip_timer.c に書かれている様で、ねちねち読むとTimer Counter Channel 0 (TC0)の初期化や割り込み処理ルーチンしかない感じ。それでもって、単純に時間を刻んでいれば良い筈なんだろうと決めつけると、そこそこ高機能なTC0をインターバルタイマとしてだけ使うのは何だかもったいない気がしてきました。
そこで、あまり触れられる機会が少ない Periodic Interval Timer (PIT)で代替できないだろうかと考えました。chip_timer.c ではTC0の初期化や割り込み処理ルーチンしかないので、改造する範囲はかなり少なくて済みそうだからという憶測も手伝い、改造を英断。

またもやドキュメントを中途半端に読みつつ、何度か試行錯誤しながら処理方法を模索し、ホントに後々問題にならないのかは全く自信が無いまま、とりあえず関係するソースを修正して再度のコンフィギュレーションしなおした asp.bin が#1と同じ動きをしたならば良しと決めました。
まずはTC0を使用するように記述されている ~/asp/arch/arm_gcc/at91sam7s/chip_timer.h と ~/asp/arch/arm_gcc/at91sam7s/chip_timer.c の該当箇所をPIT化し、以下のコマンドを実行してサンプルプログラムをコンパイル。
cd ~/asp/OBJ
make clean
make depend
make asp.bin
おや? make depend をした段階で、何やら定義の重複エラーが発生したと言ってくる。そんなつもりは無いのだが。おまけに手を入れたトコとは関係ないソースとの競合があるらしい
エラーメッセージから INTNO_SIO をgrepしていくと、適当に修正した chip_timer.h の INTNO_TIMER が、INTNO_SIO に設定されている INTNO_SYSIRQ_PID と同じ値だという事らしい。どうやらPITは他のペリフェラルのいくつかと割り込みベクタが共通になっている事が原因っぽいけど、ダメな理屈は分からない状態で難儀する事に。

ドキュメントを読もう!

悩むこと数年、試行錯誤で修正しても何ら解決しそうになかったので、マジメに資料を読むしかない!という事に行き着きました。

割り込みベクタを共有したい場合の方法については、~/asp/doc/configurator.txt の「(5-2-1) 割込みハンドラの生成」に共有になっている場合に使用できそうな内容が記述されています。これを参照しながら  chip_timer.cfg と、関係がある事すら意識していなかった競合相手 dbgu_serial.cfg を修正。
「割り込みハンドラの生成」はGCC Developer Liteのsam7sターゲットでSYSIRQの分岐処理として提供されている sys.c みたいなコードを使ってるとダメらしく、割り込みハンドラ側でフラグをちゃんと見ないといけない事も判明 (chip_timer.c の target_timer_handler と、dbgu_serial.c の sio_isr)。

動作確認

再度 make depend を実行し、文句は言ってこなくなった様なのでひとまず改造はOKといった所でしょうか。make asp.bin を実行。completeの文字が表示されて ~asp/OBJ/asp.bin が作成されていればコンパイルは成功。さっそく書き込んで動作を見てみましょう。
#1と同じ動きをしましたかね? dbgu_serial.c もいじくったので大丈夫か不安だったのですが、sample1.c の中身は別として同じ動きをしている気がしますがいかがでしょう。

※元のソースからの差分はこちらからダウンロードできます。最終段階の動くであろうと思われるソースになっていますので、~/aspフォルダに上書きして使ってください。