ラベル 組み込み の投稿を表示しています。 すべての投稿を表示
ラベル 組み込み の投稿を表示しています。 すべての投稿を表示

2016年5月13日金曜日

組み込み系部品調達

大阪日本橋で組み込み系の部品を購入してきました。
左から「8ch双方向レベルコンバータ」、「レベルコンバータ(I2C)」、「カメラモジュール(OV7670)」
レベルコンバータはArduinoとFPGAまたはセンサとの間で使用予定です。

左から「IchigoJam」、「PanCake」
中学の時に買ったJR-200を思い出します。

2016年5月8日日曜日

FPGA MAX10

CQ出版社の「①MAX10②ライタ③DVD付き!FPGA電子工作スーパーキット」の
MAX10-FBとMAX10-JBの基板です。



2013年11月29日金曜日

LCDシールドキット

以前購入して、まだ未作成のまま放置状態にある、スイッチサイエンスのLCDシールドキットであるが、そろそろ作らなくてはと考え中。 組み立て方はこちら

2013年11月25日月曜日

PSoC 5LP

トランジスタ技術 増刊 「ARM PSoCで作るMyスペシャル・マイコン」が出ました。
フルスペック版!PSoC 5LP CY8C5868AXI-LP035 基板付きです。
やっと出ました。12月1日発行となってましたが、本日書店で発見しました。
即、購入です。みなさんも、お買い逃がしなく。


P44 : 第4章 PSoC 5LP コンポーネント図鑑
P112 : 第10章 USB UART通信の実験
P121 : 第11章 IIR フィルタで正弦波を発生させる

2013-12-08 追記: Win8.1(64bit)では,PSoC Creatorを標準インストールしても,DVK_Prog5のUSBデバイス・ドライバが動作しませんでした。
下記サイトを参照して,USBデバイス・ドライバを更新すればOKです。
http://japan.cypress.com/?id=4&rID=77018

2013年11月9日土曜日

Raspberry PiでI2C LCD(その3)

ようやく、I2Cデバイス(LCD)にcでアクセスするプログラムを作成しました。
コンパイル後、実行するとI2C(LCD)デバイスであるMI2CLCD-01の液晶に「Hello I2C!」が
表示されるハズ。

<以下ソース>
#include
#include
#include

