万事、塞翁が馬

人生の幸・不幸は予測しがたい。最後に立っていたやつが勝ちさ。京都で酒造ベンチャーをやっているよ。

pwmとタイマー割込みについての続き

PWMを使ってみた

arduinoのPWMとタイマー割込みの関係がまだよくわかってない。

とりあえず昨日調べたときの疑問点の「タイマーとPWMが同時に使えないのはわかったが、同じタイマーの2つのPWMを同時に使うことは可能か?」というの実験した結果だ「大丈夫」だった。タイマーとPWMの同時利用はできないが、PWMの同時利用はできるという理由はわからないが、やってればそのうちわかるだろう、きっと。

とりあえず「PWMのピンが足りないかもしれない」という問題は解決したので、設計は見直さずarduino megaで行こうと思う(センサーも含めてI2Cで制御した方がよさそうだけど、I2Cよくわかんないからいいや)。

インターフェイスを作るかも検討課題ではあるが、わざわざボタン何個かくらいのコントローラを作るのも面倒だし、PS4のコントローラを付けれるようにするにはUSBシールドが必要でピン配置を考えないといけないし、スマホから操作するやつを使うにはwifiが必要なので、やっぱり面倒だ。 とりあえず開発用のノートを横に置いてシリアル通信で動かそうと思う。後にラズパイとコントローラまたはテンキーに置き換える予定。

MsTimer2を使ってみた。

サンプルスケッチを試してみた

void flash() {
  static boolean output = HIGH;

  digitalWrite(LED_BUILTIN, output);//LEDを13から変更
  output = !output;
}

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);

  MsTimer2::set(500, flash); // 500msごとにオンオフ
  MsTimer2::start();
}

void loop() {
  // loopは空
}

loopが空っぽなのにチカチカ繰り返すから不思議だ。割込み処理はメインのプログラムとは別でMsTimer2::start();からMsTimer2::stop();でとめるまで繰り返す。割込みでやらせたい処理はflash()のように関数にしておかないといけない。やった事ないことばっかりだ。

arruino mega のタイマー割込みについて調べる。

開発日記

ボトリング(瓶詰め)を自動化するにあたって「arduino mega を使って複数のモータを同時に稼働させてON/OFFや速度をバラバラに制御したい」のだが、こういう複数を同時に動かす作例が入門書には載っていない。調べてみると"タイマー割込み"という機能を使うとできるらしい。色々試してみているのだが腹にストンと落ちない感じでてこずっている。 部分的に動くからと言って全体で動いてくれるかというとそれは別の問題だったり。
ボトリングマシンにはDCモータ5つとステッピングモータ1つの合計6つPWMを使用する予定で、megaにはpwmのピンが15あるので余裕だと思ってたんだがそうでもないようだ。同じタイマーの複数のピンのPWMを動かせるのか?モータ数減らすべきか?
あるいはarduino uno や arduino pro miniを複数個つないでマスターとスレーブにする設計に変えるべきか。ちょっと悩んでいる。いや、ホント言うとESP8266を使ったarduino unoのコピー品のWemosD1をマスターにしてその上にslaveのunoを積んでいく構成にしたらwifi使えてスマホから操作できて便利だよな、とは思ってる。

備忘録

arruinoの頭脳であるavrマイコンにはタイマーがあり、それを使った「タイマー割込み」という機能が実装されている。それを使うと指定の時間が来たら動いて何秒かたったら止まるというプログラムが組める(らしい)。

arduinoでそれを使うにはタイマーライブラリをインクルードすればいいわけだが、このタイマーはPWMの制御にも使っているので「タイマーを使うかPWMを使うかを場合によっては選ばないといけない」との事である。

PWMのピンにはそれぞれ対応するタイマーがあり、そのタイマーを使うプログラムを動かしているときはPWMが使えない普通のピンになる。 Timer2を使うライブラリが人気があるようだ。 ただこれを使うとtone()が使えなくなる。"終了時にブザー鳴らす"というのがしたかったんだがな。いやー、なかなか難しい。

