★★ 更新  2021.7.7                                     ★★ By T.Endou ( 遠藤 敏夫)
BookT
PICマイコン制御
BookU
PICマイコン製作集
BookV
完全マスター
BookW
電子工作の基本
BookX
アセンブラ入門
プログラムのダウンロード 質問コーナー 「My Photo」 のコーナー 数学/目次

本に掲載されている
プログラムをダウンロードするページです。
また、本の内容や下に紹介する製作例に関するご質問等ありましたら、お気軽にお問い合わせください。


 






 表紙クリックすると
100の項目が表示されます


       BookW(2010/11)

       わかる!電子工作の基本100
                 秀和システム

本書はラジオ、ステレオ等のアナログから、最近の先端を行くデジタルそしてマイコンまで、電子工作全般の基本的なことがらを、マメ百科として活用できるように100項目にまとめました。私自身がつまずき、悩んだことがらを、小中学生にも分かるように、できるだけ簡単に読みやすく書きました(ただし、ほんの少し高校の数学を必要とする箇所があります)
掲載した回路等は、私自身のオリジナルのものは勿論、旧来からあるものも全て実際に製作し確認したものです。

<目次>
Chap.1.楽しい電子工作を始めるにあたって
Chap.2.知るほどに興味深い『電気の基本』
Chap.3.電気回路の主役たち
Chap.4.親しみやすくて実用的なアナログ
Chap.5.限りない可能性を秘めたデジタル
Chap.6.知っておきたい電子回路の基礎知識
Chap.7.誰にでもすぐに始められる『マイコン』の活用法



 
『電子工作の基本』補記 (上の本に載せきれなかったことがら。些細なことも。今後随時加筆)
                                                              2020/6/25

 




                                                                             



IchigoJam プログラム 1


・イチゴキャッチ
・ケイバレース
・スロットマシーン
・カードゲーム(I Jと対戦)
・生き残りゲーム(I Jと対戦)
・壁反射


               
IchigoJam自作基板  実体回路図 / 説明

IchigoJam プログラム 2

(下で紹介するプログラムを一括して表示します。利用の仕方は上の1を参照してください)
<生き残りゲーム=対戦型(人対人)>・・・頭を使う
キーボードの方向キー(↑、→、↓、←)と上の写真にある基板の4個のボタンで対戦。
プログラムは、キーボードのキーはBTN(28)〜BTN(31)で、基板のボタンはIN(1)、IN(2)、IN(4)、IN(5)で。ただし、IN(5)はOUT1を入力用に設定した(OUT 1、-2 でプルアップ入力用に)。
その場に留まったり、自身および相手が既に通ったあとや周の壁にぶつかると負け(×)。
相手を攻撃するのではなく、相手の行き場をなくして自分だけが生き残るのを目指す。
プログラム中の「WAIT」を小さくすればスピードが上がり、スリリングなゲームになる。
どこかに障害物や壁を配置するなど、いろいろ工夫できそう。

基板はボタン(上の制作例ではタクトSWを使用している)4個だけで作ることができる(実体回路図参照)。
<カベテニス=対戦型(人対人)>・・・少し頭を使う
上と同様、キーボードと基板で対戦。
お互いラケットを上下左右に動かして球を打ち合う。
球はラケットもカベも入射角45°(135°)、反射角135°(45°)で跳ね返る。
相手がミスをすればポイントになる。
予め両者で何ポイントマッチか決める(画面上には表示なし)。
どこかに(*)を配置し、ボールが当ったら打った側のポイントになるとか、意外な方向に跳ね返るようにするとか、いろいろ工夫できそう。
<ボケ防止、暗算能力アップゲーム>・・・瞬発的な頭を使う(ただし単純な足し算)
中央の一番上に1〜9の数がランダムに発生し、2秒後に落下を始める。落下が始まったらコースを変えられない。したがって、2秒以内にどのコースにするか決めなければならない。
数は着地した際、両隣のどちらかとの合計が10なら、自身とその相棒が消える。また、縦方向に自身とすぐ下か、さらにその下をたした合計が15なら、それらの数が消える。
消えない数が増えていき、→、←の間にいずれかの列が到達したままになると終了。
右の「Z:   」は何個の数が落下したかを表す。結果として何個の落下まで持ちこたえられたかを競う。「Max:   」はその最高点。
最初のうちは楽勝だが、数がたまりだすとかなり厳しくなる。
Zが100を越えるにはかなりの頑張りが必要。
(IchigoJam が発生する乱数 RND(X) はちょっと偏りが気になる。小さい数、大きい数が続くことが多い)
<過酷な世界を生き抜くあおむし>・・・使うのは反射神経、運動神経のみ
あおむしの食料(+)はいくらでも下から湧き上がってくる。あおむしはそれを捕食すると、胴体が成長する(最初は胴体が1個)。しかし、あおむしの近辺には常に爆弾が待ち構え(自然発生的に)、頭がそれに触れるとアウトになる。
胴体を10個連ねるのはかなり困難。
胴体を何個か連ねられたら(プログラムで決められる)、それより先は爆弾のない世界になる。好きなだけ成長して、その後は蝶に?
<立体4目並べ=対戦型(人対IchigoJam または人対人)>・・・少し頭を使う
ゲームとして売られている『立体4文目並べ』。縦か横か斜めに4目並べると勝ち。
本物のゲーム同様、上から交互に自分のコマを落とす。
人対人の対戦もできるが、人対 IchigoJam に設定すると、最低のレベルだが、一応 IJ がどうするべきか考えるようにしてある。
たとえば、人が3目になると4目となるのを阻止しし、自身に4目となるか所があればそれを優先する。
どちらかが4目になると、IJ が判定して「〜〜ノカチ」と表示する。




