2014年、最後の投稿です。
2014年はありがとうございました。今年もブログを更新し続けることができました。
2015年もよろしくお願いしますm(__)m
今年はこの記事も含めて 59 の記事を投稿しました。
2012年が 66 、2013年は 76 だったので、今年はちょっと少なめでしたが、週1回分は更新できたので来年も継続していきたいです。
投稿内容としては、今年も例年どおり テスティングフレームワーク・Jenkins が多かった気がします。
それ以外だと、CI 系(Jenkins を除く)の記事を今年は多く書いたかなと思います。
あとは、Arduino 。読み返していて気づきましたが、イーサネットシールドは今年の始めに買っていたんですねー
回路図も簡単に書けるようになり、Visual Studio での開発環境も整って、あとは作るだけっ!
来年は Arduino のことをもっと書けるといいな~
それでは、良いお年を~
2014年12月26日金曜日
2014年12月16日火曜日
[Arduino] Visual Studio で Arduino 開発環境を構築する
Arduino いじりを再開しました。
改めて公式の IDE が微妙だなと感じたので、Visual Studio で Arduino 開発ができるようにしてみました。
Arduino for Visual Studio and Atmel Studio 拡張機能
まさに!な拡張機能があります。
ページの右側、Information のところに Download リンクがあるので、そこをクリックするとインストーラーをダウンロードできます。
ダウンロードできたら、インストールします。
次に、Visual Studio を起動すると、Visual Micro のライセンスダイアログが出ます。
基本機能は無料で使えるのですが、一部機能は有償になってます。
30日間トライアル版が付いていたのでとりあえず使ってみました。
今すぐ使いたくない場合はキャンセルしておきましょう。
続いて、Config ダイアログが開くので、使っている Arduino IDE のバージョンとパスを設定します。

設定は以上です。

ダイアログが出るので、プロジェクト名を入力して OK ボタンを押します。
スケルトンが作成されるので、あとはコードを書くだけです。


転送する際は、ツールバーに Arduino のバーがあるので、
そこでデバイスの種類と COM ポートを選択しておいてください。
設定ができたら後は Ctrl + F5 をするだけです。
ツールバーのシリアルモニターのボタンを押すとウィンドウがでてきます。あとは、ボーレートを適切に設定するだけです。


ブレークポイントを置けたりします。
※ デバッグ機能は有償です。(試用期間あり)
しかも、基本機能は無料で使うことができます。
デバッグ機能が有償ですが、なくても問題にはならないでしょう。
とはいえ、Student or Hobby License なら手の出る価格ですので、機能次第では買ってもよいかもしれません。
有償機能は時間があるときに調べてみようと思います。
拡張機能が無料になったので、すべて無料の範囲で環境を整えられるようになりました。
というわけで、
Visual Studio Community 2013 + Arduino for Visual Studio and Atmel Studio 拡張機能
はかなりオススメです。
当初の予定では、コマンドラインツール + Makefile プロジェクトについても書くつもりだったのですが、転送の部分で躓いているので今回は省きました。
コマンドラインツールでもできるようになったら、またブログに書きたいと思います。
というわけで、まだしばらくは環境構築してると思います。
(でも、ホントにそろそろ再開したいですねぇ…)
改めて公式の IDE が微妙だなと感じたので、Visual Studio で Arduino 開発ができるようにしてみました。
拡張機能を使って構築
参考にしたのはこちら。Arduino for Visual Studio and Atmel Studio 拡張機能
まさに!な拡張機能があります。
ダウンロード・インストール
今すぐ入手ボタンを押すとダウンロードページが開きます。ページの右側、Information のところに Download リンクがあるので、そこをクリックするとインストーラーをダウンロードできます。
ダウンロードできたら、インストールします。
次に、Visual Studio を起動すると、Visual Micro のライセンスダイアログが出ます。
基本機能は無料で使えるのですが、一部機能は有償になってます。
30日間トライアル版が付いていたのでとりあえず使ってみました。
今すぐ使いたくない場合はキャンセルしておきましょう。
続いて、Config ダイアログが開くので、使っている Arduino IDE のバージョンとパスを設定します。

