2020年8月31日月曜日

一緒

VISUAL STUDIO ここまで成功

下部の画面に大きく字を描きます。
---------------------------------
    private void FormBallGame_Load(object sender, EventArgs e)
        {
            DrawCircleSelectPictureBox();
            DrawmainPictureBox();
        }
            private void DrawCircleSelectPictureBox()
            {
                int height = selectPictureBox.Height;
                int width = selectPictureBox.Width;

                Bitmap selectCanvas = new Bitmap(width, height);
                using (Graphics g = Graphics.FromImage(selectCanvas))
                {
                g.FillEllipse(Brushes.LightBlue, 0, 0, height, height);
                selectPictureBox.Image = selectCanvas;
                } 
            }
       
        private void DrawmainPictureBox()
        {
            Bitmap canvas = new Bitmap(mainPictureBox.Width, 
           mainPictureBox.Height);
            using(Graphics g = Graphics.FromImage(canvas))
            {
                 g.DrawString("萩",
                   new Font("HG教科書体",
                 mainPictureBox.Height - mainPictureBox.Height / 4 ),
                   Brushes.Gray,0,0,new StringFormat());
                  mainPictureBox.Image = canvas;
            }
        }
-------------------------------------
 文字のフォントをメイリオにするとはみ出ました。ちなみに、
mainPictureBox.Height - mainPictureBox.Height / 4 ←を3にするとうまく表示されます。

VISUAO STUDIO 再挑戦

画面作成は、前と同様簡単にできました。

さて、描画です。ここからつまづいたのです。
本のとおり、プログラムを打ち込みましたが、using ・・・はこのバージョンでは仕え居ないと表示されます。受けつけてくれないのです。仕方なくこれをはずし、

無理矢理のプログラム(おそらくGraphicsが開放されない)でやってみると、
できました。
なおも、本のプログラムを見ていると、using・・・の最後に)が2つあるのです。
---------------------------------
    private void FormBallGame_Load(object sender, EventArgs e)
        {
            DrawCircleSelectPictureBox();
        }
            private void DrawCircleSelectPictureBox()
            {
                int height = selectPictureBox.Height;
                int width = selectPictureBox.Width;

                Bitmap selectCanvas = new Bitmap(width, height);
                Graphics g = Graphics.FromImage(selectCanvas);
               
                g.FillEllipse(Brushes.LightBlue, 0, 0, height, height);
                selectPictureBox.Image = selectCanvas;
               
            }
-----------------------------------
気まぐれに、usingの後に(を付けてみると、
正しいプログラム
------------------------------------
 private void FormBallGame_Load(object sender, EventArgs e)
        {
            DrawCircleSelectPictureBox();
        }
            private void DrawCircleSelectPictureBox()
            {
                int height = selectPictureBox.Height;
                int width = selectPictureBox.Width;

                Bitmap selectCanvas = new Bitmap(width, height);
            using (Graphics g = Graphics.FromImage(selectCanvas))
                {
                g.FillEllipse(Brushes.LightBlue, 0, 0, height, height);
                selectPictureBox.Image = selectCanvas;
                } 
            }
------------------------------------
できました!
本には、「(」がなかったのです。

2020年8月30日日曜日

人感センサーと圧電(たぶん)スピーカー

音程の出るスピーカーを圧電スピーカーと思っていて、なかなか音が出ませんでした。
また、人感センサーの接続が間違っていないか自信を持つのに数時間。
どうもスピーカーがだめなのだと気づくまでに数時間。
スピーカーを取り替え、接続も間違っていたのを直し、
やっと音が出るようになりました。
前回、人感センサーを使ったときは、シリアルモニターに数字が(1)表示されるようになっていましたが、今回は音が出るので人に反応しているのを実感できました。
やっとできて、しばらくピーピー鳴らせています。
------------------------------------------------------------------------------
const int sensorPin = 2;
const int buzzerPin = 8;

void setup(){
  pinMode( buzzerPin ,OUTPUT);
  pinMode( sensorPin,INPUT);
}

void loop(){
  boolean sensorState = digitalRead(sensorPin);
  digitalWrite( buzzerPin ,sensorState);
  delay(10);
}
----------------------------------

散歩直後



arduino ステッピングモーター Stepper motor 28BYJ-48 Parameters

中でモーターが動く音はしているのですが、軸が回りません。
どうも、モーターがダメなのかもしれません。







------------------------------------
const int dirPin = 12;
const int stepPin = 13;

void setup(){
  digitalWrite(dirPin,OUTPUT);
  pinMode(stepPin,OUTPUT);
}

void loop(){
  digitalWrite(dirPin,HIGH);
  for ( int i=0; i < 200 ; i++){
    digitalWrite(stepPin,HIGH);
    delay(1);
    digitalWrite( stepPin,LOW);
    delay(1);
  }
  delay(1000);
  digitalWrite( dirPin,LOW);
  for (int i = 0;i<200;i++){
    digitalWrite( stepPin,HIGH);
    delay(1);
    digitalWrite( stepPin,LOW);
    delay(1);
  }
  delay(1000);
}
-------------------------------