福野泰介の一日一創 - create every day

超音波距離センサー、HC-SR04をIchigoJamで使う方法の紹介です。

HC-SR04は、5Vで動作し、Trig をOUT1に、Echo をIN1に挿します。OUT1コマンドで10u秒ONにすると、超音波を発信、跳ね返ってきた超音波を受信した時 IN(1) が0になります。IchigoJam BASIC で、動かしてみます。

10 OUT1:OUT0:A=0 20 A=A+1:IF IN(1) CONT ELSE ?A 30 WAIT 5:GOTO 10

壁までが遠いと8、近いと0や1と表示され、大雑把な距離がわかるセンサーとしては使えます。(VIDEO0で表示を止めるともう分解能を上げられます!)

時間を測る分解能が低すぎて、距離の計測まではできません。そこで、Armマシン語
IN(1)が0になるまでの時間を計測するマシン語のプログラムを書きます。(IN1のアドレスは#50001000

R0=0 R1=[@IN1]L @LOOP R2=[R1]L R0=R0+1 R2-0 IF !0 GOTO @LOOP R0=R0>>9 RET @IN1 DATA L #50001000

asm15でアセンブルするか、Armマシン語表からハンドアセンブルして、動かしてみます。

10 POKE#700,0,32,3,73,10,104,64,28,0,42,251,209,64,10,112,71,0,16,0,80 20 OUT1:OUT0:?USR(#700,0) 30 WAIT 5:GOTO 20

距離が数値で表示されました!

超音波センサー HC-SR04 は、1つ200円前後で入手可能なお手軽センサー(HC-SR04 on Amazon
ロボットの目、IoTの目として、ご活用ください!

links
- はじめてのマシン語 - IchigoJamではじめるArmマシン語その1
- Cortex-M0 Armマシン語表 (asm15表記、抜粋)
- IchigoJamと超音波距離センサでデジタルものさし作った。 | たね子のブログ (RC積分回路使用)
- 超音波距離センサー HC-SR04アダプタ(完成品) - PCN金沢オリジナル 教材/キット | PCN金沢 (IchigoJamのANAで取得可能にするキット)

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像