2020年7月31日金曜日

プログラムをPICに書き込んでみよう(PICシリーズその5)


前回はMPLABをインストールしました。今回は、MPLABとPICkit4を使って、実際にPICにプログラムを書き込みます。

Projectを作成

MPLAB X IDEを起動し、Flie>New Project…をクリックします。






New Projectの画面が開きます。そのまま、Nextをクリックします。


次に、Familyはそのままで~、Deviceに使用するPICの型番を設定します。
Nextをクリックします。

Select Headerもそのまま、Nextをクリック。

Select ToolはPICkitをつないでいないので書き込み機が表示されないが問題ないのでそのまま、Nextをクリック。

コンパイラの選択では、前回インストールしたXC8があることを確認して、Nextをクリック。

次にプロジェクト名を設定します。わかりやすい名前にしましょう。
Project Locationは、プロジェクトを保存しておく場所を指定します。デフォルトのままでも任意の場所でも構いません。名前を入れたら、Finishをクリック。

下記画像のようにプロジェクトが作成されます。

ソースファイルを追加

プロジェクトを作成したら、次にソースファイルを追加します。ソースファイルとは、プログラム本体のことです。
Flie>New File…をクリックします。


New Fileウィンドウが開いたら、
①CategoriesはC, File TypesはC Source Fileを選択し、
②Finishをクリック


次にファイル名を指定します。わかりやすい名前にしましょう。たとえば、温度センサのお試しなら、その温度センサの型番とか。
そして、Finishをクリック

このようなエディタ画面が出てきます。



コンパイル

いよいよコードを書いていきますが、今回はPICにプログラムを書き込むことが目標です。
コードは以下のものをコピペしてください。次回以降にコードの解説をしていきます。


==================================================


// PIC16F1503 Configuration Bit Settings

// 'C' source line config statements

// CONFIG1
#pragma config FOSC = INTOSC    // Oscillator Selection Bits (INTOSC oscillator: I/O function on CLKIN pin)
#pragma config WDTE = OFF       // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = OFF      // MCLR Pin Function Select (MCLR/VPP pin function is digital input)
#pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config BOREN = OFF      // Brown-out Reset Enable (Brown-out Reset disabled)
#pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)

// CONFIG2
#pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)
#pragma config STVREN = OFF     // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will not cause a Reset)
#pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LPBOR = OFF      // Low-Power Brown Out Reset (Low-Power BOR is disabled)
#pragma config LVP = OFF        // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#include <xc.h>
#define _XTAL_FREQ 8000000


void PICinit(){
    OSCCON     = 0b01110000 ;
    ANSELA = 0b00000000;
    TRISA = 0b00000000;
    TRISC = 0b00011000 ;
    PORTA = 0b00000000;
    PORTC = 0b00000000 ;
    OPTION_REG = 0b00000000 ;
    return;
}

int main(void){
     PICinit();      //PIC????
    while(1){
        RC0= 0;

        __delay_ms(200);
        RC0= 1;
       
        __delay_ms(200);
    }


    return 0;
}

   
==================================================


コードを張り付けたら、ビルドします。ビルドとは、書いたプログラムの文法チェック・コンパイルを自動で行ってくれます。右上のトンカチ(Build main project)のアイコンをクリックしましょう。


ここで、何やらビルドエラーが出ました。

xcコンパイラのc言語の規格によって、ビルドエラーが起こる場合があります。
MPLAB X IDE v5.xxと8ビットPICマイコン用のCコンパイラーであるMPLAB XC8 v5.xxを組み合わせて使うときの設定に問題があるそうです。
専門的なことはわかりませんので以下を参考にして修正してください。

「2-7MPLAB X IDE v5.xxの注意点」
https://sanuki-tech.net/pic/development/cannot-find-include-file/


修正方法は
①PIC12-16F1xxx_DFP(1.1.53)をクリック。
②XC8 Global Optionsをクリック。
③C standardをC90に変更し、OK。

修正を行い、再度ビルドを行い、下記画像のように「Build Successful」と表示されればビルド成功です。


回路作成

以前、作製した書き込み機を使用して動作確認用の回路を構築します。

用意するもの

・PIC16F1503↓
・PICkit4
・ブレッドボード
・ジャンパコード
・書き込み機
・抵抗(3kΩ)
・赤LED

今回私は、PICはPIC16F1503を使用していますが、これ以外のものを使用している方はそのデータシートを見てpinの配置を確認しましょう。

作成した回路図は以下のようになります。
以前作製した書き込み機にLEDが付いているだけの簡単なものになります。
実際の接続写真は以下のようになります。
以上でハードの準備は完了です。



プログラムを書き込む

先ほど、書いたプログラムををPICへ書き込みます。
左上に再生ボタンをクリックします。



「5V印加しますが問題ないか」と聞いてきます。PIC16F1503の電源電圧上問題ないのでそのままOK。

ここでも「Target device was not found (could not detect target voltage VDD).」というエラーが出ました。
このエラーは書き込みツールから正常に電圧が供給されていないので、外部から電源を入れるかライターから供給することで解決します。

今回はライターから電源を供給して、解決します。


PIC12-16F1xxx_DFP(1.1.53)をクリック。
②Propertiesの画面の中から使用している書き込みツールを選択。
③Option categoriesの中からPowerを選択。
④Powerの画面でチェックボックスにチェックを入れる。
⑤OKをクリック。
これで最後に再度、左上に再生ボタンをクリックします。・・・※①


