★★ 更新  2017.10.15                                            ★★ By  T.Endou ( 遠藤 敏夫 )
BookT BookU BookV BookW BookX プログラムのダウンロード 質問コーナー 「My Photo」 のコーナー

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


 


                                                 
               (下の方です)                             (もっと下の方です)                   



                                   

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

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

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


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

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



六足ロボット

回路図
プログラム

 

タミヤの六足昆虫ロボットをベースに、動き(人)センサ、音センサ、距離センサ、フォトセンサを組み込み、それぞれが反応したらいろいろな動きをするようにプログラムした。
モータの駆動は、TA7291PというDCモータドライブ用のICを用いた。
例えば、音センサが反応したら目を覚ますとか、動きセンサが反応したら少し動いてみる、距離センサが反応したら近付いていき、最後フォトセンサが反応したらストップするなど、自由にプログラミングできる。
動きセンサはいろいろあり、モジュール化されたもので出力信号を直接マイコンに入れられるものもあるが、Napionのように出力が微弱な場合はインバータICを経てマイコンに入れる。
音センサは自作(回路図参照)。
距離センサはSHARP製のもので、距離に応じた電圧を出力する。
フォトセンサのRPR-220は非常に高感度で使いやすいが、正面を向いた使い方では、外光の影響を受けやすい。従ってVRで感度を調整する。
PICはA/D変換を必要とすることがあるので、「16F88(あるいは16F819)」を使用。

ロボットカー

回路図
プログラム1

  

車体はタミヤのDCモータギヤボックス、タイヤを使用して自作した。
いくつかの機能を持たせ、それぞれマイコンに書き込むプログラムによっていろいろな動き方をさせる。
車体前方の基板の下側に小型のフォトセンサを3個つけて、ライントレースカーとした。交差点では左折を優先とし、行き止まりではUターンする。ラインは白い紙に黒のビニールテープを貼る。
315MHzの電波を受信する基板を搭載した(写真右の上、下は送信基板)。送信機からの電波を受け、前進、後退、ターンするなどいわゆるラジコンカーとなる。
送信機で音声認識(下で説明)を使えば、「ススメ」、「マガレ」、「トマレ」など、掛け声での操縦が可能になる。
音声を発するLSI(下で説明)、スピーカ(基板の下)も搭載した。

反射神経測定器

回路図
プログラム




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

回路図
プログラム


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

イルミネーション

回路図
プログラム



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

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

PICは「16F819」を使用(16F84Aでは、プログラムメモリが足りなくなったため)。
時計(16seg)

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

     
  
大型の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本ある。 

時計(7seg)

回路図
プログラム

    
      
     

電池一本で(1.2Vの充電池でも可)表示するデジタル時計。DC-DCコンバータの回路で5Vに昇圧している。表示を見たい時だけSWをONにする。
RTC用の電池(CR2032)は基板の裏側。
表示用の7segLED は二つの項目の間をあけて見やすくするために、二桁表示用を2個用いているが、四桁表示用のダイナミック点灯のものを用いると配線が楽になる。
夜間、枕元に置いて使用するものなのであまり明るくする必要はなく、従ってLEDをドライブするトランジスタは用いていない。

上の大型のものと同様、3個のタクトSWで、すべての項目を変更できる。右上の写真は曜日の表示(EはWEEKのEのつもり)で、横棒が3本なので火曜日を表す。

PICは「16F886」を使用。
時計(ミニ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との接続はUSAR通信で行う。

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


回路図
プログラム

 

 

  
ブレッドボードの中央にあるのが、音声合成LSI「AquesTalk pico」。テキスト文を送ると、音声に変換する。通信は、I2C、USART、SPIに対応、これらの通信の実験用としても有効に使える。
写真は、Aquest に送るテキスト文を、実際に発声させつつ作成して、外付けのEEPROM に書き込んでいるところ。アクセントも付けられ(’)、自然に近い発声が可能である。
PICとPCをUSARTでつなぎ(右下からのびるコード)、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


回路図
プログラム

 

   

   

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

下の4枚の写真の左上は、ROMにデータを書き込むか、データをROMの間で転送するかを選択する画面。右上は「書き込み」を選択して、指定したアドレスのデータを表示させたところ。何も書き込んでなければこの状態。すでに書き込んであれば、「p」で発声する。新たに書き込む場合は「w」で左下画面へ。ここは書き込む文を編集する画面。文末にピリオドを打つと発声する。「?」でROMに書き込み、書き直しは「Enter」、書き込み完了は「BS」。
写真右下は、ROMからROMへデータの転送を選択したときの画面。それぞれのアドレスを設定してすたーとさせる。
PICは「16F877A」を使用。
血流計

回路図
プログラム

   
  
血流を赤外線発光ダイオードおよびフォトトランジスタで検知し、小型のグラフィック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アンプの回路あり。

音声認識人形

回路図
プログラム

  

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

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

 

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

 
カード読み取り装置

回路図
プログラム

 


子ども会館用に作製した装置。子どもが自分のカード(アクリル板)をカード読み取りの溝に差し込むと、猫が体をくねらせながら、「やあ、○○君(さん)」と声を掛け、同時にその子の名札の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マイコン  アセンブラ入門
                  秀和システム 2600円(+税)

 1.プログラミングに向けて
 2.PIC16F84Aでできること
---基本から発展まで
 3.PIC16F84Aではできないこと---
他のPICマイコンの活用
 4.プログラミングの基本
---必要に応じて参照
プログラムのダウンロード            質問コーナー
★★
『MPLAB IDE』の入手法・・・「Microchip」社のホームページ(https://www.microchip.com/)の右上にある
「Search Microchip」に、例えば「MPLAB IDE v8.60」と書き込んで検索してください

上の本では、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マイコン制御
誠文堂新光社 2200円(+税)
BookU(2003/11)


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


わかるマイコン電子工作
PICマイコン完全マスター
電波新聞社 2400円(+税)
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です。
その具体的な方法については上の項目をご覧ください。
なお、分からないことがあればお気軽にお問い合わせください。

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





全てがお膳立てされたセットをハンダごて一つで組みたてるだけでは、作る楽しさはあっても、
発展性は期待できません。
電子工作の本当の愉快さは、回路の基本とパーツの活用の仕方を知って、
自分で創意・工夫するところにあります。下の本はそのようなことを意識してまとめました。

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


BookW
(2010/11)

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

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


  訂正 ★新たに見つかりました(2013年12月)          質問コーナー 

 各種センサの紹介



電波新聞社

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


Top





 





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


   

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

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

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

                                                        Top

火の鳥?(顔だけ)

君臨


叫び

闇の仙人

朝日が眩しくて

朝靄に立つ!

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

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

何処へ?
遠藤 敏夫

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

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

空に向かって

飛翔

ただ水だけが流れゆく

「ちと大きすぎたか」

「見ないで」

「おお、主よ!」

・ ・ ・ ・ ・

渚の貴婦人

樹上の貴婦人

「寒風が身にしみるぜ」

虚像と実像

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

はるか異国に夢を馳せ

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

「なーに?」

「悪く思うなよ」

「いつかはボクだって」

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

考える

とびながらも

女心を解せぬ男

「行ってしまうのか」

くつろぎのひととき

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

憂う

親の心子知らず

欲張りガラス

雄大飛行

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

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

「おっと、失礼!」

8時5分の構え

鳥にはあらねど

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

・・・・・

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

乱舞

疾走

麗しきその姿

ゲロゲロ

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

「ほれ!」

My Photo                            Top

inserted by FC2 system