電子工作やマイコンと関係ありませんが


(目次のページが開きます = PDFファイル  下はその一部)

§01なぜエレベーターには0階が無いのか(数が意味する2つのこと)
§1数学におけ対的0で割るな)   §2背に天使生えたか(見えないものを推理する)   
§3常識解でるか
(人知を惑わす確率の問題)   §4.窓は放つべきか(期待値の功罪)   
§5.異質な玉を見つけ4個の場合は3回、12個の場合も3回?)   §63人による文句の山分け(ねたみも生じない分け方は可能か)   
§7.この世に5存在せず(「コーヒーカップ=ドーナツ」の世界)   §8自然界のを数学的に解明する(フィボナッチの数列)



§28.プログラングフローチャート(いかなる言語にも共通する基本)   §29自然数を無限に足していくと不思議なことが起きる1234+・・・)






マイコンって何
PICマイコンの特徴  ★PICマイコンの外観  ★主なPICマイコン
PICマイコンでどんなことができるか
PICマイコンの開発はどのように行われるのか
用意すべきもの  秋月電子の紹介
最も代表的なPICマイコン「16F84A」について

どんなことが分るようになればよいか

PICマイコンの少々扱い難い構造について  「MPLAB IDE」について
「MPASM」はどんなアセンブラか
インストールした「MPLAB」が起動しないとき
マイクロチップ社のMPLABをダウンロードしたりPICマイコンのデータを調べたりするには

PICマイコンにおける高級言語(C、BASIC)について
マイコンがもっとも有用に活用されるI2C通信、UART通信SPI通信について
アセンブラ(MPASM)を用いて16F84Aでどこまでできるか

PICを基板等に実装したままプログラムを書き込む方法

AKI−PICプログラマーをWin10のPCで使うには

PICKit3の書込みでエラーになる場合

各種センサの紹介



初心者向けでないものもあります。
プログラムはすべてPICマイコン用のアセンブラ(MPASM)で作成しています。メモ帳で表示できます。
回路図、プログラムを参考にされるのはかまいませんが、すべて自己の責任においてお願いします。
どこかしらに工夫を加えて、他にはない自分だけのものを作られることをおすすめします。
不明な点がありましたら、「質問コーナー」よりお問い合わせください。
からくり時計 3

 You Tube
 https://youtu.be/6kkta0kgOMY
 
機構は下の二つと同じ。
異なるのは動きの部分のみ。
下にある遊園地と同じ造りだが、今回はジェットコースターをイメージして制作した。
戦車の模型で使われるキャタビラ―(子どもから使ってと譲り受けた)を活用て、鉄の球を循環させた。
からくり時計 1

回路図


YouTube
 https://youtu.be/o70-KFOR9Dc

下の方で紹介している時計基板を用いた「からくり時計」
毎時00分と30分にオルゴールの曲が流れ動き出す。動きは1分半と1分。右はメリーゴーランドで回りながら棒が上下動し、時々くるっと回転する。中央は観覧車でゆっくり回る。左は回旋塔で飛行機が回りながら上下動する。
曲の録音はISD17240(17120)を用いた(現在国内では入手不可)。240秒(120秒)録音可能。
モーターはタミヤのミニギヤボックス。3V100mAでパワーとしては十分。また回転比が大きいので好都合。
基板は時計用にPIC16F883(28ピン)を用いているが、信号の入出力およびモーター駆動、LED点滅用に16F819を用いている。
回路図は、かつて大型のLEDを用いて作ったものだが、基本的には変らない。

からくり時計 2
 

 YouTube
 https://youtu.be/eWJFtM7M0Xk
基板は上と同じ。7SegLEDは4桁のダイナミック点灯のものを用いた。緑色で明るくとてもきれい(4つのカソードに330Ωで丁度よい明るさ)。
リンゴの木に緑色の実が成り始め、オレンジ色に変って最後に全部が赤くなる(緑、赤の2色LED)。
後ろでカルガモの一家が行列で動き(戦車模型用のキャタビラを用いた)、木の上や回りで色々な生き物が動き回る。
LEDインテリア