検索したところ2010年から13年くらいのブログが多くヒットした。2015以後はほぼない。すでに克服された過去の話題なのかな?ありがたいことだ。枯れた技術は初心者に優しい。 arduino unoについてはいっぱいヒットするがmegaはあまりヒットしない。ベースになってるunoの出来がいいので機能拡張版の需要が少ないのかも。

arduinoなら知識無くても適当につないだら動く」「arduino megaならピン多いし特に考えなくて大丈夫だろう」と思っていたがそういうわけではなく、ピンアサインは内部構造の制約を元に考えないといけないみたい。 そらそうか。マシンのスペックをフルに使いたいと思うなら理解が必要だわね。

リンク

主要なAVRマイコンでは、Timer0、Timer1、Timer2の3つのタイマーがある。これらのハードウェアのタイマーを利用し、一定時間ごとにある関数を「割り込み(interrupt)」で呼び出すことをArduinoのタイマー系ライブラリは実現している。 https://miso-engine.hatenablog.com/entry/2015/07/20/221014

MsTimer2を使うとtone( )関数が利用できません、また13番ピンと11番ピンからのPWM出力(analogWrite( )関数)もできません。 http://www.geocities.jp/zattouka/GarageHouse/micon/Arduino/TIMERtoLED/TIMERtoLED.htm

このMsTimer2というライブラリがarduino mega 2560に対応していないが、ライブラリを書き換えると使えるとの事。 [arduino]Arduino Mega ADK or Arduino Megaでタイマ割り込みを使う http://mironal-memo.blogspot.com/2012/02/arduinoarduino-mega-adk-or-arduino-mega.html

Timer1、3を使ったライブラリもある。 http://megalodon.jp/2015-0721-0425-17/miso-engine.hatenablog.com/entry/2015/07/20/221014

arduino mega はタイマーが0-5の6つあるそうだ。それぞれのピン配置と関数についても書いてくれていて非常に助かる。 https://tomixrm.wordpress.com/2017/08/24/arduino-mega%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%E6%83%85%E5%A0%B1/

timer0はシステムが使用していて、これをいじってしまうとdelay()関数の待つ時間がずれます。 またtimer0,2は8bit timerで残りの1,3,4,5は16bit timerです。8bit timerでは精度が低くて、しっかりしたモーター用のPWMを出すには適しません。 timer5は後述するservoライブラリを使うと使用されてしまうために使えなくなります。 よってまともに使えるPWMはtimer1,3,4の8本のPWMになります。これらは自由にDuty比を変更することがありますが、周期を変更する場合は注意が必要です。 https://qiita.com/eri_aka/items/68981b6e695e6f4468ff

タイマー0はシステムで使っているのでPWMの「デューティー比がちょいと高めに出る」とのこと。 http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=2153

メイン側と割り込み関数側で共用する変数は、「volatile」属性というものを付けて宣言する必要が あります。 http://nekosan0.bake-neko.net/library_timer.html

Timer機能全般に関する解説。 https://qiita.com/suzukinori/items/939cc9f49e535c4eadd7

ボトリングマシンの改修に取り掛かる。

作った後ほったらかしにしていたボトリングマシンの回収作業に取り掛かった。半年ぶりくらいにarduinoを触る。トラブル続出である。

久しぶりに事務所を大掃除して机を買った。これでデスクが2つになったので、1つにデスクトップPCをのせて事務用に、もう1つにノートPCをおいて開発用に分けた。デスクトップを事務兼開発で使ってたんだがそれじゃ机がちらかってしょうがなくて、はんだごて他道具を広げれるスペースがなかったので仕方ない。1日半かけてどうにかこうにか形になった。

作業スペースもできたしとさっそくノートPCでボトリングマシンのスケッチを修正しだしたんだが、なぜかarduinoに書き込めないという問題が生じた。

原因を調べるのに1日かかって
・ノートのarduinoIEDが上手く動いてない。不安定。
arduino unoのコピー品が壊れている
の2つが発生していたことが分かった。結局デスクトップで別のarduinoをつないだら動いたのでデスクトップのある事務用の机の方で開発をしている。
この3日間なんだったんだろうか。

