Arduinoではモーターの駆動がどうしてもしっくりいかなかったのでmicrobitで再挑戦しました。思った以上によくできました。servo,motorよく作動しました。歓喜の歌のメロディ付きです。passivebuzzerを取り付けました。
YouTube:microbit Wall-E Robot 2020 Happy New Year melody付 2020.01.03 動画をアップしてます!
microbit Wall-E Robot 2020 Happy New Year 20200103 micro:bit でWall-E を動かしてみました!歓喜の歌付きです! Wall-EはThingiverseのShinWeiChiouさんを参考にしました! Wall-E costume for Robot Shield & LinkIt 7697 by ShinWeiChiou Nov 1, 2017
microbit プログラム一部 micro:bit MakeCode micro:bit サイトへ
microbit プログラム(javascript) micro:bit MakeCode micro:bit サイトへ
//Microbit_DFrobot_Wall-E_20200103 by AKIOSTEM
function Forward () {
motor.MotorRun(motor.Motors.M1, motor.Dir.CW, 200)
motor.MotorRun(motor.Motors.M2, motor.Dir.CW, 200)
}
function Servo_Head () {
motor.servo(motor.Servos.S1, 45)
basic.pause(1000)
motor.servo(motor.Servos.S1, 15)
basic.pause(1000)
motor.servo(motor.Servos.S1, 90)
basic.pause(1000)
motor.servo(motor.Servos.S1, 45)
basic.pause(1000)
}
function Servo_Right () {
motor.servo(motor.Servos.S3, 45)
basic.pause(1000)
motor.servo(motor.Servos.S3, 90)
basic.pause(1000)
motor.servo(motor.Servos.S3, 15)
basic.pause(1000)
motor.servo(motor.Servos.S3, 45)
basic.pause(1000)
}
function Back () {
motor.MotorRun(motor.Motors.M1, motor.Dir.CCW, 150)
motor.MotorRun(motor.Motors.M2, motor.Dir.CCW, 150)
}
function Stop () {
motor.MotorRun(motor.Motors.M1, motor.Dir.CW, 0)
motor.MotorRun(motor.Motors.M2, motor.Dir.CW, 0)
}
function Left () {
motor.MotorRun(motor.Motors.M1, motor.Dir.CW, 150)
motor.MotorRun(motor.Motors.M2, motor.Dir.CW, 0)
}
function Servo_Left () {
motor.servo(motor.Servos.S2, 45)
basic.pause(1000)
motor.servo(motor.Servos.S2, 15)
basic.pause(1000)
motor.servo(motor.Servos.S2, 90)
basic.pause(1000)
motor.servo(motor.Servos.S2, 45)
basic.pause(1000)
}
function turn_left () {
motor.MotorRun(motor.Motors.M1, motor.Dir.CW, 250)
motor.MotorRun(motor.Motors.M2, motor.Dir.CW, 50)
}
function Right () {
motor.MotorRun(motor.Motors.M1, motor.Dir.CW, 0)
motor.MotorRun(motor.Motors.M2, motor.Dir.CW, 150)
}
function turn_right () {
motor.MotorRun(motor.Motors.M1, motor.Dir.CW, 50)
motor.MotorRun(motor.Motors.M2, motor.Dir.CW, 250)
}
led.enable(true)
pins.digitalWritePin(DigitalPin.P14, 1)
music.beginMelody(music.builtInMelody(Melodies.Ode), MelodyOptions.Once)
basic.showIcon(IconNames.Heart)
basic.pause(100)
basic.showString("Happy New Year 2020!")
let DISTANCE = 0
basic.forever(function () {
DISTANCE = sonar.ping(
DigitalPin.P1,
DigitalPin.P2,
PingUnit.Centimeters
)
serial.writeNumber(DISTANCE)
Stop()
basic.pause(500)
Servo_Head()
basic.showArrow(ArrowNames.North)
Forward()
basic.pause(1500)
basic.showArrow(ArrowNames.South)
Back()
basic.pause(1000)
basic.showIcon(IconNames.No)
Stop()
basic.pause(1000)
basic.showArrow(ArrowNames.West)
Left()
basic.pause(2500)
basic.showArrow(ArrowNames.East)
Right()
basic.pause(2500)
basic.showIcon(IconNames.No)
Stop()
basic.pause(1000)
Servo_Head()
basic.showArrow(ArrowNames.NorthWest)
turn_left()
basic.pause(3000)
basic.showArrow(ArrowNames.NorthEast)
turn_right()
basic.pause(3000)
basic.showIcon(IconNames.No)
Stop()
basic.pause(1000)
Servo_Head()
Servo_Right()
Servo_Left()
})