基本情報

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

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

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

カードのプレビュー
カウントダウン機能付きカメラ
'16/6/26 12:5
カウントダウン機能の付いたカメラです。ほかにほしい機能があれば、「プラス」ボタンで提案してみてください!
arc@dmz

プライベートコンテンツ

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

ソースコード

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

// get serial port var mraa = require('mraa'); mraa.init(); var port = mraa.init ? new mraa.Uart(0).getDevicePath() : ''; // instantiate the camera var Camera = require('jsupm_grovescam_js'); 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 , useCountdown = false /* Use the countdown feature. */ , width = useCountdown ? 130 : 60 , height = 105 , thickness = 45 /* Thickness [10, 100] */ , dw = 5 /* Dovetail width [0, 10] */ , dh = 2 /* Dovetail height (panel thickness) [0, 10] */; // put base board var rect = f3js.drawJointRectangle(x, y, width, height, dw, dh, true); var planes = rect.extrude(thickness); planes[4].x = width; planes[4].y = 0; f3js.add(planes[4]); // put sensors and actuators var leftMargin = 28 // Left margin [0, 100] , topMargin = 30; // Top margin [0, 100] f3js.add(camera, { x: x + leftMargin + 0, y: y + topMargin + 0 }); f3js.add(button, { x: x + leftMargin + 0, y: y + 75 }); var circle; if (useCountdown) { circle = new gcl.GroveCircularLED(5, 4); f3js.add(circle, { x: x + width - 30, y: y + topMargin + 0 }); 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; planes[0].x = x; planes[0].y = y + height + margin; f3js.add(planes[0]); planes[1].x = x + width; planes[1].y = y + height + margin - dh; f3js.add(planes[1]); planes[2].x = x + height; planes[2].y = y + height + thickness + margin; f3js.add(planes[2]); planes[3].x = x; planes[3].y = y + height + thickness + margin; f3js.add(planes[3]); // put a side hall f3js.drawRectangle( x + 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); var var29169 = false; // *proposed* フラッシュのON/OFF var var83594 = false; // *proposed* シャッター音
カスタマイズ

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

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

設計のダウンロード

モジュール

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

レイアウト
プログラム

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