#define LCD_PORT (0x3e) // 液晶コントローラのI2Cアドレス
#define LCD_CMD (0x00) // 液晶コントローラのコマンドアドレス
#define LCD_DATA (0x40) // 液晶コントローラのデータアドレス
// グローバル変数
char currentMessage[17];        // 現在液晶に表示中のメッセージ
// 関数プロトタイプ宣言
int initMI2CLCD(void);  // MI2CLCD-01の初期化
int writeLCD(int fd, char *message);    // 液晶にメッセージを表示
int showMSG(int fd, char *temp);        // 文字列を表示
int main(void){
        int fdMI2CLCD;  // MI2CLCD用ファイルディスクリプタ
        char temp[17];  // 表示用文字列
        currentMessage[0] = 0x00;
        // MI2CLCD-01の初期化
        if ((fdMI2CLCD = initMI2CLCD()) == -1){
                printf("MI2CLCD-01の初期化に失敗");
                return 1;
        }
        while(1){
                strcpy(temp, "Hello I2C!");
                showMSG(fdMI2CLCD, temp);
                delay(1000);
        }
        return 0;
}
// MI2CLCD-01の初期化
// 引数:void
// 戻値:int    ファイルデスクリプタ(初期化失敗時は-1を返す)
int initMI2CLCD(void){
        int fd;         // コントローラのファイルデスクリプタ
        // 液晶コントローラを初期化し、コントローラにアクセスするための
        // ファイルディスクリプタを取得。
        // 初期化失敗時は-1を返して終了。
        if((fd = wiringPiI2CSetup(LCD_PORT)) == -1) return fd;
        // 初期化コマンドの送出。
        // アドレス0x00に書き込むと、コマンドとして扱われる(コマンドモード)
        // 0x00 は LCD_CMD として定義
        // Function Set (機能設定)
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b00111000);  // 8ビットモード、2行表 示
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b00111001);  // 命令テーブルを選択
        // Internal OSC frequency (内部クロック周波数)
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b00010100);  // 1/5バイアス,183Hz
        // Contrast Set (low byte) (コントラスト設定)
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b01111000);  // 末尾4bitで指定
        // Power/ ICON control/ Contrast Set
        // パワー/アイコン制御/コントラスト設定
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b01011111);  // アイコンの表示 on
                                                                                                        // ブースター回路 on
                                                                // 内部フォロワ ・モードのコントラスト設定
        // Follower Control (フォロワ回路制御)
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b01101010);  // フォロワ回路 on
        delay(250);                     // 電圧安定まで待つ
        // Display ON (表示ON/OFFコントロール)
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b00001111);  // ディスプレイon
                                                                                                        // カーソル表示 on
                                                                                                        // ブリンク表示 on
        // Clear Display (表示をクリア)
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b00000001);
        delay(2);
        // Entry Mode Set (エントリ・モード設定)
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b00000110);  // カーソル右移動
        return fd;
}
// 液晶2行目にメッセージを表示。既存メッセージを上スクロール
// 引数:int    ファイルデスクリプタ
//   :char* 表示メッセージ(最大16文字)
// 戻値:int    現時点では常に0
int writeLCD(int fd, char* message){
        int i;
        char buf[17];
        // 2行目の表示内容を1行目にコピー
        // 液晶の現在の表示状態は読み込めないため、
        // グローバル変数 currentMessage を1行目に表示して代用
        strcpy(buf, currentMessage);
        // Set DDRAM Address (DDRAMアドレス設定)
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b10000000);  // 1行目を指定
        for (i = 0; buf[i] != 0x00; i++){
        // アドレス0x40に書き込むと表示データとなる
        // 0x40 は LCD_DATA として定義
        wiringPiI2CWriteReg8(fd, LCD_DATA, buf[i]);
}
        // 2行目に新たなメッセージを表示させる
        strcpy(buf, message);
        // Set DDRAM Address (DDRAMアドレス設定)
        wiringPiI2CWriteReg8(fd, LCD_CMD, 0b11000000);  // 2行目を指定
        for (i = 0; buf[i] != 0x00; i++){
                wiringPiI2CWriteReg8(fd, LCD_DATA, buf[i]);
}
        // 新たなメッセージをグローバル変数に代入
        strcpy(currentMessage, message);
        return 0;
}
// 液晶に文字を表示
// 引数:int    ファイルデスクリプタ
//   :char[] 表示させる文字列
// 戻値:int    現時点では常に0
int showMSG(int fd, char *temp){
        char strMsg[17];        // 表示用文字列
        // 液晶表示用の文字列生成
        sprintf(strMsg, "%s\n", temp);  // 表示用文字列作成
        // 液晶に表示
        writeLCD(fd, strMsg);
        return 0;
}

2013年11月2日土曜日

I2Cカレンダ時計モジュール(RTC612_1307_13SP)

I2Cカレンダ時計モジュール(RTC612_1307_13SP)をデジットで購入。




I2C電流・電圧・電力計モジュール(INA226)

I2C電流・電圧・電力計モジュール(INA226)を購入しました。
太陽光の電力測定、自作電源の電力表示、バッテリーモニタなどI2Cによるモニタリングができそうです。
【仕様】
電流 測定範囲 : -20A〜+20A ※付属の端子台を用いた場合 10A程度まで
   分解能  : 1.25mA
   精度   : 1%以下
   測定位置 : ハイサイド・ローサイドどちらでも測定可能
電圧 測定範囲 : 0V〜36V
   分解能  : 1.25mV
電力 測定範囲 : -720W〜+720W
   分解能  : 25mW
ICの電源電圧  : 3.0V〜5V
変換時間    : 140μs〜8.244msまで選択可能
アイソレート  : I2C側とはアイソレート(絶縁)されない
電流測定用シャント抵抗 : 0.002Ω ±1% 50ppm/℃
サイズ     : 約13x21mm


2014-2-27追記:ストロベリーLinuxさんはまだ在庫あるみたいです。
http://strawberry-linux.com/catalog/items?code=12031

I2Cモータードライバモジュール(DRV8830)

I2Cモータードライバモジュール(DRV8830)を購入しました。
ピンヘッダ、端子台はハンダしました。これでDCモータをI2Cでコントロールできます。
【仕様】
モーターの種類 : ブラシ付きモーター(マブチモーター、ギアードモータなど)
動作電圧範囲 : DC3Vから6.8V ※インターフェース電圧とモータ電圧は共通
最大駆動電流 : 1A
駆動方式 : PWM ※効率80から95%程度
オン抵抗 : 最大0.45Ω
スリープ電流 : 0.3μA
アイソレート : 制御端子とモータ間はアイソレート(絶縁)されない
サイズ : 23x16mm

