---新しい開発環境(4)---

 諸兄のプログラムをもとに、多少変更を加えて、PCの
 キーボードから、LEDのコントロールをするプログラムをつく
 りました。
 キーボードから、1~7の数字を押すことで、それに応じた
 場所のLEDを点灯するプログラムです。
 プログラムです

 ヘッダーファイルの「uart.h」と「uart.c」諸兄の作られたものを
 そのまま使わせていただいています。
 今回はポーリングのプログラムなので、次は、割込を使った
 プログラムを作ってみようと思います。

---新しい開発環境(3)---

 新しい環境で、諸兄の書いてくれたシリアル通信のプログ
 ラムを自分の環境で実現するべくもがいていました。
 コンパイルはすんなり通るのに思った動作をしてくれません。
 全部疑って、一つ一つつぶして、やっと思うような動作ができ
 るようになりました。
 まず、はまったのが、デバックのために、プログラムの間に
 書き込んだ書式です。
     int count=1000;
     RA0=1;
     RA1=0;
     while(count>0){count--;}
     count=1000;
     RA0=0;
     RA1=1;
     while(count>0){count--;}
 LEDが交互に点滅するはずですが、RA1に当てはまるLED
 の変化がありません。
 もしやと思い
        PORTA=0b00000001;
        PORTB=0b00000000;
        ・・・・・・・・・・・・・・・・・・・
        ・・・・・・・・・・・・・・・・・・・
        
        PORTA=0b00000000;
        PORTB=0b00000001;
 のように変更したら動きました。「RA」の表記では、ポート
 全体の値を書き換えてしまってるようでした。
 よく見てみるとポートのビットの操作の記述が変更に変更に
 なってました。
      RA1→→PORTAbits.RA1
 のように書かないとだめでした。    
 次にはまったのが、外部オシレーターの使用でした。
 これは、デバックの方法の手落ちでした。外部オシレーター
 でプログラムがうまく動いているのか確かめるのに、LEDの
 点滅プログラムを挿入しましたが、ウエイトタイムが短くて
 点灯しっぱなしで、うまく動いてないように見えてしまいま
 した。何回、書き直したことか。
 丸一日かかって、諸兄のプログラムの再現ができました。

 

 PICのUART機能を使って、PCからのキー入力を
 エコーバックするプログラムです。
 それから、とんでもないミスをしてました。RXとTXのピンアサ
 インを私の教科書(キットで遊ぼう電子回路シリーズNo9)で
 確認しながらしてましたが、これが間違いでした。
 教科書のPICは、16F627AというPICで、今回使ったのは、
 16F88というPICでした。同じ18ピンのICなので、同じだろう
 たたかをくっくってたのが間違いでした。なんと、
    16F627
       TX--8ピン(RB2)
       RX--7ピン(RB1)
    16F88
       TX--11ピン(RB5)
       RX-- 8ピン(RB2)
 なんと、TXとRXが入れ替わってました。これでは、動きません
 ね。やはり、データシートみないとだめなんですねえ。

---新しい開発環境(2)---

  X IDEの開発環境で、いくつかプログラムを書いて見ました。
  驚いたのは、「あまりにも親切過ぎる」でした。
  最近の一太郎やWORDのように、やろうとしていることを
  先読みして、自動でやってくれます。
  一太郎等では、冒頭に句読点がくると、行間をつめて、
  句読点を行の終わりの位置にもってくるということを自動
  でやってくれます。これと同じように、いろいろ、自動でや
  ってくれます。ただ、この「親切」がくせ者で、時に、意図し
  たことと違う結果になってしまいます。行頭の禁則処理を
  自動でやると、行ごとの文字間隔がちがって、見栄えが
  悪くなるので、この辺が、一番いやなところです。
 
  この意味で、最近のワープロソフトは、嫌いでした。さすが
  使わなくなりましたが、PCになってからも、OASYSという
  ワープロソフトを使い続けたのも、この親切さがなかった
  からです。
  さて、X IDEですが、使ってみて、ことのほか便利なようです。
  何よりも、作成途中で、シンタックスエラーがあると、その都度
  知らせてくれます。

  

  黄矢印の行に「;」がないシンタックスエラーがありますが、
  次の行の緑矢印の所にきちんと、「びっくりマーク」が表示
  され、エラーのあることを示してくれます。
  「;」をつけてやると、ちょっとタイムラグがありますが、
  びっくりマークは、すぐに消えます。
  未定義の変数等についても同じように知らせてくれますの
  ので、開発時間が短縮されるかもしれません。

