2012年04月19日

Arduino初心者 メモ10


4digitsシールドに載っている照度センサ(S9648-100)を確認しました。
(写真右上)

しょうど.jpg

このセンサは1Lxあたり0.858mV出力されるそうです。
Arduinoのプログラム上ではこの電圧値をアナログ端子で読んで、
照度に換算するわけです。

プログラム的には温度センサとほとんど変わらない。
読む端子の番号を変更するだけ。

こういうベースの部分を考える手間が省けるおかげで、
それを使って何をしようかっていう部分に脳みそのパワーを
残しとけるのが良いですね。

...

4digitsシールドに載っている部品単位については動作が見れました。
現在、このシールドを使用して思いつきでちょっとしたおもちゃを作成中。
写真だけだと見た目は今までと同じだから、ここで載せるかどうかは分からないが..
posted by gibres_st_nature at 21:32| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年04月17日

Arduino初心者 メモ9


4digitsシールドには温度センサー(LM35DZ、下画像の赤丸)が、
載っているので、それを使って部屋温度を測ってみました。

1℃につき0.01V出力されるセンサらしい。
こちらは温度センサのOutputがつながっている
Arduino上の端子のアナログデータを読みとれば、
あとはそれを温度に換算して7segLEDに表示。(小数点はなし)

CIMG1934.jpg

実際よりはちょっと温度が高めな気がする。
posted by gibres_st_nature at 20:28| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年04月15日

Arduino初心者 メモ8


4digitsシールドを利用しての7segLEDの確認をしました。

CIMG1931.jpg

上記の7segLEDは4個ついていますが、点灯を”同時”に指定できるのは
1箇所のみとなっています。

だから、4箇所を続けて高速に点灯させることで、4桁の数字として表示されて
いるようにみえます。ダイナミック点灯ってやつ。

4digitsシールドはライブラリもダウンロードでき、
それを利用すると制御もかなりシンプルにできます。

...

次からは各種センサが出てくる予定です。
そのうち調達に行かないと。
posted by gibres_st_nature at 16:31| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年04月14日

Arduino初心者 メモ7


アナログ入力を利用したボリュームと
矩形波の制御による圧電センサの動作確認をしました。

CIMG1921.jpg

上の画像で言うと、細長いシルバーの黒いレバーがついてるのがボリューム(可変抵抗)で、右上の黒い丸い物体が圧電ブザーです。

基本的にはアナログもしくはデジタルとして端子の情報を読み取り、
また出力の時はその逆でプログラム上で加工して出力できます。

ボリュームはいじるとその端子の電圧が変化するので、
その値を利用していろいろなことができます。

圧電センサのほうは、信号の周波数で音色の高さを変化させて出力
させることができます。
arduinoのベーシックなライブラリの中に、
周波数を指定して矩形波を出すプログラムがあるので、
それを利用すると、周波数指定でドレミファソラシドとか鳴らすことができます。

...

ガリレオ7の4digitsシールドでarduinoのいろいろな使い方を学習できる感じです。

それにしても、こんな簡単に制御できていいのかという感じです。
今の所、全く詰まるところがない。
posted by gibres_st_nature at 20:40| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年04月12日

Arduino初心者 メモ6


今日はSW入力の動作確認をしました。
下の写真でいうと、右側の緑、赤、白のボタンです。

CIMG1916.jpg
(しばらく同じキットだから、写真は使いまわしで..)

仕組み的には、
SWのH、Lの切り替え回路と  (HとLのスレッシュホールドは仕様書みないと分からない..)
Arduinoのデジタル端子を接続する形にして、

プログラムではデジタル端子を入力モードにして
端子の状態を取得する事でスイッチの状態を判断できます。

これだけ書くといつものマイコンと変わらない感じだけど、
レジスタの初期設定、割り込みの設定は無いから
設定がとにかくシンプル。

その辺はブラックボックスになって、裏でいろいろ動いてるんだろうけどね。
posted by gibres_st_nature at 21:33| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年04月10日

Arduino初心者 メモ5


CIMG1925.jpg

