[4449] IchigoLatte:論理演算を使ってLEDを点滅させる

投稿:  著者:  読了時間:20分(本文:約9,500文字)



《そんなこと自在にできたら苦労しないよって話》

■まにまにころころ[127]
 ふんわり中国の古典(孫子・その7)
 虚実篇(一〜六)
 川合和史@コロ。 Kawai Kazuhito

■クリエイター手抜きプロジェクト[522]IoT IchigoLatte編
 論理演算を使ってLEDを点滅させる
 古籏一浩




━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■まにまにころころ[127]
ふんわり中国の古典(孫子・その7)
虚実篇(一〜六)

川合和史@コロ。 Kawai Kazuhito
http://bn.dgcr.com/archives/20171106110200.html
───────────────────────────────────

コロこと川合です。いつの間にか11月。この土日は、大阪南港ATCで子ども向けワークショップをしていました。

子供たちにスマホでコマ撮りアニメを作ってもらってたんですが、色んな子がいて、色んな家族があって、面白かったです。

まあそれにしても、お父さんお母さんは大変だなと。ほとんどのシーンにおいて、言うことを聞かない自由気ままな子どもばかり。端から見てる分には面白いんですけどね。よくこの自由人を連れて休日にお出かけする気になるもんだなと、親の偉大さを思い知りました。

孫子だって、自由気ままで言うこと聞かない相手を御するのは無理じゃないかと思うんですが、そこはさすが孫先生、ふざけてばかりで指示を聞かないでいる王の寵姫たちを使ってのデモンストレーションでも力を発揮。見事に、まとめあげました。

王様:「寵姫と女官でも軍事調練できる?」
孫子:「できますよ」
王様:「やってみて」
孫子:「じゃあ、王のかわいがってる寵姫ふたりを隊長にしてやってみますね」
王様:「無理だと思うよ」

孫子:「はい隊長の後ろに整列」
寵姫:「整列だってー」
女官:「だりぃーっすよー」
孫子:「ドラの合図で動け」
寵姫:「ドラだって、まじウケるー」
ドラ:「どーん」
女官:「きゃははははは」

孫子:「指示が理解できなかったのかな、もう一度説明するからね」
寵姫:「この戟って武器、ヤバくね? ちょーウケるー」
孫子:「はいじゃあ二回目ー」
ドラ:「どーんどーん」
女官:「きゃははははは」

王様:「ほら、無理だって」

孫子:「説明したのにできないのは、隊長の責任ね。隊長ふたり、軍紀違反で斬首」
寵姫:「斬首だって、まじウケるー」
王様:「冗談きついよー」
孫子:「いや、マジ斬首」

王様:「え? いや、ちょっ! 分かったから!先生の力は分かったから!」
孫子:「将軍に任じられたからには、王命でもきけないことがあります(ニコ)」
寵姫:「マジ?」
孫子:「マジ。(スパーン)」
王様:「くぁwせdrftgyふじこlp」

孫子:「はい、じゃあ次、前のほうのふたりが代わりに隊長ね」
女官:「は、はいっ」
ドラ:「どーん」
女官:「え、えいっ」
ドラ:「どーんどーん」
女官:「えいっ、えいっ」
孫子:「ほら、できた」
王様:「……ワシ、もう、無理……」

だいぶ適当ですが、だいたいこんな感じ。『史記』に記されたエピソードです。孫子に逆らっちゃダメですね。

さて、前置きが長くなりましたが、今日は「虚実篇」です。なんか兵法っぽいタイトルに燃えますね。

でも、今の日本語では虚実って「ウソとまこと」って感じですが、ここでは、虚=隙がある状態、実=十分に備えた状態、って意味らしいです。


◎──『孫子』虚実篇(一〜二)

先に戦場にいて敵を待つのは戦いやすいが、敵より遅れて戦場についていたのでは苦労することになる。だから戦上手はそうならないよう、相手をしっかりコントロールして、相手の思うままにならない。

敵を上手く操り自発的に行動を起こさせるには利益で誘導する。逆に行動を止めるには害があると思わせる。

そうやって、敵が余裕のありそうな時には操って疲れさせることができるし、食料が十分な敵を飢させることもできるし、敵が落ち着いているようならば誘い出して釣り出すこともできる。

