So-net無料ブログ作成
検索選択
前の10件 | -

Eagle8で基板をデザイン、NCデータを作成

uv.jpg
Windows10環境で
Eagle8.2.1をautodeskよりダウンロードしてイントールします。
Javaをjdk-8u131-windows-x64.exeをoracleよりダウンロードしてイントールします。
環境変数のシステム環境変数のPathに
C:\Program Files\Java\jdk1.8.0_131\bin
を追加します。
pcb-gcode-3.6.2.4.zipをダウンロードして解凍します。
EagleのControlPanelのOptionsのDirectoriesのUser Language ProgramsにBrowseでpcb-gcode-3.6.2.4を追加します。
EagleのBoardデザインから、FileのRunULPでpcb-gcode-setup.ulpを実行します。
出来上がった、拡張子がtapのファイル(G-CODE)が作成されます。
これをNCVCで確認します。
NCVCのオプションの拡張子の設定で、NCデータの拡張子にTAPを追加して、tapファイルを開くと、NCのパスを確認できます。
uvnc.jpg
なお、Eagelの使用方法は、書籍「EAGLEによるプリント基板製作の素」が参考になると思います。

バカにできないLEDの消費電力

通常LED(発光ダイオード)の消費電力は10mA程度がスタンダードですが、ATTINY85などの消費電力が3.3Vで1mA以下のなのに、非常に無駄なように思えます。また、ATTINY85などは、動作しているか確認する意味で、LEDなどが必要なことも多々あると思います。小電流の明るさはカタログスペックだけでは、確認することができません。
LEDの種類によっては、0.1mA程度でも、発光するものがあるので、どの程度か確認してみます。
比較は、
スタンレーUB3804X 10個で100円 青色および緑色
SLP-9118C-51H 20個で100円 赤色
3.3Vで100Ωの抵抗を挟んでおります。
赤色は、ほとんど、光っておりません。青、緑ともに、よく発光してます。緑色の方が、明るい感じがします。
消費電力はテスターで正確に計測すると、3.3V0.085mAです
IMG_5282.JPGIMG_5283.JPG

Arduino(ESP8266 WeMOS)で動体検知カメラ

動体検知のしくみ
 カメラから入力された、データをBMPのまま取り込み、ピクセルデータを10*8のデータとする。
そのデータを時間平均して、急激に入力データが変化した場合は、動体検知したとみなす。ESP8266の処理スピードでは、2秒に1コマしか処理できない。しかしながら、消費電力は圧倒的に少ないので、まる2日は持つ。ドライブレコーダの動体検知は、数時間しか動作しない。
 データを時間平均するのは、夕方から夜になるに従って、徐々に感度を変えていく必要があるので。

構成
WeMOS(ESP8266)
ArduCAM(CCD)OV2640 2MPカメラ
MicroSDカード
Gセンサー
FETによるUSB電源制御
有機カラーELディスプレイ SSD1331
12V電圧モニター
機能
ドライブレコーダー MicroSDへの動画記録
パーキングモニター 動体検知+衝撃感知での静止画、動画記録。メールでのお知らせ
WebServer パラメーターの調整
外部LED点灯と外部ドライブレコーダーの電力制御


OWON B35T+でリモート計測

IMG_5275.JPGIMG_5274.JPG
普通のテスターの倍でかい感じがします。このテスターのいいところは、リモートで画面が見える事。
iphoneとかandroidのアプリで使うと幸せになれます。

MacBook12(2015)のWindows10 Creators Update不具合

MacBook12(2015)にisoイメージWindows10 Creators Update DVDから前環境を引き継いでupdateしました。updateは無事完了しwindowsの起動は特に問題ありませんでした。しばらく使用しているとスリープ、休止状態を行うと、ブートしてしまう不具合が見つかりました。
デバイスマネージャーから、ネットワークのBroadcom 802.11ac Network Adapterを無効にすると、問題は解決しましたので。デバイスをアンインストールして、
C:\bootcamp\WININSTALL\BootCamp\Drivers\Broadcom\BroadcomWirelessWin8x64.exe
を実行して、古いドライバーをインストールしました。
それ以降、特に問題は発生していません。

android5.0 ドライブレコーダールームミラー

IMG_5230.JPG
ドライブレコーダーです。android5.0が動作してますので、普通にgoogle mapとかいろんなソフトをインストールできます。
3Gなので、ネットワークスピードが遅く、wifiルーター経由で接続した方が幸せになれます。
ドライブ中は前と後ろのカメラを同時にsdカードに記録できます。その上、アプリも使えるなんて、贅沢。
消費電力は充電のみ5V0.4A、録画時5V0.5Aなので、12Vだと0.25A程使用します。

ATTINY85の消費電力