今日はアナログポートを使用してのLEDの制御。
本当はH、Lしか出ないけれど、細かく交互に出力することで、
擬似アナログ出力になっているらしい。
出力のパラメータはPWMのデューティー比になっています。

画像のは実際はボワーンと点滅しているのですが、
わかんないよな。

仕事場でも基板見て、家でも基板見て、基板づくしですが、
arduinoはお手軽なので、そんなに苦になりません。

ただ最近、記事のジャンルは組み込みプログラムでいいのか、ちょっと悩んでいる。

...

今気づいたけど、これまでのarduino関連の記事タイトル。
arduinoの綴り間違ってるやん...(本日修正)
posted by gibres_st_nature at 21:38| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年04月08日

Arduino初心者 メモ4


ガリレオ7」にて、
arduino用のシールド「4 Digits Shield」を購入しました。
詳細は同サイト内で詳細説明書がダウンロードできますので、
気になる方はそちらをご確認ください。

@「4 Digits Shield」は組み立てキットになってます
CIMG1909.jpg

A組み立てにはハンダ付けが必要です。
 抵抗が1つ足りませんでしたが、(たぶん入れ忘れ)
 手持ちがあったのでそれで代用しました。(寸法は違ったけど無問題)
 あと、IC取り付け箇所に調子にのって手持ちのICソケットをつけると、
 寸法が合わず7SEGのLEDが取り付けできなくなり、ハンダ付け済みの
 ICソケットを外す羽目になりました。
 若干、手荒い外し方をして、ICをつける難易度まで上がってしまいました。
 組み立てキットでは、余計な部品を取り付けるべきではないですね。
CIMG1921.jpg

BArduinoと「4 Digits Shield」を接続しています。
 説明書にあるとおり、ショートに要注意です。
 私は間に厚紙を挟みました。
CIMG1917.jpg

Cプログラムを走らせて、7SEGのLEDの簡単な動作チェック。
 ライブラリを使うと20行未満で実行可能。
 ただ、このライブラリはIDEの古いバージョンに対応していたらしく、
 新しいバージョン用にちょっと修正が必要でした。
(私は本を参考にしましたが、Arduino Wikiなどにも対応が書いてあります)
CIMG1916.jpg

とりあえず、無事動いてよかった。
このシールドは他にも機能満載です。気になる方は説明書を..
posted by gibres_st_nature at 21:10| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年04月06日

Arduino初心者 メモ3


PCにIDEをインストールして、動かしてみました。
IDEは「http://arduino.cc/」から..Windows用のやつを。

・arduino箱
CIMG1902.jpg

・箱の中
CIMG1904.jpg

・USBでPCと接続
CIMG1907.jpg

手順的には
@IDEをインストール(ドライバ込み)
AUSBでPCとarduinoを接続
Bドライバを要求されるので、IDEと一緒にインストールしたドライバを参照
C接続されたCOMポートを確認
DIDEを起動
Eサンプルファイルを開いてarduinoにアップロード
F動作チェック

このプログラムの開発環境構築にかかった時間は10分ぐらい。
めっちゃ、お手軽。

普段、仕事で使用するやつらとは、次元が違うお手軽さだ。
posted by gibres_st_nature at 21:08| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年04月04日

Arduino初心者 メモ2


学習本に続き、「始めようキット」が到着。

CIMG1900.jpg

なんとお洒落な外観の箱。
この箱がワクワク感を増幅させてくれます。
apple製品とかも箱から出す時にワクワク感を増幅させられますよね。
あの感じ。

まだ、もうちょっとオプションを注文しました。
とりあえず、PCに開発環境ぐらいはボチボチ入れていこうかなと。

Windows7でやろうかな。
posted by gibres_st_nature at 22:48| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年04月02日

Arduino初心者 メモ1


巷でちょくちょく耳にするArdiunoをやってみることにしました。

よく耳にする内容からの自分の中のイメージは、
今までのマイコン(PIC、H8)なんかと比べて制御が簡単で、
何かの制御を手っ取り早く動作確認したいときに
ブレッドボードなどで簡単な回路を組んで
すぐに確認できるみたいな感じです。

