2019年6月10日月曜日

ロボットカーメモ

//PIN Assign
#define FRONT_SENSOR     14
#define SIDE_SENSOR      15
#define RIGHT_WHEEL1     16
#define RIGHT_WHEEL2     22
#define LEFT_WHEEL1      13
#define LEFT_WHEEL2      12
#define SPEED_PWM        17
//PWM Channel
#define SPEED_PWM_CH1   0
#define LEDC_TIMER_8_BIT  8
#define LEDC_BASE_FREQ  500

//センサー用変数
const int maxCount           = 2;
int count                    = 0;
int currentFrontSensorValue  = 0;
int previousFrontSensorValue = 0;
int currentSideSensorValue   = 0;
int previousSideSensorValue  = 0;

void task0(void* param) {
  ExecuteSensorRead();
}

void ExecuteSensorRead() {
  int frontAverageValue = 0;
  int sideAverageValue  = 0;
  while (1) {
    //Sensor Read
    frontAverageValue += analogRead(FRONT_SENSOR);
    sideAverageValue  += analogRead(SIDE_SENSOR);
    count++;

    if (count == maxCount) {
      previousFrontSensorValue = currentFrontSensorValue;
      previousSideSensorValue  = currentSideSensorValue;
      currentFrontSensorValue  = frontAverageValue / count;
      currentSideSensorValue   = sideAverageValue  / count;     
      frontAverageValue = sideAverageValue = 0;
      count = 0;
      Serial.print("front :");
      Serial.print(currentFrontSensorValue);
      Serial.print(", side :");
      Serial.println(currentSideSensorValue);
    }
    delay(100);
  }
}

//Motor Control
void MoveForward(int delayMs) {
  digitalWrite(RIGHT_WHEEL1, HIGH);
  digitalWrite(RIGHT_WHEEL2, LOW);
  digitalWrite(LEFT_WHEEL1 , LOW);
  digitalWrite(LEFT_WHEEL2 , HIGH);
  delay(delayMs);
}
void MoveBack(int delayMs) {
  digitalWrite(RIGHT_WHEEL1, LOW);
  digitalWrite(RIGHT_WHEEL2, HIGH);
  digitalWrite(LEFT_WHEEL1 , HIGH);
  digitalWrite(LEFT_WHEEL2 , LOW);
  delay(delayMs);
}
void TurnLeft(int delayMs) {
  digitalWrite(RIGHT_WHEEL1, LOW);
  digitalWrite(RIGHT_WHEEL2, HIGH);
  digitalWrite(LEFT_WHEEL1 , LOW);
  digitalWrite(LEFT_WHEEL2 , HIGH);
  delay(delayMs);
}
void TurnRight(int delayMs) {
  digitalWrite(RIGHT_WHEEL1, HIGH);
  digitalWrite(RIGHT_WHEEL2, LOW);
  digitalWrite(LEFT_WHEEL1 , HIGH);
  digitalWrite(LEFT_WHEEL2 , LOW);
  delay(delayMs);
}
void Brake(int delayMs) {
  digitalWrite(RIGHT_WHEEL1, HIGH);
  digitalWrite(RIGHT_WHEEL2, HIGH);
  digitalWrite(LEFT_WHEEL1 , HIGH);
  digitalWrite(LEFT_WHEEL2 , HIGH);
  delay(delayMs);
}
void Stop(int delayMs) {
  digitalWrite(RIGHT_WHEEL1, LOW);
  digitalWrite(RIGHT_WHEEL2, LOW);
  digitalWrite(LEFT_WHEEL1 , LOW);
  digitalWrite(LEFT_WHEEL2 , LOW);
  delay(delayMs);
}

