トトト・トトトト・トトトトト
S (トトト) H (トトトト) 5 (トトトトト) の区別がつくように全然ならない。20wpm 程度でも結構間違える。全部とれない場合、ミスのほとんどがこれ。25wpm になると、1分間やっている中の 5 を全部 H、H を S と書く、あるいは逆、みたいにズレて聞きとったりする。クソすぎてイライラする。
S H 5 だけランダムで聞きとろうとすると、今度は全部聞きとれない。ランダムではなく SHE, HIS とかはパターンで覚えてるからある程度聞きとれるけど、ランダムだと全く意味わかんない。なので、比較して聞きとれるようにするということもできない。というか単体ならまず間違えないんだよ……
E (ト) と I (トト) と S (トトト) の区別は容易にできるけど、それ以上の短点は「いっぱい」としか認識されない。「ちょっと長いから5だろう」「5ほどじゃないからHかな」ぐらいの曖昧な感じ。本当にイライラする。
もう初めて3ヶ月ほど経つのにこのありさまなのでやる気なくす。あまりにもこれらを間違えるので 26wpm から 20wpm 程度までスピードを落としてゆっくりやってる。多少マシになったかもしれないけど。あいかわらず間違える。聞きとれない文字がいくつかあると、それらで考えてしまって止まるので、速度があげられない。一度聞きとれないと、その単語は完全に落とすので、そういう文字があってはならない。
次に J と 1 も、S H 5 ほどではないけど区別がつかない。こっちはコールサインの文脈でよく使うので比較的頭に長さのイメージができているけど、それでも間違える。どうすれば解決するのか全くわからない。3ヶ月やってダメなら一生ダメなんじゃないか。
以上の符号以外にも、2、3、7、Z、X はそれ以外に比べてよく間違える。
関連エントリー
- モールス練習 練習開始から93日、ほぼ3ヶ月ぐらい経っているので経過を書いておく 10月09日: 25wpm ランダムまで90%をとれ次第すぐ進むぐらいの...
- モールス学習 進捗 20wpm/10wpm でレッスン40まで行ったあと、20wpm/11wpm から 20wpm/18wpm まで徐々にあげてみてる。調子がい...
- 無線 まだ2局ほど 599BK 形式でやっている局を呼んだだけで、それ以上のことはできてない。近畿あたりの局を呼んでみたりしたけど、パイルアップに...
- モールス練習 進捗 練習開始から111日。練習のモチベーションはかなり落ちているんだけど、割と習慣化できているので、1日に少なくとも5分程度はやってると思う。習...
- 最近のモールス訓練 23wpm で文字+数字、数字だけ、文字だけ、をそれぞれ90%なんとかとったので24wpmでやりはじめてる。20wpmだと完全ランダムでだい...
AVR 浮動小数点 (float) 演算
浮動小数点演算を使ったとき、-lm を付けないとバイナリサイズが巨大化する問題がある。-lm をつけない場合、デフォルトの (libgccの?) 浮動小数点関数がリンクされるけど、avr 用には高効率なものが libm に実装されている。libgcc だと 3k -> libm だと 1k ぐらいのインパクトがあるので必ず libm を使うようにしたい。
とはいえ、ちゃんと理解してないと libm にリンクされない……
結論からいうと以下じゃないとだめだった。
$(COMPILE) -o main.elf $(OBJECTS) -lm
以下のようだとうまくいかない。
$(COMPILE) -lm -o main.elf $(OBJECTS) $(COMPILE) -o main.elf -lm $(OBJECTS)
というのも、リンカは、引数を順番に読みこんで、読み込み中のファイルに今までで未定義のシンボルがあったとき、それを解決する、という挙動をするらしい (なんとなく逆に、先に定義して解決していくもんだと思ってた)。
なので、先に -lm を指定しても、その時点では未定義のシンボルが何もないので何の意味もない。
gcc のオプションに -v (verbose) を渡すと、最終的に ld (collect2) に渡される引数がわかる。
うまくいく場合は main.o -lm -lgcc -lc -lgcc というふうになってる。main.o で使ってるシンボルが -lm で解決されて、あとまだ足りないのは -lgcc とかで解決される。-lgcc が2回出てくるのは、-lc が -lgcc を使ってるからかな。よくわかんない。
関連エントリー
- mruby を Raspberry Pi 上で bare metal で動かすまで bare metal という言葉を最近知って、おもしろそうだなあと思ったので Raspberry Pi 上で試してみた。bare metal...
- Mac で simavr + avr-gdb を使い AVR プログラムを PC 上でデバッグする Mac の場合 AVR Studio を使えないので、いろいろ不便である。しかし一応開発環境がととのった。結構ググったけど、このようにして開...
- 任意固定小数点→浮動小数点変換スニペット I2Cセンサーとかを扱うと固定小数点表現によく出会う。が、固定小数点のままだと計算がめんどうなので、とりあえず浮動小数点に変換しときたいとい...
- OS X で avr-gcc 5.3.0 をビルドする AVR のビルドツールといえば Arduino.app 1.6.5 に含まれているのでそれ使うのが一番楽だけど、この avr-gcc は 4...
- 組込みでこそ C++ C++ はながいこと食わず嫌いだった。とにかく「難しい」というイメージだけ先行していた。 しかし、あくまで better C として使う限り...
AVR、なぜかリセットされまくるとき
割込みかけるように設定しているにも関わらず、それに対する処理を書いていないと、sei() を呼んだあと、割込みが発生するときに落ちてリセットがかかる。
sei() が呼ばれるまでは問題ないので、コメントアウトでデバッグしていると超ハマる。
関連エントリー
- Mac で simavr + avr-gdb を使い AVR プログラムを PC 上でデバッグする Mac の場合 AVR Studio を使えないので、いろいろ不便である。しかし一応開発環境がととのった。結構ググったけど、このようにして開...
- ✖ Watch Dog Timer ワッチドッグタイマー。基本はプログラムが意図しない挙動をしたときにリセットをかけるためのタイマー。 例えば、...
- ✖ マイコンプログラミングとか、黙って Arduino やっとけハゲという感じではあるんだけど、Arduino の言語がどうも好きになれなくて使...
- AVR TWI (I2C) 用のライブラリ そこそこ使いやすい感じなのを学習しながら書いてみた。 https://github.com/cho45/avr-utils/blob/mas...
- AVR で USB 接続の PC キーヤーを作る PC からモールス符号を発生させて無線機に入力するものが欲しいと思っていた。当然既にそういうのはあるんだけど、どうも気に入るのがないので、必...
AVR シリアルでPCと接続してデバッグ
USB-シリアルポートアダプタ (RS-232C) は前に買っていたけど、RS-232C は正負 -12~+12 で1/0を表現うるので、マイコンのロジックレベル(0 or VCC)とは違っていて、そのままではマイコンと接続できない。
調べてみると、RS232トランシーバー (ドライバ) ICというのがあって、それを使えば簡単にレベル変換できることがわかった。有名なのは MAX232 というやつみたいだけど、ほぼ同じインターフェイス(ピンアサイン)でビットレートや電源電圧が違うやつがいろいろとあるみたいだ。
今回は ICL3232CPZ という 3.3V〜5V で動いて、なおかつ外付け部品が 0.1uF 5個だけというのを選んで作った。
繋いで以下のような、ボーレート 19200 で吐き出すコードを書いてみた (チップは ATTiny2313、レジスタ名がチップによって違うので、チップ変えるとそのままでは動かない)
#include <avr/io.h>
#include <string.h>
#include <util/delay.h>
#define clear_bit(v, bit) v &= ~(1 << bit)
#define set_bit(v, bit) v |= (1 << bit)
static inline void uart_putchar(char c) {
loop_until_bit_is_set(UCSRA, UDRE);
UDR = c;
}
static inline void uart_puts(char* string) {
unsigned int len = strlen(string);
unsigned int i;
for (i = 0; i < len; i++) {
uart_putchar(string[i]);
}
uart_putchar('\r');
uart_putchar('\n');
}
void usart_init(unsigned short baudrate) {
unsigned int d = ((F_CPU + (baudrate * 8L)) / (baudrate * 16L) - 1);
UBRRL = d;
UBRRH = d >> 8;
UCSRB =
(1<<RXCIE) | // RX Complete Interrupt Enable
(1<<TXCIE) | // TX Complete Interrupt Enable
(0<<UDRIE) | // USART Data Register Empty Interrupt Enable
(1<<RXEN) | // Receiver Enable
(1<<TXEN) | // Transmitter Enable
(0<<UCSZ2) | // Character Size
(0<<RXB8) | // Receive Data Bit 8
(0<<TXB8) ; // Transmit Data Bit 8
UCSRC =
(0<<UMSEL) | // USART Mode Select: 0=Asynchronous Operation, 1=Synchronous Operation
(0<<UPM1)|(0<<UPM0) | // Parity Mode
(0<<USBS) | // Stop Bit Select
(1<<UCSZ1)|(1<<UCSZ0) | // Character Size (with UCSRB)
(0<<UCPOL) ; // Clock Polarity
}
static inline void setup_io () {
usart_init(19200);
}
int main(void) {
setup_io();
for (;;) {
uart_puts("Hello, World");
_delay_ms(1000);
}
} PC 側では、この USB シリアルポートアダプタの場合、/dev/tty.usbserial-FTB3L9UG というようなファイルができるので、これを指定して GNU screen の window を1つ作ってる。変なことしてないのでボーレートを指定するだけでいける。
screen /dev/tty.usbserial-FTB3L9UG 19200
これで RX/TX があるチップならかなりデバッグが捗りそう。
関連エントリー
- マイコン周りのシリアル通信プロトコルまとめ なんかいろいろあって??ってなるので特徴を覚え書き。線は信号に関係するものだけ (普通は +VDD が必要) 名前 線 特徴 速度 備考 1...
- Raspberry Pi を中心にやってみようとしているところ Raspberry Pi せっかくあるので、一応作りたい目標をもっていろいろ試してみてる。現時点での思惑を書いておく。 概要 無線機の周辺を...
- KX3 ACC1の無線化 (シリアルポートのBluetooth化) KX3のPC 接続用 ACC1は、RS-232C レベルの電圧レベルを想定している(正確には、0VとVCCの負論理になってるけど) これをB...
- 絶縁型 RS-232 ⇔ TTL レベル変換 RS-232 TTL 変換をフォトカプラでやる。 グラウンドを分離したいと、ノイズ相互の流入を防ぎたいのでRS-232変換を専用ドライバーI...
- Mac で simavr + avr-gdb を使い AVR プログラムを PC 上でデバッグする Mac の場合 AVR Studio を使えないので、いろいろ不便である。しかし一応開発環境がととのった。結構ググったけど、このようにして開...
ATTiny13A
いろいろパーツを注文するついでに ATTiny13A というチップも買ってみた。
見ての通り8ピンしかないチップだけど、以下のような特徴がある
- 1個50円と激安。
- ADC がついてる
- プログラムに使えるのは1KBしかない
- SRAM が 64B だけある (のでCで書ける)
- 外付け水晶を使うのは面倒 (使わないつもりで書いたほうが良い)
- ISPを殺せば最大6ピンIOに使えるけど、基本5ピンしかIOに使えないと考えたほうがいい
かなり制約があって楽しい。サイズ的に浮動小数点は使えないので工夫する必要がある。メモリ(SRAM)も64Bしかないのでついうっかりするとオーバーしそう。でもCで開発できるのでいいバランス。
とりあえずエレキー作るのがいいかと思って作ってみた。
まとめを後日書きました ボタン電池で動く小型・低消費電力 AVR エレキー (50円 ワンチップマイコン ATTiny13A) | tech | avr | arduino - 氾濫原
ただ、ピン数が少ないせいで大きな問題がある。というのも、必然的に ISP で使うピンとアプリケーションのピンを共有することになるので、回路によっては、繋いだままの ISP というのができないっぽい。「SCK fail」とか「MOSI fail」とか出て意味不明だったけど、このせいみたいだ。うまくやらないと In-System Programming という感じでなくなる。なんか簡単ないい方法ないのかな。
ADC の端子がいくつかあるので、スイッチをたくさん繋いでいくというのは割とできそう。ただ出力はそうもいかない。ソフトウェアに使えるメモリ量も少ないので「ハードにないからソフトで実現」というのも難しいことが多そう。
それにしても「50円で買えるコンピュータ」というのはグっとくる。
関連エントリー
- Quick Charge 2.0 から 9V/12V を出力させるデバイス (ATTiny13A) Quick Charge 2.0 電源から 9V をとる (任意の電圧をとる) | tech - 氾濫原 で、だいたいこれで良さそうと思った...
- ATTiny13A を使った小型エレキー まとめを後日書きました http://lowreal.net/2013/11/08/5 前に書いたのの続き。 Code: https://g...
- ✖ AVR は思ったより難しくなくて結構拍子抜けするぐらいだけど、今までやったことがない分野なので適度に難しい問題がたくさんころがっていてめちゃ...
- ボタン電池で動く小型・低消費電力 AVR エレキー (50円 ワンチップマイコン ATTiny13A) とりあえず完成なので、今まで書いたやつのまとめで整理。 要求 外に持ちだせるように小型で電池駆動できること 電池交換をあまり気にしなくてもい...
- 中華 NanoVNA にバッテリー表示をつける 回路図の D2 はバッテリーから MCU の VBAT に接続する経路ですが、自分の入手した固体だと未実装でした。せっかくなので、手元にあっ...
Bose QuietComfort 15 のイヤーパッドを交換
使いはじめて2年ぐらい経ったところで、イヤーパッドの縫い目が割けてきしまったので、交換したくなった。とりあえず純正が高いので安いのを買ってみた。
Bose QuietComfort 15 対応交換用パッド◆QC15, QC2, AE2, AE2i 対応(univarcオリジナル) 安心安全保証付き U1355 cho45
さすがに本体とサイズが合わないということはなく、普通に使える感じ。ただ、純正と比べるとちょっと硬い。しばらく使ってみる。
Bose QuietComfort 15 Acoustic Noise Cancelling headphones ノイズキャンセリングヘッドホン QuietComfort15-S cho45
やっぱりほぼ毎日使っていると痛んでくる。どのぐらい長く使えるかな。もうこれ無しの生活とか考えられないんだけど
関連エントリー
- 最近のヘッドフォン事情 特にヘッドフォン新しく買ったりというのはしていなくて、というのも通勤中・仕事中はノイズキャンセルがついている QC15 一択しかなくて他のを...
- 珪藻土のバスマット 軽くて薄くて丈夫になったバスマット soil(ソイル) バスマット ライト(1枚) cho45 ソイル(Soil) ★ 3.0 / 5.0 ...
- シチズン Q&Qのバンドを交換した cho45 ★ 5.0 / 5.0 cho45 1000円の時計。3年前に買って、去年に電池を交換したけど、バンドがかなりヘタって、もうダメ...
- シチズン Q&Qのバンドを交換した2 シチズン Q&Qのバンドを交換した - 氾濫原 から1年半ぐらい。バンドがボロボロになったので交換 [シチズン Q&Q] 腕時計 フォルコン...
- 自転車のタイヤ交換した 外で保管しているクロスバイクのタイヤが、だいぶ劣化してしまって不安なので交換した。バーテープも同時に交換 パナレーサー クリンチャー タイヤ...
ピーラーは100均やIKEAのものを買ってはいけない。
IKEA で買ったピーラーの切れ味がよくなくて、うちで不評だったので以下を買った。知り合いの家にあって、便利だったので、検索してみたらすぐ見つかった。
スピードサラダ 19639 cho45
千切り機能とか使わねーだろと思ったけど、使ってみたら便利だった。刃物系はあんまり安いとよくないですね。
爪切りも少しだけ良いものを買ったほう確実に生活が向上していいです。
木屋 はがねの爪切り 大 BK-T02 cho45
↑ これほしい。
関連エントリー
- 今年買ってよかったものまとめ ドラム式洗濯・乾燥機 NA-VX7200L-N パナソニック ドラム式洗濯乾燥機 cho45 パナソニック(Panasonic) ★ 5.0...
- ✖ 梅の気持ち BOX cho45 オリオン(Orion) ★ 5.0 / 5.0 cho45 オリオン(Orion) ミニコーラ 30個入 B...
- ✖ 園芸用の筒になってるスコップを買ってみたけど、すごいやりやすくなった。道具の力は偉大だ。スコップないときは紙を折ってスコップっぽいものを作っ...
- キッチンの棚 DIY 面倒なので塗装なし カットはホームセンターでやってもらったので特に苦労なし。 自転車のトレーラーで運んだ。910mm ぐらいなら内側におさめ...
- 今年買ってあまり良くなかったものまとめ 慎重に買ってるつもりだから、あんまり思いつかないんだけど ブドウ糖 大丸本舗 ぶどう糖 ボトル入 135g cho45 大丸本舗 ★ 2.0...






