Ganponブログ

趣味の模型作り、ドライブ、旅行など
since Mar.2017

T-34 1/35 可動履帯の組立(その1)

2018-11-28 16:24:58 | 1/35 ドラゴン T-34/85

2018-11-28
久しぶりに模型工作をします。
1/35 T-34用の可動履帯(モデルカステン製)の組立です。
本体の戦車は中古で購入済みのドラゴンのT-34を予定しています。
因みにT-34はソビエト軍の中型戦車です。(私はよく知りません)

可動戦車をやられている方は、この履帯を強度アップのために両側から0.5mmの穴をあけ、0.4mm真鍮線を通しているようです。
私も同様の加工に挑戦します。
しかし、少しやってみたところで、ものすごく厄介な作業をする事になったと気づきました。
先ず、0.5mmの貫通穴をあけることは至難の業ではありません。
一寸でもずれると壁を破って表面に出てきます。

それと、説明書には履帯には前後方向が有ると書かれているのですが、一寸見では判りません。

ルーペで見ます。
判るでしょうか?
下側が進行方向前側です。
少しですが引っ掛かりが有ります。

説明図にそのポイントラインを赤く塗りました。

しかし、一寸見では、この違いは見分けがつかないです。
但し、履帯の内側に刻印が有るので、それが目印になりそうです。
取り敢えず、デザインナイフでランナーから切り取るところまでできました。

穴あけは、もう少し方法を検討します。
そうしないと、私の技量では無理です。

 

 

 


Arduinoをはじめよう(小型化1)

2018-11-13 16:33:31 | Arduino

2018-10-31
Arduino NANOが届いた。
ELEGOO製が3個で1,450円。
同社のUNO R3 ボードは1,100円。
サイズは1/3程度、価格は1/2程度。
助かります。(使いこなせれば。。。。。)

早速、1個を組立て(ピンヘッダを基板にはんだ付けするだけ)、「Lチカ」のスケッチを書き込みます。

???書き込めない。
エラーメッセージが、

ネットで調べると、
「ツール」→「プロセッサ」→「【ATmega328P】を【ATmega328P(Old Bootloader)】に設定変更すると書ける。」との事。
やってみる。
その通りでした。

そして、スケッチを書き込んで動作確認。
ここまではOK

 


ArduinoでRC可動戦車(8)

2018-11-09 12:25:20 | Arduino

2018-11-09
Arduino MEGA 2560を入手できたので、LED出力をPIN22以降に移設します。
サーボ出力もPIN46に移設。
更に砲塔旋回用のサーボをPIN44に接続。
砲塔旋回用サーボは連続回転するように改造済みです。

新たに、赤外線バトルシステムの導入を模索。
赤外線リモコンの値を読み取り、送信する方法に関して、ネットの記事などを参考に試行錯誤してみます。
手持ちのアオシマのVSタンクは難しいですが、童友社のバトルタンクJRの信号はなんとか処理できました。
使用するライブラリーはIRremoteです
読み取ったコードをスケッチに組み込み、実験してみたところ上手く動いてくれました。

IRremoteは、UNOでは赤外線LEDを接続するのはPIN3が指定ですが、MEGAでは上手く作動しません。
解決策を探していると、PIN9でいけそうな情報を入手。
PIN9はUSBシールドと干渉する可能性があるが、試してみたところ支障なく動作します。

これでバトルタンク試作で確認したかったことは、ほぼ出来ました。
今後は小型化に挑戦して、1/35スケールの戦車に搭載したいです。

Arduino PS3 Bluetooth controlled tank ver.5

【赤外線バトル信号送信機能付きArduino MEGA 2560のスケッチ】 

/*
PS3BT_arduino_MEGA2560_tank_2dcmotor_TB6612_FIRE_IR_D
モータドライバはTB6612
46ピンでサーボモータ(砲身上下)を動かす
44ピンで連続回転サーボモータ(砲塔旋回)を動かす
砲塔旋回モータを追加
砲撃時のリコイルアクション+LED点灯、銃撃時のLED点滅(5回)の機能を追加
IRremote(MEGAはPIN9, UNOその他はPIN9)で赤外線対戦システムを組込(砲撃のみ)
*/

#include <PS3BT.h>
#include <usbhub.h>
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif
#include <Usb.h> // needed by Arduino IDE

#include <IRremote.h>
IRsend irsend;