敵が進軍せざるを得ないようなところに進軍し、また予想外のところに進軍し、千里の行軍でも疲れないようにできるのは、敵がいないところを上手に選んで進むからである。

攻めて必ず勝つのは敵の守りがないところを攻めるからで、守って必ず守りきるのは敵が攻めないところを守るからである。

だから攻めるのが上手い将軍を相手にした敵は、どう守れば良いのかわからず、逆に守るのが上手い将軍を相手にした敵はどこを攻めればよいのか分からない。

微かに、微かに、ついには姿形もない。神秘的で、神がかって、ついには音も立てない。そうやって敵の運命を手中に収めるのだ。


◎──『孫子』虚実篇(一〜二)を読み解く

「人を致して、人に致されず」という有名なフレーズがここではでてきます。相手を思うままに操って、相手の思い通りにはならないでいる。つまり主導権を握ることが大事って話ですね。

そんなことは分かってるよ、だから具体的にどうすりゃいいんだよってな話も多い孫子ですが、ここに書かれている相手を意のままに動かそうとする方法は、上手下手や成否はともかく、結構みんな無意識にやってることです。

たぶん、子どもでもやってます。

何かして欲しい時には、メリットばかりを強調する。逆にして欲しくない時は、デメリットを強調する。ね、やってるでしょ。

達人は相手の心理を読んで、上手く隙をつき、バレないように操る。やっぱり、そんなこと自在にできたら苦労しないよって話ですけども。


◎──『孫子』虚実篇(三〜五)

進撃して相手がそれを防ぎきれないのは、その虚をつくからである。退却して相手に追わせないのは、こちらが迅速で追いつけないと思わせるからである。

そして、こちらが戦闘を望む時は、相手がたとえ土塁を高く積み堀を深く掘り防御に徹しようとしていても、相手が救援に向かわざるを得ないところを攻めればいい。

逆に戦闘におよびたくない時は、敵の目標を上手くそらしてしまう。そうすれば、守りを固めるまでもなく、地面に線を書いて仕切るだけでも、戦いにならない。

相手には分かりやすい態勢を取らせておいて、逆にこちらは動きの読めない形をとることで、こちらは集中して狙えるのに対して、相手は兵力を分散させることになる。

例えばこちらが一団となって、相手が十に分散しているとすれば、こちらは十の力で相手の一を攻めることができる。こちらは多く、相手は寡兵。大勢で小数を攻めれば、戦いは少しですむ。

こちらが攻める場所が分からないならば、相手は分散して守るしかない。分散すれば、戦う相手は少なくなる。

相手が前に備えれば後ろが手薄になり、右に備えれば左が手薄になり、全部に備えようとすれば、全部が手薄になる。

どこか手薄になってしまうのは、相手に対して備える側の立場であるからだ。大勢で攻められるのは、相手に備えをさせる側の立場であるからだ。

だから、戦う場所が分かっていて戦う日が分かっているなら、そこが千里の先でも会戦するべきだ。逆にそれらが分からないなら、左軍が右軍を救うこともできず、右軍が左軍を救うこともできず、後軍が前軍を救うこともできない。

ましてや、遠いところで数十里、近くで数里離れた友軍を救うなんてできない。私が考えるには、敵国である越の国の兵がいかに多くても、勝敗には関係してこないだろう。

勝利は思いのまま得られる。いくら敵が多くても、戦いにならないようにしてしまうのだ。


◎──『孫子』虚実篇(三〜五)を読み解く

相手の形をつかみ、こちらの形はつかませない。こちらの動きがわからないと、相手は全方位に対して意識も力も分散するから、集中して一点突破するこちらが優位に立てる。そんな話。

勝敗は情報がすべて、というスタンスですね。敵情をつかむことで、意のままに相手を動かすこともできるし、有利な戦局を作り出すこともできる。主導権を得ることができる、と。


◎──『孫子』虚実篇(六〜七)

敵情を調べて得失を計算し、相手を動かしてみてその特徴をつかみ、敵に戦闘態勢を取らせてみて地勢の有利不利を把握し、軽く小競り合いを起こして強いところと弱いところを知る。