設定は以上です。
プロジェクトの作成
メニューの「ファイル(&F)」>「新規作成(&N)」に「Sketch Project」があるので、クリック。
ダイアログが出るので、プロジェクト名を入力して OK ボタンを押します。
スケルトンが作成されるので、あとはコードを書くだけです。

ビルド・転送
ビルドは F7 押すだけです。
転送する際は、ツールバーに Arduino のバーがあるので、
そこでデバイスの種類と COM ポートを選択しておいてください。
設定ができたら後は Ctrl + F5 をするだけです。
シリアルモニター
Arduino IDE と同様にシリアルモニターが使用できます。ツールバーのシリアルモニターのボタンを押すとウィンドウがでてきます。あとは、ボーレートを適切に設定するだけです。

デバッグ
デバッグ機能については、公式のドキュメントを御覧ください。ブレークポイントを置けたりします。
※ デバッグ機能は有償です。(試用期間あり)
まとめ
Arduino for Visual Studio and Atmel Studio 拡張機能は、すごく便利でした。やはり、Visual Studio でコーディングできるのがとてもイイです。しかも、基本機能は無料で使うことができます。
デバッグ機能が有償ですが、なくても問題にはならないでしょう。
とはいえ、Student or Hobby License なら手の出る価格ですので、機能次第では買ってもよいかもしれません。
有償機能は時間があるときに調べてみようと思います。
拡張機能が無料になったので、すべて無料の範囲で環境を整えられるようになりました。
というわけで、
Visual Studio Community 2013 + Arduino for Visual Studio and Atmel Studio 拡張機能
はかなりオススメです。
最後に
この記事を書き始めたのが 10月 くらいなので、それから環境構築するだけで Arduino には全く触れず…当初の予定では、コマンドラインツール + Makefile プロジェクトについても書くつもりだったのですが、転送の部分で躓いているので今回は省きました。
コマンドラインツールでもできるようになったら、またブログに書きたいと思います。
というわけで、まだしばらくは環境構築してると思います。
(でも、ホントにそろそろ再開したいですねぇ…)
2014年12月10日水曜日
iutest 開発で利用している無料ツールやサービス
今回は iutest の開発で利用しているツールやサービスを紹介したいと思います。
iutest の開発は「できるだけ無料の範囲でやる」というのもテーマの1つでもありますので、
紹介するものも基本的に無料で使えます。

iutest は主に SourceForge.JP で開発しています。
バージョン管理には Subversion を使用。
また、マイルストーンごとのリリースもこちらでしています。


github にもコードをアップしています。
やはり、コミュニティの強みがあるのかなと思います。
基本的には、github の方は SourceForge.JP の svn での変更を半自動的に push しているだけです。
コミットメッセージがアレなのはすみません、手抜きです。


このへんは当然でしょう。

Visual Studio Express や Visual Studio Community を使用しています。

Wandbox はオンラインコンパイラーです。gcc や clang の様々なバージョンでコンパイルできます。
このへんは C++ Advent Calendar 2014 でも書いたのでそちらをご覧ください。
ブログズミ: Shippable + Wandbox で C++ の CI 環境構築

Jenkins は CI ツールの定番ですね。
ローカルマシーンで稼働中です。
ただ、こちらは常時起動しているわけではなく、github に push するときとか、テストを実行するときに起動しています。
以前は、Cloudbees の Jenkins の無料プランを使っていたのですが、今は使っていません。
理由としては無料プラン内で収まらなくなったことと、メンテナンスがめんどくさくなったからです。
Jenkins は設定とかのメンテナンスが面倒だなー思うことが多々あります…そのへんはなんとかしたいですが…
(会社だとビルド処理はすべて外部ファイルに書いて git で管理してます)
最終的には、サービス体系が変わったのを機に使わなくなりました。
とはいえ、Jenkins は便利なので OpenShift 上で動かしています。(あまり使ってないけど)