前途多難である。

竹中平蔵の本を読んだよ

竹中平蔵氏の本を読んだよ。

 Twitterを見てて竹中平蔵の悪口がTLに何日か並んでた。「派遣を搾取してるのはパソナだ」とか。僕のTLで竹中平蔵を褒めてたり擁護してる人を見たことがない。その状況を見て「竹中平蔵について学ばないといけない」と思った。

竹中平蔵=悪”と思いこんだ人が会ったこともない竹中平蔵の悪口をTwitterに書く。それを同じ考えの人がこぞってRTして悪口が日常的に流れてくる。主観的に解釈された情報がふんだんに流れてくる。それは戦時中のプロパガンダと同じようなもので、意識的に情報を精査しないと自分の認識が歪ませる。それを避けたい。

”鬼畜米英”と政府が宣伝するからってアメリカやイギリスが鬼畜とは限らない。その判断は自分ですることだ。国内向けの宣伝と実態のギャップについてはW杯見てる人はわかるでしょ?「TVキャスターが言うほど日本の選手すごくないよね、視聴率のために盛り上げてるだけでしょ」って。

その人物について「善悪」「自身の利益になるならない」「歴史的意味合い」などを評価するには本人の書いている本を読むのが良い。たまたま目についたこれを選んだ。今後も何冊か読んだ上で評価するつもり。

好きか嫌いかを語る以前の問題として竹中の本はみんな読まないといけない、というのが僕の認識だ。新自由主義の時代は終わってファシズムの時代が始まった。上げ潮派理論武装はピケティに否定された。そういう意味で論客としての竹中平蔵の時代はもう終わった。だからきちんと整理しないといけない。良い点と悪い点を整理して次の時代に良い点を生かさないといけない。

以下、この本および著者についてのメモ。

竹中式イノベーション仕事術 「楽では生きられない日本」で戦う12の力

  1. 本の評価:割といい本
  2. 竹中氏の現代社会への認識:妥当
  3. 竹中氏について:ちょっと変な人
  4. 働き方について:モダン

1.割といい本
副題の通り仕事楽では生きられない日本・12の力の3つの要素でできてる。
古典力・イノベーション力とか12の要素に各章が当てられ解説と改善のためのアドバイスが載ってる。妥当な内容が端的にまとまってるので本としてよくできてる。大学の先生なので念頭に置いている読者は学生(慶応の)だろう。誰が読んでも「何も得るものがない」という事にはならない。半面、読みやすいいい本だけど名著ってほどでもない。1つ1つの説明が簡略化されてる分だけ深さはないから。

2.竹中氏の現代社会への認識
前提になってる楽では生きられない日本というのがこの本のキー。
・資本主義社会で競争を避けて生きることはできない。
・日米欧に中国やインドの新興大国が競争に加わる。競争の激化は避けられない。
・経済活動は人間によって行われているので「その人がどういう人間か」はどんな時代になっても大事。
・競争に敗れて下層階級に落ちていく人間と踏みとどまったり勝ち残る人間の2つに分かれていく。
・その人がどういう力をもっているのかがそのまま社会の階級になる。

この認識は妥当であろう。

3.竹中氏個人のについて
この人は分析が好き物事を分割するのが好き
前の勉強法の本ではマトリクスに分類した。この本では人間の力を12に分ける。12ってのは多い。物事を場合分けして考える場合、普通は3つか4つ、多くて7。ドラクエだって「ちから・たいりょく・すばやさ・かしこさ・うん」の5要素だ。12になったのは4つに分けた後、さらに3つに割ってるんだろう。2回もやってるあたり分割好きなんだろう。

ゲーム中に敵のプロパティを開いてパラメータ確認してどう戦う(HP低いなら叩く・固いなら魔法)か決めるように竹中氏は人の12のパラメータを確認して付き合う人間を決めてるのだろう。

4.働き方について
この竹中的世界観に「一つの会社に定年まで勤めるという生き方」「一度雇った社員は定年まで面倒を見るという会社」という世界観は共存しない。