学習本としては今年出たばかりの、出来立てほやほやの新刊を選びました。
最終章のAndroid携帯とつなぐところに惹かれたのが結構大きいかも。

Arduinoスーパーナビゲーション しくみと応用テクニック

レジスタを調べる作業と同様の手間をどれだけ
省けるかはやってみないと分かりませんが、
本の中のソースをちらちらと見てる感じでは、
長ったらしいレジスタの初期化などはなさそうです。
(見逃してるだけかもしんない..)

最終的な目標は...ですが、
まずはこの本を参考にしつつ進めていきたいと思います。

まずは部材だ。
posted by gibres_st_nature at 21:52| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年01月26日

組込み学習 双方向ping確認


作者ページを参考にして、PC→マイコン、マイコン→PCのping確認を行いました。
-参考ページ-

基本的には、下記作業で動きました。
・作者ページからネットワーク周りのタスク処理のソースをもらってきて、
 古いネットワーク周りのソースは削除し新しいタスクのソースを追加

・RTL1089のレジスタ設定だけは、なぜかそのままでは動かなかったのですが
 先日のping応答で参考にしたページと同じレジスタ設定に戻して動いたのでとりあえず
 それで動作させました。

・あとは自分の初歩的ミスで、
 ソフトウェア割り込みベクタのindexに対する型の割り当てが
 なぜかブートローダ側とOS側でいつのまにか異なる状態になっており、
 割り込み有効になってるのにハンドラに飛んでこない症状に悩まされました。
 (まさかこんな所がって所で気づくのに時間がかかった)

作者ページではシミュレータ上で動かして確認をしているので、
gdbのシミュレータもどんな感じが動かしてみたかったのですが、
ボードの添付CDのcygwin内のgdbはver古すぎてシミュレータが無く、
新たにgdbだけ持ってきてインストールしようとしても上手くいかず、
なので当面はとりあえず保留することにしました。

とりあえず、やっと次へすすめる。
posted by gibres_st_nature at 16:24| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年01月20日

組込み学習 RTOS概念


実用 組込みOS構築技法―情報通信を支える基礎技術RTOS入門
実用 組込みOS構築技法―情報通信を支える基礎技術RTOS入門 [単行本] / 永井 正武, 権藤 正樹, 沢田 勉 (著); 共立出版 (刊)

12ステップで作る組込みOS自作入門」と平行で学習していた本を一通り読み終わりました。
「12Step〜」は実戦的に作っていくのがメインに対して、こちらは概念とか考え方を知るのがメインです。
(ただ、添付のサンプルプログラムを動かしたり、編集したりはできます。してないけど..)

文章を読むだけの学習だと、いくら背景や目的なんかが書かれていても、
それがどのように役に立つのイメージしづらく、自分のモチベーション上昇につながらないので、
実際に物を動かしてある程度経験してから概念を理解するという事で、
「12Step〜」をある程度進めては、「〜構築技法」を読みました。

これで、組込みOSについての基本はまぁまぁ理解できたかなと思います。
ただ、一通りといわず何度でも読むべきかなとは思っています。
posted by gibres_st_nature at 12:37| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年01月11日

組込み学習 タイマのキュー管理


次に何をやるか考えた結果、まず作者サイトでやってるH8関連の内容は
全部やってみる事にしました。

というわけで、タイマのキュー管理。
-参考サイト-

追加ファイルと修正内容だけチェックして、あとは自分で修正してみて、
まぁ問題なく動きました。

個人的にはタスク間通信とタイマーのちょっとした応用の学習になりました。
posted by gibres_st_nature at 13:17| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2012年01月06日

組込み学習 タイマー機能追加メモ


本と著者ページはぼちぼち卒業しようかなと思いながらも、
今回も著者ページを参考にして、割り込みタイマの処理を実装。
- 参考ページ -

割り込みタイマは現場でも、ちょこちょこさわっていたので、
ソフトウェア割り込みベクタとして、割り込みハンドラを指定する箇所以外は、
おさらいに近かった。

---

そろそろ本とホームページから離れようと思うと、何やろうか悩む。