//#include <Servo.h>
//Servo myservo;
#include <VarSpeedServo.h>
VarSpeedServo myservo;
VarSpeedServo myservo_1;
int servo_pos = 90;
const int servo_sp = 50;
const int servo1_sp = 50;
const int d_time = 20;
int ch = 0;
int val = 0;
int pos_y;
int pos_x;
int PWMA = 5; // ← 11 Aモータ PWM 左側モータ
int AIN1 = 4; // ← 9 Aモータ IN1 ( 9ピンはUSBホストシールド使用
int AIN2 = 2; // ← 8 Aモータ IN2
int BIN1 = 8; // ← 7 Bモータ IN1
int BIN2 = 7; // ← 6 Bモータ IN2
int PWMB = 6; // ← 10 Bモータ PWM 右側モータ( 10ピンはUSBホストシールド使用

int motor_speed;
const int motor_sp1 = 128; //超信地旋回速度
const int motor_sp0 = 255; //超高速

const int LED_1 = 22; //主砲
const int LED_2 = 24; //機銃
const int LED_3 = 26; //ブレーキランプ
const int LED_4 = 28; //主砲準備中
const int LED_8 = 36; //ヘッドランプ

USB Usb;
BTD Btd(&Usb); //そうしたBluetooth Dongleの事例を作成する必要があります
PS3BT PS3(&Btd); //これで事例が作成されます
//PS3BT PS3(&Btd, 0x00, 0x15, 0x83, 0x3D, 0x0A, 0x57);
// これにはBluetoothアドレスも格納されます
// これはスケッチを実行するときにドングルから取得できます

void setup() {
pinMode(PWMA, OUTPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
pinMode(LED_3, OUTPUT);
pinMode(LED_4, OUTPUT);
pinMode(LED_8, OUTPUT);

myservo.attach(46); //servo ピン46 (9-11ピンは使えない。)
myservo_1.attach(44); //servo_1 ピン44
myservo.write(servo_pos);
myservo_1.write(servo_pos);
Serial.begin(115200);
while (!Serial); // Wait for serial port to connect - used on Leonardo,
Teensy and other boards with built-in USB CDC serial connection
if (Usb.Init() == -1) {
Serial.print(F("\r\nOSC did not start"));
while (1); //halt
}
Serial.print(F("\r\nPS3 Bluetooth Library Started"));
}

void loop() {
Usb.Task();
if (PS3.PS3Connected) {
//スティックの中央は127だけどピタリと止まらないので+-10ほど余裕を持たせる。
//左スティック上下の値(最上部0、中央127、最下部255)を読み込む
pos_y = PS3.getAnalogHat(LeftHatY);
pos_x = PS3.getAnalogHat(LeftHatX);

/*
砲身 UP/DOWN
スティックが下(20未満)の時は1ずつ下に動く。
スティックが上(235より上)の時1ずつ上に動く。
スティックを中間に戻すと、サーボはその位置で停止。
ボタン(SQUARE)を押すと90°にセット。
*/
if ((PS3.getAnalogHat(RightHatY) > 235) && (servo_pos < 179 )) { // UP
servo_pos++;
myservo.write(servo_pos, servo_sp, true);
} else if ((PS3.getAnalogHat(RightHatY) < 20) && (servo_pos > 1 )) { //DOWN
servo_pos--;
myservo.write(servo_pos, servo_sp, true);
} else if (PS3.getButtonClick(SQUARE)) { //90°
servo_pos = 90;
myservo.write(servo_pos, servo_sp, true);
delay(d_time);
}

//砲塔旋回 (連続回転サーボ) loop処理の関係で停止まで最大1回転する
if (PS3.getAnalogHat(RightHatX) < 137 && PS3.getAnalogHat(RightHatX) > 117) { //停止
myservo_1.write(90, servo1_sp);
} else if (PS3.getAnalogHat(RightHatX) > 235) { //右旋回
myservo_1.write(0, servo1_sp);
} else if (PS3.getAnalogHat(RightHatX) < 20) { //左旋回
myservo_1.write(180, servo1_sp);
}

//砲撃 + リコイル動作 + 赤外線砲撃信号発光
if (PS3.getButtonClick(R1) && ch == 0 ) {
int khz = 38; // 38kHz carrier frequency for the NEC protocol
unsigned int irSignal[] = {4068, 1028, 2024, 2088, 964}; // vs BATTLE TANK jr T-72 40MHz
/* unsigned int irSignal[] = {4048,1068,2048,2008,1044};
vs BATTLE TANK jr エイブラムス 27MHz
AnalysIR Batch Export (IRremote) - RAW
*/
irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz);

Serial.println("FIRE");
digitalWrite(LED_1, HIGH);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, motor_sp0);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, motor_sp0);
ch = 20000; //約5秒間は砲撃不可
delay(70);

digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, 0);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, LOW);
analogWrite(PWMA, 0);
delay(20);

