PSoC 4200 Proto Kit + AQUOS

PSoC4 Prototyping KitのUARTを使ってシャープ液晶テレビAQUOSを操作してみました。
http://akizukidenshi.com/catalog/g/gM-08446/
Jpeg
PSoC 4200には、Serial Communication Blocks (SCB)が2個あるのでこれをUARTとして使います。
1個目のSCBは、ブートローダ用にUSBモジュールとつながっているので2個目のSBCをAQUOS通信用に使用しました。 SCBのピンは、固定ピンなので以下ピン配置になります。

ブートローダ用
P4_1       UART1_TX
P4_0       UART1_RX

AQUOS通信用
P0_5       UART2_TX
P0_4       UART2_RX

PSocなのでコンポーネントをぺたぺた貼り付け、通信速度などのプロパティを設定すれば初期環境です。後は関数を呼び出すだけなので非常に簡単です。
マイコンはARMのCortex-M0ですが、他のメーカよりペリフェラルの使い方が簡単です。
UARTの出力は、RS2332Cレベルが必要なのでトランシーバを接続し、DSUB9コネクタを接続しました。トランシーバは、アナログデバイセズのADM3202を使用しました。
http://akizukidenshi.com/catalog/g/gI-09001/

Jpeg
とりあえず、今回は、電源を落とす目的で
“POWR0 ¥r”
を送ってみました。テレビの電源が切れることが確認できました。
Jpeg

AZURE SQL DATABASE

AZUREでSQLデータベースを新規作成します。

AZURE003

AZURE004

データベースを作る時に、同時に新しいサーバを作成すると失敗します。その時は、サーバができるまで待ってからもう一度、データベースを作成してください。
サーバ、データベースの作成共に少し時間がかかります。
サーバ名 ********.database.windows.net

接続テスト
[例]
var mssql = require(‘mssql’);
var config = {
user: ‘ユーザ名’,
password: ‘パスワード’,
server: ‘サーバ名.database.windows.net’,
database: ‘データベース名’,
options:
{
encrypt: true          // Use this if you’re on Windows Azure
}
}

mssql.connect(config, function(err)
{
console.log(err); mssql.close();
}
);

実行するとVisual studio onlineのコンソールに接続が表示されます。
SQLサーバを立ち上げると課金されるので、無料期間が終わった時点で終了しました。

AZURE NODE.JS EXPRESS

AZUREでnode.jsのExpressを使ってみます。
前回作ったaz-test001を改造します。
まずは、ダッシュボードからWebアプリに進み、az-test001を選択し、「Visual Studio Online での編集」に入ります。
左側のボタンから「Open Console」を選びます。
Visual Studio OnlineにConsoleウィンドウが開きます。
コンコンソールを使ってExpress-generatorをインストールします。

npm install -g express-generator

次にファイルの生成します。
express -f

次にインストールします。
npm install

app.jsファイルがメインファイルです。
左のRUNボタンを押すと新しいタブが開き「Express」が表示されます。

AZURE002

nodeもnpmも初めから入っているのでLinuxで構築するより簡単にExpressが使用できるようになりました。

AZURE HELLO WORLD

レンタルサーバでIoTのサーバ側を準備していますが、はやりのCloudはどうかということで AZUREの評価版に登録してみました。
開発環境をCloud9でWebアプリを作成しようと思いましたがイマイチ相性が悪いのでVisual Studio Online“Monaco”で作成することとしました。 まず、Visual Studio Onlineに登録しておきます。
プロジェクトを1個作っておきます。(az-test001)
Webアプリを作成します。「+新規」から「Webアプリ」→「簡易作成」を選択します。(az-test001)
AZURE01
構成の画面で「Visual Studio Onlineでの編集」をONにします。
編集を開始すると新しいタブが開きIED画面が表示されます。
GITボタンでVisual Studio Onlineで作成したプロジェクトと接続します。
Rootフォルダにserver.jsというファイルを新規作成します。