Travis-CI では、gcc/clang でのテスト、fused-src を使ってのテスト、カバレッジ計測、Coverity Scan のためのテストが走っています。
iutest のテストの主だった部分がこちらで行われています。


Drone.io は C++ がサポートされた CI サービスの1つです。
特徴としては、他の CI サービスが yml ファイルに処理を記述するのに対し、Drone.io では Jenkins のように Web ページ上で管理します。
設定が公開されないのがメリットになると思います。
iutest では、コンパイル速度の計測を行っています。
(あまり意味があるのか微妙だが、)コンパイル速度を意識して修正する場合に、こちらの数値を基準にしています。


Shippable も CI サービスの1つです。
こちらは C++ がサポート言語にありませんが、Wandbox を利用してコンパイルと実行テストをしています。
詳しいことは C++ Advent Calendar 2014 で書いたので、そちらを参考にしてください。
ブログズミ: Shippable + Wandbox で C++ の CI 環境構築
特徴としては、無料プランでプライベートリポジトリが使えるのと、github の他 bitbucket にも対応しています。
有料プランとの比較はこちらを参考にしてください。
https://www.shippable.com/pricing.html


wercker も CI サービスの1つです。
こちらはβ期間中ですが、無料で github/bitbucket のプライベートリポジトリが扱えます。
ただ、こちらも C++ がサポート言語にありません。
iutest では Shippable と同じように Wandbox を使ったコンパイルと実行テストをしています。


上記 CI サービスでは、Visual Studio が使えませんので、Visual Studio でのコンパイル・実行テストとしてVisual Studio Onlineを利用しています。
無料プランの場合、60分/月の制限があります。
iutest では制限を超えないように、1週間に1回、実行されるように設定しています。

Coveralls は計測したカバレッジの集計をし、推移や差分が見れるサービスです。
Travis などで gcov または lcov などで計測した結果を cpp-coveralls などのレポートツールを使って Coveralls と連携します。


無料の C++ 静的解析ツールといえば Cppcheck でしょう。
ローカルの Jenkins で実行しています。
導入当初はお世話になりましたが、現在はお世話になることがほぼなくなりました。

Cppcheck よりも高度な静的解析ツールとして Coverity Scan を利用しています。
Coverity 自体は有償ツールなのですが、Coverity Scan はオープンソースであれば無料で使えます。
iutest でもリリース前にチェックするようにしています。

OpenShift は Red Hat が提供する PaaS です。
簡単操作で Jenkins や Redmine などが使えます。
Jenkins でのテスト環境は作ってありますが、今はそんなに使ってません。

Jenkins の項でも書きましたが、以前は CloudBees の Jenkins を使っていました。
久しぶりにログインしたら Enterprise Trial というプランがあったので、また試してみようかなーと思ってます。
iutest の開発は「できるだけ無料の範囲でやる」というのもテーマの1つでもありますので、
紹介するものも基本的に無料で使えます。
コードホスティングサービス
SourceForge.JP
iutest は主に SourceForge.JP で開発しています。
バージョン管理には Subversion を使用。
また、マイルストーンごとのリリースもこちらでしています。
追記: OSDN に名称が変わりました
Github


github にもコードをアップしています。
やはり、コミュニティの強みがあるのかなと思います。
基本的には、github の方は SourceForge.JP の svn での変更を半自動的に push しているだけです。
コミットメッセージがアレなのはすみません、手抜きです。
コンパイラー・IDE
gcc/clang


このへんは当然でしょう。
Visual Studio

Visual Studio Express や Visual Studio Community を使用しています。
Wandbox
Wandbox はオンラインコンパイラーです。gcc や clang の様々なバージョンでコンパイルできます。
このへんは C++ Advent Calendar 2014 でも書いたのでそちらをご覧ください。
ブログズミ: Shippable + Wandbox で C++ の CI 環境構築
CI
Jenkins

