PICを始めたいです。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

PICを始めたいです。

#1

投稿記事 by » 14年前

始める前にいくつか質問があるのでお願いします。

・工作関係は自作PCしかやったことないのですが大丈夫ですか?
・アセンブラはできないのですが大丈夫ですか?
・電子回路はまったく読めないし書けませんが大丈夫ですか?
・C言語のPIC入門書はよく見かけるのですがWebであったら教えてください。

C言語でソフトウェアは作ったことあります。
再帰やソケット、スレッド処理などはできます。
PICなどではソケットやスレッド処理は関係ないと思うのですが
C言語が慣れてるのでC言語で作りたいです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: PICを始めたいです。

#2

投稿記事 by softya(ソフト屋) » 14年前

PICマイコンを使った電子工作が目的でしょうか?

・工作関係は自作PCしかやったことないのですが大丈夫ですか?
あまり大丈夫ではありませんが、やること次第です。

・アセンブラはできないのですが大丈夫ですか?
少し不安がありますが、選ぶPIC次第ではC言語で大丈夫です。
ただ、やはりPCのC言語とは使い方が大分違います。

・電子回路はまったく読めないし書けませんが大丈夫ですか?
電子回路が読んだり書いたり出来ないと何も出来ません。
誰かが回路を作ってくれる人がいるなら何とかなります。

・C言語のPIC入門書はよく見かけるのですがWebであったら教えてください。
「電子工作の実験室」 PIC普及の総本山
http://www.picfun.com/

PICで、どんなものを作る予定か教えてもらえますか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Re: PICを始めたいです。

#3

投稿記事 by » 14年前

そうです。
電子工作がしたいです。

予定では
■本格的な車のラジコン
クラッチやシフトチェンジ、スピードメーター、ブレーキ、ウインカーやブレーキランプ、機能を付けたラジコン

■スロットの子役カウンター
自分の好きな機種を一つセットしておいて、ベル、リプレイ、スイカ、チェリー、BB、RBなどの回数から予想設定を調べる

■メール機能付き監視カメラ
自分が外出中に部屋に侵入者があったとき(if(ドアノブの音&&温度感知)に反応がありのとき)に写真を撮りPCを通して自分の携帯に添付メールされる

■携帯のパスワード解析
これはセキュリティ(個人情報)的に危ないような気もしますし、PC用のソフトで解析できますが、
パスワードを忘れてしまったときなどに携帯の充電器を挿すジャックの部分と接続して解析してくれる「持ち運び可能な端末」

たぶん、これから先もっと「こんなのが欲しい」というのが増えてくると思います。
世の中広いので探せば売ってそうですが、自分で作ってみたいと思い電子工作を考えています。

誰かが回路を作ってくれる人がいるなら何とかなるということですが、私の周りにはそういう専門的な知識を持った人がいません。
回路を作れなければ絶対に無理。というのであれば私が頑張って覚えます。
回路って難しいですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: PICを始めたいです。

#4

投稿記事 by softya(ソフト屋) » 14年前

結構な規模のものがありますね。
それだと8bitPICマイコンだと荷が重い可能性もあります。
H8やAVR、場合によってはARMマイコンとかも考えたほうが良いかも知れません。
PICは小型で安価、そして書籍が多いのがメリットですがROM容量や速度の問題でロボット的なものに使われることは少ないです。
あとPICのROMライターはPICにしか使えないので後々の展開では無意味なことになります。
→ 前にPICに手を出しましたが結局ライターとかが面倒なのでAVRとか違うマイコンを使っています。ただし、AVRの書籍はある意味少ないのでが、Arduinoとしては有名です。

回路が難しいかですが、基本的なことを理解すればサンプルからある程度真似ることは出来ますし、ある程度オリジナル回路を設計できるようになります。
これはプログラムの応用力に似ていますね。あとはハンダ付けが出来ないと何も作れません。
最初は回路設計のいらないキットで学ばれるのが良いと思いますが、PICは書き込み機が高い事やそこそこ優秀なC言語コンパイラが無料で手に入らない問題があります。

これなんかどうでしょうか?書籍もあります。
「Beauto Rover H8/ARM(ビュートローバー) | ヴイストン株式会社」
http://www.vstone.co.jp/products/beauto ... index.html

電子回路とかは、こういう雑誌もあります。
「電子工作推進マガジン エレキジャック」
http://www.eleki-jack.com/
「電子工作マガジンWEBSITE」
http://denkomagazine.net/
ともかく、触ってみることをしないと理解出来ないものです。
必須はテスターですね。

電子回路はブレッドボードという便利なものがあるので、電子部品で遊んでみることをお勧めします。
「武蔵野電波のブレッドボーダーズ」
http://pc.watch.impress.co.jp/docs/2008 ... ino002.htm

ちなみにH8やARMレベルであればOSを入れることも出来ますよ。

[追記]
サイトもご紹介しておきます。

「始める電子回路」
http://www9.plala.or.jp/fsson/NewHP_elc/index.html
「電子回路工作入門」
http://www.piclist.com/images/www/hobby_elec/elect.htm
「趣味の電子回路工作 目次」
http://www.piclist.com/images/www/hobby_elec/menu.htm
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