次にやる事の選択肢↓
・著者ページに載っていて、まだやってない事
・セマフォの実装(スレッド管理のための)
・ボードのCN1、CN2が空いているような気がするので、何か接続して動かしてみる
・H8を対象としたネットワークの本を購入してやってみる
posted by gibres_st_nature at 14:11| Comment(5) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2011年12月28日

組込み学習 LAN接続でping応答2


前回、本の状態をベースにしたのが無いと書いたけど、
サイト内をよく見ると、本の状態をベースにしたのがありました。
-参考ページ-

やってることは大体同じでしたが、
もうちょっとこのサイトに頼りたいので、
今後円滑に進められるように微修正しました。
posted by gibres_st_nature at 12:26| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2011年12月27日

組込み学習 LAN接続でping応答


学習で使用しているボードの外部コントローラには、LANコントローラが繋がっているので、
著者ページを参考にしてやってみました。

本で学習した最後のプログラム構造と、著者ページで行われている構造は
やや異なるので、内容を理解し辻褄を合わせるのにちょっと手間かかりましたが、
これでスジは通るはずというのを確認しながら作ってみてなんとか動きました。

【ブートローダー側】
・割り込みベクタに外部割込みのハンドラを登録(LANコントローラ用)
  -他の割り込みと同じようにOS側でソフトウェア割り込みベクタ登録できるようにする

【OS側】
・メモリプールにetherフレームが受けられるよう新たなサイズを追加
・LANコントローラの制御ライブラリ系は丸ごと使用(ether.c)
・ping応答用のスレッドもほぼ丸ごと使用(network.c)
-ただし、includeするファイルは自身のに合うように修正
・LANコントローラの制御ライブラリを使用した入出力制御スレッドを作成
  -参考ページではシリアルとLANの入出力制御をextintr.cで
一緒にしてたけど、そもそもの構造の違いによりLAN用を別途作成
   コントローラからの割り込み処理とping応答スレッドとのタスク間通信で動作する
本の最終ステップと同じくシステムコール利用で割り込みハンドラ設定

【テスト環境】
・WindowsXP PC ←LANケーブル→ HUB ←LANケーブル→ マイコンボード
・windowsXP PCにIPアドレスとサブネットマスクを設定
・マイコンボードのIPアドレスはプログラムソース上に記載
・MS-DOSでpingコマンド送信

---

自分がやってた時のトラブルとして、
・割り込みハンドラ内でシステムコールを呼び出してたり、
・PCのIPアドレスを設定していないとか、
に気づくまでプログラムが動かずハマりました。
初歩的ミスですが、初心者なのでしょうがない。

LANコントローラとかCPUのレジスタ設定は、
そのまんま利用したので全く理解せずですが、
そこについては本とかでまとまっているやつを読みたいなぁと思うところです。

ひとまず今回の作業で、
外部デバイス制御は何かライブラリあれば、自分でも数日でそれなりに動かせそうという
自信がつきました。

もし、レジスタ設定とか接続とか見て1から作るとかになってくると、
やはり数週間は見積もって気合いれてやらないと時間がかかりそうですね。
posted by gibres_st_nature at 15:41| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2011年12月22日

組込み学習 DRAM上でOS起動 メモ


前回、DRAMを使うに引き続き、DRAM上でOSを起動を確認してみました。
-参考ページ-

DRAMの接続とCPUのレジスタ設定が上手くいっているという事を前提とすると、
行っている事といえば、OSのリンカスクリプト上で下記の修正を行うだけです。

 ・DRAM領域の開始アドレス、範囲を定義
 ・OSプログラムのテキスト領域、データ領域、BSS領域を全てDRAM領域上に移動

基本的にはこれだけで動作しました。
リンカスクリプト上で、プログラムで使用するメモリのアドレス、範囲を
シンボル定義して、プログラム内ではそのシンボルを基準にしてメモリを
使用するので、プログラム内であちこちアドレス修正とかやらずに済んでいます。

---

あとボードに載っているDRAMの簡単な仕様だけ確認しました。
-M5117805Fの簡易仕様- (データシートがほしい場合は、メールでの問い合わせになります)