---新しい開発環境---

 PICのプログラムを作るにあたって、初めて使った、
 MPLAB IDE V8.8という古典的な環境を使い続けてきまし
 た。
 ただ、世の中がどんどん進んでいて、このv8.8は古い
 アーカイブに残っているだけで、メジャーなDLのリストには、
 ありませんでした。
 また、新しいことを覚えるのはしんどいのですが、諸兄の
 プログラム古い環境に移植しようと思いましたが、あっさり
 断念しました。
 新しい環境のMPLAB® X IDEをインストール。この環境で
 コンパイルしたら、一発でOKでした。
 新しい環境では、一番の難物のCONFIGの設定も半自動で
 おこなえるようで、なれれば、こちらの方がいいかもしれま
 せん。

---「arduino」 事始め (3)---

 例によって、諸兄のHPを参考にしながら、プログラムの環境
 を作ります。詳細は、arduino ide等で検索するといろいろあ
 ります。私は、

   HP

 を参考にしました。
 詳細は、参考になる諸兄のHPがありますので、はまって
 しまった所だけを書きます。

 arduinoの公式HPに行って、WINのインストーラーをDLします。

 黄色矢印をクリックします。

 

 すると次のような画面になります。

 

 この画面で、黄色矢印をおすと、寄付の金額を入力しなければ
 ならなくなります。どのHPを見ても有料だとは書いてありま
 せん。有料なのかと思いましたが、なんのことはない、
 赤の矢印を押せばよかったのです。赤矢印を押せば、すんなり、
 DLできました。
 DLしたファイルをインストールしました。本体がないままに
 インストールしました。同時にドライバーもインストールしよ
 としましたが、本体がないので、途中でキャンセルしました。
 本体がきてから、本体をUSBに接続すると、すんなりとドライ
 バーもインストールできました。デバイスマネージャーで確認
 しても、びっくりマークはでていませんでした。

---「arduino」 事始め (2)--- 

 本日、注文していた「arduino」が届きました。

 

 思ったよりもコンパクトな包装で、届きました。
 本体は、考えてたよりもずっと小さく、5c強m×6cm強の
 大きさです。

 

 裏面をよく見てみると、裏に、細かい情報が書いてあります。
 悪名高き某国製ではなく,イタリア製でした。印刷のシミかな
 とも思いましたが、イタリアの地図まで、印刷してあります。
 (矢印)
 原産は、イタリアだったんですねえ。初めて分かりました。

 

 しばらく遊べそうです。

---「arduino」 事始め (1)--- 

 以前から気になってましたが、PICを使えば事足りるという
 ことで、手を出していませんでした。
 ハンダを使わなくても、簡単に回路の試験等ができそうなの
 で、「arduino」をいじってみることにしました。
 入門キットなるものを購入しました。

 

 NETであさると、PICとはそもそも考え方が違うようで、やは
 り細かい制御をするには、PICにはかなわないようです。
 Q&Aのサイトで、以下のような記述を見かけました。
 当を得た解説だと思います。以下、抜粋です。

 >arduinoは、ハードウエアの事を全く知らなくても、
 >拡張シールドと、公開されたスケッチを組み合わ
 >せる事により、マイコンで目的を達成する為の大
 >変優れたシステムです。
 >いかにも合理主義のヨーロッパ人が考えつきそう
 >な発想です。
 >しかも、誠に残念な事にarduinoのスケッチ言語は、
 >C言語「風」なのであって、決してC言語では有りません。
 >他の汎用のC言語を習得する事が目的の場合には、
 >実は全く役に立ちません。
 >内部に使用されている、AVRマイコンの汎用のC言語に
 >移植して使う事すら不可能であり、細かな制御を行う為
 >の言語としては出来ない事は有りませんが、細かな制
 >御を行う場合には、汎用のC言語を使った方が遥かに
 >簡単に記述が可能です。

 マイコンのことを知らなくても、必要なシールド(拡張基盤)
 を使い、公開されているスケッチ(プログラム)を使うことで、
 比較的簡単に目的を果たすことができることで、広まった
 ようです。
 しかし、内部に使われている、AVRマイコンの日本語の書籍
 は一冊しかなく、日本語の資料を得ることは、ほとんど不可能
 のようです。
 ということで、限界を見極めながら、いろいろ遊んでみようと
 思います。
 基板上のLEDを点滅させるスケッチ(プログラム)は、

  #define LED_PIN 13
  void setup() {
         pinMode(LED_PIN, OUTPUT);
  }
  void loop() {
         digitalWrite(LED_PIN, HIGH);
         delay(3000);
         digitalWrite(LED_PIN, LOW);
         delay(3000);
  }

 これだけですんでしまうようです。まあ、手軽と言えば
 お手軽です。一般のC言語では、main()に当たる関数が
 loop()になってます。

    ---アドバイスをいただきました。コンパイルの過程で
         main()関数が追加されるようで、使用者はただ、
         意識はしなくてもいいとのことのようです。

 細部については不明ですが、define等の記述は、c言語
 と同じですね。

