LeeDoYoungJung EunsookanakiShin.J.H
Published

소셜임팩트_RC탱크(Tank) 만들기(2조)

micro:bit를 이용하여 RC탱크를 https://www.hackster.io/projects/d5c022/edit#basics만들어 본다.

IntermediateWork in progress37
소셜임팩트_RC탱크(Tank) 만들기(2조)

Things used in this project

Hardware components

BBC micro:bit board
BBC micro:bit board
×2
battery 9v
×1
extension board of micro:bit by William
×1
2AA Battery Holder for RTC
UDOO 2AA Battery Holder for RTC
×1

Software apps and online services

pxt.microbit.org
micro:bit pxt.microbit.org

Story

Read more

Schematics

Receiver 순서도

Sender 순서도

Code

sender

JavaScript
송신기(마이크로비트)의 로고가 내려가도록 기울이면 "전진", 로고가 위로 올라가도록 기울이면 "후진", 왼쪽으로 기울이면 "좌회전", 오른쪽으로 기울이면 "우회전" 신호를 발생시키며 스크린에 방향 표시를 한다.
input.onGesture(Gesture.LogoDown, () => {
    radio.sendString("go")
    basic.showLeds(`
        . . # . .
        . # # # .
        # # # # #
        . . # . .
        . . # . .
        `)
})
input.onGesture(Gesture.LogoUp, () => {
    radio.sendString("back")
    basic.showLeds(`
        . . # . .
        . . # . .
        # # # # #
        . # # # .
        . . # . .
        `)
})
input.onGesture(Gesture.TiltLeft, () => {
    radio.sendString("left")
    basic.showLeds(`
        . . # . .
        . # # . .
        # # # # #
        . # # . .
        . . # . .
        `)
})
input.onGesture(Gesture.TiltRight, () => {
    radio.sendString("right")
    basic.showLeds(`
        . . # . .
        . . # # .
        # # # # #
        . . # # .
        . . # . .
        `)
})
input.onButtonPressed(Button.B, () => {
    radio.sendString("stop")
    basic.showLeds(`
        . . . . .
        . # # # .
        . # # # .
        . # # # .
        . . . . .
        `)
})
radio.setGroup(109)

receiver

JavaScript
송신기로부터 받은 신호에 따라 탱크의 두 모터를 제어한다. "전진"은 두 모터를 앞으로 회전, "후진"은 두 모터를 뒤로 회전, "좌회전"은 왼쪽 모터는 뒤로, 오른쪽 모터는 앞으로, "우회전"은 왼쪽 모터를 앞으로, 오른쪽 모터를 뒤로 회전시킨다. "정지" 신호를 받으면 모터에 전원을 차단한다.
// receiver
radio.onDataPacketReceived( ({ receivedString }) =>  {
    pins.digitalWritePin(DigitalPin.P12, 1)
    pins.digitalWritePin(DigitalPin.P14, 1)
    if (receivedString == "left") {
        pins.digitalWritePin(DigitalPin.P8, 0)
        pins.digitalWritePin(DigitalPin.P13, 1)
        basic.showLeds(`
            . . # . .
            . # . . .
            # # # # #
            . # . . .
            . . # . .
            `)
        basic.pause(1000)
    } else if (receivedString == "right") {
        pins.digitalWritePin(DigitalPin.P8, 1)
        pins.digitalWritePin(DigitalPin.P13, 0)
        basic.showLeds(`
            . . # . .
            . . . # .
            # # # # #
            . . . # .
            . . # . .
            `)
        basic.pause(1000)
    } else if (receivedString == "go") {
        pins.digitalWritePin(DigitalPin.P8, 1)
        pins.digitalWritePin(DigitalPin.P13, 1)
        basic.showLeds(`
            . . # . .
            . # # # .
            # . # . #
            . . # . .
            . . # . .
            `)
        basic.pause(1000)
    } else if (receivedString == "back") {
        pins.digitalWritePin(DigitalPin.P8, 0)
        pins.digitalWritePin(DigitalPin.P13, 0)
        basic.showLeds(`
            . . # . .
            . . # . .
            # . # . #
            . # # # .
            . . # . .
            `)
        basic.pause(1000)
    } else if (receivedString == "stop") {
        pins.digitalWritePin(DigitalPin.P12, 0)
        pins.digitalWritePin(DigitalPin.P14, 0)
        basic.showLeds(`
            # # # # #
            # # # # #
            # # # # #
            # # # # #
            # # # # #
            `)
    }
})
radio.setGroup(109)
pins.digitalWritePin(DigitalPin.P12, 0)
pins.digitalWritePin(DigitalPin.P14, 0)

Credits

LeeDoYoung
2 projects • 1 follower
Jung Eunsook
3 projects • 2 followers
I teach computer science in a middle school. I'm a beginner in making. I'm trying to provide a variety of experiences to children.
anaki
2 projects • 0 followers
Shin.J.H
2 projects • 0 followers
Thanks to John Kim.

Comments