digitalWrite(LED_1, LOW);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_sp1);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_sp1);
delay(130);
} else {
if (ch > 0) {
ch--;
digitalWrite(LED_4, HIGH); //装填中
} else {
digitalWrite(LED_4, LOW); //砲撃可
}
}

//銃撃
if ( PS3.getButtonClick(L1)) {
for ( int i = 0; i < 5 ; i++) {
val++;
Serial.print("L1 : ");
Serial.println(PS3.getButtonClick(L1));
Serial.println("DA ");
Serial.println(val);
digitalWrite(LED_2, HIGH);
delay(50);
digitalWrite(LED_2, LOW);
delay(50);
Serial.println("");
}
}

//ヘッドライト
if (PS3.getButtonClick(RIGHT)) { //点灯
digitalWrite(LED_8, HIGH);
} else if (PS3.getButtonClick(LEFT)) { //消灯
digitalWrite(LED_8, LOW);
}

//左スティックがセンター付近は停止(ブレーキ)
if (pos_x >= 117 && pos_x <= 137 && pos_y >= 117 && pos_y <= 137) {
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, 0);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, HIGH);
analogWrite(PWMA, 0);
digitalWrite(LED_3, HIGH); //ブレーキランプ点灯
}

//前進
else if (pos_y < 117 && pos_x > 117 && pos_x < 137) {
//左スティック中央(127)から最上部(0)の値をモーターのスピード0から255に変換
motor_speed = map(pos_y, 117, 0, 0, 255);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_speed);
digitalWrite(LED_3, LOW);
}

//後進
else if ( pos_y > 137 && pos_x > 117 && pos_x < 137) {
motor_speed = map(pos_y, 137, 255, 0, 255);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, motor_speed);
digitalWrite(LED_3, LOW);
}

//前進右旋回
else if ( pos_y < 117 && pos_x > 137) {
motor_speed = map(pos_y, 117, 0, 0, 255);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_speed);
digitalWrite(LED_3, LOW);
}

//前進左旋回
else if ( pos_y < 117 && pos_x < 117) {
motor_speed = map(pos_y, 117, 0, 0, 255);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_speed);
digitalWrite(LED_3, LOW);
}

//後進右旋回
else if ( pos_y > 137 && pos_x > 137) {
motor_speed = map(pos_y, 137, 255, 0, 255);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_speed);
digitalWrite(LED_3, LOW);
}

//後進左旋回
else if ( pos_y > 137 && pos_x < 117) {
motor_speed = map(pos_y, 117, 0, 0, 255);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, motor_speed);
digitalWrite(LED_3, LOW);
}

//右超信地旋回
else if ( pos_y > 117 && pos_y < 137 && pos_x > 137) {
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_sp1);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, motor_sp1);
digitalWrite(LED_3, LOW);
}

//左超信地旋回
else if ( pos_y > 117 && pos_y < 137 && pos_x < 117) {
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, motor_sp1);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_sp1);
digitalWrite(LED_3, LOW);
}
}
}

ArduinoでRC可動戦車(6)

2018-11-05 21:03:58 | Arduino

2018-11-04
arduinoでサーボの使い方(プログラミング)が上手くいかなかったが、やっと思ったように動くようになった。
以下、考えに誤りがあるかもしれませんが、改善した内容を記録します。

【改善前】

    if (PS3.getAnalogHat(RightHatY) < 20) {                      // UP
      for ( servo_pos; servo_pos < 180; servo_pos++) {
        myservo.write(servo_pos, servo_sp, true);
      }
    }

  スティックを上下に倒すとサーボが回転し、離すと止まる様にしたいが、
  このスケッチだと、for文が実行中はスティックを戻しても
  (PS3.getAnalogHat(RightHatY))の値は125にならず20未満のまま。
  for文の中でスティック情報を読み取る様にしても、
  for文が実行中はスティックの値が変化せず、スティックを戻しても止まらない。

【改善後】 for文をやめ、loop1回ごとでカウントup/downをする様に変更。

    if ((PS3.getAnalogHat(RightHatY) < 20) && (servo_pos < 179 )) {  // UP
      servo_pos++;
      myservo.write(servo_pos, servo_sp, true);
    }
 
    if ((PS3.getAnalogHat(RightHatY) > 235) && (servo_pos > 1 )) {  //DOWN
      servo_pos--;
      myservo.write(servo_pos, servo_sp, true);
    }
 
    if (PS3.getButtonClick(SQUARE)) {                   //90°
      servo_pos = 90;
      myservo.write(servo_pos, servo_sp, true);
      delay(d_time);
    }
 
 

