macsbug

Archive for 1月 2015

Kinoma Create:Camera を試す

leave a comment »

Kinoma Create SamplesCamera を試しました。

K_Cam k_w1

使用部品:
1. Kinoma での Cameraは、Miniature TTL Serial JPEG Camera with NTSC Video を使用。
2. Camera を直ぐ入手できる方法として、秋月で販売している物を使用。
_  秋月電子通商:[M-07746]小型TTLシリアルJPEGカメラ
_ ・画像サイズ:VGA(640×480),QVGA(320×240),QQVGA(160×120)
_ ・電源電圧:+3.3V(説明にはDC5Vであるが基盤には3.3V) ・シリアル通信電圧:3.3V

_ メーカーサイト(adafruit)の規格は以下。
_ • Operating voltage: DC +3-5V (power pin is marked 3.3V but it goes into a 3-5V input,,)
_ • Communication: 3.3V TTL (Three wire TX, RX, GND)

配線:Camera
1. kinoma Create の場合。
_  Camera              Kinoma GPIO
_  RX   <—|— 10Kohm  —> 29 : GND  ( RX実測=1.5V であるから動作しないと思われる)
_             |― 10Kohm  <― 31 : UART TX
_  TX    ――――――――> 33 : UART RX
_  GND <―――――――― 45 : Ground
_  3.3V <―――――――― 49 : Filterd 3.3V

2. 秋月電子通商のCameraの場合。抵抗は不要。
_  Camera       KInoma GPIO
_  RX      <― 31 : UART TX ( 電圧は、3.2v となっている )
_  TX    ―> 33 : UART RX ( 電圧は、3.2v となっている )
_  GND <― 45 : Ground
_  3.3V <― 49 : Filterd 3.3V

 

配線:Swicth

1. kinoma Create の場合。
_ Pin 51 = Power(5V), Pin 52 = GND, Pin 53 = Digital in, Registor = 52 – 10Kohm – 53。
_  Power(51)からDigital in(53)へ直接接続するのは良くない。抵抗を入れるべき。
2. 37 in、、、今回の場合。
_ Pin 53 = Digital out, Pin 54 = Power(3.3V), Pin 55 = GND, Registor = 54 – 10Kohm – 55。

 

コネクターピン番号:Kinoma Create Programming with HardWare Pins
back-pinmap

 

 

 

 

 

 

メモ:
1. スイッチが面倒な時は、Front Pin_53 をGNDするだけで良い。
2. UART TX,RXは、5Vと思われるが、実測は、3.2Vである。どちらかに間違いがあると思われる。
3. 目の前のマックの画面を写したのみ。距離や明るさの違う物は試していない。
4. URAT TX,RX はUSB接続であるから、規格にあったUSBカメラを使用できると思われる。
5. このアプリでマック用も作る事ができる。
6. Processing言語も同様にMacで動くアプリが出来る。

動作:
1. ボタンを押した後に、画像がキャプチャーされる.ボタンを離すと消える。
_  写している最中にボタンを押して撮るのではない。
3. デジカメの様な優れた操作にはなっていない。
4. 焦点の機能は不明。

感想:
1. 動く事が確かめられたので、取り組み易い。
2. サンプルを試したのみで、使用先や応用はまだ予定無し。
3. 解像度はあまり良くない。
4. 通常のデジカメの様な使い易いものではない。

Written by macsbug

1月 17, 2015 at 1:08 am

カテゴリー: Kinoma Create

Arduino と Kinoma Create の命令互換

leave a comment »

Arduino の delay() 関数について

 Arduino   Kinoma Create 
 -   sensorUtils.delay(25);   sec 
 delay(25);   sensorUtils.mdelay(25);   msec 
 delayMicrosecons(25);   -   usec 

 

Arduino の Digital Port について

 Arduino   Kinoma Create 
 digitalWrite(pin,value);   this.Port.write(value); 
 digitalWrite(port,HI);   this.Port.write( 1 ); 
 digitalWrite(port,LOW);   this.Port.write( 0 ); 

 

Arduino Sample :