軍の態勢の極みは、動きの読めない形をとることである。そうすれば敵のスパイにもこちらの動きをつかませず、敵の智将にも計略を立てることができない。

相手の態勢をつかむことで勝利を得られるが、一般大衆には理解できない。みな、勝ったことは分かっても、どうやって勝利したのかは分からない。勝ち方には同じ繰り返しはなく、相手の態勢に応じて、それは無限に変化するものなのだ。

軍の態勢というものは水のようなものだ。水は高いところを避けて低いところに流れる。軍の態勢も、敵の備えを避けて、隙を撃つ。水は地形に応じて流れを作るが、軍も敵に応じて勝利をつかむ。

つまり、軍には決まった態勢はなく、水にも決まった形などない。敵の態勢に応じ変化し勝利をつかむことができるのが、神妙というものである。

木火土金水の五行にも相性による相克があって、常にどれかが勝つというものではない。四季は移ろう。日の長さも変化する。月には満ち欠けがある。そういったようなものだ。


◎──『孫子』虚実篇(六〜七)を読み解く

究極の形は、形がないこと。……禅問答みたいな。

要するに、臨機応変ってこと。決まった形なんてない。相手の態勢に応じて、こちらが有利に戦える態勢をとる。そのために相手の情報を探る。

ただまあ普通は、相手もきっと同じように考えるから、難しいんですけども。


◎──今回はここまで

虚実篇、以上です。分かるような分からないような話というか。書かれていることは分かるけども、どうすればいいのかはなかなか分からないという。

・情報をつかんで分析し、有利な体勢をとれ。
・固定的な必勝パターンなんてない、臨機応変にことにあたれ。

ってことは胸に刻みつつ、あとは悩むしかないですね。特に、誰かと戦う場合には。

だって孫子以降、たいてい相手も孫子の兵法を知ってるわけですしね。探り合い、主導権を奪い合い、隙を見せた方が負ける。そんな感じ。

当たり前じゃん、って話も多いんですけど、それらをちゃんと全部意識して、隙を見せないでい続けられるかってことが難しいんですよね。

だから戦国武将なんかは、座右の書にしたり、暗唱したり、書いて貼ったり、旗に書いたり、とにかく常に意識できるように努めたのかなと思います。隙見せたら死ぬから。

……趣味でゆるゆる読んでいられる時代でよかった。(笑)


【川合和史@コロ。】koro@cap-ut.co.jp
合同会社かぷっと代表
https://www.facebook.com/korowan
https://www.facebook.com/caputllc
http://manikabe.net/


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■クリエイター手抜きプロジェクト[522]IoT IchigoLatte編
論理演算を使ってLEDを点滅させる

古籏一浩
http://bn.dgcr.com/archives/20171106110100.html
───────────────────────────────────

今回は、乱数と論理演算を使って、LEDを点滅させてみます。

前回のプログラムは、以下のようになっていました。キーを押すとプログラムが終了します。しかし、0.5秒のウェイトが2か所入っているのでキーを押しても反応が悪く、すぐに終了しません。

while(1){
led(1);
sleep(500);
led(0);
sleep(500);
if(inkey()>0){exit();}
}

もう少しキー入力の反応をよくしてみましょう。ここで登場するのが論理演算です。この連載でもIchigoJamのプログラムの時に説明していますので、論理演算に関しては過去の連載を見てください。

今回使用するのは論理積(AND, &)です。JavaScriptでは論理積を求めるのは&記号です。IchigoLatteではインタラクティブモードにすることで、すぐに結果を確認できますので、やってみましょう。

まず、シェルでmsと入力しリターンキーを押します。するとインタラクティブモードになります。

ms>

プロンプトがlash>からms>に変わっていればOKです。それでは論理積演算を行います。まず、0と0の論理積を取ってみましょう。以下のように入力すると、0が表示されます。つまり0と0の論理積は0です。

ms>0&0
0

次に、0と1の論理積を取ってみましょう。

ms>0&1
0

やはり0になります。次に、1と1の論理積を取ってみましょう。

ms>1&1
1

今度は1になりました。最後に、2と1の論理積を取ってみましょう。

ms>2&1
0

0になりました。ちなみに、3&1なら1になります。