【今後の課題】

1. 現状ではアナログ出力の制限から砲塔旋回はDCモータの設定だが、できればサーボで動かすようにしたい。

2. 1/35 戦車模型に組み込むには小型化が必須。

 

【現時点の最新スケッチ】  

/*
PS3BT_arduino_tank_2dcmotor_TB6612_FIRE_C2
モータドライバはTB6612
3ピンでサーボモータ(砲身上下)を動かす Ver.3
砲塔旋回モータを追加
砲撃時のリコイルアクション+LED点灯、銃撃時のLED点滅(5回)の機能を追加
出力8本のGPIOを使用し、LED点灯をさせる
*/

#include
#include
#ifdef dobogusinclude
#include
#endif
#include // needed by Arduino IDE
#include
MaxGPIO max;
//#include
//Servo myservo;
#include
VarSpeedServo myservo;
int servo_pos = 90;
const int servo_sp = 50;
const int d_time = 20;
int ch = 0;
int val = 0;
int pos_y;
int pos_x;
int PWMA = 5; // ← 11 Aモータ PWM 左側モータ
int AIN1 = 4; // ← 9 Aモータ IN1 ( 9ピンはUSBホストシールド使用
int AIN2 = 2; // ← 8 Aモータ IN2
int BIN1 = 8; // ← 7 Bモータ IN1
int BIN2 = 7; // ← 6 Bモータ IN2
int PWMB = 6; // ← 10 Bモータ PWM 右側モータ ( 10ピンはUSBホストシールド使用

int motor_speed;
const int motor_sp1 = 128; //超信地旋回速度
const int motor_sp0 = 255; //超高速

USB Usb;
BTD Btd(&Usb); //そうしたBluetooth Dongleの事例を作成する必要があります
PS3BT PS3(&Btd); //これで事例が作成されます
//PS3BT PS3(&Btd, 0x00, 0x15, 0x83, 0x3D, 0x0A, 0x57);
// これにはBluetoothアドレスも格納されます
// これはスケッチを実行するときにドングルから取得できます

void setup() {
pinMode(PWMA, OUTPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(PWMB, OUTPUT);

myservo.attach(3); //servo1 ピン3 (9-11ピンは使えない)
myservo.write(servo_pos);

Serial.begin(115200);
while (!Serial); // Wait for serial port to connect - used on Leonardo,
Teensy and other boards with built-in USB CDC serial connection
if (Usb.Init() == -1) {
Serial.print(F("\r\nOSC did not start"));
while (1); //halt
}
Serial.print(F("\r\nPS3 Bluetooth Library Started"));
}

void loop() {
Usb.Task();
if (PS3.PS3Connected) {
//スティックの中央は127だけどピタリと止まらないので+-10ほど余裕を持たせる。
//左スティック上下の値(最上部0、中央127、最下部255)を読み込む
pos_y = PS3.getAnalogHat(LeftHatY);
pos_x = PS3.getAnalogHat(LeftHatX);

/*
砲身 UP/DOWN
スティックが下(20未満)の時は1ずつ下に動く。
スティックが上(235より上)の時1ずつ上に動く。
スティックを中間に戻すと、サーボはその位置で停止。
ボタン(SQUARE)を押すと90°にセット。
*/
if ((PS3.getAnalogHat(RightHatY) < 20) && (servo_pos < 179 )) { // UP
servo_pos++;
myservo.write(servo_pos, servo_sp, true);
}

if ((PS3.getAnalogHat(RightHatY) > 235) && (servo_pos > 1 )) { //DOWN
servo_pos--;
myservo.write(servo_pos, servo_sp, true);
}

if (PS3.getButtonClick(SQUARE)) { //90°
servo_pos = 90;
myservo.write(servo_pos, servo_sp, true);
delay(d_time);
}

//砲塔旋回
if (PS3.getAnalogHat(RightHatX) > 235) { //右旋回
max.write(5, HIGH);
max.write(6, LOW);
} else if (PS3.getAnalogHat(RightHatX) < 20) { //左旋回
max.write(5, LOW);
max.write(6, HIGH);
} else { //停止
max.write(5, LOW);
max.write(6, LOW);
}

//砲撃
//リコイル
if (PS3.getButtonClick(R1) && ch == 0 ) {
Serial.println("FIRE");
max.write(0, HIGH);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, motor_sp0);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, motor_sp0);
ch = 20000; //約5秒間は砲撃不可
delay(70);

digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, 0);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, LOW);
analogWrite(PWMA, 0);
delay(20);

