フォト
2018年12月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
無料ブログはココログ

« 2018年8月 | トップページ | 2018年10月 »

2018年9月の12件の記事

2018年9月26日 (水)

豊四季Tiny BASIC for Arduino STM32 での単音演奏

豊四季Tiny BASIC for Arduino STM32 のV0.86で追加した、
PLAYコマンドで「ハレ晴レユカイ」を演奏してみました。

Dscn8878

演奏の様子


MML文で使用ているデータは「主体性の無いページ」さん公開が公開しているものを利用しました。
・主体性の無いページ(http://astr.me.land.to/
    MML(http://astr.me.land.to/tool/mabi/)
     ハレ晴レユカイ!(http://astr.me.land.to/tool/mabi/mml/hareyukai.htm)


この曲はアニメ 「涼宮ハルヒの憂鬱」のエンディング曲です。
勝手に使わせて頂き申し訳ないので、宣伝を入れておきます。
(バナーをクリックすると、各サイトにジャンプします)

Banner_sp_haruhi

Fanclub

Banner_kyoani_haruhi

Banner_kyoani_haruhimov

MML文はマビノギMMLに対応しています(ただし同時に1音しか出せません)。
MML文中の頭に"?"を付けると音を出す都度MML文を表示するようにしました。

01


豊四季Tiny BASIC for Arduino STM32では、NTSC、OLED、TFT等色々とサポートしていますが、
今回は最小構成+圧電スピーカーのシリアルコンソール画面の構成を使っています。

Serialconsole

MML文の音の大きさ指定のV(ボリューム)命令は、PWMのパルス幅の大きさで簡易的に対応しました。
引数の0~15のうち、0~5くらいは強弱が聞いて分かるのですが、
6~15は違いが判りません。まあ、おまけ機能的なものということで勘弁して下さい。


ちなみに、V0.86では、シリアルコンソール画面上で全角文字(シフトJIS)に対応しました。

02

2018年9月25日 (火)

3Dプリンターでの試行錯誤 その2

3Dプリンタ利用の練習として、
以前製作した下の写真 「I2C接続 16x8ドット LEDマトリックス」のケースを製作してみました。

Dscn4264_2

Dscn4266_2

3D図形の作成はTinkercadにて行いました。
形状は単純なので、割と簡単に作成出来ました。

03

ここで、寸法は実際の寸法よりも、縦横0.4mmほど大きくしています。
試行錯誤の結果、ノズル幅分の約0.4mm小さくなることが分かり、その調整をしています。

データを、STL形式でエクスポートして3Dプリンタに読み込ませて出力開始、
1時間ほどで出力出来ました。

Dscn8857

寸法はドンピシャ、ジャストフィットで収まりました。
いい感じにできました。

Dscn8864

とりあえずIchigoJamで動作、問題無く動作しました。
基板剥き出しから一転して、ちょっとおしゃれな感じになりました。

Dscn8877

動作はこんな感じです。



3Dプリンタ、色々と活用出来そうです。

Google Chromeのデザインをもとに戻す

Google Chromeの新しいバージョン 69のデザインに違和感を感じていたのですが、
前のデザインに戻す方法があるのを知り、試してみました。

参考にしたサイト
orangeitems’s diary - Google Chrome 69 | 新デザインを戻す方法

前のデザインに戻りました。

01

当然、バージョンをレベルダウンした訳ではありません

02

これで、スッキリしました。

2018年9月23日 (日)

3Dプリンターでの試行錯誤 その1

3Dプリンター、購入したものの、右も左も分からない状況です。

困った時の「トラ技頼み」ということで、本棚を見ると
「特集 3Dプリンタでまるごと電子工作」ってな特集号を発見。
トランジスタ技術 2014年6月号」です。

Dscn8853

ちょっと内容が古いですが、今の私には「神号」でした。
必要なデータファイルSTLファイル、g-codeファイルついての解説や、
材料のフェラメントの種類、性質、加工に関する情報等、大変参考になりました。

Dscn8854

Dscn8855

トラ技を参考にして、まずはモデリング、
とりあえず、3Dのデザインはこの号で解説している
PTC Creo Elements /Direct Modeling Express」を使ってみました。

トラ技の解説に従て作図の練習と

06

ツールのビデオ解説付きのドキュメントを使っての作図練習をして、

05

ツールが使えるようになってました。
なかなか、良いツールです。

01_3

しかしこのツール無償なのですが、なんかアカウント登録後のライセンス認証が
上手くいきません。

07

ググってみても同様の症状の方がいるようですし、
利用している方の情報が少なすぎです。あっても最近ではなく数年前の情報。

せっかく使い慣れてきたのですが、このツールを継続して利用するのは無理っぽいです。

仕方がなく別のツールを模索。
トラ技同号に「Autodesk 123D Design」の使い方の解説もあったので、
「Autodesk 123D Design」をググってみると、このツールの公開は終了で、
ブラウザ上で利用出来る「Tinkercad」というツールに置き換わっていました。

とりあえず、「Tinkercad」利用のためのアカウント登録をして、早速利用してみました。

08

データを読み込んで表示

03

ブラウザ上で作成出来るのは結構すごい。

更にこの「Tinkercad」、Windowsアプリ版のあるようです。

09

インストールしてみました。

ブラウザ上で動くものとほとんど同じ見たいです。
データも共有出来るようです。

10

「Tinkercad」をちょっと使い込んでみることにします。

別途、Windows 10にも3D Builderという標準ソフトが入っているようです。
ちょっと使ってみました。

02

STLファイルを読み込んで表示出来ました。
こんなツールが標準で入っているとは知りませんでした。
このツールも使えそうです。

作図の方はなんとかなりそうです。
次に作成した図形から 
  作図 ⇒ STLファイル作成 ⇒ g-codeデータ作成 ⇒ 3Dプリント

の一連の作業をやってみました。

作図データは、CAD用データとして保存するとともに3Dプリンタ出力用に
STLファイルを作成する必要があります。

STLファイルからg-codeへの変換はCADソフトとは別のスライサと呼ばれるソフトで
変換します。

このSTLファイルはStandard Triangulated Languageの略で、
名前からも分かるように、3D図形を三角形だけで定義しています(ポリゴンみたいな感じ?)。

スライサも色々なソフトがあります。
とりあえず、3Dプリンタに添付の「Ultimaker Cura」というのを利用しました。
設定等がまだまだ理解不足です。

11

このソフトで出力品質、壁の厚さ、中身の密度(材料削減のためメッシュにしたり、空洞にしたり)、
転倒防止のためのスカートをつけたり指定できます。
この設定、色々と試してみないと加減がつかめないです。

ツールでは、完成に要する時間を見積もってくれます(この時は31分)。

スライサでは、STLファイルからg-codeファイルを作成します。
g-codeは工作機械用の標準的な定義ファイルのようで、3Dプリンタの場合、
中身を見るとX,Y,Zの座標とノズルからの材料送り出しの命令の羅列です。

とりあえずg-codeに変換して3Dプリンタに出力させてみました。
SDカードにg-codeファイルを保存し、3Dプリンタにセットして読み込ませます。
パソコンなしで自力で印刷してくれます。

Dscn8845

そして完成。
ほぼ見積もり時間の31分で完成しました。

薄いスカートが付いています。
このスカートの出力は、ノズル出力開始直後は先端に垂れた材料を吐き出し等の
出力の慣らし運転にもなるようです。

薄いスカートは簡単に取れます。

Dscn8852

一連の作業が分かりました。
これで、時間をかければ自分の欲しいものが製作できそうです。

しかしこの図形の作成(モデリング)は、結構大変そうです。

2018年9月20日 (木)

3Dプリンター Super Helper SH155を購入しました

先日、FabLab品川さんにて3Dプリンタについて色々と教えて頂き、
入門機 WINBO Super Helper SH155 を購入しました。

Dscn8824

早速、サンプルデータを出力してみました。

動いている様子です。


こんなのが出来ました。
時間は1時間弱かかりました。

Dscn8832

いい感じに出来ています。

Dscn8836

造形は値段の割には良いのではないでしょうか

Dscn8837

ちゃんとネジとして噛み合いました。

Dscn8838

う~ん、これは楽しい♪

Dscn8839

これから、色々と作れそうです。



関連情報

・3Dプリンタメーカー WINBOの公式サイト
https://www.winbo.top/

2018年9月18日 (火)

レーザーカッター初体験

先日、SNSにてお招き頂いたイベントに参加いたしました。
イベントの内容的には、「レーザーカッターで自作ポケコンのケースを作ろう」みたいな感じです。

お世話になった会場は、FabLab品川(ファブラボ品川)さんです。

Dscn8781

ファブラボ品川さんの公式サイト
https://fablab-shinagawa.org/

非会員、一見さんにもかかわらず、FabLab品川の濱中さんは
とても丁寧に解説・対応して頂きました。ありがとうございました。
イベントの製作よりも、現在のレーザーカッターや3Dプリンターの動向について色々と教えて
頂いたことの方が大きな収穫でした。

庶民に手が届く2、3万円の3Dプリンタの実用性には懐疑的だったのですが、
製作した実物(ボルトとナットがきっちと噛み合う)を見て、ホビーレベルでは
十分であることが分かりました。
しかも、ツールも進化していて、かなりお手軽にモデリング出来るこも教えて頂きました。

話を戻して、今回のイベントで作成したケースは
Maker fare Tokyo 2018にて「備中絡繰製造所」さんが展示されていた真ん中の作品です。

Dscn8552

製作の様子をお伝えしたかったのですが、
製作と会話に夢中になり過ぎて、写真と取り忘れてしまいまました^^;
カット後の下の写真しか撮れませんでした。

レーザーカッターで2mmのアクリル板を切断した直後の様子

(保護シートを貼ったままカットしています)

Dscn8784

当初、CAD等で図面を描くのかとおもいきや、illustratorでお絵かき、
プリンターと同じような印刷感覚でパソコンからカットの指示をレーザーカッターに出力します。
こんな、簡単にカット出来るとは思ってもいませんでした。

以前、秋葉原のDMM Makeを見学したことがあるのですが、
その時はレーザーカッター、3Dプリンタも見学したのですが、
「敷居が高すぎ」感が強く、敬遠してしまいました。
今回のイベント参加で、「「敷居の高さ」が解消しました。
3Dプリンター、やってみたくなり購入を検討中です。

自宅に帰った後の組み立て位置等の確認の様子

Dscn8785

これから、組み立てます。
大変、有意義な時間でした。


追記

仮組みしました。いい感じです。

Dscn8790

追記 2018/09/19

完成しました。

Dscn8808

裏はこんな感じです。

Dscn8811

中はこんな感じで、モジュール間をコネクタ形式で脱着出来るようにしています。

Dscn8802








2018年9月17日 (月)

豊四季Tiny BASIC for Arduino STM32 を更新しました

豊四季Tiny BASIC for Arduino STM32 をV0.86に更新しました。

注意:豊四季Tiny BASICのオリジナル版開発は私ではなく、鈴木氏です
オリジナル版 https://github.com/vintagechips/ttbasic_arduino
私は、オリジナル版からSTM32対応と機能拡張をしています。

V0.86の主な追加機能
・音楽演奏機能:PLAYコマンドの追加(MMLはマビノギMMLの文法をまねています)
・シリアルコンソール画面での全角文字対応(シフトJIS)
・TFT画面でのテキスト表示速度の改善(描画速度2倍、スクロール速度10倍)

V0.86からはプロジェクト管理サイトを
・Tamakichi/ttbasic_arduino_stm32
  https://github.com/Tamakichi/ttbasic_arduino_stm32

に変更しました。

01
マニュアル類は整備中です。AsciiDocを使ってリニューアル中です。
定数・コマンド関連のリファレンスマニュアル
https://tamakichi.github.io/ttbasic_arduino_stm32/manual.html

豊四季Tiny BASIC for Arduino STM32 コンパイル環境の構築
https://tamakichi.github.io/ttbasic_arduino_stm32/install.html


今回の修正ですが、
TFT(ILI9341)のフォント描画処理において、LI9341のウィンドウ機能とSTM32の
DMA転送の組合わせ技の効果が絶大で、いい感じに高速化出来ました。
DMA転送処理はオーバーヘッドが大きく、一回当たりのデータ送信量が少ないと、
効果で出ません。

通常、16ビットカラーで1文字(横6x縦8ドットx2バイト =  96バイト)を描画するにおいて、
1ライン目、2ライン目 ... 8ライン目とTFTへの転送アドレスは離散しており、
12バイト単位で8回発生します。オーバーヘッドの大きい、DMA転送において
これは効率が悪いです。

ところが、ウィンドウ機能を使って横6x縦8ドットの領域をウィンドウとして指定すると、
このウィンドウ内のドットは連続したシーケンシャルなデータ(連続したアドレス)とし
扱うことができます。

96バイトバイトを1回のDMA転送で行うことができます。
オーバヘッドが大きい処理が1回で済みます。
これは効果絶大でした。

また、TFT画面のスクロール処理や画面全体の再描画も
ウィンドウ機能を使うことで、DMA転送の一回当たりのデータ送信量を増やし、
DMA転送の回数を減らすことでオーバヘッドの大きい処理回数を減らすことで、
スクロール処理は10倍程度早くなりました。

このテクニックは、DMAを使わなくてもSPIのAPI呼び出し回数の削減にもなるので、
Arduino Unoでの高速化が期待できそうです。

2018年9月12日 (水)

ドキュメント作成にAsciiDocを利用してみる (3)

リファレンスマニュアルを作成していると
(1) 機能一覧での各機能の概要・インタフェースの記載
(2) 個別の機能詳細の記載

の記載が必要となるのですが、この(1)(2)は一部冗長的な部分があります。

冗長部は、仕様変更等に修正を継続的に行っていると、
やがて差異や用語の不統一等が発生したります。

これを、なんとか一元管理しないなぁと思い、

AsciiDocで何とかならないこと調べると、
  「タグを使った部分抽出」
が出来ることが分かりました。

下記のように、テキスト内にコメント文にて、tag:タグ名[] ~ end:タグ名[] で囲むことで、
// tag::タグ名[]
   抽出したい文章
// end::タグ名[]

別のAsciiDoc文書中にて
   include::テキストファイル名[tag=タグ名]
と記述することで、部分抽出して挿入することが出来ます。

次の文書は、別の文書から抽出してリストを作成しています。

[options="autowidth",cols="<,<"]
|===
^|コマンド・書式	^|概要
|
include::WAIT.adoc[tag=summary_1]
|
include::WAIT.adoc[tag=summary_2]

|
include::TICK.adoc[tag=summary_1]
|
include::TICK.adoc[tag=summary_2]

|
include::CLT.adoc[tag=summary_1]
|
include::CLT.adoc[tag=summary_2]

|
include::DATE.adoc[tag=summary_1]
|
include::DATE.adoc[tag=summary_2]

|
include::GETDATE.adoc[tag=summary_1]
|
include::GETDATE.adoc[tag=summary_2]

|
include::GETTIME.adoc[tag=summary_1]
|
include::GETTIME.adoc[tag=summary_2]

|
include::SETDATE.adoc[tag=summary_1]
|
include::SETDATE.adoc[tag=summary_2]

|===

HTMLに変換すると次のような感じになります。

コマンド・書式

概要

WAIT 待ち時間(ミリ秒)

時間待ち

TICK ()
TICK (モード)

経過時間取得

CLT

経過時間カウントのリセット

DATE

現在時刻の表示

GETDATE 年格納変数, 月格納変数, 日格納変数, 曜日格納変数

日付の取得

GETTIME 時格納変数 , 分格納変数 , 秒格納変数

時刻の取得

SETDATE 年,月,日,時,分,秒

時刻の設定

抽出される側のWAITコマンドの文書ファイルは次のように記述しています。

:sectnums:
[[WAIT]]
= WAIT 時間待ち
:sectnums!:

// tag::summary_2[]
時間待ち
// end::summary_2[]

== 【書式】
// tag::summary_1[]
*<<WAIT,WAIT>>* 待ち時間(ミリ秒)

// end::summary_1[] == 【引数】 待ち時間;; 0 ~ 32767 (単位 ミリ秒) == 【説明】 引数で指定した時間(ミリ秒単位)、時間待ち(ウェイト)を行います。 + 最大で32767ミリ秒(32.8秒)の時間待ちが可能です。 + 長い時間待ちを行う必要がある場合は、*<<TICK,TICK>>* 関数や *<<GETTIME,GETTIME>>* コマンドを使った方法を検討してください。 +

[%hardbreaks,icons=None,caption="注意"] WARNING: 時間待ち中はキー操作によるプログラム中断を行うことは出来ません。 短い時間の指定にてループ処理を行う等の対策を行ってください。 == 【エラーメッセージ】 Syntax error;; 文法エラー、書式と異なる利用を行った Illegal value;; 待ち時間に範囲外の値を指定した Overflow;; 指定した数値が-32768 ~ 32767を超えている == 【利用例】 .画面上の指定位置に時刻を1秒間隔で更新表示する ---- 10 SETDATE 2017,4,1,12,0,0 20 CLS 30 LOCATE 5,5 40 DATE 50 WAIT 1000 60 GOTO 30 ----

上記の文書はそのままHTMLに変換すると次のようになります。

1. WAIT 時間待ち

時間待ち

【書式】

WAIT 待ち時間(ミリ秒)

【引数】
待ち時間

0 ~ 32767 (単位 ミリ秒)

【説明】

引数で指定した時間(ミリ秒単位)、時間待ち(ウェイト)を行います。
最大で32767ミリ秒(32.8秒)の時間待ちが可能です。
長い時間待ちを行う必要がある場合は、TICK 関数や GETTIME コマンドを使った方法を検討してください。

注意
時間待ち中はキー操作によるプログラム中断を行うことは出来ません。
短い時間の指定にてループ処理を行う等の対策を行ってください。
【エラーメッセージ】
Syntax error

文法エラー、書式と異なる利用を行った

Illegal value

待ち時間に範囲外の値を指定した

Overflow

指定した数値が-32768 ~ 32767を超えている

【利用例】
画面上の指定位置に時刻を1秒間隔で更新表示する
10 SETDATE 2017,4,1,12,0,0
20 CLS
30 LOCATE 5,5
40 DATE
50 WAIT 1000
60 GOTO 30

こんな感じで、記載するファイル(場所)を一か所にして一元管理出来るので、
タグはとても便利な機能です。

タグの記述は、AsciiDoc文書以外のテキストファイルでも利用出来ます。
C言語等のプログラムソースのコメント内に記述を想定しているようです。
うまく利用すれば、プログラムソースからドキュメント作成できると思います。

2018年9月10日 (月)

ドキュメント作成にAsciiDocを利用してみる (2)

AsciiDocを使った、ドキュメント作成の続きです。

下記の記事を参考にして、本格的なPDF形式のマニュアルを作成してみました。
大変参考になりました。望んでいた通りのドキュメントが作成できました。
記事を書かれ、公開して頂きました方々には感謝いたします。

参考にした記事
  ・(1) asciidoctor-pdfで社内ドキュメントを書こう
  ・(2) asciidoc (asciidoctor) で索引(インデックス)を作る方法
  ・(3) Asciidoctor 文法クイックリファレンス(日本語訳)

作成したのは、「豊四季Tiny BASIC for Arduino STM32」の
コマンドリファレンスマニュアルです。

リファレンスマニュアルレベルになると、次の機能が必要となります。
  ・表紙の作成
  ・目次の自動作成
  ・章・節番号を自動で振る
  ・内部文書間の参照(キーワードをクリックするとその記事のジャンプする)の定義
  ・索引の作成(これは、なくてもよいかも)

このあたりの処理は、asciidoctor-pdf が賢く処理してくれます。

作成したマニュアルは次のような感じです。
結構、立派なものが作成できました。
今回の試行錯誤で、かなり使えると判断出来ました。


表紙
(Arrobat Reader で表示しています)

02

目次

03

本文(各コマンド毎のドキュメント)

01

ドキュメント内の水色の項目は、クリックするとマニュアル内の関連記事にジャンプ出来ます。

索引

04

Wordで文書作成するよりも、かなり楽ちんです。

作成したマニュアルの各コマンドの文書は別ファイルで作成し、
include文で集結しています。

下記のトップページと、PDFレイアウト定義ファイルをカスタマイズすることで、
分割した文書を部品的に利用して、比較的簡単に構成を変更することが出来ます。

集結用のトップページの定義
= 豊四季Tiny BASIC for Arduino STM32 V0.86 リファレンスマニュアル
たま吉さん 
v0.01(Draft) 2018/9/10
// 属性定義
:experimental:
:module:    豊四季Tiny BASIC for Arduino STM32
:Author:    たま吉さん
:Email:     tamacat2014@gmail.com
:Date:      2018/09/04
:Revision:  R01
:lang: ja
:doctype: book
:description:
:docname: 豊四季Tiny BASIC for Arduino STM32 リファレンスマニュアル
// ラベルの日本語設定
:toc-title: 目次
:preface-title: はじめに
:appendix-caption: 付録
:caution-caption: 注意
:example-caption: 例
:figure-caption: 図
:important-caption: 重要
:last-update-label: 最終更新
//:listing-caption: リスト
:manname-title: 名前
:note-caption: 注記
:preface-title: まえがき
:table-caption: 表
:tip-caption: ヒント
:toc-title: 目次
:untitled-label: 無題
:version-label: バージョン
:warning-caption: 警告
// 見出し設定
:sectnums:
:chapter-label: 
// 目次作成
:toc:
:toclevels: 3

// 定数リファレンスの組み込み
include::定数.adoc[]
<<<<

// 各コマンドのリファレンスマニュアルの組み込み
:sectnums:
== コマンドリファレンス
:sectnums!:
include::ABS.adoc[]
<<<<
include::ANA.adoc[]
<<<<
include::ASC.adoc[]
<<<<
include::ATTR.adoc[]
<<<<
include::BIN.adoc[]
<<<<
include::BITMAP.adoc[]
<<<<
include::BLOAD.adoc[]
<<<<
include::BSAVE.adoc[]
<<<<
include::BYTE.adoc[]
<<<<
include::CAT.adoc[]
<<<<
include::CHR.adoc[]
<<<<
include::CIRCLE.adoc[]
<<<<
include::CLS.adoc[]
<<<<
include::CLT.adoc[]
<<<<
include::CLV.adoc[]
<<<<
include::COLOR.adoc[]
<<<<
include::CONFIG.adoc[]
<<<<
include::console.adoc[]
<<<<
include::CSCROLL.adoc[]
<<<<
include::DATE.adoc[]
<<<<
include::DELETE.adoc[]
<<<<
include::DMP.adoc[]
<<<<
include::DWBMP.adoc[]
<<<<
include::EEPFORMAT.adoc[]
<<<<
include::EEPREAD.adoc[]
<<<<
include::EEPWRITE.adoc[]
<<<<
include::END.adoc[]
<<<<
include::ERASE.adoc[]
<<<<
include::EXPORT.adoc[]
<<<<
include::FILES.adoc[]
<<<<
include::FOR_TO_NEXT.adoc[]
<<<<
include::FREE.adoc[]
<<<<
include::GETDATE.adoc[]
<<<<
include::GETS.adoc[]
<<<<
include::GETTIME.adoc[]
<<<<
include::GINP.adoc[]
<<<<
include::GOSUB.adoc[]
<<<<
include::GOTO.adoc[]
<<<<
include::GPEEK.adoc[]
<<<<
include::GPIO.adoc[]
<<<<
include::GPRINT.adoc[]
<<<<
include::GSCROLL.adoc[]
<<<<
include::HEX.adoc[]
<<<<
include::I2CR.adoc[]
<<<<
include::I2CW.adoc[]
<<<<
include::IF.adoc[]
<<<<
include::IN.adoc[]
<<<<
include::INKEY.adoc[]
<<<<
include::INPUT.adoc[]
<<<<
include::LDBMP.adoc[]
<<<<
include::LEN.adoc[]
<<<<
include::LET.adoc[]
<<<<
include::LINE.adoc[]
<<<<
include::LIST.adoc[]
<<<<
include::LOAD.adoc[]
<<<<
include::LOCATE.adoc[]
<<<<
include::LRUN.adoc[]
<<<<
include::MAP.adoc[]
<<<<
include::MKDIR.adoc[]
<<<<
include::NEW.adoc[]
<<<<
include::NOTONE.adoc[]
<<<<
include::OUT.adoc[]
<<<<
include::PEEK.adoc[]
<<<<
include::PLAY.adoc[]
<<<<
include::POKE.adoc[]
<<<<
include::POUT.adoc[]
<<<<
include::PRINT.adoc[]
<<<<
include::PSET.adoc[]
<<<<
include::PULSEIN.adoc[]
<<<<
include::RECT.adoc[]
<<<<
include::REDRAW.adoc[]
<<<<
include::REM.adoc[]
<<<<
include::REMOVE.adoc[]
<<<<
include::RENUM.adoc[]
<<<<
include::RETURN.adoc[]
<<<<
include::RGB.adoc[]
<<<<
include::RMDIR.adoc[]
<<<<
include::RND.adoc[]
<<<<
include::RUN.adoc[]
<<<<
include::SAVE.adoc[]
<<<<
include::SAVECONFIG.adoc[]
<<<<
include::SCLOSE.adoc[]
<<<<
include::SCREEN.adoc[]
<<<<
include::SETDATE.adoc[]
<<<<
include::SHIFTIN.adoc[]
<<<<
include::SHIFTOUT.adoc[]
<<<<
include::SMODE.adoc[]
<<<<
include::SOPEN.adoc[]
<<<<
include::SPRINT.adoc[]
<<<<
include::SREAD.adoc[]
<<<<
include::SREADY.adoc[]
<<<<
include::STR.adoc[]
<<<<
include::SWRITE.adoc[]
<<<<
include::TEMPO.adoc[]
<<<<
include::TICK.adoc[]
<<<<
include::TONE.adoc[]
<<<<
include::VPEEK.adoc[]
<<<<
include::WAIT.adoc[]
<<<<
include::WIDTH.adoc[]
<<<<

[index]
== 索引

追記

HTML形式でも出力してみました。

05

左側の目次の幅をもう少し広げたいところです。
PDF形式の出力とは、カスタマイズ方法が異なるようです。
スタイルシートを編集して、paddingを広げればよさそうですが、
何か流儀があるかのか、調査中です。

2018年9月 9日 (日)

Arduino IDE + Arduino STM32のスケッチ書き込みで「 アクセスが拒否されました。」のエラー

中古のデスクトップパソコンを購入し、Arduino 関連の開発環境を構築、
Arduino STM32パッケージして、スケッチを書き込もうとすると

  「 アクセスが拒否されました。」
のエラーが発生してスケッチの書き込めないというトラブルが発生しました。

Ide

いつもやっているBlue PillボードへのUSB経由の書き込みなのですが、
うまくいきません。

環境設定で、書き込み時にの詳細を表示するようにして再度やってみると、

maple_upload.bat COM4 2 1EAF:0003 C:\Users\Owner\AppData\Local\Temp\arduino_build_639405/ttbasic.ino.bin

書き込みを行うツールの maple_upload.bat が怪しいようです。
バッチファイルの中を見ると、

   前略
java -jar maple_loader.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
   後略

javaが必要のようです。
Arduino STM32パッケージは、Arduino IDEに含まれているJava環境を利用していないようで
す。

そういえば、この対処は以前もやった気がします。
インストーラやZIP解答のArduino IDEであれば、インストールしたフォルダ内の
Javaにパスを通すことで、対処できるのですが、
今回利用しているArduino IDEはWindowsアプリ版のため、
Arduinoのインストールフォルダが隠し属性かつセキュリティ設定で開けず、
添付のJavaを利用することができません。

とりあえず、今回はJavaを別途インストールすることで対処しました。
対処後、き込みがちゃんと出来るようになりました。

02

|





2018年9月 6日 (木)

ドキュメント作成にAsciiDocを利用してみる

作成したツール等のマニュアルの作成にはいつも苦労します。
WordMarkdown記述で作成しているのですが、もう少しいい方法が無いかと
調べていると、「AsciiDocがいい感じ」と思い、最近使い始めました。

AsciiDocは、Markdownと同じような感じの軽量マークアップ言語です。
テキスト主体で作成します。

良いと思うこと
・インクルド文で、細切れの文書やデータをかき集めて、文書が作成出来る。
・コメントの利用や条件付き文書変換等が出来る。
Markdownのような方言がない。思った通りに表示出来る。

特にやりたいことは、
ドキュメントを2層構造にして、目的別・利用者別に文書を結合・再構成です。

とりあえず、「豊四季TinyBASIC for Arduino STM32」のTONEコマンドの
ドキュメントをAsciiDocで作成してみました。

元の文書(Word 2013で作成)

Word


エディタのチョイス

AsciiDocでの文書作成は、テキストエディタがあれば出来ますが、ビュアーも必要です。
色々調べ、今回は「Visual Studio Code」を使ってみました。
Visual Studio Code」に拡張機能 AsciiDocを組み込んで利用します。

Visual Studio Code による AsciiDoc文書の作成(クリックで拡大表示)
Vsc

左がテキストエディタ、右がビュアーです。
ビュアーはテキストの修正に応じて、リアルタイムに更新されます。

とりあえず、Wordの文書をテキスト形式で「Visual Studio Code」にコピペし再利用。
、「Visual Studio Code」のテキスト置換機能のを有効に使って、項目名等を
AsciiDocの見出しに変換します。

"▢ 項目名" => "=== 【項目名】" に変換

Vsc_2

完成したAsciiDocの記述は次のような感じです。

TONE.adoc

//
// 作成日      2018/09/06
//

include::include\common.adoc[]

== TONE  単音出力

=== 【書式】
[%hardbreaks]
*TONE* 周波数
*TONE* 周波数, 出力期間

=== 【引数】
周波数;;	0 ~ 32767 (Hz)  	0の場合は消音
出力期間;;	0 ~ 32767 (ミリ秒)  0の場合は、継続再生

=== 【説明】
*PB9* ピンより、指定した周波数のパルス出力(デューティ比50%)を行います。 +
*PB9* ピンに圧電スピーカー(圧電サウンダ)を接続すること音を出すことが出来ます。 +

出力期間の指定がある場合は、その期間パスルを出力します(ミリ秒単位)。 +
出力期間の指定がある場合、出力完了待ちを行います。 +
出力期間の指定がない場合は、*NOTONE* コマンドで停止指示をするまでパスルを出力し続けます。 +
( *TONE* 0は *NOTONE* と等価です) +

.音階・周波数対応表
[format="csv",options="autowidth",cols="^,^,^,^,^,^,^,^,^,^,^,^,^"]
|===
include::csv/tone.csv[]
|===

=== 【エラーメッセージ】
Syntax error;;	文法エラー、書式と異なる利用を行った
Overflow;;		指定した数値が-32768 ~ 32767を超えている

=== 【利用例】
.スペースキーを押したら音を鳴らす
----
10 IF INKEY() = 32 TONE 800,50
20 GOTO 10
----

やはり、include文が利用出来ると便利です。
「音階・周波数対応表」の部分は、CSV形式の別ファイルを読み込んでいます。

読み込んでいる csv/tone.csv ファイル

,ド,ド♯,レ,レ♯,ミ,ファ,ファ♯,ソ,ソ♯,ラ,ラ♯,シ
1,33,35,37,39,41,44,46,49,52,55,58,62
2,65,69,73,78,82,87,93,98,104,110,117,123
3,131,139,147,156,165,175,185,196,208,220,233,247
4,262,277,294,311,330,349,370,392,415,440,466,494
5,523,554,587,622,659,698,740,784,831,880,932,988
6,1047,1109,1175,1245,1319,1397,1480,1568,1661,1760,1865,1976
7,2093,2217,2349,2489,2637,2794,2960,3136,3322,3520,3729,3951
8,4186,4435,4699,4978,5274,5588,5920,6272,6643,7040,7459,7902

これで表の作成が非常に楽出来ます。


作成した文書の公開


GitHUBAsciiDocに対応しており、若干制限がありますが簡単に公開出来ます。
gitsに上記のテキストファイルをアップロードして、表示してみると、
  ちゃんと表示出来ました..
と言いたいと所ですが、残念ながらinclude文が使えないようです。
(使えないと判断した根拠のソース : Asciidoctor: support include directives for other asciidoc files #1095)

仕方が無く、音階・周波数の部分は、CSVデータを直接記述する形式に修正しました。

修正部分(csvデータを直接埋め込み)

.音階・周波数対応表
[format="csv",options="autowidth",cols="^,^,^,^,^,^,^,^,^,^,^,^,^"]
|===
//include::csv/tone.csv[]
,ド,ド♯,レ,レ♯,ミ,ファ,ファ♯,ソ,ソ♯,ラ,ラ♯,シ
1,33,35,37,39,41,44,46,49,52,55,58,62
2,65,69,73,78,82,87,93,98,104,110,117,123
3,131,139,147,156,165,175,185,196,208,220,233,247
4,262,277,294,311,330,349,370,392,415,440,466,494
5,523,554,587,622,659,698,740,784,831,880,932,988
6,1047,1109,1175,1245,1319,1397,1480,1568,1661,1760,1865,1976
7,2093,2217,2349,2489,2637,2794,2960,3136,3322,3520,3729,3951
8,4186,4435,4699,4978,5274,5588,5920,6272,6643,7040,7459,7902
|===


作成した文書のリンク
https://gist.github.com/Tamakichi/cbc69f27ffb2d2b0b944f3529a2797f2

gists
上の文書は、ブログの記事内に埋め込むことが出来ます。
上記のリンクの文書を埋め込んでみます。

Gists

赤い枠のコードをブログの記事に埋め込みます。

こんな感じ(ちょっと大きすぎかな?)

AsciiDocは、まだまだ使い始めたばかりですが、
とりあえずマニュアル一冊作成してみて、その過程で色々と試してみたいと思います。

AsciiDocの文書作成で参考にした記事・サイト
脱Word、脱Markdown、asciidocでドキュメント作成する際のアレコレ
Asciidoctor 文法クイックリファレンス(日本語訳)
AsciiDoc User Guide

公式サイト
Asciidoctor
Asciidoctor User Manual

2018年9月 4日 (火)

サクラエディタの運用場所がGitHub移転していたのに気づく

久しぶりに愛用しているサクラエディタのサイトをチェックしたら、

プロジェクトの運用場所がGutHubに移動したとのこと。

01

移動先のURL
https://github.com/sakura-editor/sakura

02

GitHubなので、開発状況等がこまめに確認出来て良いです。
GitHub Issuesを見ると要望や開発状況が把握できます。

パッケージのダウンロードは、releasesタブから行うこと出来ます。

03

Wikiを見ると、内容はサクラエディタの開発プロジェクト運営関連の内容でした。


日本語が使われているので、
GitHubを使ったプロジェクト管理の進め方の参考になりそうです。
別の意味でよい教材になりそうす。

« 2018年8月 | トップページ | 2018年10月 »