論理積はビット単位での演算です。論理積は両方のビットが1の場合のみ1になります。以下は、4ビット単位で見たそれぞれのビットの状態です。

●0&0の場合
0000
0000
--------
0000

●0&1の場合
0000
0001
--------
0000

●1&1の場合
0001
0001
--------
0001

●2&1の場合
0010
0001
--------
0000

数値と1との論理積を取ると奇数なら必ず1に、偶数なら必ず0になります。

これを利用してLEDを点滅させてみましょう。あらかじめ変数を用意しておき、1ずつ足していきます。led()でパラメーターを指定する場合、変数と1との論理積を取ります。こうすることで0と1が交互にled()のパラメーターとして渡されます。

以下のプログラムを実行すると、LEDが点滅します。また、0.5秒間隔でキー入力を受け付けるようになるので、少しキーを押したときの反応がよくなります。

var i=0;
while(1){
led(i&1);
sleep(500);
i=i+1;
if(inkey()>0){exit();}
}

これでもキーの反応はいまいちです。もちろん解決する方法はあります。

ただ、その前にいくつかステップを踏んで説明しないといけません。そのためには関数やイベントハンドラ、タイマーについて知る必要があります。

これに関しては後の連載で解説していきます。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

キャプテンハーロック……アニメも映画も見たし、漫画も全部持っている(はず。愛蔵版とかも)。

小学生の時見たアニメのキャプテンハーロックのアルカディア号と、その後のキャプテンハーロック無限軌道SSXでは、アルカディア号の形状が違っていた。

どうして違うのか? と疑問だった。元祖キャプテンハーロックは未完で、実質ブツ切れ状態。それがウン十年経過して、すべての矛盾と他の物語との整合性を取ろうとしているのがキャプテンハーロック次元航海かな、と。

アルカディア号の形状の違いは他の物語で、そういう言い訳をするのか、と感心した。まあ言い訳もアイデアだねぇ、と。

アルカディア号は敵の戦艦に向かって突っ込んで破壊するという、そんな事したら自分の船壊れるやん、みたいなシーンがあるけど、巧妙な言い訳により解決。いくら体当たりして船を壊しても問題ない……。

そう言えば、星新一だったかのショートショートで、言い訳だけで平社員から社長になってしまう物語があった。今の時代、資金を集めるにも口達者でないと駄目なんだろうなあ。

・キャプテンハーロック 次元航海(7)
https://www.amazon.co.jp/dp/4253237274/

・キャプテンハーロック わが青春のアルカディア 無限軌道SSX
https://www.amazon.co.jp/dp/B005FL1IKU/

・キャプテンハーロック ニーベルングの指環
https://ja.wikipedia.org/wiki/ニーベルングの指環_(漫画)

・InDesign CS6 JavaScript Reference
http://www.openspc2.org/reibun/InDesignCS6/ref/

・Photoshop CS6 JavaScript Reference
http://www.openspc2.org/reibun/PhotoshopCS6/ref/

・Illustrator CS6 JavaScript Reference
http://www.openspc2.org/reibun/IllustratorCS6/ref/

・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/

・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591
https://www.amazon.co.jp/dp/4844397605

・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP
http://digiconcart.com/dccartstore/cart/info/2561/218591

・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
編集後記(11/06)

●大泉光一「暴かれた伊達政宗『幕府転覆計画』ヴァチカン機密文書館史料による結論」を読んだ(文春新書/2017)。筆者は1943年生まれ、青森中央学院大学・大学院教授。ヴァチカン機密文書館に眠っていた戦国日本の「ダヴィンチ・コード」が今、読み解かれ「慶長遣欧使節」の本当の目的が明らかに〜。

支倉長常の名前とともに、中学校の教科書にも登場するこの有名な使節団は、慶長18年に仙台藩主・伊達政宗が徳川家康と合同計画で派遣したもので、目的は当時スペインの植民地であったメキシコと直接、交易を始める交渉をすること、およびカトリックの宣教師の派遣を要請すること、の二つとされている。

