「Easy MCUser Ver.2.0β1」のリリースに向けて活動中

【お知らせ】
年明け早々に「Easy MCUser Ver. 2.0β1」をリリースする予定です。
今回のリリースは、RaspberryPi 版ベータ1版として不具合の改善と同時に新たな機能を追加しました。改善された機能と追加された機能を以下に示します。

・RaspberryPi と接続する際、マスター MCU を不要にする改善
・RaspberryPi から avrdude を使ってAVRに書き込みょする際に発生した不具合の改善
・I2C 機能の搭載
・関数の開始と終了定義をする機能の追加
・AVRMC ファームウェア・マニュアルの改定とアップロード

中でも、RaspberryPi との接続形態で今まで必要であったマスターMCU(mbed マイコン・ボード)がいらなくなり、シンプルに AVR マイコンを最大8台接続出来る様になった事でシステムのコストも構築にかかる工数も低減出来て良かったと思います。

興味をお持ち頂いた方は、ダウンロードのページから2017年3月まで使用可能なβ版の Mac版、Windows版、RaspberryPi版の圧縮ファイルをダウンロードして下さい。

宜しくお願い致します。

スクリーンショット 2016-02-15 21.09.37


RaspberryPi3 で シェル上から GPIO 機能を制御する方法

【情報】
今日は、RaspberryPi3 GPIO の制御を XOJO からシェル・コマンドで実行する方法を紹介をしたいと思います。

◎まず始めに、「
wiringPi」をインストールします
https://tool-lab.com/2013/12/raspi-gpio-controlling-command-2/
http://wiringpi.com/download-and-install/

sudo apt-get install libi2c-dev
sudo apt-get install i2c-tools
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

◎「wiringPi」が正常に動作しているか確認します(表がテキストで表示されたらOK。)
gpio readall

スクリーンショット 2016-12-23 06.59.10


GPIO13(Physical 33 pin)を出力モードにする。
gpio -g mode 13 out

スクリーンショット 2016-12-23 07.01.53

GPIO1333 pin)をONにする。(Hight を出力)
gpio -g write 13 1


GPIO1333 pin)をOFFにする。(Low を出力)
gpio -g write 13 0

スクリーンショット 2016-12-23 07.40.50

"​gpio -g mode 13 out"
は、「GPIO 13」を出力モードに設定する・・・という意味。
"​gpio -g write 13 0"
は、「GPIO 13」へロジック・レベル・"Low"を出力するという意味。
上図の「BCM」という列に表示されている番号が「
GPIO」の番号になります。