---ジャンパーピン---

 自作のPCを作って居た頃は、道具箱に転がっていた基盤の
 ジャンパーピンだが、SmoothSteppeの設定の変更をするのに
 必要になったので、近くのPCDEPOTに買いに行った、
 本来なら、基盤に付属のような気もするが、残念ながら、付属
 していなかったので。
 行ってみて、高いのびっくり。こんなことなら、時間かかって
 も○月電子で購入した方がよかった。
 ちなみに値段を比べてみると、
     ○月 250個-----450円
     PCDEPOT 10個----614円

 

 ピンヘッダーもついているので、もっと安くなるが、一個、約2円。
 それにくらべ、PCDEPOTは、一個約60円。なんと
 約30倍の高額。
 
 

 
 ただ、需要のことを考えると,一般のお店では、かなり少ない
 はずなので、割高になるのは仕方ないことだと思うが。
 時間がかかっても、送料かかっても、○月電子での購入の方が
 よかったかなあとしきりに思う。

---電気工事士失格---

 PF管の埋設が終わったので、ガレージに電気の配線をしまし
 た。とりあえず、1本だけ配線をしましたが、とんでもない配線
 をしました。

 

 最初、写真のような結線をしました。不安になって、調べてみ
 ると、間違いの配線でした。もし、これが実技試験でしたら、
 致命的な欠陥ということで、一撃で不合格でした。
 通常、100Vのブレーカーには、2P1Eのものが使われますが、
 これは、過電流引きはずし素子が一つしかついてないもので、
 Nの表記のある端子には、それがついていません。
 ですから、黒の線をN(右側)につなぐと、ブレーカーの役目
 を果たさなくなります。
 工房の工事では、覚えていて、きちんと配線ができましたが、
 今回は、間違ってしまいました。一日たって、直しました。

 

 この写真が正解です。
 もっとも、私が使ってるブレカーは、200V/100V兼用の
 2P2Eのもので、過電流引きはずし素子が両極についてい
 ますので、結線を間違えても、きちんと動作すると思うので
 すが・・・・・・。
 ペーパーの工事士には、こまったものです。

---PF管埋設---

 工房から車庫に電気を引くのに、PF管をつかいました。
 PF管にVVFケーブルを入れて、埋設します。

 

 写真を掲載する必要もないのですが、このような方法で、
 よかったのかどうか、有資格者としては恥ずかしいです。
 車庫側の引き込みボックス(正式な名前が分かりません。)です。

 

 工房側の引き込みボックスです。

 

 VVFケーブルを通し、PF管を接続します。

 

 サドルで固定し、地面部分を埋設して、完了です。

 

 
 

 
 資格があっても、仕事にしているわけではないので、何よりも
 経験少ないです。経験を積んでいる仕事でなさってた方だと
 いろんなノウハウが身についてるので、要領よく作業できる
 はずですが、いかんせん、素人は、ノウハウがありません。
 それに、だいたいの作業が一回こっきりのことが多いので、
 経験の積みようがありません。この辺がDIYの限界でしょうね。
 でも、やはり自分でいろいろやるのは、楽しいです。