回路図
プログラム

      
赤、緑、青の三色を発光するLEDを活用し置物として制作したもの。LEDは「EP204K-35RGB」というかなりハイパワーなもの(秋月で入手)で、抵抗値の調整で非常に明るく発光させることができる。
PICの12F629を内蔵の4MHzを用い、さらにできるだけゆっくりした点滅になるようにプログラムで工夫した。また、色が急激に変化しないように、次の色に切り替わる際、三原色の少なくとも一つは変わらないようにしてある。
電源は単4(充電池)3本。
部屋を少し暗くすると、この程度の明るさで丁度よい。各色の抵抗にVRを加えれば、好みの色合いに調節できる。
 
 

 
タミヤの六足昆虫ロボットをベースに、動き(人)センサ、音センサ、距離センサ、フォトセンサ等を組み込み、それぞれが反応したらいろいろな動きをするようにした。
モータの駆動は、TA7291PというDCモータドライブ用のICを用いた。
例えば、音センサが反応したら目を覚まし、人センサで人を探し、距離センサが反応したら近付いていき、最後フォトセンサが反応したらストップするなど、プログラムしだいで自由に動かすことができる。

音センサは自作(回路図参照)。
距離センサはSHARP製のもので、距離に応じた電圧を出力する(従って AD変換が必要になる)。
フォトセンサのRPR-220(白いものに反応)は非常に高感度で使いやすいが、正面を向いた使い方では、外光の影響を受けやすい。従ってVRで感度を調整する。
PICはA/D変換を必要とすることがあるので、「16F88(あるいは16F819)」を使用。

下は同じ六足ロボに組んだものだが、人センサを 3個搭載して(正面の丸い筒と翼の外側にそれぞれ1個ずつ)、人が近づくとその方向に動き出す。正面のセンサを優先し、人が左右に動いても追い続ける。人センサ(正しくは動きセンサ、温度の変化に反応する)は高感度で、5m近くの動きに反応する。人に接近すると、距離センサが反応して10数センチの距離で停止する。
電源を単三充電池 3本にした。

上の例のように、センサを使いこなせると、アイデア次第でいろいろ作ることができる、
信号機

回路図
プログラム
本物と同じように点灯、点滅を繰り返す信号機。製作もプログラムも簡単なので初心者に適している。
左のタクトスイッチを押しながらONすると、歩行者用の信号機(タクトスイッチを押すと何秒後かに青に変わる)になる。
LEDへの出力を工夫すれば(リレーやトランジスタなどで)、本物並みの信号機を作ることも可能になる。
(かつて、養護学校に勤務していたとき、これを2機つくり、運動会種目に活用した)
PICは12F675を用いているが(手持ちの関係)、12F629等どんな8PでもOK.

IchigoJam 用
キーパッド


回路図
プログラム
      右は「こどもパソコン IchigoJam」。モニター(ビデオTV)とキーボードをつなげば、BASICでプログラミングを楽しむことができる。左は、PICで作製した、キーパッド。電源はIchigoJamから供給するのでつなぐだけで使える。
7個のキー入力からの信号を、IchigoJamの IN(1)、IN(2)、IN(4) に送ることによって、ゲームなどの操作が(キーボードでなく)キーパッドでできる。
IchigoJamの方は、
 X=IN(4)<<2+IN(2)<<1+IN(1)
によって、7個の信号として識別できる。
あるいは、IN()コマンドで、すべてのINPUTから同時に入力信号を受け、二進法で加重された数値を返すので、
 X=271-IN()
によって、次の7個の信号で識別できる。
 X=  1  2  3  8  9  10  11
IJの電圧は3.3Vであり、PICのI/O電圧は5Vであるため、IJに5Vがインプットされないようにプログラムで工夫した(IJが5Vを受けてもダメージを受けないものなのかは不明)。下の写真は接続した状態。
PIC16F819を使用。
IchigoJam
実験用基板


回路図
     IchigoJam 実験用に作製した基板

IchigoJam基板(自作)に載せてある。勿論、上の製品基板に合わせてある。右下のタクトSWは、IN1、IN2、IN4、左上のLEDは、OUT2...OUT6。@はEEPROM(512k)、その右はSP用アンプで基板裏に小型のSPを貼り付けてある。右上の小さな基板はDC-DCコンバータで、モニター用の12Vを供給する。
左下の縦のIC(LSI)は、下の方にも登場するAquest(音声を発する)。UART、I2Cの実験用に搭載した。
上のIchigoJam用キーパッドをつなげられるようにしてある。
IchigoJam 用
EEPROMコピー機


回路図
プログラム
  

  

IchigoJam 用EEPROM コピー機(PICマイコン16F84A使用)

IchigoJam の外付けEEPROM(512k以下)をコピーする装置。
EEPROM1 のプログラムナンバー100〜163 の任意の連続したプログラムをEEPROM2 の適当なプログラムナンバー以降にコピーする。
写真ではROM1の113〜125 をROM2の106(〜118)へコピー。1バイトずつ転送するので少し時間がかかる。
1024k のEEPROM は書込みに少し長い時間を要するので、PICマイコンに書き込んであるプログラムを修正する必要がある。
タクトSW右(RA2)で 1 の位を、中(RA3)で10の位を1ずつアップ。163 を越えるとやり直しになる。タクトSW左(RA4)で決定、次へ移る。
IchigoRom(既製品のEEPROM基板)の場合は+V、GND、SCL、SDAをジャンパー線等でしかるべき箇所につなぐ。SCLはPICの17 ピン(RA0)、SDAは18 ピン(RA1)。
I2C 通信が分かる方。ROM1 は1、2、3 ピンとも0、ROM2は1 ピンのみ1 にしている(アドレスを区別するため)。

