基本情報

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

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

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

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

プライベートコンテンツ

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

ソースコード

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

// instantiate the camera var Camera = require('jsupm_grovescam').GROVESCAM; var camera = new Camera(0); if (camera.setupTty && !camera.setupTty()) { console.log('failed to initialize connection to the camera'); process.exit(1); } if (camera.init && camera.init()) console.log('camera initialized'); else console.error('init() failed'); // instantiate sensors and actuators var groveSensor = require('jsupm_grove'); var gcl = require("jsupm_my9221"); var button = new groveSensor.GroveButton(3); // set layout parameters var f3js = require('f3js') , x = 10 , y = 10 , useCountdown = true /* Use the countdown feature. */ , width = useCountdown ? 130 : 60 , height = 105 , thickness = 45 /* Thickness [10, 100] */ , dw = 5 /* Joint width [0, 10] */ , dh = 2 /* Joint 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 planes[3].drawRectangle( 5, thickness - 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) { // immediately take a photo takePicture(); } else { // or use countdown 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) { takePicture(); clearInterval(countDown); ready = true; } }, cycle); } } } setInterval(readButtonValue, 100); function takePicture() { if (camera.preCapture && camera.preCapture()) console.log('camera prepared for capturing images'); else console.error('camera failed to prepare for capturing images'); if (camera.doCapture()) console.log('camera capturing an image'); else console.log('camera failed to capture an image'); if (camera.getImageSize() > 0) { console.log('storing an image ...'); if (camera.storeImage('image.jpg')) console.log('camera successfully captured the image: image.jpg'); else console.log('camera failed to store the captured image: image.jpg'); } } var var29169 = false; // *proposed* Flash ON/OFF var var83594 = false; // *proposed* Shutter noise ON/OFF
カスタマイズ

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

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

設計のダウンロード

モジュール

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

レイアウト
プログラム

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