var http = require(‘http’)
var port = process.env.PORT || 1337;
http.createServer(function(req, res) {
res.writeHead(200, {‘Content-Type’: ‘text/plain’ });
res.end(‘Hello World\n’);
}).listen(port);

RUNボタンを押すと新しいタブが開き「Hello World」が表示されます。
Node.jsの環境から立ち上げるのに比べると格段にやさしいです。

Raspberry Pi A+ NODE.JS LED BLINK&SHUTDOWN

node.jsでGPIOとコンソールコマンド使えるようになったので、起動するとLEDの点滅、スイッチを押すとシャットダウンするソフトを作成します。 
Raspberry Pi A+は、画面の無いシステムなす。電源をブチ切りするのは避けたいのでこのスイッチを追加しました。
Jpeg

必要なライブラリをインストールします。 
npm install onoff  
npm install exec-sync 
npm install 
 
以下サンプルソフトです。 
######################################## 
var execSync = require(‘exec-sync’); 
 
// button is attaced to pin 20, led to 21 
var GPIO = require(‘onoff’).Gpio, 
led = new GPIO(21, ‘out’), 
button = new GPIO(20, ‘in’, ‘both’); 
 
var interval = setInterval(function() 
{ 
    led.read(function (err, value) 
    { 
        if (err) 
        { 
            throw err; 
        } 
        else 
        { 
            var val = value === 0 ? 1 : 0; 
             led.writeSync(val); 
        } 
    } );  
}, 500); 
 
// define the callback function 
function shutdown(err, state) 
{ 
    // check the state of the button 
    // 0 == pressed, 1 == not pressed 
    if(state == 0) 
   { 
        clearInterval(interval); 
        // turn LED on 
        led.writeSync(0); 
   // Shutdown 
        var poff = execSync(sudo shutdown -h now); 
        console.log(opoff);     
    } 
} 
 
// pass the callback function to the 
// as the first argument to watch() 
button.watch(shutdown); 
######################################## 
 
ソフトを起動すると500msec毎にLEDが点滅し、ボタンを押すとRaspberry Pi A+がシャットダウンできました。 

Raspberry Pi A+ NODE.JS CONSOLE COMMAND

node.jsでコンソールコマンドを使えるようにします。 
ライブラリは、exec-syncを使いました。 
まずは、ライブラリのインストールを行います。 
Jpeg

npm install exec-sync 
npm install 
 
以下サンプルソフトです。 
######################################## 
var execSync = require(‘exec-sync’); 
 
var shutdown = execSync(sudo shutdown -h now); 
console.log(shutdown); 
######################################## 
 
実行するとシャットダウンするソフトです。次は、GPIOと連携させたいと思います。

 

Raspberry Pi A+ NODE.JS GPIO

node.jsでGPIOを使ってみようと思います。
GPIO20を入力、GPIO21を出力にします。入力には、スイッチを、出力には、LEDを接続しました。
GPIO21 → 100Ω → LED1 → 3.3V

GPIO20 → 33kΩ → 3.3V
→ SW1  → GND

Jpeg

GPIOの制御ライブラリには、onoffを使用しました。
まずは、ライブラリのインストールを行います。

npm install onoff
npm install

以下サンプルソフトです。
########################################
// button is attaced to pin 20, led to 21
var GPIO = require(‘onoff’).Gpio,
led = new GPIO(21, ‘out’),
button = new GPIO(20, ‘in’, ‘both’);

// define the callback function
function light(err, state)
{
// check the state of the button
// 0 == pressed, 1 == not pressed
if(state == 0)
{
// turn LED on
led.writeSync(0);
}
else
{
// turn LED off
led.writeSync(1);
}
}

// pass the callback function to the
// as the first argument to watch()
button.watch(light);
########################################

スイッチを押すとLEDがつくソフトです。ボタンに従ってLEDが点灯、消灯することができました。

© 2014 Spineedge Corporation.