マクニカの事業>半導体事業>サポート
「Microchip PICマイコン:PICマイコンに書き込みを行う際にTarget device was not found (could not detect target voltage VDD).というエラーメッセージが表示された際の対応方法を教えてください」

その後数秒後に、下のOutputウィンドウにProgramming/Verify completeと出てくれば成功です!

書き込みの瞬間の挙動を動画にしています。(本文「※①」あたりより)


一度書き込みが終了してしまえばPICkit4を外し、外部から電源を入れても動作します。
他のPICでも全く同様の書き込み手順です。始めのプロジェクト作成のところで使用するPICを指定することで、同じ様なことができます。

次回は、今回コピペしてもらったコードの解説をします(面倒ですがw)


2020年7月27日月曜日

書き込み機再作製(PICシリーズその2.1)

以前、以下の書き込み機を作りました。
しかし、タッパーに入れて持ち歩くには、少し邪魔です。
そこで、以前作製した書き込み機よりさらに小型なものを作製しました。



前回と同じ書き込み機をユニバーサル基板に取り付けます。
部品は基本的にはチップ部品を使用しました。
電源の箇所には前回入れなかったコンデンサを入れました。


左右の余計な部分は切り落とします。
切り落とすとずいぶんすっきりします。


PICkit4を取り付けると、以下のようになります。
これを会社に持って行って昼休み遊べます!


今回は作製したものに、電源投入確認LEDでも追加はしたいです。
BAS動作確認LEDも追加したいですが、PGCは双方向なので直列では入れられないです。
また、FETを入れるのは容量をつけるのと同じ(波形が歪むため)なので無理なのかな。
検討する必要がありそうです。

2020年7月15日水曜日

和包丁の柄(差し柄)の交換方法

1 はじめに

包丁を濡らしたままや、湿気の多いところに放置すると包丁全体が錆びてしまいます。

図 1 今回柄を交換する包丁 

もちろん、柄の中の金属、中子も錆びて膨張して柄が割れたり、隙間が開いたりしてしまいます。
包丁全体が錆びた際や柄が割れてしまったときは、
包丁についた錆がもっと深く進行する前に早めに修理しなくてはなりません。

図 2 割れている柄


今回は、和包丁の修理として、柄の交換を行います。


2 包丁の柄の種類


包丁の柄には大きく分けて和包丁、洋包丁、一体型の3種類あります。
和包丁は包丁の中子を柄に差し込むもので、ナイフで言うとナロータング型です。
洋包丁は包丁の中子を柄に挟むもので、ナイフで言うフルタング型やハーフタング型です。
一体型は柄が金属でその金属に包丁本体と一体になっているものを指します。

和包丁の柄は包丁の種類と長さによって異なります。しかし、包丁の種類と長さによって、柄の長さや太さが決まっています。
また、柄の形にも違いがあります。
おおむね、出刃包丁は小判型。その他の包丁はくり型となっています。
小判型の場合は、柄の穴は峰の方が大きくなっています。
また、くり型の場合は、とがっている方が右利きの人は右側に来るように取りつけます。


3 準備

①新聞紙等
②金床、ブロック等の台座
③木づち、金づち
④のみ
⑤ガスバーナー、ガス台
⑥木工ボンド
⑦予備の柄もしくは同じくらいの木片
⑧交換用の柄

実際以下の部品で交換できました。
図 3 使用した道具等 


4 手順

4.1 柄を取る前

包丁は刃物なので刃が付いていないとしても安全のために新聞紙等の紙を巻きます。

図 4 刃の部分に新聞紙を巻く 


4.2 柄の取り外し

柄の部分を予備の柄もしくは同じくらいの木片を当てて木づちでたたくことで徐々に外れます。
しかし、今回のように柄が割れているときは中子が錆で膨張して外れない可能性もあります。その時は、たがね、のみなどを用いて柄を割って取り外します。
口輪の部分をに関しては、プラスチックならのこぎり等で切り取ります。
水牛の角系はハンマーでたたいて割ります。

柄が取り外せたらしっかり中子が錆びているのが確認できます。

図 5 柄を取り外した状態


 

4.3 さび落とし

中子のサビを金槌でたたき、大きいものを落とします。

図 6 大きい赤さびを落とす前


金槌で大きいさびを大まかに落としても、赤さびが残っています。残りの赤さびは金やすりで落とします。

図 7 大きい赤さびを落とした後

黒錆は残っていますが金属を腐食するものではない(酸化被膜)ので、柄から見える部分を除きここで終了です

図 8 赤さびを落とした後


4.4 柄の取り付け

中子をバーナー、やガスコンロの火でなどで焼きます
柄には向きに注意しつつ、焼いた中子を柄に刺し入れて下さい。
中子がやせてしまっているようなときは、柄の中にボンドを入れてから中子を刺し入れます。
図 9 柄を交換した包丁 

あとは、余ったボンドをふき取り、1、2日そのまま置きボンドが固まれば柄の交換は完了です。 

5 参考


i)「和包丁の柄(差し柄)の交換方法」
https://mitusaburo.com/togisho/houtyonotisiki/1372.html
アクセス:2020/07/14

ii) 「包丁の柄」の種類について
https://www.rakuten.ne.jp/gold/jikko/pro/handle.htm
アクセス:2020/07/14