基本情報

このページではIoTコンテンツ(カウントダウン機能つき?カメラ)をベースにして、新しいコンテンツを「フォーク」できます。フォークしたコンテンツは、プロジェクトの一覧ページに新しい項目として表示されます。元の項目を上書きしたい場合は編集してください。

※写真URLは.jpg, .jpeg, .pngのいずれかで終わるもの、またはGyazoへアップロードされたページのURL(https://gyazo.com/hogehogeなど)に対応しています。

※IoTコンテンツの説明、エントリポイントに関する情報 main: index.js およびf3jsモジュールへの依存情報 dependencies: { f3js: (略) } は、この欄の内容とマージされるため記入不要です。

カードのプレビュー
カウントダウン機能つき?カメラ
'16/3/14 14:21
サーキュラーLEDを用いたカウントダウン機能を付けられるカメラです。
arc@dmz

プライベートコンテンツ

チェックを外すと、このコンテンツはすぐ一覧に公開され、誰でもアクセスできるようになります。 なるべくコンテンツを共有していただきたいので、チェックは初めから外れています。また、ログインしていない状態ではチェックをつけられません。 一度公開されたコンテンツは、プライベートにできません。(一度チェックを外すと、以降そのコンテンツを編集するときにはチェックをつけられなくなります。)

ソースコード

マイコン・小型コンピュータのプログラムのソースコードを記述してください。f3jsパッケージをrequireすることで筐体設計が可能です。詳しくはAPIドキュメントをご覧ください。

// get serial port var mraa = require('mraa'); mraa.init(); var port = new mraa.Uart(0).getDevicePath(); // instantiate the camera var Camera = require('jsupm_grove_camera'); var camera = new Camera(port); // instantiate sensors and actuators var groveSensor = require('jsupm_grove'); var gcl = require("jsupm_grovecircularled"); var button = new groveSensor.GroveButton(3); // set layout parameters var f3js = require('f3js') , x = 10 , y = 10 , width = 130 , height = 105 , thickness = 42 , dw = 5 /* Dovetail width [0, 10] */ , dh = 2 /* Dovetail height [0, 10] */ , useCountdown = true /* Use cowntdown */; // put base board f3js.drawDovetailRectangle(x, y, width, height, dw, dh, true); f3js.drawDovetailRectangle(x + width + dh, y, width, height, dw, dh, true); // put sensors and actuators var leftMargin = 28 // Left margin [0, 100] , topMargin = 30; f3js.add(camera, x + leftMargin, y + topMargin); f3js.add(button, x + leftMargin, y + 75); var circle; if (useCountdown) { circle = new gcl.GroveCircularLED(5, 4); f3js.add(circle, x + width - 30, y + topMargin); f3js.drawRectangle(x + width - 30 - 6, y + topMargin - 18, 12, 3); } // draw circles... for (var i = 0; i < 7; i ++) { f3js.drawCircle( x + width - (i + 1) * 10 , y + height - 10 , 1); // additional holes } // put side boards var margin = dh; f3js.drawDovetailRectangle( x, y + height + margin - dh, width, thickness, dw, dh, true, false); f3js.drawDovetailRectangle( x + width + dh, y + height + margin - dh, width, thickness, dw, dh, true, false); f3js.drawDovetailRectangle( x + dw, y + height + thickness + margin - dh, height, thickness, dw, dh, true, false, true); f3js.drawDovetailRectangle( x + dw + width + dh, y + height + thickness + margin - dh, height, thickness, dw, dh, true, false, true); // put a side hall f3js.drawRectangle( x + dw + 5, y + height + thickness * 2 + margin - dh - 15, height - 10, 10); // take a picture after a while var ready = true; function readButtonValue() { // detect button push if (ready && button.value() > 0) { ready = false; if (!useCountdown) { // use countdown camera.takePicture('/home/root/test.jpg'); } else { // or immediately take a photo var cycle = 300 , maxLevel = 24 , level = maxLevel; // start countdown timer var countDown = setInterval(function() { level --; console.log("countdown: ", level); circle.setLevel(level); // take a picture! if (level <= 0) { camera.takePicture('/home/root/test.jpg'); clearInterval(countDown); ready = true; } }, cycle); } } } setInterval(readButtonValue, 100);
カスタマイズ

このコンテンツにはカスタマイズできる項目がありません。

表示オプション
ソースコード中で変数宣言にコメントをつけるとカスタマイズ項目としてGUIウィジェットが表示されます。グレーアウトしているウィジェットはユーザが提案した項目で、ソースコード末尾の変数宣言に対応しています。

設計のダウンロード

モジュール

このプロジェクトは組み立てにモジュールを必要としません。

レイアウト
プログラム

ログインしないと使えない機能です。