void turnOnOff{
  digitalWrite(led, HIGH);
  delay(25);
  digitalWrite(led, LOW);
  delay(25);
}

 

Kinoma Create Sample :

exports.turnOnOff = function() {
  this.led.write( 1 );
  sensorUtils.mdelay(25);
  this.led.write( 0 );
  sensorUtils.mdelay(25);
}

 

Written by macsbug

1月 12, 2015 at 11:05 am

カテゴリー: Arduino, Kinoma Create

HardWare of Kinoma Create 備忘録

leave a comment »

Kinoma Create の GPIO について記す。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ORG  : 2015.01.12
Rev 1 : 2015.02.06 :動作 記事追加。フロントピンのGround,Power はプログラムでどう記載するか。
_  Digital output を使用する方法がある。以下、動作: (2015.02.06 追記)、を参照の事。

Rev 2 : 2015.02.07:鈴木バスケさんからの回答。
_ ご質問の件、チームに確認しました。今はできない、ということです。回避策としてはまさに◯◯さんのヤられてたみたいに、Digital Outに設定してLow/Highを出力しておく方法で回避できるけど、本当のPower/Groundの設定とは安全性で違っている部分があるそうです。詳しくは今度聞いておきます。
_ 鈴木バスケさんに感謝致します。内容が理解できましたので安心致しました。
_ 安全性も同感で、回路図をみているといろいろ考える事がでてきます。
_ 報告として、KinomaにGPIOの最大電流が記されていない事を伝えました。使用最大電流は壊さない為に表示すべきです。
_ 最大電流を超えた場合はどうなるか? 実験していませんが、再起動すると予想しています。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Kinoma Create の FRONTのGPIO は、最大 370mA。(定常状態で、370mA を超えない様に抵抗を設定する)
( Arduino UNO は、40mA、150 ohm以上である事)。

2 1

信号の流れ:各ICの信号は、I2Cで接続されている。Name(IC Type)[Signal Name]で表示し以下に示す。

_ MPU(PXA166SA0)(MISC/DEBUG) [MFP_SDA,SCK] -> I2C BUS SW(PCA9543) [INT SDA3,SCL3] ->

_ -> Inverter(FDV301N)[INT SDA2,INT SDA2] -> MPU(PIC16F1508)[STR,SCL] ->

_ -> Sift Registor(74HC4094)[PWR_ENx,GND_ENx] ->GPIO(FET:SI1016X-T1-GE3)[PWR_ENx,GND_ENx]

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

動作: (2015.02.06 追記)

Q2A (P_CH FET) 。
_ PWR_EN7=“0”(5) で、Q72A が OFF となり、PIN7(3) は、OPEN(Disconnected) 状態。
_ PWR_EN7=“1”(5) で、Q72A が ON となり、VCC_FLEX1(4) が、PIN7(3) に、”1”(VCC_FLEX1) を出力する。

Q2B ( N_CH FET )。
_ GND_EN7=“0”(2) で、Q72B が OFF となり、PIN7(6) は、OPEN(Disconnected) 状態。
_ GND_EN7=“1”(2) で、Q72B が ON となり、PIN7(6) が GRD(1) に繋がる。

思考:
Front Pin の手動設定は、以下の8つを設定できる。
_ Disconnected, Power, Ground, Analog, Digital Input, Digital Output, I2C Clock, I2c Data 。
Front Pin のプログラムで設定は、以下の5つを設定できる。
_ Analog, Digital Input, Digital Output, I2C Clock, I2c Data。(この名前の命令文がある)
_ Disconnected, Power, Ground は、プログラムでは制御できない(この名前の命令文が無い)

Kinoma の Sample において、Power, Ground は、手動で設定するようだ。、、プログラムには記載されていない。
なぜ、Power, Ground をプログラムで記載しないのか?
Q72A における出力は、Power 及び Digital Output と同様か?
Q72B における出力は、Ground と同様か?
同様ならば、Disconnected, Power, Ground は、Digital Output の設定で可能である。

