2012年09月16日

PIC24FJ64GB002でADK(microchip_solutions_v2012-08-22を使う)

マイクロチップ社のMicrochip Application LibraryはPICの各種マイコンにいろいろな機能を提供してくれるライブラリとサンプルコードの集合体で無料でダウンロードできます。

http://www.microchip.com/mal

最近更新があったようで、2012/8/22版が最新になっています。それまでの版では、Android 4.1でサポートされたAOA2.0の端末と接続した際、PICのADKライブラリがADKバージョンを確認して弾くため、ADKとして認識してくれませんでした。改造すれば認識するようにはなるのですが。

さて、上記の8/22版ではそんな改変せずとも、AOA2.0端末と接続してADKが認識してくれます。
(AOA2.0のHIDや音が通るわけではありません)

というわけで、テスト的にPIC24FJ64GB002に焼きこんでみたら動作しました!
マイクロチップのサンプルコードBasic Communication DemoはPIC24FJ64GB004用があるので、それを一部変更してPIC24FJ64GB002で動作させられるようにしています。

差分パッチファイルを以下にアップします。unified diff形式です。Microchip Application Libraryのスタックは非常に便利で魅力あるものですが、オープンソースで改変を共有するのにルールが難しいようなので、その点使いづらいですね。
PIC24FJ64GB002_ADK_patch_for_microchip_solutions_v2012-08-22.patch.zip


PICで楽しむAndroidアクセサリの自作
後閑 哲也
技術評論社
売り上げランキング: 42008

posted by いしいっち at 10:54| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2012年09月10日

プロペラマイコンをArduinoのように扱うArduino IDEベースの開発環境作りかけてみた

Arduino IDEでArduinoを扱うように、Parallax社のPropellerマイコンを扱えたら楽しいかも?と先日プロペラブの@kama_AGEさんと話していて、これは是非やってみたいなーと思いまして、やってみることにしました。
名前ですが、Propeller版Arduinoということで、Propduinoかな?と考えました。

しかし、ググると既にArduinoライクなマイコンボードの名称に使われてましたので、Pellerduinoかな?とググると何もひかからなかったので、Pellerduino(ペラデュイーノ)という名称にしてみました。


以下のような事が出来ればいいな、ということを考えました。
(1)PropellerマイコンのIDEをArduino IDEベースで作る(Arduino IDEの知識だけでほぼ使える)
(2)コンパイラはPropeller gcc
(3)ArduinoのAPI相当品を用意する
(4)Arduinoライブラリをロードするようにcogに各種モジュール(例:USBホストとか、ビデオ出力とか)をArduinoライブラリと同じ手順でロード設定でき、即座に派手な動かし方ができる
(5)各cogに別々なCのソースを手軽にロードして並列動作させる
とか。

特に、プロペラの作法を勉強しなくても、手軽にArduino APIで既存のPropeller用の各種モジュールを手軽に使用出来る環境になったらいいな、という理想です。

というわけで、早速作り始めてみました。
まだまだ作りかけたばかりなのでろくにプロペラならではの事は出来ませんが...^^;

環境はひとまず手持ちのMacOSX向けですが、Arduino IDEのソースはマルチプラットフォームなので多少の手直しで各環境で動くのだろうと思います。

コンパイラは、Propeller gccです。
http://code.google.com/p/propgcc/

ボードはPropellerマイコンのQuickStartボードを持っていたのでそれ向けにしました。
画面はデザイン何も変更していません。。色は変えようかなと思っています。
propelleride_ss.jpg
例えば、PropellerのQuickStartボードの青色LED1個を点滅させる場合、以下のようなスケッチになります。
void setup()
{
  pinMode(23,OUTPUT);
}

void loop()
{
  digitalWrite(23,HIGH);
  delay(1000);
  digitalWrite(23,LOW);
  delay(1000);
}
GPIO関連のAPI等はArduino APIもどきを作りましたので、感覚的にはArduinoスケッチっぽいです。

ボードのLEDが流れるような動きをするスケッチですと、こんな感じになります。PIN_LEDxは、QuickStartボード用のボードサポートファイルを用意し、そこで提供するようにしています。
const int pinTable[8] = {
    PIN_LED0,
    PIN_LED1,
    PIN_LED2,
    PIN_LED3,
    PIN_LED4,
    PIN_LED5,
    PIN_LED6,
    PIN_LED7
};

void setup()
{
    int i;
    for(i=0;i<8;i++){
	pinMode(pinTable[i],OUTPUT);
    }
}

void loop()
{
    int i;
    static int c = 0;

    for(i=0;i<8;i++){
	if(c % 8 == i){
	    digitalWrite(pinTable[i],HIGH);
	} else {
	    digitalWrite(pinTable[i],LOW);
	}
	delay(10);
    }
    c++;
}