non
記事: 1097
登録日時: 15年前

Re: PICを始めたいです。

#5

投稿記事 by non » 14年前

確かに、PICよりマイコンの方がいいと思います。
秋月電子のH8/3052Fの開発セットあたりが手頃で勉強によいかと思います。
http://akizukidenshi.com/catalog/g/gK-00181/
non

たかぎ
記事: 328
登録日時: 15年前
住所: 大阪
連絡を取る:

Re: PICを始めたいです。

#6

投稿記事 by たかぎ » 14年前

ソフトウェアはともかく、ハードウェアも自分でやるのであれば、PICは楽といえば楽です。
下手にARMとかにすると、どんなチップにするかにもよりますが、回路設計が面倒になる可能性はあります。
個人的にはH8/300HかR8Cがお勧めです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: PICを始めたいです。

#7

投稿記事 by softya(ソフト屋) » 14年前

R8Cも確かに良いですね。
PICでもdsPICとかPIC32なら悪くない選択だと思います。
上にも書きましたが私はPICよりもAVRをお勧めします。値段はそう変わらないですが、まぁPICに比べると書籍もサイトも少ないのが弱点ですね。
マイコンボードArduinoとしては有名ですので、その方面の情報は多いですよ。
学研のJapanino=Arduinoの私のサイトです。CPUはAVRを使っています。
「8ビットマイコン Japanino(ジャパニーノ) まとめ @wiki 学研 大人の科学マガジン Vol.27 - トップページ」
http://www35.atwiki.jp/japanino/
今買うならJapaninoは最新Arduinoのより性能が劣るので、Arduinoをお勧めします。

H8やARMでもチップを直に使わずにマイコンボード使えばさほど困難は無いと思うのですが(速度面の問題はあります)。
あっそうか、電圧問題がありますね。

アマチュア向けには、こんなキットもあります。
「オプティマイズ(電子工作・ゲームハード解析)」
http://optimize.ath.cx/
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Re: PICを始めたいです。

#8

投稿記事 by » 14年前

みなさん。回答ありがとうございます。

マイコンっていろいろ種類があって難しいんですね・・・
何を基準にマイコンを選ぶのですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: PICを始めたいです。

#9

投稿記事 by softya(ソフト屋) » 14年前

錦 さんが書きました:みなさん。回答ありがとうございます。

マイコンっていろいろ種類があって難しいんですね・・・
何を基準にマイコンを選ぶのですか?
かなりいろいろな要素です。
書き連ねると
・マイコン自体の価格。
・マイコンの開発環境の価格。ソフトウェアとハードウェア。
・マイコン自体の入手性。
・マイコンボードの有無や組み立て難易度。
・マイコン自体の動作電圧。
・必要なIOの有無。
・開発の容易性。ソフトウェアとハードウェアの両面。
・書籍やサイトなどの情報の多さ。マニュアルの情報量など。
・必要なROM容量・RAM容量。
・必要な動作速度。
あとは、そのマイコンに慣れているとか。
知っているメーカーだから安心出来るとか。
マイコンの設計思想に惚れた!とか。

入手性と価格は秋月電子(自作に人には超有名な秋葉原のお店)などのサイトで確認してます。

「マイコン関連 秋月電子通商 電子部品 ネット通販」
http://akizukidenshi.com/catalog/c/cmicon/
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Re: PICを始めたいです。

#10

投稿記事 by » 14年前

softya(ソフト屋) さんが書きました: かなりいろいろな要素です。
書き連ねると
・マイコン自体の価格。
・マイコンの開発環境の価格。ソフトウェアとハードウェア。
・マイコン自体の入手性。
・マイコンボードの有無や組み立て難易度。
・マイコン自体の動作電圧。
・必要なIOの有無。
・開発の容易性。ソフトウェアとハードウェアの両面。
・書籍やサイトなどの情報の多さ。マニュアルの情報量など。
・必要なROM容量・RAM容量。
・必要な動作速度。
あとは、そのマイコンに慣れているとか。
知っているメーカーだから安心出来るとか。
マイコンの設計思想に惚れた!とか。

入手性と価格は秋月電子(自作に人には超有名な秋葉原のお店)などのサイトで確認してます。

「マイコン関連 秋月電子通商 電子部品 ネット通販」
http://akizukidenshi.com/catalog/c/cmicon/
なるほど。
ROM,RAM容量や動作速度というところで気になりますが、
そこを気にしなければどんなマイコンでも同じものを作ることができるということでしょうか?
マイコンの中にはCPUなども含まれていると解釈してるのですが、
そうなるとマイコンの種類によってアセンブリが変わるということになりますよね?
私は書きなれてるC言語で書き込みをしたいのですが、
基本はもちろん変わらないと思いますが、UNIX(Linux)とWinでアプリを作るときに違いがあるように
マイコンも種類によって違いはありますか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: PICを始めたいです。

#11

投稿記事 by softya(ソフト屋) » 14年前