本当にそれだけなのか。筆者の結論は「政宗の本当の目的は、ローマ教皇の力でスペインの軍事的協力を得て、徳川幕府に最後の決戦を挑み、徳川秀忠に代わって伊達政宗が将軍職に就き、日本の支配者になることであった」という途方もないものであった。政宗はローマ教皇に対して、自分を「カトリック王」に叙任し、日本における「カトリック騎士団」の創設を認めて欲しいという。

そうなれば、30万人の日本のキリシタンを糾合して徳川政府を倒し日本を「カトリック王国」にしてみせるという。当時のスペインの軍事力からいって現実的な話である。慶長遣欧使節関連の史料は、日本にはほぼ存在しない。なぜなら政宗が徹底的に証拠を隠滅したからだ。幕府にばれたら、政宗は破滅する。

政宗は実に用心深く秘密裏に進めた。誓願は文書にせず、日本から送った大使に“口頭で”行わせた。後に仙台藩で編纂された史料も同様の隠蔽が行われた。ところが、ヴァチカン機密文書館には慶長遣欧使節関係文書が数十所蔵されていた。なぜ今まで現地調査がされなかったのか。これらの文書はすべて古典ロマンス語で書かれていた。これを原文で読み理解するのは困難の極みであった。

研究者が原典にあたらず(あたる能力がなかった)、間違いだらけの史料集を引用、孫引きして研究を進めたため不可解な定説が生まれた。なんと、筆者はこの難解な古典ロマンス語を習得することから研究を始め、半世紀にわたってメキシコ、スペイン、イタリア、フランスなどで原史料の発掘、調査を行い、手書きの古典ロマンス語の史料を翻刻、翻訳する作業を続けてきた。

その成果は「支倉六右衛門常長『慶長遣欧使節』研究史料集成」(全三巻、雄山閣)として2017年6月に出版された。そして、この新書が研究の集大成である。といっても、非常にわかりやすいので楽々読める。まえがきで、世界で最も重要な歴史研究センター、ヴァチカン機密文書館について書かれている。

それはヴァティカン市国、大聖堂のそば、一般観光客立ち入り禁止区域にある。ここには650の文庫があり、35,000巻の文書を収めた書棚群の総延長は85kmにも及ぶ。利用規程は非常に厳格である。古文書解読能力を持つ研究者の学術研究に対してのみ、入館が許可される。筆者が訪れたのは1991年7月、最初に閲覧したのが「日本国奥州王使節のローマ教皇への公式謁見式」であった。

この本では、結論をいきなり提示し、そこに至るまでを、慶長年間の日本、使節団派遣に至る過程、幕府転覆計画への転換、メキシコでの使節一行、スペインでの躓き、ローマでの栄光と挫折・定説の誤り、帰路の苦悩、政宗の裏切り、余話、という構成で見せる。7年待った政宗の野望ははかなく消え、なんとキリシタン弾圧に豹変する非情さ。いま仙台市博物館では「伊達政宗─生誕450年記念」展を開催中だ。支倉常長関係の展示もある。やばいかも…。(柴田)

大泉光一「暴かれた伊達政宗『幕府転覆計画』ヴァチカン機密文書館史料による結論」
http://www.amazon.co.jp/exec/obidos/ASIN/4166611380/dgcrcom-22/


●走った。片道7.8kmなのに、行きは迷って12kmは走った。「12kmは」と書いているのは、GPS計測を忘れていて途中から記録したから。

料理が下手な人は、レシピ通りに作らないからなのだとどこかで読んだ。下手なら下手なりに、レシピに忠実にやればいいのに、量るのが面倒だからこのぐらいだろうと目分量でやったり、自分の感性が出ないからとか、個性がないからとかで、やったことのない料理なのに違う材料を入れたりするらしい。

一度レシピ通りに作ってみてから、次回以降にアレンジを加えればいいし、覚えたなら分量も目分量でいいように思う。お店と違って、味が毎回少し違うのが家庭料理の良さだし、飽きずに食べられる理由だとも言われる。

方向音痴は、大きな基準を持たないからと聞いた。一番確実なのは絶対動かない目印。山とか、時刻によるが星や太陽。方角がわかれば大きな失敗はない。続く。 (hammer.mule)

料理が下手な人と上手い人の特徴…メシマズ嫁の原因と改善方法
https://webron.jp/15598
これと同じようなのを違うところで数年前に読んだ。