会社は目的に合わせたメンバーで一時的に組まれたパーティに過ぎない。目的が達成されたらパーティは解散する。労働者は別のパーティを探す。必要とされれば見つかるし、見つからないなら落ちぶれる。それは自己責任。自分の腕を磨きましょ、という世界観だ。

マーケットメカニズムが世界観を前者から後者に変えていくのは必然。今後日本型経営の企業は没落する。人材の流動化が起こるので人材派遣業は特需。君たち(慶応の学生)はそんなのに構わず多国籍企業に行ってワールドワイドに活躍しろ、という基本方針だ。

大学を出る、就職、大学院、研究職、就職、博士号の取得、転職、といった流れで村人が戦士や魔法使い・上級職を経て勇者になるといったDQ6的なキャリア設計を読者や学生に勧めていて何より本人がそれを行ってる。それをするかしないかは自由で、しないなら落ちぶれる(パソナで働く)。

竹中氏は学者じゃなくて実務家で、そして博士号を持ってる。「局長以上に出世するなら当該分野の博士号が必要」というのは世界共通のルールで最近は中国ですら導入してる。「これからの時代は学士じゃ相手にされない、博士号が必須」と認識して銀行辞めて大学戻ることをこの世代で選択した人は少ないだろう。

竹中氏が成功した理由は日本で数少ない博士号を持ってる実務家だったからで、先見の明があったのは確か。
現代の(中流以上の)若者にとっては氏の生き方の方がモデルだろう。

脱サラした人のあれなところ

ちょっと変わった技術で脱サラして起業した人がうちに営業にきた。面白い技術だったんで話を進めてたんだがどうも交渉が進まなくて結局断った。 脱サラ組は自営業者の世界のゲームのルールがわかってない人が多いように感じる。サラリーマンでも上に行くと幹部講習とかで習うんだと思うが、幹部講習まで行く人はルールを知ってるが脱サラはしない。幹部講習に行かない人(出世をあきらめた人)が一念発起して脱サラする、という仕組みなんじゃないか?

もったいないと思う。ルールブックくらい読んだ方がいいよ。よく見かけるミスは次の2つだ。

1.判断が遅い

一般に自営業者は基本みんな忙しいんで「保留のまま一週間放置される」とかは相当イライラする。よほど難しい問題は別として「トップ同士で話してるんだからさっさと決めろや」というのがルールで「レスポンス悪い」っていうのは失格の烙印を押される。 理由は3つあって

  1. 時間はお金と同様にコストである
  2. トラブル対応などスピードが必要な事態が生じたときに判断が遅い役に立たないのでこっちで対処しなきゃいけなくなる。
  3. 撤退の判断もきっと遅い。

ようするにこいつと関わるのはコストとリスクが高いという評価になる。

サラリーマンの時間感覚だと1週間またせるとか全然OKだろうし「判断ミスを避けるために吟味する」のは減点法の世界では普通だろう。でも自営業者の場合は「リスク取ってとにかく前に進める」という姿勢の方が評価される。自営業者の世界はトラブルが起きることが前提なので、さっさと始める、小さく始める、トラブル対応、いざというときはスパッとあきらめる、といった行動パターンになる。一つ一つの判断で1週間またされるとそれ自体がトラブルを生みかねないし、トータルでどれだけコストを払わされるかわからない。

自社の商品がどういうものかというのが「商品を売り込む 表の商談」だとすると、雑談の中での「こんなトラブル起きて大変でしたよ」とか「大手が乗り出してきたんで結局たたみました」とかの失敗エピソードは笑い話であると同時に「自分は修羅場くぐってますからトラブルの時は頼りにしてもらっていいですよ」っていう「自分を売り込む 裏の商談」だ。失敗談以外だと「待ち合わせの時間を守る」「事前に目的地までの地図を確認する」「1回説明したことをちゃんと覚えてる」「お土産を持ってくる」などが加点ポイントになる(それぞれちゃんと理由がある)。僕が知ってるのはそれくらいだけど多分それぞれの業界でいろいろあるだろう。