<余談> IchigoJam を用いてのプログラミング教室を計画したため、多数の EEPROM が必要になった。

ロボットカー

回路図
プログラム1

  


車体はタミヤのDCモータギヤボックス、タイヤを使用して自作した。
いくつかの機能を持たせ、それぞれマイコンに書き込むプログラムによっていろいろな動き方をさせる。

315MHzの電波を受信する基板を搭載した(写真右の上、下は送信基板。高感度で10m以上届くので使い方に注意)。送信機からの電波を受け、前進、後退、ターンするなどいわゆるラジコンカーとなる。
送信機で音声認識(下で説明)を使えば、「ススメ」、「マガレ」、「トマレ」など、掛け声での操縦が可能になる。
音声を発するLSI(下で説明)、スピーカも搭載した(基板の下)。

下の写真は車体前方の基板の下側に小型のフォトセンサを3個つけて、ライントレースカーとしたもの。ラインは白い紙に黒のビニールテープを貼る。交差点では左折を優先とし、行き止まりではUターンする。迷路における左壁伝いの方法を用いて、ゴールがどこにあっても到達できるようにした。正面に白いものに反応するセンサを付けて、ゴールで止まるようにしたが、日が当たる部屋だと日の光に反応してしまう。
電源を、充電池3本だけで動くように改良した。

いずれもPIC は「16F819」を使用。
反射神経測定器

回路図
プログラム



左から走りだす光の流れ(上段の12個のLED)をいかに早く止められるか、という反射神経と指を動かす運動神経を測定する装置(もちろん、ゲーム感覚で)。下の8個のLEDは、流れるスピードを表示する(設定は右のボリュームで)。
1ないし2ならどんな小さい子でもお年寄りでも、すぐに止められるが、7あるいは8になると、誰にも止められない!
白いコードの先に押しボタンスイッチがあり、これを押すと数秒後(もちろんランダムな時間)に流れだし、再度スイッチを押すと停止する。
PICは「16F873」を使用。28ピンなら何でも可。
分かれ道

回路図
プログラム

      
 
   スタートすると一番上のLED(黄)が点灯し,やがて点滅をはじめる。好きな時に押しボタンスイッチ(手前に伸びたコードの先)を押すと、左右のどちらかに進む。
以下この要領で進んでいくが、赤のLEDへ行ったらそこでストップ(終了)。いかに点数の高い赤まで到達できるかを競う(写真では5点)。
最初の方では赤へ行く確率は低いが、先の方では赤へ行く確率が次第に高まる。8点まで行くのはなかなか困難。黄色のボタンでリセット(スタート)。
上の測定機と違って運だけで勝負する。
PICは「16F77」を使用(たまたま手元にあった)。40ピンなら何でも可。




ジワーッとゆっくり点灯・消灯するプログラムで、蛍のようにやさしく点滅する。
また、周期性を簡単には悟られないような長く複雑な点滅を繰り返す。

(こういったものを作ることが、そもそもPICマイコンに取り組んだ原点。単純でない光の点滅を実現したかった)

ポートAの4個とポートBの8個の計12個のI/OにLEDを付けた。
PICは「16F819」を使用(16F84Aでは、プログラムメモリが足りなくなったため)。
時計

回路図
プログラム
  

  
大型の16segLEDで表示する時計。ただし斜めのsegは不使用なので実際は12segで表示している。常時点灯させるため、電源は5VのACアダプタを用いた。
RTC(Real Time Clock)を使用(左下写真の右上にある小さな緑色の基板)。動作用の電池(CR2032)はその左。
左上の3個のタクトSWのひとつで、<年(西暦)>、<月、日>、<曜日>、<時、分>の表示切り替え表示ができる。またその際、ドットが点灯している項目を、残る二つのタクトSWで変更できる。一つは十の位を、もう一つは一の位を一ずつアップする。曜日の表示(写真右上)は左端のW(WEEKのW)に続く縦棒の数で、1本なら日、2本なら月、・・・、7本なら土(写真は水曜)を表す。
右下は最初に作製したもので、8x2の小型LCDに上記の項目をすべて表示し、変更はこのLCD上で行うようにした。
上の二枚の写真では、LCDが不要になったので搭載していない。
左下写真の左前にある斜めの基板は、LCDを装着するためのもの。中央の横長のパーツは、大型LEDを装着するソケット。
PICは「16F886」を使用。28 ピンの886はオシレータを内蔵しているので、I/Oピンが24本ある。 

からくり時計 0



 You Tube
 https://youtu.be/vzosLjVEhV0
上の大型16SegLEDを活用したからくり時計。
中央の人形が、ねずみのおもちゃをひきながらくるくる回る。それにネコと鳥がちょっかいを出すというもの。
毎時 00分と30分に動き出す。
オルゴール曲はディズニーの「小さな世界」と「星に願いを」をNETじょうから録音して用いたが、公開する場合には著作権に抵触する恐れがあるので、配慮が必要。
上の方にある3つについても同様。


Dynamic点灯

