慎重に買ってるつもりだから、あんまり思いつかないんだけど

ブドウ糖

ぶどう糖 ボトル入 135g -

2.0 / 5.0

頭良くなるかな〜 と思ったけど (この発想が頭悪い)、まぁ砂糖だね… って感じだった

電工ペンチ

フジ矢 電工ペンチ FA003 -

3.0 / 5.0

ワイヤストリッパーは便利だけど、圧着端子は別の工具が必要だな、思った。結構つらい。

頭洗うやつ

パナソニック 頭皮エステ(皮脂洗浄タイプ) シルバー EH-HM94-S -

3.0 / 5.0

悪くはないんだけど、ちょっと面倒でたまにしかやらなくなった。でもたまに使うと気持ちいい。充電が地味に面倒なので、非接触充電になったらなあ。

モンキーレンチ

スーパー モーターレンチ MF230 -

3.0 / 5.0

専用サイズのレンチのほうが100倍ぐらい使い勝手が良い。あると便利だけど、あくまで非常用だなあという感じ。100均でもそこそこの種類のレンチは買える。

6口スイッチつき電源タップ

ELECOM 電源タップ color style 雷ガード 省エネ 個別スイッチ 6個口 2m ブラウン T-BR04-2620BR -

3.0 / 5.0

スイッチついててもあんまり使わないので口数が多いほうがうれしい…… 一応プリンタの待機電力が非常に多いのでできるだけ切るようにしてるけど、なんともいえない。

Qi 用のエネループ充電器

SANYO 単3・単4形ニッケル水素電池専用充電機能付キャリングケースセット N-WL01S-K -

2.0 / 5.0

Qi (無接触電源) で単3エネループを充電するやつ。Qi は電力供給能力が低いので充電速度が遅いし、結局普通ので充電していて使ってない。

舌ブラシ

舌ブラシ W-1 (ダブルワン) (色はおまかせ) -

3.0 / 5.0

舌は確かに綺麗になるけど、最近使ってない。商品は悪くないと思う。


結論:よくなかったものまとめてもテンションあがりませんね。

試験問題

前回 (3級) 受けたのは、まだ電信受信試験があった中1のときだったので、実に14年ぶりぐらいの試験になった。その間に電信の試験は廃止され2級と1級はあまり難易度に差がなくなったみたいなので (数学的な部分だけ?)、2級は受けないことにした。

動機

  • 10MHz, 14MHz (2級以上で許可) に出てみたくなった
  • 3級とか小学生でもとれるし恥ずかしい感じがする
  • 資格の説明が「 アマチュア無線局の無線設備の操作」 とシンプルになってかっこいい

やりたいことは2級でもできるし、QRO (2級で最大200W、1級だと最大1000Wまで許可されるけど、集合住宅だと出力をあげるのは悪手) する気もないので、モチベーション的な問題が大きい。

勉強

昔はどうだったか知らないけど、1アマは難しい難しいと聞いていた割に、今はそんなに難しい試験ではないように思った。中学で数学ちゃんとやって卒業してたら余裕、みたいな感じだと思う…… (複素数の計算が一部あるけど、1アマだとたいしたことはしない) 電信聞き取りがないし、ほんと単に数学力が難易度に直結する。

自分は中学・高校で数学をちゃんとやらなかったばかりか、かけ算九九でミスをするレベルなので、そのへんが大変つらかった。問題を方程式にするまではできても、かなりの頻度で計算ミスをして、しばらく気付けないことがある。計算ミスが多いと、それに気をとられるがあまり、考慮不足で根本的に間違えることもあって辛い。

2ヶ月前から落ちてもいいから基礎からというつもりで準備をしたけど、本気でやりまくったのは最初の1ヶ月だけで、模試をしてみたら合格点を超えてしまったのでだんだんやる気が落ちていった。使った本は

第一級アマチュア無線技士試験問題集 (合格精選400題) - 吉川忠久

吉川忠久

5.0 / 5.0


基礎からよくわかる無線工学―第1級・第2級アマチュア無線技士国家試験準拠 - 吉川 忠久

吉川 忠久

4.0 / 5.0