max.write(0, LOW);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_sp1);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_sp1);
delay(130);
} else {
if (ch > 0) {
ch--;
max.write(3, HIGH); //装填中
} else {
max.write(3, LOW); //砲撃可
}
}

//銃撃
if ( PS3.getButtonClick(L1)) {
for ( int i = 0; i < 5 ; i++) {
val++;
Serial.print("L1 : ");
Serial.println(PS3.getButtonClick(L1));
Serial.println("DA ");
Serial.println(val);
max.write(1, HIGH);
delay(50);
max.write(1, LOW);
delay(50);
Serial.println("");
}
}

//ヘッドライト
if (PS3.getButtonClick(RIGHT)) { //点灯
max.write(7, HIGH);
}

if (PS3.getButtonClick(LEFT)) { //消灯
max.write(7, LOW);
}

//左スティックがセンター付近は停止(ブレーキ)
if (pos_x >= 117 && pos_x <= 137 && pos_y >= 117 && pos_y <= 137) {
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, 0);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, HIGH);
analogWrite(PWMA, 0);
max.write(2, HIGH); //ブレーキランプ点灯
}

//前進
else if (pos_y < 117 && pos_x > 117 && pos_x < 137) {
//左スティック中央(127)から最上部(0)の値をモーターのスピード0から255に変換
motor_speed = map(pos_y, 117, 0, 0, 255);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_speed);
max.write(2, LOW);
}

//後進
else if ( pos_y > 137 && pos_x > 117 && pos_x < 137) {
motor_speed = map(pos_y, 137, 255, 0, 255);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, motor_speed);
max.write(2, LOW);
}

//前進右旋回
else if ( pos_y < 117 && pos_x > 137) {
motor_speed = map(pos_y, 117, 0, 0, 255);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_speed);
max.write(2, LOW);
}

//前進左旋回
else if ( pos_y < 117 && pos_x < 117) {
motor_speed = map(pos_y, 117, 0, 0, 255);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_speed);
max.write(2, LOW);
}

//後進右旋回
else if ( pos_y > 137 && pos_x > 137) {
motor_speed = map(pos_y, 137, 255, 0, 255);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_speed);
max.write(2, LOW);
}

//後進左旋回
else if ( pos_y > 137 && pos_x < 117) {
motor_speed = map(pos_y, 117, 0, 0, 255);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_speed);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, motor_speed);
max.write(2, LOW);
}

//右超信地旋回
else if ( pos_y > 117 && pos_y < 137 && pos_x > 137) {
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, motor_sp1);
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, motor_sp1);
max.write(2, LOW);
}

//左超信地旋回
else if ( pos_y > 117 && pos_y < 137 && pos_x < 117) {
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, motor_sp1);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, motor_sp1);
max.write(2, LOW);
}
}
}


天橋立までドライブ

2018-11-04 01:07:58 | 日帰り観光旅行
天橋立までドライブ。
往復450km。
名古屋高速、名神高速、北陸自動車道、舞鶴若狭自動車道、京都縦貫自動車道、綾部宮津道路を走ります。
8時に出発したところ、一宮インター付近で大渋滞。
1時間以上の遅延だが、無理はしません。
休憩は1時間毎にとります。(ペットのトイレ事情もあるので)

三方五湖PAから見えるのは三方湖のみでした。

天橋立オートキャンプ場付近までやってくると、こちらも大渋滞。
みなさん、駐車できるところを探しています。
両側の駐車できる場所は全て臨時駐車場です。
600円から1000円。
どこにも駐車できず、天橋立駅を通過。
渋滞はなくなります。
文殊公園となりの天橋立駐車場は空きがかなりあります。
料金は600円。
文殊公園ではちょい投げで釣りを楽しむ方がいます。
釣果をお聞きすると、今日はエイばかりとの事でした。

10分ほどペットと散歩しながら天橋立ビューランドのモノレール乗り場まで戻ります。
ペット同伴ではモノレールには乗車できませんが、リフトには乗れます。
展望台からの「天橋立」の眺めは絶景です。
ここから臨む松並木は飛龍観と呼ばれ、龍が天に昇る姿に例えられているそうです。

2時間ほど観光して帰路につきます。
途中の道路情報で羽島-一宮間で事故による渋滞6kmとのこと。
と言う事で、のんびり帰ります。