回路図
プログラム
  

  
電池一本で(1.2Vの充電池でも可)表示するデジタル時計。DC-DCコンバータの回路で5Vに昇圧している。表示を見たい時だけSWをONにする。
RTC用の電池(CR2032)は基板の裏側。
表示用の7segLED は2つのSegの間をあけて見やすくするために、二桁表示用を2個用いているが、4桁表示用のダイナミック点灯のものを用いると配線が楽になる。
夜間、枕元に置いて使用するものなのであまり明るくする必要はなく、従ってLEDの抵抗を大きめにした。
上の大型のものと同様、3個のタクトSWで、すべての項目を変更できる。右上の写真は曜日の表示(EはWEEKのEのつもり)で、横棒が3本なので火曜日を表す。
PICは「16F886」を使用。

下の2枚は、ほぼ同じものをダイナミック点灯の4桁LEDで制作したもの。写真では分かり難いが、昼間でも鮮やかな緑色で点灯する(抵抗を330Ωにした)。変更する箇所のドットが点灯し、通常は中央のドットのみが点灯する。上の基板ではRTC用の電池(CR2032)を搭載したが、電池(単4充電池)を2本にして、常時RTCの電源としても使えるようにした(RTCの保持用電源は、1.8V〜となっているため)。
PICは「16F883」を使用。ピン数に余裕があるので、28ピンなら何でも使えるが、16F88* はOSCを内蔵しているので便利。

RTCはもう何個も活用しているが、どれも保持用のバッテリーが切れない限り、一度合わせた時間ほとんど狂うことはない。

  時計(ミニLCD)

回路図
プログラム 
 
  
8x2のミニLCDを用いた小型軽量のデジタル時計。電池を単4(あるいは単5)にして、パーツの配置を密にすれば、もっと小型にすることも可能。
下段の切り替えSW(左から二番目)で、時計とアラームセットを切り替える。
アラームはメロディーICを用いているが、電源のせいでやや音が貧弱である。
時間合わせは上のものと同様下段の3個のタクトSWで行う。白いSWを一回押すごとに、曜日(Su)と時(14)の間に、Y(年)、M(月)、D(日)、W(曜日)、h(時)、m(分)が表示され、その右の二つのSWで、そのときどきの十の位、一の位を変えられる。
PICは「16F819」を使用。


 音声発生器

回路図
プログラム
  

 
ある一時期、ろう学校に勤務した際に考案し作製した。テキスト文作成に必要なキーを配置し、LCDに表示しながらインプットすると、下で紹介するLSI(Aquest)が発声する。
上方に並んだ15個のタクトSWは、プリセットメッセージと言って、あらかじめLSIに書き込んだそれぞれの文を発声する。切り替えSWで、キー入力とプリセットメッセージの発声を使い分けることができる。
LSI は写真下のようなPC上のアプリ「PicoRomWriter」と通信可能で、プリセットメッセージの書き込みや、発声のスピードなどの設定ができる。アプリはNET上でダウンロードする。また、PCとの接続はUART通信で行う。

PICはI/Oを多く使える「16F887」を使用(オシレータ内蔵なので、最大35本可能)。

 ROM WRITER
FOR AQUEST 1


回路図
プログラム
  


  

ブレッドボードの中央にあるのが、音声合成LSI「AquesTalk pico」。テキスト文を送ると、音声に変換する。通信は、I2C、UART、SPI に対応、これらの通信の実験用としても有効に使える。
写真は、Aquest に送るテキスト文を、実際に発声させつつ作成して、外付けのEEPROM に書き込んでいるところ。アクセントも付けられ(’)、自然に近い発声が可能である。
PICとPCをUARTでつなぎ(右下からのびるコード)、PCのハイパーターミナルを活用して、テキスト文の作成やEEPROMのアドレスの移動、そして書き込みや再生などの操作はすべてPCのキーで行う。
EEPROMの扱いやすさの点から、一つの文は32バイトまでとした。
写真の512kの容量の場合、
512kビット=64kバイト=2^6 x 2^10
=2^8 x 2^8(=10000h)
(0〜FFFFh)  で分かりやすい。
アドレスH、アドレスLはともに 0〜FFh。
従って、512kのEEPROMに入れられる文の数は、2^8 x 8 の2048 である。 
PICは「16F84A」を使用。


 ROM WRITER
FOR AQUEST


回路図
プログラム


 

 
上記二つの装置をさらに改良して(PCを使わずに単独でできるように)、発声を確認しつつそのデータをEEPROMに書き込めるようにした。書き込んだEEPROM(基板の右上の方に二つ並んでいる)はロボットなどに組み込めば、いろいろ音声を発することができる。
また、書き込んだデータを保存できるようにするために、2個のROMを並べて、それぞれ指定したアドレスでデータを転送できるようにした。