と、中学生レベルの計算を思い出すためにドリルを買って2回ぐらいやった。高校受験用だと中1〜3まで纏まっていて便利。

中1~3数学10分間復習ドリル―サッと復習ググッと学力アップ -

5.0 / 5.0

ドリルは体感的にはかなり効果があって、その後問題を解くのが気分的にもだいぶ楽になった。

あと、本でよくわからなかったところは以下のサイトが大変わかりやすかった。たぶん以下のサイトと過去問題だけでも工学は受かると思う。

前述の通り、複素数に関しては1アマでは普通に文字式を解くのと変わらないレベルのことしか要求されないので、余計な勉強はしてないし、特に苦手意識もつかなかった。新たに覚えたのは分母にj がきたとき共役複素数で分母を有理化というルールだけだった。

本番

直近の過去3回の問題は事前にやってたけど、工学は本番の問題が思いのほか難しく感じた。これは1枚目に計算問題が集中しており、なおかつその全てが事前にやった問題集や試験問題に同じ形の問題がないというものだったからだと思う。なのでかなり焦った。そう難しい変化ではないとはいえ、方程式の変形をよくミスするので、結局念のため4回ぐらい解いたりした…… (おかげでこれらは正答できた)

能動素子 (半導体) の問題が全然でなかったなあという印象だった (出たことは出たんだけど)。ことごとく、出たらいいなあとなんとなく思っていた問題はでなかった。逆に、出たら捨てようと思っていた過渡状態の問題がでて悲しかった (けどこれは改めて考えたら解けた)

間違えた問題(A問題の2問)の原因は、理解不足による勘違いと、根本的な解きかたのケアレスミス (2倍するのを忘れた的な) だった。

久しぶりに全力で応用部分の頭使った感じだった。終わったあとヘロヘロになった。

法規は単に覚え間違いが多かった。「無線電信とは~通信設備である」が何度見ても納得いかない。設備じゃねーだろと思うんだけど、定義だから仕方ない……

答えあわせ

試験日の3日後?の15時に公式の解答が出るみたいで、答えあわせをした。(法規、工学ともに、150点満点中 105点 正答率70%以上が合格ライン)

  • 法規: 130点 (正答率87%)
  • 工学: 140点 (正答率93%)

だった。試験後の印象としては、法規は余裕で工学がヤバイ、だったけど、点数的には逆だった……

マークミスさえなければ、合格しているはず。25日に正式な合格発表がある。

まとめ

やればできた。勉強はじめる前はいろいろあって受かる気がしなかったんだけど、実際勉強してみると、そんなグダグダ言うほどには難しくなくて、これさえ受かないとかだと自分相当ダメなんじゃないかと思ってプレッシャーだった。(難易度的には1陸特より少し難しいぐらいらしく、無線資格としては1陸技・1総通まであるわけで、入門レベルなのだなあという感じ…)

たまには試験的なものをしてみるのもいいかもなあと思う。けど、受けるモチベーションが起こる試験があまりない。多少勉強する姿勢ができたので、継続して何かしら勉強をしたい。

  1. トップ
  2. ham
  3. 1アマを受験 (第1級アマチュア無線技士)

仮にも (こういう言い方をすると怒られそう) プログラマとして働いているのに、情報処理試験を一度も受けたことがなく、勉強の機運が高まっているので受けてみようと調べてみたけど、やはりメリットが感じられず、モチベーションが沸いてこなかった。

情報処理の試験は受かっても別になにか独占業務があるわけではないので、何に価値を見い出せばいいのかよくわからない。「情報セキュリティスペシャリスト」とか名前かっこいい!ぐらいしかない…… ウェブ業界だと、資格持ってても github しか見られないし就職には殆ど意味を感じられない。

勉強すること自体には意味があるけど、過程だけに意味があってもやる気沸いてこない。なんか「これは!!」っていうメリットはないんだろうか。

PROGMEM をつけると (const も必須)、その変数の示す先がプログラムメモリー領域になる。そのままだと使えないのでワーキングメモリ (SRAM) にコピーする必要がある、という話。大きい定数は SRAM に置けないので、基本的にプログラムメモリ (フラッシュメモリ) 上に置いて、必要なときだけコピーするようにする。

