GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
GR-MANGOを使用しています。ご存知の方がおられましたら教えていただけますと幸いです。
下記のライブラリを試してみたのですが、いずれも指定した色で点灯しなかったり色が点滅したりしてしまいました。
https://os.mbed.com/users/MightyPork/code/NeoPixel//file/a81364d9a67b/neopixel.h/
https://os.mbed.com/teams/FCLabOvGU/code/NeoPixel/file/037882a8e193/neopixel.cpp/
PINも P2_3,PD_4,P4_3など色々変えて試してみましたがいずれも同じような症状でした。
Arduino環境での正常動作は確認済です。
やりたいことはオムロンのセンサーに合わせて4x4のNeoPixelを光らせたいだけなので、
clear(),setColor(),show()があれば十分です。
よろしくお願いいたします。
まだお探しでしょうか?下記を使ってみてください。https://os.mbed.com/users/kenjiArai/code/WS2812_out_of_specification_demo/先ほど、Mbedへの公開を始めました。
Mbed Studio 0.9.1でコンパイルして、8x8タイプのモジュールにて動作確認しました。使用したモジュールは下記です。https://www.amazon.co.jp/gp/product/B074Z221XV/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1
実は、以前から作成し使用していたライブラリ(未公開)をGR-MANGOで試したのですが、やはりうまく動作しませんでした。上記ELIXさんのリンク先ライブラリと同様にNOPで時間稼ぎしながら400nS/800nsのパルス出力を出すタイプでしたが、うまく時間が保てません。多分、キャッシュやコンパイラの最適化などが問題なのかも知れませんが、根本原因は調査していません。他のMbedボードでは動作確認済です。
そこで、NOP時間稼ぎ方式からクロック依存しない方式を探したところ、今回公開の基礎となるSPI利用に行きつきました。https://os.mbed.com/users/chris/code/ChrisRGB-Ring/8MHzクロックと4bitデータで最適化できるのですが、WS2812仕様書の時間規定の規格外となります。動作は安定していますが、時間規定違反であることには留意願います。STM32では、SPI出力が4bitにできるのですが、GR-MANGOは8bit(他に16/32bit)しか選択できないこと、8MHz設定で8.2MHz程度となるので、クロックを低下させています。またSTM32では、SPIのMOSIのみにしてMISOとSCLKをNCとするとエラーが発生するので、仕方なくSPI3本線を使用し、実際にはMOSIしか使用しません。GR-MANGOはNCを設定してもエラーとなりませんので、一本だけ占有します。下記にデモ画像を保存しました。https://onedrive.live.com/?id=E726C1E354E854B2%211418303&cid=E726C1E354E854B2
ELIXさんリンク先は、Mbedオンライン用と言うことでmbed-os5.15.1の最新revisionに限定しています。従ってそのままだとGR-MANGOではコンパイルできません。一番簡単と思われる方法を提案しますので、試してみてください。
1)[Mbed StudioインストールからGR-MANGO Lチカまで]を参考に、rz_a2m_mbed_samplesのいずれかのプログラムをコンパイルしてGR-MANGOで動作することを確認(ELIXさんは終了済と思われる)2)rz_a2m_mbed_samplesのソースファイルが自分のPCのどこに存在するかを確認して置く(Workspaceの場所限定)3)WS2812_out_of_specification_demoのMbed Studioへのimportの実施(ELIXさんは終了済と思われる)4)import完了後に一度Mbed Studioを終了します。そしてエクスプローラーでWorkspaceを開き、少なくてもrz_a2m_mbed_samplesとWS2812_out_of_specification_demoが存在することを確認します5)WS2812_out_of_specification_demo内のcheck_revision.cppを削除してください(このファイルは、GR-MANGOではコンパイラエラーとなるため)6)1GBあるmbed-osも削除(mbed-os5.15.1ではGR-MANGOが選択できない)してください7)z_a2m_mbed_samples内のmbed-osをWS2812_out_of_specification_demo内にコピーします(z_a2m_mbed_samples内のGR-MANGOが動作するrevisionを利用)8)Mbed Studioを起動し、WS2812_out_of_specification_demoを[Set Active Program]に設定し、GR-MANGOを選択し、コンパイル
何かあれば追加質問してください。
追加情報です。Mbed Studioが0.9.1にアップデートされたので、下記のようにGR-MANGOが接続されているとUSBマークとシリアルナンバーが表示されます。この状態であれば、[Run Program]のボタン操作で、コンパイルが上手くいってbinファイルが出来れば自動書き込みが行われます。その後、GR-MANGOのRESETボタン操作で動作開始します。
操作が少なくなりました。ところで、他のMbedボードではプログラム書き込み後にRESETボタン操作しなくても自動起動します。GR-MANGOのDAPLinkは、その機能が無いように思われます。
KenjiAraiさん
丁寧な解説ありがとうございます。
1)ー5)までを確認&行いました。
WS2812_out_of_specification_demoは
RZ_A2M_Mbed_samplesフォルダの中にあります。
WS2812_out_of_specification_demo内にmbed-osフォルダはなかったのですが、一応
RZ_A2M_Mbed_samplesフォルダからWS2812_out_of_specification_demo内にもコピーしました
8)Mbed Studioを起動し、WS2812_out_of_specification_demoを[Set Active Program]に設定し、GR-MANGOを選択し、コンパイル
ですが、
・GR-MANGOが選べません
・右クリックしても[Set Active Program]が項目にありません
といった感じです。
RZ_A2M_Mbed_samplesフォルダ内のmbed-osフォルダがすでにアップデートされてしまっているのかもしれません。
以上、ひとまず現状のご報告となります。引き続き調べてみます。
ELIXさんWorkspaceの内容が違いますね。先ず、RZ_A2M_Mbed_samplesの中にWS2812_out_of_specification_demoがあってはいけません。またmbed-osがアップデートされてしまっている可能性もありますね。次を提案します。
1)Mbed Studioが0.9.1になっていることを確認願いますMbed Studio→[Help]→[About Mbed Studio]でVersion確認出来ます2)今までのフォルダーを保存するために、別フォルダを作成することをお勧めします(従来のフォルダは将来消去するにしても)例えば、今までのフォルダと同列に[mbed_wrk_for_GR_MANGO]のような空のフォルダを作成します3)Mbed Studioを立上げて、Mbed Studio→[Help]→[Getting Started]で、新しい画面を開き、[Open Workspace]を選択し作成した空のフォルダ[mbed_wrk_for_GR_MANGO]を選択します4)すると画面が再起動のような動きをしてStudio内のフォルダには何も表示されなくなります5)os.mbed.com/.../をImportして下さい(Mbed Studio→[File]→[Import program])6)折角importしましたが、次の二つのファイルを削除願いますcheck_revision.cppファイルは、ハイライトして右クリックするとDeleteで消去できますmbed-osは、下記のようにマイナスのボタンで消去できます
7)github.com/.../mbed-osの加藤さんのmbed-osをimportしますその際に、下記を選択してください先ず+でImportを選択、上記リンクを入力、revisionを間違いなく画面の内容に合わせる
8)くどいですが、下記を確認願います
9)これでTargetにGR_MANGOが選択できると思います10)GR-MANGOボードを接続してUSBマークとシリアル番号が表示されれば準備OKですこれが見えれば、再生ボタンのような右向き▷でコンパイルと書き込みが行えます
KenjiArai さん
ありがとうございました!無事動作を確認いたしました。
以下作業ログおよび質問です。
1)Mbed Studioが0.9.1になっていることを確認しました(Mac)
2)別フォルダ[mbed_wrk_for_GR_MANGO]を作成
3)Mbed Studioを立上げて、Mbed Studio→[Help]→[Getting Started]
・New Programをするとフォルダが選べなかったので
ひとまずOpen Workspaceで[mbed_wrk_for_GR_MANGO]を選択
・10分経っても初期画面のままフォルダ内も変化なしだったので一旦終了
・NewProgramでProgramNameをmbed_wrk_for_GR_MANGOで作成
・すると2)で作ったフォルダ内に[mbed_wrk_for_GR_MANGO]が作られ
そこにワークスペースが構築されました
5)os.mbed.com/.../をImport([File]→[Import program])
6)check_revision.cpp,mbed-oを削除
7)Librariesタブで+>上記リンクを入力、revisionを合わせる
8)Mbed-os feature_RZA2_base5.12.4を確認
9)TargetにGR_MANGOを選択
10)ビルドして[Run Program]で自動書き込み
11)リセットを押して今までのプログラム(シリアル出力)が消えたのを確認
12)GPIO10,5V,GNDにネオピクセルを繋いでカラフルに光るのを確認
どうもありがとうございました!
最後に一つだけ質問させてください。
今回の手順で行ったフォルダ構成は下記のようになっています。あっていますでしょうか?
良かったです。3)の説明不足が混乱を招いたようです。修正して置きました。ファイル構成は、NewProgramでフォルダを作成してしまった為に、この部分が不要と思われます。[mbed_wrk_for_GR_MANGO]内の[mbed_wrk_for_GR_MANGO]は空だと思われます。確認して削除したらいかがでしょうか?8x8=64に対して、4x4=16で先ずはバッファの整合性をとってみてください。GitHubで公開すれば、修正の手間が省けたのですが、あくまでMbedコミュニティ優先でしたので、ご理解願います。とは言っても、FRDM-K64やnRF52-DKなどもトライしましたが、動作しませんでした。GR-PEACHとGR-LYCHEEでは動作します。
KenjiAraiさんありがとうございます。
[mbed_wrk_for_GR_MANGO]内の[mbed_wrk_for_GR_MANGO]には
mbed-osや空ループのmain.cppなどが入っていましたが、
MbedStudio上からフォルダをdeleteしても問題ありませんでした。
またWS2812_BUFを16に、NUM_LEDS_PER_COLORを4にして試してみました。
きれいに動作しました。16LEDsのネオピクリングで試すとクルクル回って綺麗でした。