下の4枚の写真の左上は、ROMにデータを書き込むか、データをROMの間で転送するかを選択する画面。右上は「書き込み」を選択して、指定したアドレスのデータを表示させたところ。何も書き込んでなければこの状態。すでに書き込んであれば、「p」で発声する。新たに書き込む場合は「w」で左下画面へ。ここは書き込む文を編集する画面。文末にピリオドを打つと発声する。「?」でROMに書き込み、書き直しは「Enter」、書き込み完了は「BS」。
写真右下は、ROMからROMへデータの転送を選択したときの画面。それぞれのアドレスを設定してスタートさせる。
PICは「16F877A」を使用。
血流計 1   血流を赤外線発光LEDおよびフォトトランジスタで検知し(ヘモグロビンは酸素を含んでいると赤外線を吸収しにくく、含んでいないと吸収しやすい)、小型のグラフィックLCDに表示する装置。電源は1.5Vを5Vに昇圧した。
左は一画面10秒(縦線は1秒毎)で、右は一画面5秒(縦線は2秒毎)で表示。そして、どちらも10秒経過する毎にカウント開始からの拍数を表示。60秒を経過するとリセットされる。
上の三つの半固定抵抗器は、センサの感度調節、A/D変換における上限(Vref+)および下限(Vref-)の調節用。最初は反射光の検知(フォトセンサRPR-220)としたが思わしくなく、透過光の検知にした。赤外線発光LEDは何でも大抵OK、受光はRPR-220の受光部をそのまま用いた。
PICは「16F819」を使用。LCDの下にPICおよびセンサからの信号をアップするOPアンプの回路あり。

血流計 2  

 
上の血流表示計を見易いOLEDで制作した。
OLEDは秋月で入手。上のLCDが48x128 であるのに対して、このOLEDは64x128 なので、経過時間と拍数(10秒毎に更新)を常時表示できるようになった(左上)。ただし、1画面10秒だと点が荒くなり見難いので、1画面4秒にし、振幅の幅を32ビットにした。
赤外線発光のLEDおよび受光Tr(940〜950nmが一般的)はどんなものでも使える。上にも書いたが、反射型でやるより、指を透過させる方がやりやすい。親指と人差し指の間の黒いウレタンに小型のフォトTrを埋めてある。指以外からの光を遮断したので、高感度になった。爪側にあるのが赤外線LED.で、330Ωに追加した1kΩの半固定VRで感度を調節している。AD変換のRef+、Ref‐ をは一度セットすれば済む。
10秒ごとに拍数を表示するが(60秒でリセット)、波形の邪魔にならないように上段、下段の交互に表示する。
OLEDのアドレスは基板の裏には0x78 となっているが、本来の意味でのアドレスは0x3C。
0111100b(3CH)+0(W) => 01111000b(78H)
また、I2CのPull Up抵抗はここでは不要。
PICは「16F819」を使用。上のLCDよりもプログラムが書きやすく、短くて済む。
カムロボ タミヤの「カムロボ」を改良した。
リモコンで操縦するが、停止するごとに何かをしゃべる。最後は「操縦を変わってくれ」と言って泣き出す。
声に反応したり、やり取りするように組むこともできる。(下にある音声認識を使う)
音声認識人形