1. Disconnected : export.configure = function() { this.led.init(); }
2. Power :  exports.pins = { led: { type: “Digital”, direction: “output” } }; export.write = function(value){ this.led.write( 1 ); }
3. Ground :  exports.pins = { led: { type: “Digital”, direction: “output” } }; export.write = function(value){ this.led.write( 0 ); }

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

FRONTのGPIO詳細:電流は定常状態で485mA(N)370mA(P)。最大20V。

1. VISHAY社のN_ch,P_ch FET Arrayで品番は、SI1016X-T1-GE3。電圧は20Vまで。

2. VISHAY Si1016X-T1-GE3、Complementary N- and P-Channel 20 V (D-S) MOSFET

_  N-Channel:Drain-Source Voltage=+20V、 Continuous Drain Current=485mA

_  P-Channel:Drain-Source Voltage=-20V、  Continuous Drain Current=-370mA

_        Pulsed Drain Current=650mA

. KInoma Create PCB:(左記の配線図、k4r21.pdf は、重要です )

_  Kinomaから、配線、レイアウト、3Dプリンター用のデーターが公開されており素晴らしい。

Pasted Graphic

 

 

 

 

 

 

 

4. 最大使用抵抗値: R=V/I       5V/370mA=13 ohm  えっ、最小 13 ohm でもいいの?

_  Kinomaの外部サンプル回路は、ドライバー・TRやICを使用しています。

5. 私の現状:図面では、Front Left コネクターのICレイアウトは、コネクターに沿って平行ですが、

_    現物は異なっていました。SNが白の記載されていない物でプロトタイプって事でしょうか?

6. Arduino UNO(ATmega328)との比較: Arduino UNO 回路図EAGLEファイル

_  UNO:I/Oピンは直流電流 40mA(抵抗は150 ohm以上である事)、3.3Vピンは直流電流 50mA。

_  Kinomaは、最大370mAですからUNOの9倍も電流を流せるという事でしょうか?

_  サーボもダイレクト接続できるってことでしょうか?

_  自信がないので今度、専門家に聞いてみます。例:15 ohm や 20V でも大丈夫か?

7.

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Kinoma Create FAQ:GPIOの出力電流についての質問

_ decide-to-buy:資料があるので見てくださいとの事。単刀直入に、370mAと答えたらいいのに。

_ MAIN MPU は、SOC in Kinoma Create is a Marvell ARMADA PXA-16X series chip.

_ FRONT MPU は、front-facing pins are driven by PIC16F1508 micro controllers.

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

資料:

1. ARMADA PXA-16X:HardWare Manual

2. ARMADA PXA-16X:SoftWare Manual

3. PIC16(L)F1508/9: PIC16(L)F1508/9 Data Sheet

_   18 I/OPins(1Input-onlyPin): Highcurrentsink/source25mA/25mA –

_   Individuallyprogrammableweakpull-ups-Individuallyprogrammable interrupt-on-change (IOC) pins

_   PIC12(L)F1501/PIC16(L)F150X:8/14/20 ピン 8 ビット フラッシュ マイクロコントローラ 製品概要

_  参考資料:電子工作のための PIC16F1 ファミリ 活用ガイド(後閑 哲也著、技術評論社)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

 

 

 

Written by macsbug

1月 12, 2015 at 2:03 am

カテゴリー: Kinoma Create

8ch Analog Monitor for Arduino MEGA 2560 + TFT 3.5 int

leave a comment »

8ch アナログ・モニターの製作。
ORG : 2015.01.11
Rev 1 : 2015.02.06 : チャンネル数の設定追加。起動時にピンをグランドする。 そのピンがチャンネル数になる。

最大8ch のアナログ電圧をモニターできる。0.4msec

機能: Input:Analog 8 ch ( AN0 〜 AN7)。 Display:3.5 int 480 x 320 pixel
_   分解能:1ch = 140Hz。 8ch = 17Hz。
_   Channel設定:起動時に測定ピンのいずれかをGNDする事により、1〜8 ch の表示が可能。openの場合は、8 ch。
準備:

1. Arduino MEGA :8-bit  ATMEGA 2560 16MHz