2013年11月1日金曜日

Raspberry PiでI2C LCD(その2)

前回、I2Cデバイス(LCD)にシェルスクリプトを作成してアクセスしたが、cでのアクセスに挑戦しようと思う。
今回は、cでGPIOを操作するためにwiringPiを使用します。
ここを参照して、インストールしてください。
そして、ただいま、プログラム作成中...

2013年10月28日月曜日

Raspberry PiでI2C LCD(その1)

やっと、Raspberry PiでI2C LCD(MI2CLCD-01:マルツパーツ館)にハローと表示してみました。GR-SAKURAとStellaris LaunchPadでは、まだ失敗しております。(泣)
/etc/mosulesのファイルの末尾に"i2c-dev"の1行を追加。
/etc/modprobe.d/raspi-blacklist.confのファイル中にある"blacklist i2c-bcm2708"という行をコメントアウト。そして、i2c-toolsというパッケージをインストールしました。

「i2c.sh」という簡単なシェルスクリプトを作成して実行
sudo i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x78 0x5e 0x6c i
sleep 0.25
sudo i2cset -y 1 0x3e 0 0x0c 0x01 0x06 i
sleep 0.05
# 1行目の文字を出力 "ハロー"
sudo i2cset -y 1 0x3e 0 0x80 b
sudo i2cset -y 1 0x3e 0 0x40 0xCA 0xDB 0xB0 i


2013年10月19日土曜日

デジタルマルチメーターが欲しい

マイコンやFPGAなどを触ってると。デジタルのテスターが欲しくなります。
今使っているのは、SANWAのSP−5という骨董品のアナログテスターです。
1958年製と書いてます。インターネットでは名機と書かれてました。

今、購入を考えているのは、秋月電子で扱っている「MAS-345」がいいなぁと思ってるんですが、あまりレビューが見つかりません。
アマゾンは扱いは多くないですね。
2013/11/16 追記 : みなさん、デジタルマルチメーターに興味があるのでしょうか?結構なアクセス数です。まだ、私は購入してません。悩んでいるのが、MAS-345が日本製でないこと、SANWAではないこと。オプションが分からないこと。オプションとはテスト棒の先にワニ口クリップ等を付けたいが、他のメーカーでも合うのかどうか?などをグズグズ悩んでいます。

2013年10月16日水曜日

Lineレベルとは?

マイコンのアナログポートを使用してA-D変換を考えているのだが、そもそも入力できる電圧は3.3Vまたは5V以下でないとマイコンを壊してしまうことになる。(と思う...)
そこでつなぎ先で一番ポピュラーなのは、ライン端子ではないでしょうか?
じゃあ、ライン端子にはどれくらいの電圧が来てるの?を色々調べた結果を書いときます。


[Line Levelとは?]
単位には以下のような関係がある。
 0.775V = 0dBu
 1V = 0dBv

機器によってレベルが違う。
・業務用音響機器
 ラインレベル
  +4dBu = 1.23V
  上記の値で0VU(VUメータゼロ)となる。

・一般家庭で用いられているCDプレーヤーなど
  -10dBv = 0.32V

・一般家庭で用いられているビデオデッキやDVDデッキなど
  -20dBu = 0.078V

まぁ、大雑把にいって大体1.5V以下っちゅうことですな。
ラインレベルの端子を接続して壊れる恐れはなさそうってことですか?(自信なし)

Arduino MEGA ADK + Ethernet ShieldでMicroSDにアクセス

今回は、MicroSDにアクセスです。
Arduinoには簡単にシールドが利用できるように、サンプルスケッチが用意されていますのでこれを利用します。
File→Example→SD→Cardinfo を選択し、IDEに取り込みます。
私の使用しているのはArduino MEGA ADKなので下記の箇所を修正します。
  //pinMode(10, OUTPUT);     // change this to 53 on a mega
  pinMode(53, OUTPUT);     // change this to 53 on a mega
スケッチ→ライブラリ使用→SDとしてSDライブラリを使用可にします。

そして、コンパイル。
もちろん、エラーは無いと思いますので、Arduinoに書き込み即実行。
シリアルモニタに下記のような情報が表示されれば正常に動作してます。

Initializing SD card...Wiring is correct and a card is present.

Card type: SD2

Volume type is FAT32

Volume size (bytes): 1963274240
Volume size (Kbytes): 1917260
Volume size (Mbytes): 1872

Files found on the card (name, date and size in bytes): 
_~1.TRA       2013-10-16 13:14:30 4096
TRASHE~1/     2013-10-16 13:14:30
SPOTLI~1/     2013-10-16 13:14:32
  STORE-V2/     2013-10-16 13:14:32
    A01A6F~1/     2013-10-16 13:14:32
      JOURNA~1.REP/ 2013-10-16 13:14:32
      PSID.DB       2013-10-16 13:14:58 8192
      TMP~1.SNO     2013-10-16 13:14:32 0
      TMP~1.LIO     2013-10-16 13:14:32 0
      LION~1.CRE    2013-10-16 13:14:32 0
      INDEXS~1      2013-10-16 13:14:48 28
      0~1.IND       2013-10-16 13:14:58 4096
      0~2.IND       2013-10-16 13:14:58 32768
      0~3.IND       2013-10-16 13:14:56 3277
      0~4.IND       2013-10-16 13:14:32 4096
      0~5.IND       2013-10-16 13:14:32 8192
      0~6.IND       2013-10-16 13:14:32 4096
      0~7.IND       2013-10-16 13:14:32 8192
      0~8.IND       2013-10-16 13:14:32 8224
      0~9.IND       2013-10-16 13:14:32 1024
      0~10.IND      2013-10-16 13:14:32 65536
      0~11.IND      2013-10-16 13:14:54 415
      0~1.DIR       2013-10-16 13:14:56 65536
      LIVE0~1.IND   2013-10-16 13:14:58 4096
      LIVE0~2.IND   2013-10-16 13:14:58 32768
      LIVE0~3.IND   2013-10-16 13:14:58 3277
      LIVE0~4.IND   2013-10-16 13:14:32 4096
      LIVE0~5.IND   2013-10-16 13:14:32 8192
      LIVE0~6.IND   2013-10-16 13:14:32 4096
      LIVE0~7.IND   2013-10-16 13:14:32 8192
      LIVE0~8.IND   2013-10-16 13:14:32 8224
      LIVE0~9.IND   2013-10-16 13:14:32 1024
      LIVE0~10.IND  2013-10-16 13:14:32 65536
      LIVE0~11.IND  2013-10-16 13:14:54 513
      LIVE0~1.DIR   2013-10-16 13:14:56 65536
      STORE.DB      2013-10-16 13:14:46 118784
      STORE~1.DB    2013-10-16 13:14:58 118784
      REVERS~1      2013-10-16 13:14:54 65536
      SHUTDO~1      2013-10-16 13:14:58 4
      JOURNA~1.LIV/ 2013-10-16 13:14:36
      JOURNA~1      2013-10-16 13:14:36 0
      JOURNA~1.SCA/ 2013-10-16 13:14:36
        JOURNAL.1     2013-10-16 13:14:38 53
      REVERS~1.SHA  2013-10-16 13:14:40 3136
      0~1.SHA       2013-10-16 13:14:44 4096
      0~2.SHA       2013-10-16 13:14:42 0
      0~3.SHA       2013-10-16 13:14:42 0
      0~4.SHA       2013-10-16 13:14:42 65536
      0~5.SHA       2013-10-16 13:14:42 8
      0~6.SHA       2013-10-16 13:14:42 2056
      0DIREC~1.SHA  2013-10-16 13:14:44 1088
      0~7.SHA       2013-10-16 13:14:44 1
      LIVE0~1.SHA   2013-10-16 13:14:46 4096
      LIVE0~2.SHA   2013-10-16 13:14:46 0
      LIVE0~3.SHA   2013-10-16 13:14:46 0
      LIVE0~4.SHA   2013-10-16 13:14:46 65536
      LIVE0~5.SHA   2013-10-16 13:14:46 8
      LIVE0~6.SHA   2013-10-16 13:14:46 2056
      LIVE0D~1.SHA  2013-10-16 13:14:46 1088
      LIVE0~7.SHA   2013-10-16 13:14:46 1
      JOURNA~1.2    2013-10-16 13:14:54 140
      STORE~1.UPD   2013-10-16 13:14:56 12
      REVERS~1.UPD  2013-10-16 13:14:56 2
      PERMST~1      2013-10-16 13:14:58 61
  STORE-V1/     2013-10-16 13:14:32
    VOLUME~1.PLI  2013-10-16 13:14:32 348
  VOLUME~1.PLI  2013-10-16 13:14:36 3184
FSEVEN~1/     2013-10-16 13:14:32
  FSEVEN~1      2013-10-16 13:14:54 36
  000000~1      2013-10-16 13:14:54 77
  000000~2      2013-10-16 13:14:54 70

2013年10月11日金曜日

PSoC 5LP搭載の付属基板

遅れてるのか?CQ出版 2013年7月号に紹介されてた、PSoC 5LP搭載の付属基板がついた別冊が10月中発売を目指していると書かれていたが、ホームベージにもほとんど情報が無い。早く出してください。

2013/11/21 : 追記
12/1に発売されるとCQ出版のホームページに載りましたよ!
定価¥3,990だそうです。予約しなくちゃ!

それと、付録で気になるのがもう一冊あるんです。
音楽之友社の2014年1月号です。「★新春特別付録 ラックスマン&ステレオ共同企画「オリジナルデジタルアンプLXA-OT3」 ―出力増大・音質対策版!―」とあります。
これは、特別定価3,700円、12月19日(木)発売だそうです。なんか、過去の付録がついたものは品薄だそうです。
2013/11/29 : 追記
P44 : PSoC 5LP コンポーネント図鑑
P54 : PSoC 5LP 開発環境"PSoC Creator"の概要
などを眺めてます。

2013年10月1日火曜日

FPGA DE0で7セグメント・デコーダ

FPGA DE0で7セグメント・デコーダを動かしてみました。

 SW3 SW2 SW1 SW0
 OFF OFF ON   OFF
 (   0      0     1      0) = 2
 SW3 SW2 SW1 SW0
 ON   OFF OFF ON
 (   1      0     0      1) =9
 

2013年9月23日月曜日

Arduino MEGA ADK R3でアナログ入力

Arduino MEGA ADK R3で太陽電池からの電圧をアナログ入力して、シリアルモニタに数値を出力してみました。
【使用物品】
Arduino MEGA ADK R3
ブレッドボード
太陽電池
ジャンパーワイヤー

【接続】
太陽電池のプラス端子とArduino MEGA ADK R3のA0、マイナス端子とGNDを接続。
【プログラム】
下記のスケッチをArduinoにUploadして、シリアルモニタを表示。



太陽電池からの電圧を事前にアナログテスタで計測、大体MAX1.5Vほどだ、A0端子は0Vから5Vまでを0から1023で読み取れる。 以上、アバウトな確認でした。

電子ブロックとLEGO MINDSTORM NXT

電子ブロックは、小学生のころお年玉をためて買ったが、阪神大震災で消失してしまったので、学研 大人の科学を再購入。今でもアマゾンで手に入るみたい。でも、マイキットは高いよ。
あと、衝動買いしたLEGOのMINDSTORM NXTだがファームをノーマルからCでプログラムできるものに書き換えております。もう、新しいのが発売されてるのかな?
手持ちのは、第2世代にあたるもので、トイザラスで2万円台で購入した記憶が...
なんで、こんな高いんだろ?

2013年9月22日日曜日

arduinoでLチカ

今更ですが、Arduino MEGA ADK R3によるLチカをやってみました。
LEDはアノードをArduinoの13番に、カソードをGNDに挿します。

スケッチは、下記のとおり
=== ここから =====
int led = 13;

void setup() {                
  pinMode(led, OUTPUT);     
}

void loop() {
  digitalWrite(led, HIGH);
  delay(1000);
  digitalWrite(led, LOW);
  delay(1000);
}
=== ここまで =====

そして、実行中の写真


そうそう、なぜ、抵抗をつなげてないかって?それは13番とGND間には表面実装しているLEDと抵抗がもともとあるので、今回は省けたというのが正解。

2013年9月14日土曜日

FPGA ALTERA DE0ボード

以前、購入していたFPGA ALTERA DE0ボードですが、やっとRS-232Cのピンソケットをハンダ付けしました。

上記の橙色の長方形で囲んだあたりに信号が来てます。ここに下記のパーツをハンダ付けしました。
 この5PINの相手には下記のパーツを使用して、RS-232CのDサブ9PINのコネクタに変換するなり出来ます。
勉強用に買った書籍。

2013年9月9日月曜日

所有してるマイコンたち


これが、私の所有しているマイコンたちです。左上からArduino MEGA ADK、
右上はGR-SAKURA、左下はJapanino、中央下はLaunchPadです。
他にも、ColdFireや78K0 USBマイコンなどがあります。
そうそう、Raspberry Piもいます。
それから、ColdFire、FM3もいました。