回路図
プログラム
     写真右の基板は{Easy VR」といって、マイクで拾った音声を認識して、登録されている音声のうちの何番目であるかを出力する。
話者不特定と言って、誰が発したものでも認識できる言葉がいくつか登録されている。三つのグループがあって、「ススメ」、「トマレ」、「マガレ」、・・・など8個と、数字の「0、1、2、・・・、9、10」の11個と、あとは「ウエ」、「シタ」、・・・などの6個が含まれる。
それとは別に、話者特定と言って、決まった話者が登録することで、24通りの言葉の識別が可能である。これはPC上のアプリで、実際に発声を2度繰り返して登録を行う(通信はUART)。
写真左は、この音声認識基板と上にあったAquest(女の子の声)を使って作ったもので、例えば「何してるの」と声を掛けると「見ればわかるでしょ、本を読んでるの」と答える。
録音するときの条件、実際に動作させるときの条件が良ければ(雑音がない静かな状態)、かなり正確に認識する。
認識エラーが生じた場合は、「何言ってるんだかわかんない」と答えるようにした。
送信機
(音声認識)

回路図
プログラム1
プログラム2
 

上のロボットカ―に情報を載せた電波を送る送信機。
右下の5個のタクトSWは、前後、左右、停止の信号を送るいわゆるラジコン用(プログラム1)。
それとは別に、すぐ上で紹介した音声認識の基板も搭載し、音声で操縦できるようにした。上に伸びるコードの先にマイクがある。誰の声にも反応するのは、「ススメ」、「トマレ」、「マガレ」、「アクション」、「コウゲキ」、「ハシレ」、「ミロ」、「コンニチワ」の8通り(プログラム2)。
特定の人物の声なら、24通りの言葉を認識できる。
PICは「16F819」を使用。
いびき

無呼吸
検知・記録装置
 

 

睡眠時のいびきと無呼吸状態を記録する装置。
SW ONで前回の記録(いびきor無呼吸)を見るか、新たに記録するかを選択する。
<いびき>
音を感知すると記録が始まる(中段左)。録音時間は一回につき2秒間。音量の強弱はAD変換で8段階。ジェット機の音や犬の吠える声などは後から波形を見れば分かる。時間の表示はスタ―トしてからの経過時間。音の波形とともに発生した時間も記録する。左の数字はカウント数。中段右は記録したデータを表示ししているところ。
<無呼吸>
無呼吸状態が20秒以上になると、生じた時間と回数が記録される(下段)。下側の二つの数字は呼吸が入るごとに入れ替わる。20秒を経過すると、上側に表示され記録される。一晩中20秒を越える無呼吸状態が無ければ、何も記録されない。
一晩たって、何もなければLEDは無点灯だが、無呼吸症状が軽度なら緑の、中度なら黄の、重度なら赤のLEDが点灯する。またどの時間に起きたかは記録を見れば分かる。
呼吸の有無は、腹に巻く帯の圧センサか呼吸を検知するセンサをつなぐ。(圧センサは、腹が動いていても空気が気道を通過していないケースでは使えない)
センサのアンプのために電源を9Vにした。記録時はAC電源を使用。
棒グラフのキャラクタはCGRAMに書き込んだもの。
カード読み取り装置
子ども会館用に作製した装置。子どもが自分のカード(アクリル板)をカード読み取りの溝に差し込むと、猫が体をくねらせながら、「やあ、○○君(さん)」と声を掛け、同時にその子の名札のLEDが点灯する。そしてそれに続けて、「学校は楽しかったかい」とか、「おなかはすいてないかい」などの台詞を10通りの中からランダムに選んで発声する。
カード読み取りの箱は、一番下に、カードが挿入されたことを検知するマイクロSWと透過型のフォトセンサが6個並んでおり、カードのそれぞれの位置に光を通す穴があいているか否かを読み取る。従って、2^6の64人まで識別可能である。
LCDには常時暦と時間が表示されており、差し込んだ子どもの名前とその時の時間が留められる(次の子が挿入するまで)。
一度表示された子は受け付けないが、隠しボタンを押しながら挿入すると「やあ、○○君(さん)さようなら、気をつけて帰るんだぞ」と発声する。
あらかじめ、上のROM WRITERを使って、EEPROMに、子どもの名前や台詞を書き込む必要がある。

(個人情報が問題となる昨今、名前の表示が不可ということから使用できなくなった)



 




近年PICマイコンで活用できる機器やパーツが次々と開発され商品化されています。
各種LCD(液晶表示器)、RTC(Real Time Clock)、音声合成LSI、
音声録音・再生LSI、音声認識モジュール、・・・etc。
これらはいずれも上記の各種通信のどれかを用いるようになっています。
一方、PICマイコンも今では
CやBASICでというのが一般的になりつつあります。ところが、
そうした高級言語で新しく登場した機器やパーツにすんなり対処できずにてこずったという話をよく耳にします。
各種通信の仕組みを知り、アセンブラでプログラムを書けば簡単に解決します。

通信の機能をもたないPICマイコン(16F84A)で可能です。

アセンブラで難しいことを簡単に
16F84A で、「I2C」、「SPI」、「UART」
の各種通信が実行可能です


上の表紙クリックすると
目次が表示されます

BookX
(2013/2)
本が入手できない場合は、ログラムを
ダウンロードして、分からないところは「質問
コーナー」よりお問い合わせください

                    

PICマイコン  アセンブラ入門
秀和システム

1.プログラミングに向けて
2.PIC16F84Aでできること
---基本から発展まで
3.PIC16F84Aではできないこと---
他のPICマイコンの活用
 4.プログラミングの基本
---必要に応じて参照
プログラムのダウンロード            質問コーナー
★★
『MPLAB IDE』の入手法・・・このページの上の方をごらんください

上の本では、MPLAB IDEのアセンブラ「MPASM」を用いて、16F84Aを活用する仕方を紹介しました。
高度な機能を持ち合わせない16F84Aで、I2C通信、USART通信、SPI通信を実現しています。
ということは、下のアセンブラ「PA.EXE」でも可能な訳です。しかも「PA.EXE」は
「MPASM」よりもプログラムが書きやすいアセンブラです。


★アセンブラ「PA.EXE」とは

「PA.EXE」では何故「Bank切り替え」が無いのか
「PA.EXE」をWindows2000、XP以降のPCで活用するには
MS-DOSにおける作業手順(グリーンの本のみをお持ちの方)
「PA.EXE」の最大の利点とは
「PA.EXE」の追加サンプルプログラム(SLEEP、TMR0、間接アドレッシング)
「PIC BASIC」について  
その他の情報

小中学生高齢の方にもPICマイコンの活用の仕方が分かるようにと心掛けてまとめました
(私自身が多大な時間を費やしたところをすんなんり通過できれば、その分
大切な時間をもっと有効に使うことができるものと思われます)

表紙クリックして中身の紹介をご覧ください...

BookT(2001/7)


16F84プログラミングの世界へ
わかるPICマイコン制御
誠文堂新光社
BookU(2003/11)


16F84プログラミングの世界へ
わかるPICマイコン製作集
誠文堂新光社
BookV(2007/8)


わかるマイコン電子工作
PICマイコン完全マスター
電波新聞社
PICマイコンへのプログラムの書き込み方、センサやDCモータを搭載したねずみロボットの製作法などを分り易く解説しました。使用したアセンブラ「PA.EXE」は特殊ですが、分かりやすく、プログラムを作成しやすい言語です。PICマイコンの16F84(A)に対応しています。 迷路を自力で脱出するねずみロボットや簡単なゲーム機など、色々な製作例をもとに、各種センサの活用法やプログラム作成のコツを紹介しました。ソフト、ハードの知識が身につけば、アイデア次第で自作の夢が大きく膨らみます。左の本の流れを汲んでいます。 PICマイコンを開発するうえで最も一般的な「MPLAB IDE」による手順を分り易く解説しました。サンプルプログラムを多く取り上げ、少々分り難いアセンブラ「MPASM」でのプログラムの読み書きにいち早く慣れることを目差しています。ただし『完全』ではありません。(中古品で入手される場合は三刷以降がお勧めです) 
   訂正
BookT およびBookUでは少々特殊なアセンブラ「PA.EXE」を用いています。
アセンブラでありながらBASIC感覚でプログラミングに取り組める言語で、初心者にも理解しやすいです。
問題は扱えるPICマイコンが「16F84(A)」に限られるという制約があることです。ひとまずは
この言語でPICマイコンとその活用法に慣れ、次へのステップアップを図るというのも一法でしょう。
「PA.EXE」はDOSで動くアセンブラですが、用いるパソコンはWindows2000やXPのものでもOKです。
その具体的な方法については上の項目をご覧ください。
なお、分からないことがあればお気軽にお問い合わせください。

  プログラムのダウンロード            質問コーナー




電波新聞社

電子工作マガジンNo.1
電子工作マガジンNo.2
電子工作マガジンNo.3
電子工作マガジンNo.4
電子工作マガジンNo.5
私が担当した記事に登場するプログラムをダウンロードできます。 私が担当した記事に関して質問があればお気軽にどうぞ。 私が担当した記事に関して 質問があればお気軽にどうぞ。


Top





 



 てんとう虫   チューリップ   あきちゃん   人生の一日   秋風    ハバネラ   ねずみ   テンガロンハット   N電秘話   ケイコちゃん

コバエのブン太(児童向け)

5ひきのこねずみ(えほん)



   

カメラはCANONのEOS40D(現在はEOS7D)、
レンズはCANONの55〜250mm、同じく100〜400mm、TAMRONの17〜50mm、SIGMAの70mm(MACRO)です。
どの写真もトリミング以外はソフトで手を加えることはしていません(試しの1枚を除いて)。

小鳥 幼子 境川沿いに棲む雉
小さな命 小樽港 ・ 運河 小さな命(2)
湘南の海 カワセミ
顔(2) 戦い
戦い(2) マイ オーディオ 世捨て猫夫婦

もう昔と違って人の写真は撮りづらくなってしまった・・・
(特にシルバー世代のおじさんには)
文句を言わない鳥たち

                                                        Top

火の鳥?(顔だけ)

君臨


叫び

闇の仙人

朝日が眩しくて

朝靄に立つ!

「あたしってつみつくり?」

男の闘い(縄張りとそしてフィアンセ獲得のために)

何処へ?
遠藤 敏夫

1949年6月、伊豆は修善寺の生まれ。
神奈川の県立高校に19年間、その後同じく養護学校に14年間勤務し、退職後は、私立高校、定時制高校、そして障害者の更生施設、放課後子ども支援やフリースクール等、いずれも非常勤、ボランティアとして続ける。
小学生の頃から、ゲルマニウムラジオやトランジスタラジオ等の組み立てに興味を持ち、その後は真空管でステレオアンプを作ったりスピーカボックスを製作するなど、もっぱらオーディオの分野を趣味の中心として続ける。(並行して、写真撮影や星空観望も)
1979年、NECの最初のパソコンPC-8001を購入し、BASICでの入選処理や事務室の給料計算、時間割編成等のプログラム作りに取り組む。
養護学校に移った頃、Z80マイコやPICマイコンに関心を持ち、それらを活用したゲーム機や自動販売機等、教具作りに専念。

上の写真は、三浦半島劔崎にて(2014年3月)

空に向かって

飛翔

ただ水だけが流れゆく

「ちと大きすぎたか」

「見ないで」

「おお、主よ!」

・ ・ ・ ・ ・

渚の貴婦人

樹上の貴婦人

「寒風が身にしみるぜ」

虚像と実像

「おっと!」(その1枚)

はるか異国に夢を馳せ

「わたしをつかまえないでね」

「なーに?」

「悪く思うなよ」

「いつかはボクだって」

「おい、おい」            「ワーィ」

考える

とびながらも

女心を解せぬ男

「行ってしまうのか」

くつろぎのひととき

「いきなり後ろからとは卑怯な」

憂う

親の心子知らず

欲張りガラス

雄大飛行

「何かいい材料は、と・・・」

「こんなんでどお?」          「いいんでないか」

「おっと、失礼!」

8時5分の構え

鳥にはあらねど

小鳥か蝶かと見紛う、白日のコウモリ

・・・・・

「ダメよ、じゃましちゃ」

乱舞

疾走

麗しきその姿

ゲロゲロ

「まだかいな、オッサン」

「ほれ!」

My Photo                            Top

inserted by FC2 system