2. TFT:UTFT Libraly:henningkarlsen.com/electronics

3. TFT LCD Display:3.5int 480×320 Controler=R61581:airendo
_  注:この aitendo の 製品は、Color(R,G,B) の値がずれている。
_    正しい製品を使用する場合は、Color(R,G,B)のR,G,B値を調整してください。

IMG_3770a

ca2ca0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


// Arduino MEGA 2560 8ch Analog Monitor                // 2015.01.10 s.ono
//                                                     // rev 2015.02.06
// disaply : 480x320                                   //
#include <UTFT.h>                                      // UTFT   Libraly
#include <UTouch.h>                                    // UTouch Libraly
extern uint8_t SmallFont[];                            // Small Font
extern uint8_t BigFont[];                              // Big   Font
extern uint8_t SevenSegNumFont[];                      // SevenSegNumFont
UTFT   myGLCD(CTE35IPS,38,39,40,41);                   // TFT setup,Cont=R61581
UTouch myTouch(6,5,4,3,2);                             // Touch setup
int ax;                                                // Analog input
int x1[9];                                             // x store data
int y1[9];                                             // y store data
int x2 = 40;                                           // x2 position
int y2;                                                // y2 position
int r = 24;                                            // y position adjust
String title;
int ch;
//-----------------------------------------------------//------------------------------
void setup(){                                          //
 //Serial.begin(115200);
 for (int i = 0; i < 9; i++){ pinMode(i,INPUT);}       // Analog input setup
 //----------------------------------------------------// LCD Setup
 myGLCD.InitLCD();                                     // LCD Initialize
 myGLCD.setFont(SmallFont);                            // Font : smallfont
 myGLCD.clrScr();                                      // screen clear
 myTouch.InitTouch();                                  // Touch Initialize
 myTouch.setPrecision(PREC_EXTREME);                   // Touch Sence MAX
 //----------------------------------------------------// Pnest setup
 myGLCD.setColor(255,100,100);                         // panel background color
 myGLCD.fillRect(0, 0, 480, 320);                      // panel all fill
 myGLCD.setColor(255,0,0);                             // waku color
 myGLCD.drawRect(39, 22, 461, 311);                    // waku
 myGLCD.setColor(0, 0, 0);                             // moji color=white
 myGLCD.setBackColor(200,200,200);                     // moji background color
 channel_setup();                                      // channel setup                                
 myGLCD.setFont(SmallFont);                            //
 myGLCD.setColor(0, 0, 0);                             //
 title = "ch ANALOG MONITOR ";                         // TITLE
 title = " " + String(ch) + title;                     // TITLE
 myGLCD.print(title, LEFT, 1);                         // TITLE
 myGLCD.setBackColor(255,100,100);                     // background color=blue
 myGLCD.setColor(255,255,255);                         // moji color=black
 for ( int i = 0; i < ch; i++){                        //
   myGLCD.print("A"+String(i,DEC),9,36+i*35);          // A0 print
 }                                                     //
 x2 = 40 ;                                             // x position
 for(int j=1; j<ch+1; j++){x1[j]=x2; y1[j]=35*j+r;}    // 8 ch zero setup ( y )
}                                                      //