下図はピンヘッダーですが、GPIO 番号で「BCM」の列で13となっているのが、「GPIO13」となります。
(大変参考になったURL :
http://elinux.org/File:Pi-GPIO-header.png
Pi-GPIO-header


動作が確認出来たら、次は
XOJO からシェル・コマンドを呼び出して実行してみます。


RaspberryPi 側の準備が出来たら、XOJO のソースコード中に以下の様なシェル呼び出しのためのコードを記述して実行します。
(下記は次期リリース予定の「Easy MCUser for RaspberryPi」のピン配置でスレーブMCU との接続に使用する予定の信号です。)


sh.Execute
("​gpio -g mode 5 out")             // CS_SLV_0
sh.Execute
("​gpio -g mode 6 out")             // CS_SLV_1
sh.Execute
("​gpio -g mode 13 out")           // CS_SLV_2
sh.Execute
("​gpio -g mode 19 out")           // CS_SLV_3
sh.Execute
("​gpio -g mode 26 out")           // CS_SLV_4
sh.Execute
("​gpio -g mode 12 out")           // CS_SLV_5
sh.Execute
("​gpio -g mode 16 out")           // CS_SLV_6
sh.Execute
("​gpio -g mode 20 out")           // CS_SLV_7  ​

sh.Execute
("​gpio -g write 5 0")             // CS_SLV_0
sh.Execute
("​gpio -g write 6 1")             // CS_SLV_1
sh.Execute
("​gpio -g write 13 1")           // CS_SLV_2
sh.Execute
("​gpio -g write 19 1")           // CS_SLV_3
sh.Execute
("​gpio -g write 26 1")           // CS_SLV_4
sh.Execute
("​gpio -g write 12 1")           // CS_SLV_5
sh.Execute
("​gpio -g write 16 1")           // CS_SLV_6
sh.Execute
("​gpio -g write 20 1")           // CS_SLV_7


サンプルコードを掲載します。(下記をクリックしてダウンロード出来ます。)

test_rp3_gpio_xojo.zip

XOJO のRaspberryPi デスクトップ・ライセンスをお持ちの方でもし興味がある方は、お試しください。(12/23/2016 追記)

(RaspberryPi デスクトップ・ライセンスは、ビルドした後でしか動作の確認が出来ないので、ライセンスをお持ちでない方は、XOJO の開発環境を開いて、どうやったら WiringPi を使ってシェルから GPIO を制御するのかの例を確認するところまでしか出来ません。ビルド済みのものも圧縮していますので、「test_rp3_gpio_xojo」フォルダーをそのままコピーして、コピーが完了したら、「test_rp3_gpio」のパーミッションを実行可能状態にして使用出来ます。
説明書は簡単なので添付していません。注意点としては、GPIO には、とりあえず何も繋がない状態で試してください。ピンの競合状態を避けるため。)


スクリーンショット 2016-12-23 07.49.11


【追加情報】
XOJO の内部コマンドで GPIO.XXXX というコマンドがありますが、これがなぜかうまく動作してくれません。。。なので、今回は「wiringPi」を使わせて頂き、RaspberryPi3 の GPIO を制御する様にしました。試行した事を以下に書き記しておきます。(いつか、役に立つ時のために)


XOJO側のコードで注意すべき点は、以下のコマンドを「Event Handlers」で一回だけ宣言するという事。

#if TargetLinux Then
GPIO.SetupGPIO
GPIO.DigitalWrite
(CS_SLV0, GPIO.ON)
#endif

コンパイル・ターゲットを記述して、「Linux ARM 32bit」がターゲットの時だけこのコードが動作する様にしてコンパイルを実施する。

#if TargetLinux Then



#endif

なぜか、これが NG でした。。。


また、XOJO の2016年リリース2.1から4.1 にアップデートしたところ、せっかく動作が早かった Windows 版のXOJO でコンパイルしたソフトが、デグレードされていて、描画がからんでくる動作は速度が低下しています。ディスプレーの高解像度化に対応したという事が原因というか理由なのかもしれませんが、体感速度で数倍以上は違ってくるので、GUI で処理中のデータの推移などを表示するアプリを作成される方でXOJO をアップデートされる方は、要注意です。(もう少し、頑張って欲しい、、XOJO。。。)

良い事もあるので、これも掲載します。RaspberryPi のデスクトップ・アプリをビルドされる方にとっては、ビルドにかかる時間が大幅に短縮されています。ちなみに、本サイトで掲載させて頂いている「Easy MCUser」のRaspberryPi 版のビルドにかかる時間は、XOJO の2016年リリース2.1では約30分近くかかっていましたが、XOJO の2016年リリース4.1にアップデートしたところ、1分ちょっとで完了する様になりました。


スクリーンショット 2016-02-15 21.09.37

「gantter」の「リソースの自動階層化」機能の使い方

【情報】
今日は、「gantter」の大変優れた機能である、リソースの競合が発生した時に競合を回避する機能(「リソースの自動階層化」)について具体的に紹介をしたいと思います。


まず、下図の様な簡単なプロジェクトを想定して入力してみます。
例題となるプロジェクトは1つのプロジェクトをコピー&ペーストして1つのプロジェクトの中に3つの異なるプロジェクトとして見立てガントチャートを作成したものです。3つのプロジェクトは、全く同じ
タスクを持っていて、それぞれのプロジェクトは同じ種類のタスクに同じリソースが割り当てられている状態となっています。このままではリソースが競合して、スケジュールは絵に描いた餅となってしまいます。

Pasted Graphic 5



そこで登場するのが「リソースの階層化」機能です。この機能は、タスク番号の若い順に自動的にリソースが競合しているタスクをずらしてくれます。しかも、ボタン一つで。。。素晴らしい機能です。実際に実行してみた結果が下図になります。

Pasted Graphic 6

        

Pasted Graphic 7


この様に、リソースが競合しても競合を回避してくれる機能というのは無償のプロジェクト管理ツールでは珍しい機能であるといえます。(12/08/2016・現在)


まだ、Excel でプロジェクトの管理と報告をされている方は、ぜひこのツールを試してみては如何でしょうか。きっと、プロジェクトの管理と進捗の報告が楽になるものと思います。

スクリーンショット 2016-02-15 21.09.37

スケジュール管理ツールを選ぶ場合のポイント

【情報】
前回は、スケジュール管理ツールの中でも優れた無償のツールと言える、「Gantter」の持つ問題点の解決方法について書かせて頂きました。
今回は、スケジュール管理ツールを選ぶ上での選択基準について書かせて頂きます。訪問して頂いた方のお役に立てれば幸いです。

◎スケジュール管理ツールの比較項目
   導入のしやすさ
     導入コスト
     セキュリティー性が確保されているか
     導入までのユーザーがすべき設定は最小限か
   設定機能の充実度
     リソース個別休日(/稼働日)の設定が出来るか
     タスク開始条件の設定自由度が高いか(もっとも遅く開始など)
   スケジュール分析機能の充実度
     クリティカル・パスの確認がし易いか
     リソース競合の確認がし易いか
   チャートを作成する上での操作性
     前提タスクの設定がし易いか
     プロジェクトを跨いだタスク情報のコピー&ペーストが出来るか
     進捗度合いの入力がし易いか
     リソースの競合を回避する機能があるか
   運用性
     同時に幾つぐらいのプロジェクトの管理が可能か
     データの共有が出来るか
     データをローカルに保存出来るか
   報告資料として出力可能なものが揃っているか
     PNGファイル(Excelで見るのにも便利なため)
     CSVファイル(不足する機能を補うため)
     XMLファイル(不足する機能を補うため)

まず、初めに「導入のしやすさ」はとても大事だと思います。せっかく良いツールでも、ユーザー登録から始まって、ああでもないこうでもない…と設定を色々としなければならないツールは、それだけで敷居を高くしてしまいますし、使ってもらいたい人にも、受け入れがたくなってしまうと思います。ですので、立ち上げにかかる手数が極力少ない事が、大事です。

そして、ツールの使い勝手で一番効いてくるのが、スケジュールの登録と前提タスクの入力、そして調整といった一連の作業になると思います。この部分の使い勝手が悪いと、ツールを使うために仕事を増やしているといった事にもなりかねません。WBSの入力はある程度雛形があれば効率化が出来ますが、リソースの個別の稼働日(休日)の設定や、スケジュールが重なった時の改善は、とても面倒ではあり大事な作業になります。

最近の無償ツールがここまで出来る様になったのかと感心したのが、自動でリソースの競合を回避してくれる機能でした。これがあると無いとでは、複数のプロジェクトを管理する場合や中規模のプロジェクトを管理する上で効率がだいぶ違ってきます。リソースの競合とは、人間だけではありません。計測器や開発ツールも含まれます。シェアしなければならない物が多ければ多いほど、効率的な管理が難しくなってくるのは明らかです。プロジェクト管理ツールを新たに探していらっしゃる方には、このあたりを重点的に比較してみて頂ければと思います。

そういう事で、少しずつではありますが、イチ押して使い始めた「Gantter」についても情報発信を続けていこうとおもいますので宜しくお願いします。

Pasted Graphic 2


ちなみに、新たなツールを探して選定していた中で、最後まで残ったツールもご紹介したいと思います。


◎スケジュール管理ツールの候補
Cloud
上で動作するツールの例
Gantter(無料)
http://gantter.com
https://liginc.co.jp/web/tool/other-tool/85492
https://getsatisfaction.com/gantter/topics/gantter_and_google_security
https://gantter.com/privacy-statement/
Bravio(有料)
http://brabio.jp/
MS Porject(有料)
https://www.microsoft.com/ja-jp/project

ローカル上で動作するツール
Gantter(無料)
http://gantter.com
https://liginc.co.jp/web/tool/other-tool/85492
GanttPorject(無料)
http://www.ganttproject.biz/
MS Porject(有料)
https://www.microsoft.com/ja-jp/project

他にも色々とありますが、小〜中規模のプロジェクトには、やはり、「Gantter」がお勧めです。


下図は、当倶楽部(AVRMC)のトレードマークでマスコットの「ももんが」です。(
スケジュール管理ツールとは全く関係ありません。。。

スクリーンショット 2016-02-15 21.09.37

「gantter」でリソースの休日設定が変更出来ない問題の解決方法

【情報】
gantter」は、クラウド・サービスをベースにしたスケジュール管理ツールです。

プロジェクトの進捗管理をする上で大事な事の一つに「見える化」がありますが、進捗の状況がリアルタイムに反映されるという事がチームで製品の開発を実施しているとなかなか出来ないのも事実です。
私自身、10年ほど前から「Gantt Project」というツールを使っていましたが、ローカルで自分がまとめて進捗を入力するには問題が無いのですが、離れたところにいるプロジェクト・メンバーの進捗の入力や管理となると、少し不便なところがあり、何かほかにも良いものがないかなと探していたところ「gantter」と出会いました。
そこで試行も兼ねて「gantter」を使い始める事にしました。


Pasted Graphic 2


gantter」の良い点は、リソース毎に個別の休日を設定出来て、その休日がきちんとスケジュールの実働日数から除外されてガントチャートが自動生成されるところです。
しかしながら、一度設定した休日を取り消そうとしても取り消しが出来ないという問題がある事が分かりました。
例えば、下図の様に、20161228日~20161230日の間を個人で取得する休日に設定した後で、20161228日だけを休日から削除するとします。


Pasted Graphic


下図の様に稼働時間を入れれば、休日で無くなるはずが。。。

Pasted Graphic 1


休日を稼働日にするには、稼働時間を入力すれば良いはずですが、稼働時間を入力しても、保存して再度休日設定を確認すると全く変更が反映されていません。(
12/02/2016・現在)しかも、ネットで検索しても、解決策が見つかりません。。。

そこで今回ご紹介するのは、その問題を解決する方法です。


せっかく良いソフトウェアなのに、こんなちょっとしたところでつまずいて使うのをやめるのはもったいないという思いから、一度データをエクスポートしてそのデータを解析して直接いじってやる事を考えました。
gantter」はクラウド・サービスのソフトウェアですが、データをエクスポートしてローカルのディスクにプロジェクト・データを保存しておく事が可能です。データの形式としては「XML」がエクスポート出来ます。そのデータの中で、休日の設定部分を抜粋します。
テキスト・エディターで、休日指定を入力していない状態と、した状態で差分を抽出してみると、以下の様になりました。


Pasted Graphic


この部分が、設定画面で再設定しても反映されず、設定が変わらなかった部分になります。一度設定して変更が出来なかった休日の設定は、
の間の記述が一日分の休日設定内容となるので、この部分をカットして、今度はインポートしてやります。すると、余分に設定してしまった,又は、後から変更したい休日の取り消しが出来ました。もし、同様の事でお困りの方は、ぜひお試しください。

Pasted Graphic 3


今回は、まだ使い始めたばかりの「gantter」の使い方についての情報発信でしたが、次のステップとしては、役に立つ「WBS」のひな型を公開したいと考えています。


gantter」のホームページ
http://gantter.com/
http://gantter.com/help/review-critical-tasks/

大変参考になったURL
http://andoshota.com/2014/10/gantter/

スクリーンショット 2016-02-15 21.09.37