Jenkins は CI ツールの定番ですね。
ローカルマシーンで稼働中です。
ただ、こちらは常時起動しているわけではなく、github に push するときとか、テストを実行するときに起動しています。
以前は、Cloudbees の Jenkins の無料プランを使っていたのですが、今は使っていません。
理由としては無料プラン内で収まらなくなったことと、メンテナンスがめんどくさくなったからです。
Jenkins は設定とかのメンテナンスが面倒だなー思うことが多々あります…そのへんはなんとかしたいですが…
(会社だとビルド処理はすべて外部ファイルに書いて git で管理してます)
最終的には、サービス体系が変わったのを機に使わなくなりました。
とはいえ、Jenkins は便利なので OpenShift 上で動かしています。(あまり使ってないけど)
Travis-CI

Travis-CI では、gcc/clang でのテスト、fused-src を使ってのテスト、カバレッジ計測、Coverity Scan のためのテストが走っています。
iutest のテストの主だった部分がこちらで行われています。
Drone.io
Drone.io は C++ がサポートされた CI サービスの1つです。
特徴としては、他の CI サービスが yml ファイルに処理を記述するのに対し、Drone.io では Jenkins のように Web ページ上で管理します。
設定が公開されないのがメリットになると思います。
iutest では、コンパイル速度の計測を行っています。
(あまり意味があるのか微妙だが、)コンパイル速度を意識して修正する場合に、こちらの数値を基準にしています。

Shippalbe

Shippable も CI サービスの1つです。
こちらは C++ がサポート言語にありませんが、Wandbox を利用してコンパイルと実行テストをしています。
詳しいことは C++ Advent Calendar 2014 で書いたので、そちらを参考にしてください。
ブログズミ: Shippable + Wandbox で C++ の CI 環境構築
特徴としては、無料プランでプライベートリポジトリが使えるのと、github の他 bitbucket にも対応しています。
有料プランとの比較はこちらを参考にしてください。
https://www.shippable.com/pricing.html
wercker

wercker も CI サービスの1つです。
こちらはβ期間中ですが、無料で github/bitbucket のプライベートリポジトリが扱えます。
ただ、こちらも C++ がサポート言語にありません。
iutest では Shippable と同じように Wandbox を使ったコンパイルと実行テストをしています。
Visual Studio Online
上記 CI サービスでは、Visual Studio が使えませんので、Visual Studio でのコンパイル・実行テストとしてVisual Studio Onlineを利用しています。
無料プランの場合、60分/月の制限があります。
iutest では制限を超えないように、1週間に1回、実行されるように設定しています。
静的解析・カバレッジ
Coveralls
Coveralls は計測したカバレッジの集計をし、推移や差分が見れるサービスです。
Travis などで gcov または lcov などで計測した結果を cpp-coveralls などのレポートツールを使って Coveralls と連携します。

Cppcheck
無料の C++ 静的解析ツールといえば Cppcheck でしょう。
ローカルの Jenkins で実行しています。
導入当初はお世話になりましたが、現在はお世話になることがほぼなくなりました。
Coverity Scan

Cppcheck よりも高度な静的解析ツールとして Coverity Scan を利用しています。
Coverity 自体は有償ツールなのですが、Coverity Scan はオープンソースであれば無料で使えます。
iutest でもリリース前にチェックするようにしています。
その他
OpenShift
OpenShift は Red Hat が提供する PaaS です。
簡単操作で Jenkins や Redmine などが使えます。
Jenkins でのテスト環境は作ってありますが、今はそんなに使ってません。
CloudBees

Jenkins の項でも書きましたが、以前は CloudBees の Jenkins を使っていました。
久しぶりにログインしたら Enterprise Trial というプランがあったので、また試してみようかなーと思ってます。
登録:
投稿 (Atom)