福島第一原発の事故のせいで、フォトダイオードで放射線検出する記事をよく見かけるようになりました、で、作ったのをどうやって動作確認すんの、って思ってたら煙検出器用に昔使われていた241Am(アメリシウム)を使ってる人がいまして。煙検出器に放射性元素???となるわけですね。
Read more →
ちなみにフォトダイオードの逆バイアスってそのまんまKをVccに、Aをオペアンプに繋げばよかったね…うん…
ブログ。旅行の感想が中心です。
//円の大きさを決める定数
final int center_x = 150;
final int center_y = 150;
final int r = 150;
void setup(){
size(300, 300);
background(255, 255, 255);
stroke(0, 0, 0);
}
void draw(){
float rad_prev = 0.0f;
boolean isBlue = true;
//1週するまで円を書く
while(rad_prev < TWO_PI){
//円弧の角度をランダムに設定する
final float rad = PI / (random(90) + 3);
//色を変える(青白交互になるように)
if(isBlue){
fill(0, 0, 255);
}else{
fill(245, 245, 245);
}
isBlue = !isBlue;
//描写する
arc(center_x, center_y, r, r, rad_prev, rad + rad_prev);
rad_prev += rad;
}
}
#include < opencv2/opencv.hpp >
#ifdef _DEBUG
#pragma comment(lib, "opencv_core242d.lib")
#pragma comment(lib, "opencv_imgproc242d.lib")
#pragma comment(lib, "opencv_highgui242d.lib")
#pragma comment(lib, "opencv_objdetect242d.lib")
#else
#pragma comment(lib, "opencv_core240.lib")
#pragma comment(lib, "opencv_imgproc240.lib")
#pragma comment(lib, "opencv_highgui240.lib")
#pragma comment(lib, "opencv_objdetect240.lib")
#endif
int main()
{
cv::Mat img1 = cv::imread("******.jpg", CV_LOAD_IMAGE_GRAYSCALE);
if(img1.empty())
return -1;
//閾値
//cv::Mat tozero_img;
//cv::threshold(img1, tozero_img, 0, 255, cv::THRESH_TOZERO | cv::THRESH_OTSU);
//エッジ画像(Canny)
cv::Mat canny_img;
cv::Canny(img1, canny_img, 50, 200);
cv::namedWindow("image");
cv::imshow("image", canny_img);
cv::waitKey(0);
return 0;
}
getRequestToken(); $authUrl = $twitter->getAuthorizeURL($request_token, true); $_SESSION["token"] = $request_token; ?>
![]() |
| UM232RのRXDピンの波形 |
#include < p33FJ32GP202.h >
#include < uart.h >
_FOSCSEL(FNOSC_PRI & IESO_OFF);
_FOSC(POSCMD_HS & OSCIOFNC_OFF & IOL1WAY_OFF);
_FWDT(FWDTEN_OFF & WINDIS_OFF);
_FPOR(FPWRT_PWR1 & ALTI2C_OFF);
_FICD(JTAGEN_ON & ICS_PGD1);
//UARTの設定
//IDLE_ONE?
unsigned int U1MODE_value = UART_EN & UART_IDLE_CON & UART_IrDA_DISABLE &
UART_MODE_SIMPLEX & UART_UEN_00 & UART_EN_WAKE &
UART_DIS_LOOPBACK & UART_DIS_ABAUD & UART_UXRX_IDLE_ONE &
UART_BRGH_SIXTEEN & UART_NO_PAR_8BIT & UART_1STOPBIT;
unsigned int U1STA_value = UART_INT_TX_BUF_EMPTY & UART_SYNC_BREAK_DISABLED &
UART_TX_ENABLE & UART_INT_RX_CHAR &
UART_ADR_DETECT_DIS & UART_RX_OVERRUN_CLEAR;
const unsigned int CLOCK_FREQUENCY = 7370000;
const unsigned int BAUDRATE = 9600;
int main()
{
CLKDIV = 0; //set 1:1
//AD1PCFGL = 0xFFFF; //portA -> all digital
TRISA = 0x0000; //all out
PORTA = 0x0001; //RA0 -> high
TRISB = 0x0010; //RB4(RP4)はinput
//UART1ピンの割り当て
RPINR18bits.U1RXR = 2;//RXはRP2, RB2 6pin
RPOR2bits.RP4R = 3; //TXはRP4(RB4)
//UART1初期設定
//ボーレートの計算
const double BaudRateF = ((double)CLOCK_FREQUENCY / (16*BAUDRATE)) - 1;
const unsigned int baud = (unsigned int)(BaudRateF + 0.5);
//9600bps、パリティ無し8bit、フロー制御なし
OpenUART1(U1MODE_value, U1STA_value, baud);
volatile int j = 0;
while(1)
{
//文字を送る
WriteUART1('k');
j++;
}
return 0;
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
//iTextSharp
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace jpg2pdf
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//jpgファイルを開く
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.FileName = "default.jpg";
ofd.InitialDirectory = "";
ofd.Filter = "jpgファイル(*.jpg)|*.jpg|すべてのファイル(*.*)|*.*";
ofd.FilterIndex = 1;
ofd.Title = "開くファイルを選択してください";
ofd.RestoreDirectory = true;
ofd.CheckFileExists = true;
ofd.CheckPathExists = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
textBox1.Text = ofd.FileName;
}
}
private void button2_Click(object sender, EventArgs e)
{
var sfd = new SaveFileDialog();
sfd.FileName = "無題.pdf";
sfd.InitialDirectory = "";
sfd.Filter = "pdfファイル(*.pdf)|*.pdf|すべてのファイル(*.*)|*.*";
sfd.FilterIndex = 1;
sfd.Title = "保存先を指定してください";
sfd.RestoreDirectory = true;
sfd.OverwritePrompt = true;
sfd.CheckPathExists = true;
if (sfd.ShowDialog() == DialogResult.OK)
{
textBox2.Text = sfd.FileName;
}
}
private void button3_Click(object sender, EventArgs e)
{
var doc = new Document();
//pdf保存先
PdfWriter.GetInstance(doc, new FileStream(textBox2.Text, FileMode.Create));
//pdfを開く
doc.Open();
//画像データを取得
var image = iTextSharp.text.Image.GetInstance(textBox1.Text);
doc.SetPageSize(PageSize.A4);
//サイズのフィット
image.ScaleToFit(doc.PageSize.Width, doc.PageSize.Height);
//画像の配置箇所設定
image.SetAbsolutePosition(0f, 0f);
//用紙サイズの設定
//doc.SetPageSize(new iTextSharp.text.Rectangle(image.PlainWidth, image.PlainHeight));
//書き込み
doc.Add(image);
//pdfを閉じる
doc.Close();
//完了のダイアログ(無いと終わったかわからない)
MessageBox.Show("変換が完了しました");
}
}
}