avr/pgmspace.h に byte やら word を読み出す関数は提供されているけど、long はない。どうするのが正しいのかなあと思ったけどよくわからなかった。

結局以下のように memcopy でうまくいった。

const uint32_t MORSE_CODES[] PROGMEM = {
    ...
};

uint32_t current_sign;
memcpy_P(¤t_sign, &MORSE_CODES[character], 4); 


progmem 調べていると prog_ が prefix された型を使え、って書いてあるのがよく検索ででてくるけど、それは obsolete で、使うとエラーになる。ヘッダを読んだほうが良い。const と PROGMEM をつけるのが正しい。

しかしヘッダ見ると far とか near とかよくわかんない関数がいっぱいあって混乱する。far は 64KB 以上のフラッシュがあるデバイスしか関係ないっぽいので気にしないほうがいいっぽい。つまり near_ だけ使っていれば良い (実際、 near も far もついていない関数は near のエイリアスになっている)

ヘッダファイルの冒頭部分の一部を訳してみた。

\note If possible, put your constant tables in the lower 64 KB and use
pgm_read_byte_near() or pgm_read_word_near() instead of
pgm_read_byte_far() or pgm_read_word_far() since it is more efficient that
way, and you can still use the upper 64K for executable code.
All functions that are suffixed with a \c _P \e require their
arguments to be in the lower 64 KB of the flash ROM, as they do
not use ELPM instructions. This is normally not a big concern as
the linker setup arranges any program space constants declared
using the macros from this header file so they are placed right after
the interrupt vectors, and in front of any executable code. However,
it can become a problem if there are too many of these constants, or
for bootloaders on devices with more than 64 KB of ROM.
All these functions will not work in that situation.

可能なら、定数テーブルは 64KB 以下に配置し、pgm_read_byte_far() や pgm_read_word_far() の代わりに pgm_read_byte_near() や pgm_read_word_near() を使ったほうが効率が良いし、なおかつ 64KB 以上は実行コードに使える。

プリフィックスに _P がついている全ての関数はELPM 命令を使わず、フラッシュROMの64KB 以下を引数にとる。これは大抵の場合、このヘッダファイルのマクロを使って定義されたプログラムスペース定数はリンカーが割込みベクターのすぐ後に配置するので、気にすることはない。

しかしながら、もしこのような定数が多すぎる場合や、デバイス上のブートローダーが 64KB 以上の場合問題をひきおこすかもしれない。これらの関数はこのような状況では一切動かないだろう。

  1. トップ
  2. avr
  3. AVR progmem に long を置く方法
  1. トップ
  2. arduino
  3. AVR progmem に long を置く方法

抵抗器とかコンデンサとかをうまく整理する方法を考えてる。とにかく種類が多いし、そこそこ体積があったりするので面倒くさい。

値わけして袋詰めするまではいいとして、袋がばらばらにあっても、ソートされていないと見つけることができないのでゴミと変わりがない。

抵抗

抵抗はそんなに大きくないので (100本ぐらいだと結構…) 100均のハガキ用バインダーにだいたい納まった。E24 系全部持ってたりすると2冊ないとダメそう。

コンデンサ

電界コンデンサだと特にだけど、そこそこ体積があるので、バインダーみたいのに入れこむのはつらい。こちらは普通に横長のプラスチックケースにソートして入れるみたいにしてみた。

本当は仕切りが可変できるパーツボックスがあればいいんだけど、結構高いのしかないので、これで我慢する。

半導体

半導体が一番悩ましい。ソートしようがないので、できるだけ 一覧性が高い形で保存したいけど、いい方法が思いついてない。

基本は用途別にわけていくのがよさそう。

  • ダイオード
    • 整流用
    • 小信号用
    • ツェナー
  • LED
    • 形別にわける
  • トランジスタ
    • 耐圧ごと? になんとなくソート?
    • フォトカプラも
  • FET
    • 耐圧ごと? になんとなくソート?
  • センサー系
  • ロジックIC
  • オーディオ関係IC
  • マイコンチップ