//-----------------------------------------------------//------------------------------
void loop(){                                           //
  if ( x2 > 460 ){ x2 = 40 ;                           // X Max, x start pos
   for(int j=1; j<ch+1; j++){x1[j]=x2; y1[j]=35*j+r;}  // 8 ch pos reset,x1,y1
  }                                                    //
  //---------------------------------------------------// Analog IN
  for ( int i = 1; i < ch+1; i++ ){                    // 1 to 8 ch
    ax = analogRead( i - 1 ) / 60;                     // Analog Read 1 to 8 / 60
    y2 = -1*(ax) + 35*i + r;                           // y2 convert
  //---------------------------------------------------// X Axis TITLE
    myGLCD.setColor(0, 0, 0);                          // WHITE
    myGLCD.setBackColor(255,255,255);                  // moji back color=black
    myGLCD.print(" "+String(ax)+" ",4,35*i + 18);      // Analog Data ch disp
  //---------------------------------------------------// CLEAR LINE   
    myGLCD.setColor(255,255,255);                      // clear BLACK
    myGLCD.drawLine(x1[i]+1,23,x1[i]+1,310);           // clear line
  //---------------------------------------------------// DRAW LINE   
    myGLCD.setColor(0,0,0);                            // Color WHITE
    myGLCD.fillRect(x1[i], y1[i], x2, y2);             // Draw(x1,y1,x2,y2),drawLine
p:                                                     //
    x1[i] = x2;                                        // x2 Store
    y1[i] = y2;                                        // y2 Store
  //---------------------------------------------------//
  }                                                    //
    x2++;                                              // Next x
}                                                      //
//-----------------------------------------------------//------------------------------
void channel_setup(){                                  // channel setup
 myGLCD.print(" SET THE NUMBER OF CHANNELS. ",100,60);
 myGLCD.print(" PLEASE TO GROUND THE PIN. ",100,80);
 myGLCD.print(" THE PIN IS THE NUMBER OF CHANNELS. ",100,100);
 delay(5000);                                          //
 myGLCD.setFont(BigFont);                              //
 for ( ch = 1; ch < 9; ch++){                          // channel setup
  int ax = analogRead(ch-1);                           //
  if ( ax == 0 ){                                      // ground check
    myGLCD.setColor(0, 255, 128);                      //
    myGLCD.print(" "+String(ch)+" CH SELECT ",170,140);//
    delay(500); return;}                               //
   else{                                               //
    myGLCD.print(" "+String(ch)+" CH CHECK ",170,140); //
  }                                                    //
  if (ch==8){ myGLCD.setColor(0, 255, 128);            //
    myGLCD.print(" "+String(ch)+" CH SELECT ",170,140);//
  }                                                    //
  delay(500);                                          //
 }                                                     //
 ch = ch - 1;                                          // 
}                                                      // 
//-----------------------------------------------------//------------------------------

メモ:今回、タッチパネルを使用した、入力設定は行いませんでした。理由は、現在、ディスプレーが入手できない為です。

Written by macsbug

1月 11, 2015 at 8:36 am

カテゴリー: Arduino

Kinoma Create Front Pins 備忘録

with 3 comments

Kinoma CreateのDigitalOutLED(Lチカ)のデモをすると、どうもFront Pinsの動きに疑問が起きてくる。
LED(抵抗付)を付けて試す時、GNDは右の4つのいずれかにした方がいい感じがする。
左の4つのPinのいずれかをGNDで使用すると出力しない時がある。だんだん解らなくなってきた。

————————————————————————————————————

