2022/9/14(水)

今日解いた競プロの問題。

ARC147-A: 愚直で通って笑ってしまった。納得の灰diff。まあ集合を更新しつつ最大と最小を管理する必要はあるので、必ずしもクソ楽実装と言える訳ではないのかもしれない。まあmultisetで瞬殺だったが。別の実装としては最大をpriority_queue管理して最小を別途管理するとか、A%B<Bに気を付ければソートしておいて普通のqueueを使うみたいな手もある。


部屋の整理を進めた。ダイソーの脆弱な段ボールは全て潰した。これで書類の山が箱の耐久性の問題で崩れることはあるまい。

電子部品の山の整理も多少進んだ。ねじ類を箱にまとめた。残っている電子部品は部品箱などに入れにくいような大物、分類しにくいものが多い。現状それらがまとめてでかいバッグに押し込められている。どうにかしたいが良策が思いつかない。せめてバッグでなく箱に押し込むか。


ちょっと電子工作入門を書いてみたく、PICマイコンの書き込み方法について調べた。

経緯をもうちょい詳しく言うと、まず電子工作入門を書くならマイコンについて触れない訳にはいかんと思うのだが、USB接続で書き込める開発ボードが良く出回っている32ビット機ならともかく、8ビット機は大体専用ライタが必要になる。

自分はPICライタとして数年前に買ったpickit3を愛用しているのだが、どうやら現在はpickit3はすでに生産終了、後継のpickit4はバカほど値上がりし、SNAPも品薄と来ている。となればライタ自作の話をするほかあるまい。

8ビットマイコンに触れるならArduino買えという話にすることは出来るが、個人的には3000円もするものを作品1つ作るたびに購入させるのは厳しい。安い小遣いでいかに面白い技術に触れるかを考え続けていた中学生のころの自分のような人に向けたシリーズという意味合いもある。最初にちょっと数千円の初期投資さえすれば、200円足らずのマイコンでいくらでも様々な作品が作れるあのすばらしさをぜひ味わって欲しいという思いがあるのだ。最近はラズパイピコというUSBで書き込める32ビットマイコンボードがわずか500円で売られているが、こういう類がいくら安くなったとしても1個100円代になることはあるまい。

最近使ったやつとしてPIC16F193X、最弱のやつとしてPIC10F20Xのデータシートを読んでみた。デバイスごとにサポートする方式には違いがあるが、おおまかにこのような感じのようだった。

  • プログラミングモードのスタート方法
    • Vppファーストモード
      • Vpp(リセットピン), Vdd(電源), ICSPDAT, ICSPCLK をLow
      • VppをVihh(高電圧)に上げる
      • Vdd印加
    • Vddファーストモード
      • Vpp(リセットピン), ICSPDAT, ICSPCLK をLow
      • Vdd印加
      • VppをVihh(高電圧)に上げる
    • LVP
      • VppをLowにしてその間にICSPDAT, ICSPCLKを用いて規定のパターンを送信
  • ICSPDAT, ICSPCLKによる通信方法
    • ICSPCLKでクロック供給、立下り時のICSPDATがビットデータになる
    • 6ビットで表されたコマンドをライタから送信→各コマンドごとの動作

Categories: