PSoC5LP で USBMIDI 2015/5/23 第 2 回 PSoC まつり (Sat) 於 本サイプレス本社 ( 中野 ) PSoC5LP で USBMIDI ectoyfan ectoyfan アラフィフ ( 電 回路玩具ファン ) Electronic Circui

Similar documents
CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

Lab GPIO_35 GPIO

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラ

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

SWEST2016.key

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

始める スタート > 全てのプログラム > Cypress > PSoC Creator 2.0 > PSoC Creator 2.0 をクリックします プロジェクトを作成する / 開く Start Page の "Create New Project" をクリックし 要求されたプロジェクト情報を入

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ


法政大学小林一行研究室 PSoC ドキュメント資料 Gerox(c) 10/12/ PSoC (49466 単体 ) で設定できるシリアル通信の最大クロックは? PSoC の UART のマニュアルによれば,6Mbits/second まで設定できる

1. LCD LS027B4DH01 について LS027B4DH01 は 400dot x 240dot のグラフィック LCD です 秋月電子通商で購入できます 外形サイズ : 62.8 x x 1.53mm LCD のフレキシブルケーブルの根元の部分はちょっと力を加えただけで表示が

SpeC記述のC記述への変換 (SpecCによるソフトウェア記述の実装記述への変換)

論文番号 分 2-2 平成 24 年度全国情報技術教育研究会第 41 回全国大会 ( 新潟大会 ) Xbee を活用した無線通信の研究 期日平成 24 年 8 月 9 日 ( 木 )~10 日 ( 金 ) 場所長岡市シティホールプラザ アオーレ長岡 香川県立三豊工業高等学校 電子科 本行

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

CY8CKIT-049使い方

Studuinoプログラミング環境

Taro-リストⅢ(公開版).jtd

// USB_CNC_Machine リモート PIO 端末プログラムのメイン関数およびユーザアプリ部 // 編集作成 by Takehiko Inoue /*********** メイン関数 ***************************/ #pragma code

GR-SAKURA-SAのサンプルソフト説明

Microsoft PowerPoint - timer_pwm2.pptx

スライド 1

自作デバイスボード製作 データ作成 データ登録方法 Rev.A 2017/07/29 Mille-feuille のプロジェクトに自作のデバイスを追加して自分で販売したい方向けの情報です 誰でも参加可能なコミュニティにしていきたいと思っています 大まかな流れは以下の通りです 基本的には回路設計がわか

MPL115A

PowerPoint プレゼンテーション

CG-WLR300NM

1 1 TA, ,9 1. ( 2. TM TM GUI TM 1. P7-13 TM Notepad, Meadow, ( P109 ). 2. (shisaku01/sys test)

Vol2…m…C…Y‡Æ‡Í

消火まえがき.qxd


untitled

Taro-最大値探索法の開発(公開版

スライド 1

PowerPoint プレゼンテーション

AKI-PIC16F877A開発キット (Ver1

Raspberry Pi (Windows10 IoT Core) を使用したリーダ ライタの制御例 (UART 接続 ) 2018 年 12 月 18 日第 版 株式会社アートファイネックス

Microsoft Word - マイコンを用いた信号# doc

人類の誕生と進化

今回の内容 マイクロコンピュータにおけるプログラミング 機器の中に組み込まれる ロボット 自動車 家電 などいろいろな分野で利用 プログラムを用いて外部の装置を動作させる マイコンから の出力 発光ダイオード Light Emitting Diode 液晶ディスプレイ Liquid Crystal

マクロ(シミュレータコマンド)の使い方


橡ファミリー企業の分析020806


/* do-while */ #include <stdio.h> #include <math.h> int main(void) double val1, val2, arith_mean, geo_mean; printf( \n ); do printf( ); scanf( %lf, &v

3 5 動作試験 変調せず超音波を出し続ける (DC 出力) と, 最初の 15 秒程度は ピーーー という高周波音が聞こえ, そ れから ブブブブ というノイズが混ざり始めた. DC 出力の超音波焦点を電子秤に照射したところ, 最初は 0.60 g と表示されるものの, ノイズが混ざり始めると 0

訂正 _ 第 1 回 1 Arduino Arduino を用意する 入力 アナログ Analog 入出力 任意の電圧を扱える 電源系 外部入力 7 12V デジタル digital 入出力 リセットボタン Low High いわゆる 01 が入出力される 通常は Low 0V GND High 5

MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev: PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を

Microsoft PowerPoint - kougi7.ppt

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

Arduinoで計る,測る,量る

スライド 1

main

C言語によるアルゴリズムとデータ構造

iCLR

untitled

LIFO(last in first out, ) 1 FIFO(first in first out, ) 2 2 PUSH POP : 1

Microsoft Word - Cubesuite+_78K0R.doc

cp-7. 配列

Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 78

Microsoft Word - toppers-contest-2014_NTB.doc

スライド 1

Microsoft Word - Cubesuite+_V850_AM.doc

プログラミングA

Microsoft PowerPoint - kougi9.ppt

分割コンパイル (2018 年度 ) 担当 : 笹倉 佐藤 分割コンパイルとは 一つのプログラムのソースを複数のソースファイルに分けてコンパイルすること ある程度大きなプログラムの場合ソースファイルをいくつかに分割して開発するのが普通 1

宿泊産業活性化のための実証実験

P00(表紙)

PJZ012A081_A




Microsoft Word - USB60F_Raspi_ doc

MIDI メッセージ一覧 D11-A M9 M10 T2 T3 D11-B D2-A D3-A D4-A D5-A D6-A B2-A B1 B2-B D2-B D3-B D4-B M8 M7 D7-A D7-B M1-A M2-A M1-B M2-B D6-B T1 D10-A D5-B D10-

UX-V503CL/UX-V503CW

kiso2-03.key

SP-1221 LIN I/F 基板 ユーザーズマニュアル 作成日 :2017 年 10 月 17 日

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No02\201i\224z\225z\227p\201j.pptx)

スライド 1

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x

TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門がじぇるね IoT 部門作品のタイトル : TOPPERS_ASP3 カーネルと astah*-uml による状態マシン図でのソフト設計と動作検証の試み作成者 : 塩出武 ( しおでたけ


key

5-1_a-kanaoka_JPNICSecSemi_Phish_Tech_ _3.PDF


「東京こどもネット・ケータイヘルプデスク(こたエール)」平成22年度相談実績の概要

(search: ) [1] ( ) 2 (linear search) (sequential search) 1

第2回講義:まとめ

PIC

EB-RL7023+SB/D2

内容 1. APX-3302 の特長 APX-3312 から APX-3302 へ変更するためには 差分詳細 ハードウェア ハードウェア性能および仕様 ソフトウェア仕様および制限 Ini ファイルの設

プログラミングA

. 日本語版作成 : 日下覚第 1 版 :

GR-CITRUSとMIKANを試す

Transcription:

第 2 回 PSoC まつり 2015 05 23(Sat) 於 本サイプレス本社 ( 中野 ) PSoC5LP で USBMIDI ectoyfan ectoyfan アラフィフ ( 電 回路玩具ファン ) Electronic Circuit Toy s Fan お仕事は博物館の中のひと 幼少期 学研の教材 電 作 アマチュア無線 マイコン 1984 年 某調布にあるヲタ養成 学でソフトウェアを学ぶ 1994 年 奇跡的に今の職場に雇ってもらう 2002 年 Webサイト 電 回路玩具で遊ぼう! 開設 http://ectoyfan.xrea.jp 2003 年 趣味の ( へたれ ) 電 作を再開 2004 年 PSoCと出会う 2005 年 ブログ 王様の はロバの! 開設 http://blog.goo.ne.jp/ectoyfan 現在 なるべくゆるくゆるく きていきたいと願う 々 ectoyfan 1

PSoC で過去にこんなことをして遊びました PSoC Invention Kit Clone (CY8C27443) &CY8C26443ファームウェアライターの製作 (2004 07) PSoC1(CY8C27443) による簡易アノマロスコープの製作 (2005 05) USBつきPSoC1(CY8C24794) を使った 傾きマウス の製作 (2006 08) 博物館の展 にPSoC1を使った話 : リレーボード (27443,2007 10), 中断ボタンボックス (24794,2008 12) PSoC3(CY8C3866) によるAM 変調デモ (2010 7) CQのPSoC5LP 基板にカラーグラフィック液晶をつないでemWinを動かしてみた (2014 04) CQのPSoC5LP 基板でUSBMIDIを いた簡易シーケンサを作ってみた (2014 05) CQのPSoC5LP 基板でMARY VB 基板による15fpsの動画取り込み & MARY OB 基板による表 に挑戦した (2014 07 09) いろいろなデバイスをつないで遊ぶ ADJDカラーセンサ加速度センサ AY 3 8910(PSG) SN76489AN(DCSG) あっという間に PSoC5LP が USBMIDI デバイスになります! 1. PSoC Creator で新規プロジェクトを作成する. 2. USBMIDI モジュールを配置する. 3. ( 今回 UART は使わないのでコンパイルエラーが出ない程度に始末する :PIN 接続を消す, に Logic 1 を れる.) 4. クロックを設定する :ILO を 100kHz に,IMO を 24MHz に,USB を Enable にして IMO 2=48MHz にする. 5. main.c に数 コードを書く (USBMIDI の使 開始のみ ). 6. Build する. 7. Program する. 8. USB を PC に接続し, 認識されることを確かめる. ( 実演して紹介 ) ectoyfan 2

#include <project.h> int main() { CyGlobalIntEnable; // グローバル割込み許可 USBMIDI_1_Start(0, USBMIDI_1_3V_OPERATION); // USBMIDI 初期化 while (!USBMIDI_1_GetConfiguration()); // USB が準備できるまで待つ USBMIDI_1_MIDI_EP_Init(); // MIDI メッセージ送受信の準備 for (;;) { プログラム 0:USBMIDI デバイスとして有効にするための最 プログラム例 void USBMIDI_1_callbackLocalMidiEvent(uint8 cable, uint8 *midimsg) { // USBMIDI_1_MIDI_OUT_EP_Service() のコールバック関数 // midimsg に 3 バイトデータがやってくる // システムエクスクルーシブについては // 先頭バイトが 0xf0 である 3 バイトデータから // 0xf7 を含む 3 バイトデータまでがひとまとまり // (0xf7 以降は無視 ) int main() { CyGlobalIntEnable; // グローバル割込み許可 USBMIDI_1_Start(0, USBMIDI_1_3V_OPERATION); // USBMIDI 初期化 while (!USBMIDI_1_GetConfiguration()); // USB が準備できるまで待つ USBMIDI_1_MIDI_EP_Init(); // MIDI メッセージ送受信の準備 for (;;) { USBMIDI_1_MIDI_IN_Service(); // ホスト (PC) に MIDI メッセージを送信 USBMIDI_1_MIDI_OUT_EP_Service(); // ホストからの MIDI メッセージがあればコールバック関数を呼ぶ プログラム 1:USBMIDI を利 するプログラムのひな型 ectoyfan 3

// USBMIDI_1_MIDI_OUT_EP_Service() のコールバック関数 int skip_flag = 0; // システムエクスクルーシブメッセージを読み ばし中 void USBMIDI_1_callbackLocalMidiEvent(uint8 cable, uint8 *midimsg) { if (skip_flag) { if (midimsg[0] == 0xf7 midimsg[1] == 0xf7 midimsg[2] == 0xf7) { skip_flag = 0; else { If (((midimsg[0] & 0xf0) == 0x80 (midimsg[0] & 0xf0) == 0x90) && (midimsg[0] & 0x0f)!= 0x09) { // Note on & off でかつドラムチャンネル (10ch) でない if (!Q_isFull()) { Q_EnQ(v_NODE_NOTEONOFF(midiMsg[0] & 0x0f, midimsg[1], midimsg[2])); if ((midimsg[0] & 0xf0) == 0xb0) { // コントロールチェンジ If (!Q_isFull()) { Q_EnQ(v_NODE_CONTROLCHANGE(midiMsg[0] & 0x0f, midimsg[1], midimsg[2])); if ((midimsg[0] & 0xf0) == 0xe0) { // ピッチベンド if (!Q_isFull()) { Q_EnQ(v_NODE_PITCHBEND(midiMsg[0] & 0x0f, midimsg[1], midimsg[2])); if (midimsg[0] == 0xf0) { skip_flag = 1; // システムエクスクーシブメッセージ If (skip_flag && (midimsg[1] == 0xf7 midimsg[2] == 0xf7)) { skip_flag = 0; // 短いシステムエクスクルーシブメッセージの処理 プログラム 2: コールバック関数の実現 図 1: 源の実現 (first try) ectoyfan 4

図 2: 源の実現 ( 改良版 ) 図 3: ピン配置ならびに配線のようす ectoyfan 5

図 3: ピン配置ならびに配線のようす 図 4: クロック設定 ectoyfan 6

図 5: 演奏のようす デモンストレーション NSX 39と組み合わせて演奏させてみます NSX 39: ボーカル, パーカッション PSoC5LP 基板 : それ以外 ectoyfan 7

おわり ご清聴ありがとうございました ectoyfan 8