「何をするか」よりも「誰とするか」の方が大事で、アイディアを試してみてダメだった時は次を考えればいいんだけど「こいつとは2度と関わりたくないな」と思われると次がないし、大きい仕事があったとしても小さい仕事でテストしてみたヤツとしか一緒にやろうとは思わない。テストを受けさせるかどうかの足きりが上記のポイントで「ダメだなコイツ」と判断されたらテストすら受けれない。

という仕組みで世の中が動いていると僕が気づいたのはごく最近である。思い返してみると僕もいっぱいダメ判定をされている。

2.交渉の仕方がわかってない

元外交官で作家の佐藤優先生の本に日露の北方領土交渉をオッパイにたとえ話がある。

日本は4島の返還と言っていて、ロシアは2島ならいいと言っている。ロシアが「経済協力をしよう」と提案してきた。「経済協力にOKしたら4島返還をあきらめたことになるのか?だったら断らないといけない」と総理に聞かれたので「いや総理違います。これはチャンスです。受けないとダメです」と答えた。

男と女に例えると、セックスがしたいと男が思っていて、女もやぶさかでないが今一つ踏み切れないという状況で「オッパイだけならいいよ」とブラジャーを脱いだ状況が今です。
「ブラジャーだけじゃダメだ。パンツも脱げ」と言ったら相手は怒って帰ってしまい、交渉はそこで終わりです。出されたオッパイを揉むのが正解です。盛り上がったら「次」が必ずあります。
まず2島もらって、経済協力を成功させて、その次にある本命の平和条約交渉のときに4島の話をすればいいんです。

僕は佐藤優の本は好きで結構読んでるんだけど、この「オッパイの話」と「味噌とクソ」のたとえ話が特に好きだ。 互いにリスクがない形で小さく始めてみる。とにかく相手を巻き込んで動き出してさえしまえば利害関係があるので降りる決断は大変になる。難しい話はそこまで行ってからすると通りやすい。「短期的には損だが長期では回収できる」という見込みが作れるし「断ると今までやってきたこと全部が無駄になる」という状況なら大きな妥協でもせざる負えない。 ロシアが領土を妥協してくれたら日本の利益だし、日本と平和条約を締結して両国の経済関係が良好ならロシアの利益になる。「両方が勝つ」が交渉のゴールだと。

商売って需要と供給の一致だからさ、一致させるための交渉過程で自分の都合だけ言うと破談になるんだよね。自分の都合を通したいなら、交渉をどう進めていくかという計画性がいるし、「自分が何が妥協できるか」「相手は何を妥協してくれるか」の見極めも必要だし、大胆にカード切る決断も必要だ。

どうも「そういう発想がそもそも無い」っぽいんだ。とすると「こんな人と仕事して大丈夫なんだろうか」という1の話に戻っていく。

「日本酒」の免許取得の抜け穴

新聞を読んでいたら面白い記事を見つけた www.nikkei.com ポイントは副原料を使う「その他の醸造酒」の製造免許の部分。

酒税法上の清酒の定義は

1.米、米こうじ及び水を原料として発酵させて、こしたもの 2.米、米こうじ、水及び清酒かすその他政令で定める物品を原料として発酵させて、こしたもの

清酒の「その他物品」はアルコールやアミノ酸、糖分など。 ビールは副原料が広く認められてて

麦、米、とうもろこし、こうりゃん、ばれいしょ、でん粉、糖類又は財務省令で定める苦味料若しくは着色料

これに加えてこの間の酒税法の改正で新しく色々と認められた

イ 果実(果実を乾燥させ、若しくは煮つめたもの又は濃縮した果汁を含みます。)
ロ コリアンダー又はその種
ハ ビールに香り又は味を付けるため使用する次の物品
1. こしょう、シナモン、クローブ、さんしょうその他の香辛料又はその原料
2. カモミール、セージ、バジル、レモングラスその他のハーブ
3. かんしょ、かぼちゃその他の野菜(野菜を乾燥させ、又は煮つめたものを含みます。)
4. そば又はごま
5. 蜂蜜その他の含糖質物、食塩又はみそ
6. 花又は茶、コーヒー、ココア若しくはこれらの調製品
7. かき、こんぶ、わかめ又はかつお