錦 さんが書きました:そうなるとマイコンの種類によってアセンブリが変わるということになりますよね?
私は書きなれてるC言語で書き込みをしたいのですが、
基本はもちろん変わらないと思いますが、UNIX(Linux)とWinでアプリを作るときに違いがあるように
マイコンも種類によって違いはありますか?
開発環境毎に周辺機器のライブラリが違います。周辺機器のライブラリがない開発環境もあります。
あとマイコン毎(同じメーカーでも)に搭載している周辺装置(IO)が全然違うので、制御手順が違ってきます。
ここら辺はOSがない状況ではデバイスドライバも無いので、デバイスドライバがやっていることを自分で書くことになるわけです。
そうそう書き忘れたのですが浮動小数点ユニット(FPU)を搭載していないマイコンも多いので、浮動小数点演算が必要なプログラムを組むと遅くて泣きたくなります。

マイコンとはどんなものか、H8のシミュレータと開発環境で動かしてみるとイメージが掴めるのでは無いでしょうか?

「H8エミュの詳細情報 : Vector ソフトを探す!」
http://www.vector.co.jp/soft/winnt/util/se450954.html
シェアウェアですが、気に入ったら払ってくれとのことです。

使い方は明日説明します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: PICを始めたいです。

#12

投稿記事 by softya(ソフト屋) » 14年前

続きです。色々問題があり、今解決しました。
開発環境は、GCC Developer Liteを使用します。
http://www.besttechnology.co.jp/index.php
# GCC Developer Lite Ver2.4.0.0r4 (2011/04/07) を入手してください。

GCC Developer Lite をインストールしたら起動してください。
起動時に
ツール → コンパイル・オプション → 設定リスト で 「H8/3048F (Flash)」を選択してください。
これだけで基本的な準備は終了です。

GCC Developer Lite に次のソースコードを入力してください。

コード:

//
// 1秒間隔でLED1・LED2の点灯切り替え
//
#include <3048.h>            /* 3048f.h から 3048.h に変更する */

int g_n1sCnt;
unsigned char g_nLED;

void main()
{
	g_n1sCnt = 0;
	g_nLED = 1;

	DI;
	
	// ポート5 (LED 1~2  P5-0~1)
	P5.DDR = 0x03;			// 出力に設定
	P5.DR.BYTE = g_nLED;	// LED1点灯

	// ITU1設定  1msタイマ
	ITU.TSTR.BIT.STR1 = 0;
	ITU1.TCR.BYTE = 0x23;		// タイマコントロールレジスタ
								// 0010-0011 (0x23)
								// |||| |+++- TPSC  (3=内部クロック : φ/8でカウント)
								// |||+ +---- CKEG  (0=立ち上がりエッジでカウント)
								// |++- ----- CCLR  (1=GRAコンペアマッチでクリア)
								// +--- ----- リザーブ
	ITU1.TSR.BYTE = 0xF8;
	ITU1.TIER.BYTE = 0xF9;		// タイマインタラプトイネーブルレジスタ
								// 1111-1001 (0xF9)
								// |||| |||+- IMIEA (1=IMFAフラグ割込み許可)
								// |||| ||+-- IMIEB (0=IMFBフラグ割込み禁止)
								// |||| |+--- OVIE  (0=OVFフラグ割込み禁止)
								// ++++ +---- リザーブ
	ITU1.TCNT = 0;
	ITU1.GRA = 2000;			// 1ms (16MHz時 φ/8)
	ITU.TSTR.BIT.STR1 = 1;
	
	DI();

	while(1)
		;
}
// ITU CH1 1msタイマ割込み
//
void interrupt Timer1ms()
{
	g_n1sCnt++;
	if(g_n1sCnt > 1000){
		g_n1sCnt = 0;
		if(g_nLED == 1){
			g_nLED = 2;			// LED2点灯
		}else{
			g_nLED = 1;			// LED1点灯
		}
		P5.DR.BYTE = g_nLED;
	}

	ITU1.TSR.BIT.IMFA = 0;
}
これは、機能紹介したH8エミュのサンプルコードをGCC Developer Liteに対応させてものです。
これも開発環境次第でライブラリが変わるマイコンの特徴ですね。

そしてビルドするのですが、最初にセーブファイル名を聞かれますのでled.cとでもして適当なフォルダにセーブしてください。
そのフォルダには実行ファイルであるled.motが出来ますので後々H8エミュでロードします。
ビルドに成功したら、H8エミュ(H8Emulator.exe)を起動してください。
ファイル → ROM読み込み → 先ほど作成されたled.motファイルを読み込みます。
F5で実行です。どうでしょうか右上のLEDのような物は点滅しましたか?
これで何となくマイコン開発のイメージが湧くんじゃなかと思います。

「GCC Developer Lite」での書き方は、こちらを参考にしました。
http://homepage1.nifty.com/rikiya/software/4GDL.htm

【追記】
「AVR-USBマイコンボード AT90USB162 - AT90USB162 - ネット販売」
https://strawberry-linux.com/catalog/items?code=50027
このキットはお安いので始めての方にも扱いやすいと思います。価格も手頃。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る