void setup() {
  Serial.begin(9600);
  delay(100);
  pinMode(FRONT_SENSOR, INPUT);
  pinMode(SIDE_SENSOR , INPUT);
  pinMode(RIGHT_WHEEL1, OUTPUT);
  pinMode(RIGHT_WHEEL2, OUTPUT);
  pinMode(LEFT_WHEEL1 , OUTPUT);
  pinMode(LEFT_WHEEL2 , OUTPUT);
  ledcSetup(SPEED_PWM_CH1, LEDC_BASE_FREQ, LEDC_TIMER_8_BIT);
  ledcAttachPin(SPEED_PWM, SPEED_PWM_CH1);
  xTaskCreatePinnedToCore(task0, "Task0", 4096, NULL, 1, NULL, 0);
  Brake(5000);
}

void loop() {
  for(int i=0; i<6; i++){
    ledcWrite(SPEED_PWM_CH1, i*50);
    MoveForward(1000);
    if(i==5){
      Brake(1000);
    }
  }
  /*
  //正面に障害物あり
  if(currentFrontSensorValue > 2500){
    Serial.println("Detect Object in Front");
    Brake(200);
    TurnLeft(1000);
    Brake(200);
  }
 
  //側面に壁がない
  else if(currentSideSensorValue < 1000){
    if(previousSideSensorValue < 1000){
      MoveForwarad(500);
    }
    Brake(100);
    TurnRight(2500);
  } 
  else if(currentSideSensorValue > 3500){
    Serial.println("Detect Object On the Side");
    TurnLeft(500);
    MoveForward(500);
  }
  else{
    MoveForward(500); 
  }
  */
}

2018年8月9日木曜日

ESP32でマルチタスクしたメモ

TaskHandle_t taskHandle[1];  /* typedef void * TaskHandle_t; */

void setup()
{
  /* configure led blink task. */
  unsigned long executeParameter = 1000UL;  /* delay time */
  xTaskCreatePinnedToCore(
    subTask,  /* task name */
    "subTask",   /* task name string */
    1024,           /* stack size */
    &executeParameter, /* execute parameter */
    2,             /* task priority : 0 to 24. 0 is lowest priority. */
    &taskHandle[0],   /* タスクハンドルポインタ */
    1              /* core ID */
  );

  Serial.begin( 115200 );
}


void loop()
{
  Serial.println(”hogehoge”);
  delay( 1000 );
}


void subTask( void *execParam )
{
  int buttonClick;
  ledcSetup(0, 50, 10);  // 0ch 50 Hz 10bit resolution
  ledcAttachPin(15, 0); // 15pin, 0ch
  while ( 1 )
  {
    buttonClick = digitalRead(0);
    if (buttonClick == 0) {
      ledcWrite(0, max);
    }
    else {
      ledcWrite(0, min);
    }
    delay(1000);
  }
}

2017年4月10日月曜日

近況報告

買ったもの
・Nikon D3200+AF-S DX NIKKOR 18-55mm f/3.5-5.6G VR
・SONY α99 II
・SONY 70-300mm F4.5-5.6 G SSM II SAL70300G2
・Panasonic DMC-GM1
・CARLZEISS JENA TESSAR 50mm F2.8(ゼブラ)
・SIGMA AF TELE 400mm F5.6
・MINOLTA AF ZOOM 24-85mm F3.5-4.5 New
ルフトデザイン スウィフト02 ショルダーバッグM

2016年11月12日土曜日

2016年11月10日木曜日

2016年7月30日土曜日

隅田川花火大会

今朝成り行きで東京の実家へ帰ることになったので、タイミングが良いから隅田川花火大会の撮影をすることにした。
遠出はしたくないし、なんなら家からでも花火は見えるから近場で、ということで荒川の河川敷から撮影。開けた景色だから案外良く撮れるんじゃないか、と思ったら花火が想像以上に低くて、スカイツリーの第一展望台より低い。おかげでビルからちらっと見える花火になってしまった。
おまけに言うと相変わらずの撮影センスの無さからゴジラの襲撃みたいな写真ばかりになってしまったので反省。
何枚かは綺麗に撮れたかな?というレベルのものもあるので良かったら見てやってください。

ちなみに今回はすべてα77にSIGMA 18-300mmです。
DSC06199

まだケーブル充電で消耗してるの?