IMG_5234.JPGATTINY85を12Vのバッテリーから動作させるには、3.3Vに電圧を下げなければならない。いかに電力を使用しないCPUを使用しても、電圧の変換効率が悪ければ意味がない。
低損失CMOS三端子レギュレーターの場合(LP2950L 500mA) 12V1.22mA
低損失CMOS三端子レギュレーター(TA48M033F 100mA) 12V2.08mA
低損失CMOS三端子レギュレーター(XC6202P332T 150mA) 12V1.13mA
超高効率DC-DCコンバーター(M78AR033-0.5 500mA) 12V3.9mA
ここで、面白いのが、5mA以下の電流だと、三端子レギュレーターの方が、消費電力が少ない。DC-DCコンバーターは、暗電流が3.5mAあるので、このような結果となった。
ここから、1日に消費される、バッテリーの量は、X24なので、1.13mAH x 24=27.12mA日となる。

ESP8266(WeMOS)のハングアップをATTINY85で自動リセット

IMG_5217.JPG
WeMOSは長い時間動作させると突然停止してしまう事が多々あります。
ATTINY85でハートビートモニターし、動作しなくなった、WeMOSをリセットさせます。

void(* resetFunc) (void) = 0;//declare reset function at address 0
int a, a_pre = 0;
unsigned long response_time = 0, interval_time = 0;
void loop() {
digitalWrite(1, HIGH);
oled.clear();
oled.cursorTo( 0, 0 );
oled.printString("volt:");
// Volt=val/1023*(19.8+68.1)/19.8*3.3=val*0.0143
a_pre = a;
a = int(analogRead(A3) * 0.0032); //for 3.3V
char strSensorValue[5];
oled.printString(itoa(a, strSensorValue, 10));
//
if (a != a_pre)
{
response_time = millis();
char buffer[10];
oled.cursorTo(0, 1);
sprintf(buffer, "%lu", response_time);
oled.printString(buffer);
goToSleep ();
}
if (a == a_pre) {
oled.cursorTo(0, 1);
oled.printString("int");
interval_time = millis() - response_time;
char buffer[10];
oled.cursorTo(0, 2);
sprintf(buffer, "%lu", interval_time);
oled.printString(buffer);
goToSleep ();
if ( interval_time > 5000)
{
oled.clear();
oled.cursorTo(0, 0);
oled.printString("Reset");
digitalWrite(4, LOW);
switch_on = 0;
delay(1000);
digitalWrite(4, HIGH);
delay(10000);
response_time = millis();
}
}
//sleep
digitalWrite(1, LOW);
goToSleep ();
if (millis() > 30 * 24 * 60 * 60 * 1000) resetFunc();
}
void goToSleep ()
{
set_sleep_mode (SLEEP_MODE_PWR_DOWN);
noInterrupts (); // timed sequence coming up
// pat the dog
wdt_reset();
// clear various "reset" flags
MCUSR = 0;
// allow changes, disable reset, clear existing interrupt
watchdogRegister = bit (WDCE) | bit (WDE) | bit (WDIF);
// set interrupt mode and an interval (WDE must be changed from 1 to 0 here)
//watchdogRegister = bit (WDIE) | bit (WDP2) | bit (WDP1) | bit (WDP0); // set WDIE, and 2 seconds delay
watchdogRegister = bit (WDIE) | bit (WDP2) | bit (WDP1); // set WDIE, and 1 seconds delay
sleep_enable (); // ready to sleep
interrupts (); // interrupts are required now
sleep_cpu (); // sleep
sleep_disable (); // precaution
}

DS203(DSO QUAD)にアプリを追加

IMG_5216.JPG
DS QUAD DS203のアルミボディ版にアプリを入れてみた。
GAB_N2.hex
の方をUSBドライブにコピーします。

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

ノート(Macbook12)のカメラ画像をVS2017(VB)でキャプチャー

NuGet.png
VB.NETをツールのNuGetでライブラリをインストールします。
AForge.Video
AForge.Video.DtrectShow
AForge.Video.Controls
FormにVideo.Sorce.Playerを貼り付けます(探すのに苦労しました。ツールボックスの中で検索するのが簡単。)ボタンを2個を貼り付けます。

Imports AForge.Video
Imports AForge.Video.DirectShow
Partial Public Class frmCapture
Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
' ビデオキャプチャデバイスを選択するダイアログの生成
Dim var = New VideoCaptureDeviceForm()
' 選択ダイアログを開く
If var.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
VideoSourcePlayer1.VideoSource = var.VideoDevice
VideoSourcePlayer1.Start()
End If
End Sub
Private Sub btnCapture_Click(sender As Object, e As EventArgs) Handles btnCapture.Click
Dim video_bmp As Bitmap = VideoSourcePlayer1.GetCurrentVideoFrame()
video_bmp.Save("video.bmp")
End Sub
End Class

こんなに短いコードでキャプチャーできるなんて。

前の10件 | -