ビールで認められているこれらの副材料を加えることは清酒免許ではできない。それをしたい場合は「その他醸造酒免許」(雑酒免許)が必要になる。 清酒免許は新規で取得できないが、雑酒免許は新規で取得できる
日本酒・ビール・地ビール・ワイン・シードルやベリーワイン・酒精強化ワインじゃない醸造酒は全部雑酒免許になる。どぶろく、マッコリ、ハチミツで作るミードなどだ。変わったところだと古代米の赤米で作る古代の日本酒なんてのもあって「赤米は法律上の分類が雑穀で米じゃない」って理由で雑酒免許になった。

日本酒の定義が「米・米麹を使って濾す」なので「濾さない」なら雑酒どぶろく)になる。だから日本酒造りがしたいけど免許取れないって人はどぶろくに行くんだけど、「米・米麹以外の材料を使う」って形で雑酒免許を使うのは斬新だ。
経営が軌道に乗れば免許条件の緩和の手続きで清酒免許も取得できるだろうし、それも視野に入れているはずだ。
なんにせよ久しぶりに感心した。世の中には面白いやつがいるもんだ。

BASEの手数料は領収書が出るのか出ないのかという話

うちのネットショップはBASEを使っている。

thebase.in

BASEはシステムが、うーん、まあ安いから仕方ないんだけど。

月額利用料はかからないが商品が売れると手数料が取られる。
 販売手数料:1件につき3.6%+40円
 サービス料:3%(2017年9月19日から開始)
 出金時の手数料:1回250円

サービス料が9月半ばという超中途半端な時に開始されて値上がりしたものの、国内の他社サービスよりはまだ安い。かゆい所には手が届かないものの、通常業務はスマホでも操作がしやすいのでまぁこんなものかなーと思う。

問題は手数料がよくわからないところだ

前年度が終了したので決算を確定して申告と納税をしないといけない。事業経費を集計してたらBASEの手数料がいくらかわからなかった。BASEにログインしたが管理画面には手数料額が見当たらない。
問い合わせフォームに問い合わせたところ「BASEでは手数料は表示しないので注文データをダウンロードして自分で計算してください」という返事をもらった。

えええーと思いながら集計作業をしたんだが、果たして自分の計算が合っているのかがわからない。なんせDLしたCSVファイルがグチャグチャで直感的に操作できない。手作業で修正して集計してとやったのであってるのかどうか自信がない。

そんな状態で決算書を作って国税に出してトラブルになるとめんどくさい。そもそも領収書ってのは受け取った側が「受け取りました」と証明するための紙だ。こっちで勝手に計算したものでは意味がない。

「領収書の発行って拒否できるんだろうか?」
と思って検索したら
https://invoice.moneyforward.com/receipts-lp/basic/receipts-issuance-duty

民法486条で義務になっているって書いてある。

こっちに権利があり、相手に発行する義務があるというのなら堂々と要求してやろう、と問い合わせフォームから

民法486条 「弁済したものは、弁済を受領した者に対して受取証書の発行を請求できる
という規定に基づき領収書を発行いただきたいのですが、どのような手続きが必要でしょうか?

と送ったところ

お問い合わせいただきました支払明細書につきましては、
月末締め、翌月10営業日までの発行であれば個別に対応させていただいております。

という返事が返ってきて「対応してるんかい!最初に言え!!」となった。

税務署に出すから17/4/1から18/3/31の領収書が必要、と返事したら
来週をめどにお送りしますのでしばらくお待ちください、という返事。

発行できるんかーい。最初に言えー。

となった。

他のショップの人たちどうしてるんだろう?45万店舗もあるんだぜ?これ全部個別に対応してるんだろうか?税金払ってないってことはないだろうしなー。

うーん、謎だ。