2016年09月23日

MashupAwards2016キックオフイベント参加

先日、9/19(月)に東京三田の建築会館で開催されました、
「MashupAwards2016キックオフイベント」に参加してきました。

ProjectionBallについて
ライトニングトークさせて頂きました。

雨にも関わらず、
大勢の方が参加されており、
他の開発者の方と色々交流することができました。

IMG_3754_.jpg

当日の内容について記事になりましたので、
こちらでも共有させて頂きます。

MashupAwardsはWeb系がメインという印象はありますが、
最近はIoTがらみもあり、
必ずしもWebだけではないので、
Makersな方もイベントやAwardsに応募してみては如何でしょうか。





posted by Crescent at 00:00| Comment(0) | TrackBack(0) | イベント | このブログの読者になる | 更新情報をチェックする

2016年09月15日

UART設定とPrintf

STM32で使用可能な開発環境の1つのSW4STM32を使用して、
Nucleoボード版STM32F303K8のUartについて、
戸惑った点含めて備忘録として軽くまとめます。


STM32CubeMXでUART1を有効にして、
ボーレートを9600で自動でコードを生成したコードを使用。
ライブラリはHAL。

ここで注意!
自動生成する際のUart設定のWord Lengthで初期値がなぜか7bit!!

これに気付かず、なぜかUartが文字化けるという不具合に遭遇。
クロック系やボーレートがおかしいのかと色々調査したところ、
オシロスコープで確認するとビットが欠けていることを発見!

結局、Word Lengthを8bitにするとビット欠けずにUARTの送信ができました。
7bitなんて普通では使わないので、なぜデフォルトが7bitなのか不明。
不親切だなあと思いました。


UART送信ができると、
次にやりたいのはPrintf。


メイン関数内で
色々宣言するとUARTに出力できるとかできないとか...
「STM32 printf」で検索するといろいろなやり方が出てきて、
古いやり方だったり、環境が違ったりとうまくできない感じでした。

#ifdef __GNUC__
 /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
    set to 'Yes') calls __io_putchar() */
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
を宣言するとかしないとか。上記のやり方はうまくいかなかった。


当方のSW4STM32とHAL、STM32CubeMXという環境では、
下記の関数をmain関数の手前で宣言することで、
UART1へ出力されることを確認しました。

int _write( int file, char *ptr, int len )
{
   HAL_UART_Transmit(&huart1, (uint8_t*)&ptr, len, 1000);
  return len;
}
他にももっとよいやり方があったら教えてください。


STM32やARM系の場合、開発環境やコンパイラの組み合わせが1種類ではないため、
なかなかGoogle先生に聞いてもジャストな回答を得られないのが難点ですね。

posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2016年09月10日

Lチカできない原因

STM32で使用可能な開発環境の1つのSW4STM32を使用して、
Nucleoボード版STM32F303K8のLチカから始めようとしたが...


普通は数時間もかからずにLチカできるはずが、
何時間もLチカに時間がかかってしまいました。


結論から先に言うと
「設定ツールやファームのバージョンは同時期のものを使用する」
ということです。


STM32の設定を簡単に実現する
STM32CubeMXを使用して生成したコードでSW4STM32でコンパイル、
DebugするとLチカも何も起こらず...

Debugを停止するとなぜか「b    Infinite_Loop」という場所で停止し、
This is the code that gets called when the processor receives an unexpected interrupt.
という説明がありました。
つまり、処理しきれない何かが発生した例外のようです。


その例外がなぜ発生するのか、分からず色々試行錯誤。

そして、STM32CubeMXで生成したコードを使用せずに、
SW4STM32で新規作成でLチカすると問題なく、Lチカできることが判明。

原因はSTM32CubeMXにありそうと、
バージョン確認したところ、ファームのバージョンが古いものになっていました。

最新にアップするとSTM32CubeMXでもLチカできました...

IMG_3735.JPG

設定ツールやファームのバージョンは同時期のものを使用するというのは鉄則ですね。
Lチカでここまで苦労したのは初めてです笑


posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2016年09月05日

レーザー距離センサ

最近、ばたばたでモノづくりから少しご無沙汰気味です。
これから少しずつモノづくりを再開します!


まずは話題のレーザー距離センサを購入してみました。

IMG_3732_.jpg

Pololuなどからもモジュールとして販売されていますが、
実はST純正の評価用基板の方が2個で2千円でした。
ST純正にもレベル変換IC等がついています。
1パック購入したら2つ入ってたというオチです。
ST純正の方がお得感あります笑


ArduinoのライブラリはPololuから公開されているようですが、
mbedのライブラリは検索で引っかかるもののリンク切れで
STからDLできるコードを書き換えて対応することになりました。


性能の評価はこれから・・・


一旦クラウドファンディングが落ち着いたので、
ProjectionBallの次世代機の開発と、イベント参加、
次のモーションコントロール系のデバイス開発を開始する予定です。


ペリフェラルのリマッパブルピンの一部が入力だけに変更されててるなど
dsPIC33Eの出来にがっかりしてしまったので、
あとPIC系からSTM32系への移行なども少しずつやる予定。
時代は良くも悪くもARMですね。

続きを読む
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2016年08月18日

NT東京イベント参加

今年はMakerFairTokyoには出展しませんでしたが、
先日、8月7日に秋葉原mograにて開催されました、
NT東京にProjectionBallを展示させて頂きました。



FullSizeRender.jpg


クラブイベントx ガジェットという感じで両方好きなので倍、楽しめました。

fabcrossに
として高須さんの記事でProjectionBallをご紹介頂きましたので
こちらで紹介させていただきます。


また、来年も楽しみにしています!



posted by Crescent at 00:00| Comment(0) | TrackBack(0) | イベント | このブログの読者になる | 更新情報をチェックする