iphone6s Plusを発売日に買ってローズゴールドをドヤ顔するためにケースを付けずに生活してきたけど、だいぶ傷も増えてきたし発売から8ヶ月も経っていい加減目新しさもなくなってきたので、そろそろケースを買おうかなと。
ポケモンやってて手汗で滑って落としたのが良いきっかけになった(?)

2016年7月10日日曜日

Xactiのバックアップ電池を交換してみる


前回ankerのbluetoothイヤホンを紹介して安物でも十分聞けるとか、ランニングが捗るとか言ってから早3ヶ月。

IE800を買ってしまうわランニングは全くしていないわ、我ながら適当なこと抜かしてるなあという感じです。



で、今回もこりもせず、絶対に使わなくなるだろうとは思いつつ、またおもちゃを買ってしまった。。。



SANYO DMX-HD1000

2016年4月26日火曜日

筋トレとAnker SoundBuds Sportとイヤーピース問題

4年間で10kg太ったことに目を瞑り続けてたんだけど、何かとあって現実逃避に筋トレ、ランニングを始めた。
2ヶ月で2kgとじわりとしか変わらないけど、ライブの時ペンライトを振る腕が疲れないなど地味に効果は現れてる。

それに伴って、形から入るタイプのぼくは今回も色々とギアを買い揃えた。そのうちの一つがamazonで人気のBletoothイヤホン、anker soundbuds sport




2500円とお安い上に簡易防滴(IPX4なので、防沫?)、マイクも付いている。


2016年1月5日火曜日

防振双眼鏡ほしくないですか?ぼくはほしい

ゆいかおりのツアー、名古屋と横浜2日目に参戦したわけだけど、ことごとくクソ席だったわけ。
というか最速選考で当選したチケットが全部(会場が違うのに)同じような席が割り当てられているので、嫌がらせでも受けているのではないだろうか。横浜に至っては2階の最後列だったし。

2015年12月17日木曜日

AEE MAGICAM SD19Aを買った

普段から移動はロードバイクだし、ちょうど一年前にこの道を通った昼、自動車に轢かれた(実際は前方不注意でこちらが10割悪い こともあって、何があるかわからないしドライブレコーダー的な用途でアクションカムが欲しいなと思ってた。

元々はコダックのSP360が半球上に撮影できるしデザインもおしゃれなので気になってたんだけど、ドライブレコーダーのためだけに3万も出すのはなあと渋って手が出せなかった。


で、先日ふと価格コムを見たらくっそ安い価格のカメラを見つけたので、勢いでポチーに至った。


2015年11月25日水曜日

ゆいかおり情報

12月26日の名古屋と1月2日の東京(横浜)公演のチケットが(11月25日現在)まだ余ってるみたい。どちらも3階席なので双眼鏡必須だけど、興味がある人はよろしく頼むな。


2015年10月30日金曜日

ゆいかおり3rdアルバムのリリースイベントに当選した

3rdアルバム「Bright Canary」の発売に合わせて恒例のリリースイベントが開催される。

前回の「Ring Ring Rainbow!!」ではとらのあな通販で予約していた2枚分に応募券が付属せず、泣きながら発売日にアニメイトへ走り追加で購入するも落選という残念すぎる結果に終わった。

2015年10月20日火曜日

お高いマルチペンをいくつか買ったけどやっぱりシャーボXが一番手に馴染む

ゼブラのマルチペン、シャーボXを2009年に買ってからずっと使っていた。
初めて買ったお高い筆記具であり、思い入れも強いお気に入りのペンなのだけど、ペン先とリフィルとの間に微妙な隙間があり、筆記中のブレが気になるので新たなペンを模索している。

2015年9月29日火曜日

スタンドアップペンケースが発売していた

以前紹介したスタンドアップペンケースがオンラインショップで販売開始していたらしいです。
2ヶ月も前に。
買ってください。

2015年9月22日火曜日

『Goproの生えるカメラバッグ』THULE Legend Gopro SlingBagを買った、詳細について

かばんを予約して発売日に買うなんて生まれて初めてだし、今後も無いかもしれない。
届いたブツがこれ。