上記の2スケッチを動作させているところの動画を撮ってみました!

今回いじったおかげで、Arduino IDEのソースの理解を深められたかなーと思います。
もう少し完成度を高めて、公開させていただきたいなーーと思っています。

Vixen(ビクセン) 双眼実体顕微鏡 ミクロボーイ 30倍 2122-00
Vixen(ビクセン) (2011-04-11)
売り上げランキング: 32928
posted by いしいっち at 23:31| Comment(0) | TrackBack(0) | コンピュータ | このブログの読者になる | 更新情報をチェックする

2012年08月31日

STM32F4 Discoveryと.NET Micro Frameworkを使ってC#でのマイコンソフト開発を試食!

こんにちは。
話題のRaspberry ですが、ここ半月ほどで手に入れられた方も多くおられるようで、入手!とか試した!とかそういうメールがGoogleアラートからしょっちゅう飛んできています。

当然僕のところにもそろそろ来るだろう、と思っていた矢先に以下のようなメールが届いてしまい結構ガックリしていますww
コアプロセッサが入手困難になってるんですね。Raspberry Pi以外でも結構いろいろ使われている石なのでしょうか。
RS_RaspberryPi_postpone.jpg

ところで、話変わりまして、先日からSTM32F4 Discoveryでチマチマとお遊びしているわけですが、「これ、きっと.NET Micro Framework乗るよな」と思ってました。もちろん手持ちの積み基板の富士通FM3マイコンボードを引っ張りだすのは良さそうですけど。

先日、MakeでNetduinoの展示を見させて頂いてたら、Netduino Goってボードがある事を知りました。
http://netduino.com/netduinogo/specs.htm

あれ、これ殆どプロセッサのスペックがSTM32F4 Discoveryと一緒では?と思い調べてみると、確かにファミリーのようで、STM32F4 DiscoveryのCPUよりもI/O資源とか少ないだけのもののようでした。でググると、

「.NET MicroFramework で遊ぶ2(2012/7)」って記事を見つけました。
http://moxi.jp/wiki/wiki.cgi?page=.NET+MicroFramework+%A4%C7%CD%B7%A4%D6%A3%B2(2012%2F7)

おーこれです!
というわけで、CodePlexのNETMF for STM32をお試ししてみることにしました。
https://netmf4stm32.codeplex.com/

準備するのは、
Visual C# 2010 Express Edition
http://www.microsoft.com/ja-jp/dev/express/default.aspx

.NETMF 4.2
http://netmf.codeplex.com/releases/view/52341

先のNETMF for STM32

そして、STマイクロのST-LINK Utilityです。(多分OpenOCDとかでも出来ると思うけど)

手順は簡単、ST-LINK Utilityを使用し、STM32F4 Discoveryに「TinyBooter.hex」を焼きます。で、STM32F4 DiscoveryのmicroUSB側をPCに差し込むと、USBデバイスとして認識されるので、.NET Micro Frameのツールの「MFDeploy.exe」を実行し、「ER_CONFIG.hex」と「ER_FLASH.hex」を書き込みます。

単にこれだけです。

ではひとまず、「STM32F4BASE_Discovery4.zip」をダウンロードして展開し、VS2010で開きます。あとは、USBインターフェースを選択してデバッグ開始!

サクッと動作開始します。Debug.print()はUARTを繋がずともデバッグコンソールに出ますし、かなりとっつき良い感じでした。

vcs2010_netmf.JPG

IMG_20120831_062451.jpg

ちなみに、このTinyCLRのリリースをされているMountaineer GroupのサイトにNETMF for STMの資料が上がっているので見てみますと、
http://www.mountaineer.org/netmf-for-stm32/
そもそもNetduino Goで使用されているFrameworkでもあるわけですね。

でSTM32F4のハード機能をNETMF for STMからどれだけ叩けるか?ですが、HALの解説項目読むと、既に多くのハード機能と繋がってくれているようです。USBとEthernetはまだ拡張が必要のようですが。

ちなみに実機との接続ですが、MacOSX上のVMware Fusionで動作しているWin7 64ビット版では接続に失敗ばかりしていました(VC#では「配置エラー」とか)。
WinXP 32ビット版ではあっさり認識されました。接続系のエラーに悩まされる場合、他のPC環境を試してみる価値はあるかもしれません。

STM32マイコン徹底入門 (TECH I Processor)
川内 康雄
CQ出版
売り上げランキング: 10103




Netduino(Arduinoピンコンパチ.NETマイコンボード)
Secret Labs LLC
売り上げランキング: 67924



posted by いしいっち at 07:17| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。