DRAM動作原理もウィキ先生で確認しました。
こんなちょこっとした事を調べるなら、インターネットで十分。

DRAMでもこんな進化の経緯があったのかと、ちょっと勉強になりました。
posted by gibres_st_nature at 15:13| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2011年12月21日

組込み学習 DRAMアクセス メモ


前回で本が終わったので、しばらくはインターネットの著者ページを
参考にして進めていこうと思います。

---

今回はDRAMへのアクセスの所を確認してみました。
-参考ページ-

ボード付属の説明書には、DRAMは在庫があれば「おまけ」で載せていると書いてあり、
載っていれば、別途つけずに済みます。
著者の方が確認しているのが2009年で、自分がこのボードを購入したのが2011年の夏頃ですが、
約2年以上たっても、まだDRAMが載っているので基本的に載っているのでしょう。

DRAMの型番が同じかどうかは分からなかったので、(自分の場合は OKI製 M5117805F)
同じようにいくかちょっとドキドキしましたが、
紹介されているソースコードと同じレジスタ設定でDRAMへのアクセスはOKでした。

ただ単にソースコードをもらってきて使うだけでは、勉強にならないので、
行っているレジスタ設定を見ながら、回路図の接続内容と合っているかも確認しました。

基本的にCPUのバスコントローラを利用してDRAMを接続しますが、
どういう機能のDRAMをどの端子にどのようにつなぐか等、意外と考慮しなければいけない項目が多く、
CPUだけでなくDRAMの仕様書も見ないと正直ここは何でこうなる?という箇所が幾つかありましたが、
DRAMの動きについて見出すとキリがなくなりそうだったので、一旦ストップしました。

とりあえず、キーワードだけメモします:RAS,CAS,リフレッシュ
脳みそ疲れてない時に後日調べよう。
posted by gibres_st_nature at 17:02| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2011年12月20日

組込みOS学習 step12メモ


本の最後は、内部でOSが動作し、割り込みハンドラからコマンド応答スレッドに
受信データを渡し、応答スレッドがそれに応じた処理を行うというものでした。
ここまでの集大成ですね。

...

実際ここまでやって、
組込みOSとは?っていうテーマを凝縮した内容で、初心者の自分が見ても
これ以上ないという基本的な構成で分かりやすく取り組めたと思います。
(100%理解に至っていない所もありますが、それは追々)

スタートアップ、リンカスクリプト、ライブラリなど全部手作りで、
+αの知識も結構つきましたし、何よりやってて楽しめました。

12ステップで作る組込みOS自作入門 [単行本] / 坂井 弘亮 (著); カットシステム (刊)

次からは、著者ページ参考にして、ちょこちょこやってみようと思います。
posted by gibres_st_nature at 15:26| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

2011年12月19日

組込みOS学習 step11メモ


11章はOSにタスク間通信の機能を追加する内容でした。

例えば、複数のスレッドを立ち上げた時に、
各スレッド内で別のスレッドに何かメッセージを送りたい場合などに、

OSのシステムコールとしてこの機能を実装しておき、
このシステムコールを呼び出し、メッセージの送受信を行うといったものです。

...


学習の方はなんとなく分かっている感じでずっと進んでいます。

幾つか前の章の中でやった、システムコールを始めて実装したときの意味が、
今頃やっと分かり始めてきた感じです。
OSに何か機能を追加する時はシステムコールとして、
ここ最近機能を追加してきたような手順で実装して追加していけばいいんだ
という分かってしまえば単純な事です。

しばらくOSの機能とスレッドがごっちゃになっていましたが、
OSはあくまでスレッドの「管理」までで、スレッドの中身の処理はOSの機能とは、
また別物というのも感覚で分かってきました。
(ただし、スレッドの中でOSの機能を使用することはある)

...単純に学習の集中力が足らんかっただけの話かもしれませんが。

次はの最終ステップです。
posted by gibres_st_nature at 13:59| Comment(0) | TrackBack(0) | 学習(組込みプログラム) | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。