追加記事:2015.01.26 
koji333 さんから教えて頂きました。
Front pinの左半分が挙動を起こすのは事実で、FAQに問い合わせ(、回答は後日バージョンアップで解決するとの事。
Problem: Front pin GND setting disables a few next-rightside DOut pins
http://forum.kinoma.com/discussion/153/problem-front-pin-gnd-setting-disables-a-few-next-rightside-dout-pins
koji333 氏に感謝致します。

その後、koji333 氏によると、Ver  UP は、まだ、でていないようです。(2015.01末)

koji333 氏の記事が素晴らしいです:http://qiita.com/koji333
 ————————————————————————————————————
追加記事:2015.01.29
フロント・ピンの最大出力電流は実際にどのくらいか?
怖いですが、1つやってみました。
フロント・ピンにフォトカプラーを付けて動作するか?
フォトカプラー入力抵抗は50オーム、電流は5Vで100mAとなる。370mA流せるはずだから大丈夫だろうと接続すると、瞬時に画面が暗くなり起動画面になったまま。(汗)
保護回路が働いたのでしょうか? 本体は、再起動で動きました。
壊すかも知れませんので、この検証は一次停止。
 ————————————————————————————————————

 

こういう事は電圧で見る必要がある。
そこで、Arduino MEGAで、8ch オシロスコープを作った。

 

Front Pin の出力状態。 ( Gnd は、マニュアルで、Pin 68 を設定)
1. Disconnect 設定は、+5Vが出ているが電力は弱い。
2. DigitalOutLEDで Pin 51(左端)を ON にすると、幾つかの Pin がつられて +5V(波風)になる。
_ +5V か Gnd に、置き去りになる。えっ??

 

GROUND 状態もどうなっているのか調べる必要がある。
使用しないPinをDisconnectで接続する場合は、プルアップとか何らかの処理が必要かもしれない。
他、Kinomaの動作がたまに遅いときがあるので御注意。

 

 

s2
s1

Written by macsbug

1月 10, 2015 at 10:28 pm

カテゴリー: Arduino, Kinoma Create

FFT Audio Analyzer for Arduino MEGA + TFT 3.5int

leave a comment »

FFT アナライザーを製作。表示は、10KHz を入力したもの。

FFT_480

 

 

 

 

 

 

 

性能:最高 13KHz

準備するもの:

1. Arduino MEGA :8-bit  ATMEGA 2560 16MHz

2. TFT LCD Display:3.5int 480×320 Controler=R61581  airendo

3. 高感度マイクアンプキット:秋月電子通商

4. FFT:FHT Libraly  Open Music Labs 。FFT Libralyより速い。

5. TFT:UTFT Libraly  henningkarlsen.com/electronics

 

メモ:

1. Arduino UNO の場合は、TFT LCD Display も含めかなり速度が遅い。

2. Micro View の場合は、最高 5KHz 程度であった。ATMEGA328 16MHz +

3. Arduino DUE は、MEGAより高速だが、FFT Libraly が見つからなかった。

4. 充分な風波数帯域が得られない為、高速のCPUを使用する事が必要。

5. 他の装置(Kinoma Create)へ転送する場合は、高速なシリアル転送が必要。(I2C?)

6. iPad の FFT Analizer は、最高20KHz である。

7. マイクとアンプは、性能の高いものが必要。

 

感想:

1. 高速なArduinoが欲しい。対応する FFT Libralyも必要。

2. ソフトをもう少し工夫したい。

 

// MEGA FFT TFT35 ANALYZER  ORG 2014.09.15 s.ono
//                          Rev 2015.01.09
// FHT  http://www.openmusiclabs.com/2012/09/arduinofht-tastes-great-less-filling/
//      3.2mmsec 256point  40khz sampling
// UTFT http://henningkarlsen.com/electronics/library.php?id=52

// FFT
#define LOG_OUT 1      // use the log output function
#define FHT_N 256      // set to 256 point fht
#include <FHT.h>       // HI SPEED FFT
#include <UTFT.h>      // UTFT Routine
// TFT
extern uint8_t SmallFont[];                 // Small Font
extern uint8_t BigFont[];                   // Big   Font
extern uint8_t SevenSegNumFont[];           // SevenSegNumFont
UTFT   myGLCD(CTE35IPS,38,39,40,41);        // TFT set,Model=CTE35IPS
int bk = 222;                               // back color
int c = 0;
int buff[256];

void setup() {
 //Serial.begin(115200); // use the serial port
 // I/O setup(ANALOG IN) -----------------------------------------------
 pinMode(A0, INPUT);
 digitalWrite(A0,LOW);   // set Internal pull-up
 // FFT setup ----------------------------------------------------------
 TIMSK0 = 0;     // turn off timer0 for lower jitter
 ADCSRA = 0xe5;  // set the adc to free running mode
 ADMUX  = 0x40;  // use adc0
 DIDR0  = 0x01;  // turn off the digital input for adc0
 // TFT setup ----------------------------------------------------------
 myGLCD.InitLCD();                         // LCD Initialize
 myGLCD.setFont(SmallFont);                // Font : smallfont
 myGLCD.clrScr();                          // LCS Clear
 myGLCD.setColor(bk,bk,bk);                // panel background color
 myGLCD.fillRect(0, 0, 480, 320);          // panel all fill
 myGLCD.setColor(0, 0, 0);                 // moji color=white
 myGLCD.setBackColor(bk,bk,bk);            // moji background color
 myGLCD.print(" FFT Audio Analyzer", LEFT, 1);   // TITLE
}

void loop() {
  while(1) { // reduces jitter
    // FFT Routine -----------------------------------------------------
    cli();         // UDRE interrupt slows this way down on arduino1.0
    for (int i = 0 ; i < FHT_N ; i++) {   // save 256 samples
      while(!(ADCSRA & 0x10));            // wait for adc to be ready
      ADCSRA = 0xf5;                      // restart adc
      byte m = ADCL;                      // fetch adc L data
      byte j = ADCH;             // fetch adc H data</pre>
      int k = (j << 8) | m;               // form into an int
      k -= 0x0200;                        // form into a signed int
      k <<= 6;                            // form into a 16b signed int
      fht_input[i] = k;                   // put real data into bins
    }    
    fht_window(); // window the data for better frequency response
    fht_reorder(); // reorder the data before doing the fht
    fht_run(); // process the data in the fht
    fht_mag_log(); // take the output of the fht
    //sei();
    // FFT Caliblation data -------------------------------------------
    //c = c + 1;
    //if ( c == 8 ){
    // for (int i = 0; i < FHT_N/3; i++) {
    // buff[i] = fht_log_out[i]/4;
    // }
    //}
    // Display Routine -------------------------------------------------
    myGLCD.setColor(255,128,0);
    for (int i = 0; i < FHT_N/3; i++) { // x
       int x = 30; int y; int L = 300;
       y = L - fht_log_out[i]/3; // + buff[i]; // y
       myGLCD.setColor(255,255,255); // clear(black)
       myGLCD.fillRect((i*5)+x,L,(i*5)+x+5,30); // clear(black)
       myGLCD.setColor(255,0,0); // blue draw
       myGLCD.fillRect((i*5)+x,L,(i*5)+x+3,y); // blue draw
    //------------------------------------------------------------------
    }
  }
}

Written by macsbug

1月 10, 2015 at 3:03 pm

カテゴリー: Arduino

Kinoma Studio で、サルでもできる OS X Application

leave a comment »

Kinoma Studio 開発ツールで、あなたも 即座に、Mac OS X アプリのプログラマーになれる。

方法:サンプルプログラムをロードし「RUN」で確認し「Mac OS X App」で出力する。

お薦めは、ブラウザー:「Browser」、デジタル時計:「Periodicfech」、
_    インターネットラジオ:「SomaFM」、グラフィック「KinomaGraph」
k1 k2
k3 k4

 

Audio Detect:マイクからRMS,Peak,Average,Samples を表示する。
Balls:ボールが飛び交うアニメーション
Browser:ブラウザー
Camera:マックのカメラで写ります。
canvas:お絵描き
Control:各種のボタン•ツール
Dialogs:ダイアログ•ツール
Effects:文字のエフェクト•ツール
File Explorer Exsample:ファイルの中身を見る
Flickr Photo Grid:画像のFlickrが見れます。
goody:Hello world !
Hello KPR:Hello world !
Kangaroo Disco:カンガルーグラフィック
Kangaroo Text:カンガルー•テキスト•グラフィック
KinomaGraph:グラフィック
Layyers:画像のエフェクト•ツール
Media Player Example:メディアプレーヤー
Menu Button:メニューボタン
Periodicfech:デジタル時計
Prtform Identification:使用OSの表示
Preferences:色ボタンとシリアル出力
Project 3D 3D:エフェクト•ツール
Proxy Handler:画像表示
Slideshow:画像スライドショー
SomaFM:ネットラジオ
Sound:シャッター音
SSDP:デバイス同士のプロトコル
Stetes:ボタン
stylelnheritance:文字のスタイル
Styles EXsample:文字のスタイル
Tabs EXsample:タブのデモ
Tiled Skins:タイル•スキンの画像表示
Timers:タイム表示
Transition:画像効果
Web server:ウエブサーバー
WebSocket Server:ウエブ•ソケット•サーバー

Written by macsbug

1月 10, 2015 at 12:40 am

カテゴリー: Kinoma Create