Hardware components | ||||||
![]() |
| × | 2 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
Hand tools and fabrication machines | ||||||
| ||||||
| ||||||
| ||||||
환상의 조 알김정임은 마이크로 비트를 활용해 RC카를 조종하는 방법을 구현해 보았습니다.
기본적을 A버튼이 엑셀레이터의 기능을 하여, 작동시 A버튼을 누른 상태로 조종되게 하였습니다.
A버튼을 누른 상태로 마이크로 비트를 왼쪽으로 기울이면 좌회전
A버튼을 누른 상태로 마이크로 비트를 오른쪽으로 기울이면 위회전
A버튼을 누른 상태로 마이크로 비트를 앞으로 기울이면 전진
A버튼을 누른 상태로 마이크로 비트를 뒤로 기울이면 후진합니다.
전진, 후진, 좌회전, 우회전 구동 장면
그 외도 거리측정 센서를 부착하여 RC카 전방 30cm 안으로 물체가 접근 시
자동으로 멈출 수 있게 구현했습니다.
참고 하셔서 즐거운 RC카 드라이빙을 즐기세요.
let item = 0
input.onButtonPressed(Button.A, () => {
radio.sendNumber(item)
})
input.onGesture(Gesture.TiltLeft, () => {
item = 1
basic.showLeds(`
. . # . .
. # . . .
# # # # #
. # . . .
. . # . .
`)
})
input.onGesture(Gesture.LogoUp, () => {
item = 4
basic.showLeds(`
. . # . .
. . # . .
# . # . #
. # # # .
. . # . .
`)
})
input.onButtonPressed(Button.B, () => {
radio.sendNumber(0)
basic.showLeds(`
. # # # .
# . . # #
# . # . #
# # . . #
. # # # .
`)
})
input.onGesture(Gesture.ScreenUp, () => {
item = 2
basic.showLeds(`
. . # . .
. # # # .
# . # . #
. . # . .
. . # . .
`)
})
input.onButtonPressed(Button.AB, () => {
radio.sendNumber(10)
})
input.onGesture(Gesture.TiltRight, () => {
item = 3
basic.showLeds(`
. . # . .
. . . # .
# # # # #
. . . # .
. . # . .
`)
})
radio.setGroup(77)
basic.showIcon(IconNames.Yes)
let item = 0
radio.onDataPacketReceived( ({ receivedNumber }) => {
if (receivedNumber == 0) {
basic.showLeds(`
. # # # .
# . . # #
# . # . #
# # . . #
. # # # .
`)
pins.digitalWritePin(DigitalPin.P8, 0)
pins.digitalWritePin(DigitalPin.P12, 0)
pins.digitalWritePin(DigitalPin.P13, 0)
pins.digitalWritePin(DigitalPin.P14, 0)
} else if (receivedNumber == 1) {
basic.showLeds(`
. . # . .
. . . # .
# # # # #
. . . # .
. . # . .
`)
pins.digitalWritePin(DigitalPin.P8, 1)
pins.digitalWritePin(DigitalPin.P12, 1)
pins.digitalWritePin(DigitalPin.P13, 1)
pins.digitalWritePin(DigitalPin.P14, 1)
} else if (receivedNumber == 2) {
basic.showLeds(`
. . # . .
. . # . .
# . # . #
. # # # .
. . # . .
`)
pins.digitalWritePin(DigitalPin.P8, 0)
pins.digitalWritePin(DigitalPin.P12, 0)
pins.digitalWritePin(DigitalPin.P13, 1)
pins.digitalWritePin(DigitalPin.P14, 1)
} else if (receivedNumber == 3) {
basic.showLeds(`
. . # . .
. # . . .
# # # # #
. # . . .
. . # . .
`)
pins.digitalWritePin(DigitalPin.P8, 0)
pins.digitalWritePin(DigitalPin.P12, 1)
pins.digitalWritePin(DigitalPin.P13, 1)
pins.digitalWritePin(DigitalPin.P14, 1)
} else if (receivedNumber == 4) {
basic.showLeds(`
. . # . .
. # # # .
# . # . #
. . # . .
. . # . .
`)
pins.digitalWritePin(DigitalPin.P8, 0)
pins.digitalWritePin(DigitalPin.P12, 0)
pins.digitalWritePin(DigitalPin.P13, 0)
pins.digitalWritePin(DigitalPin.P14, 1)
} else if (receivedNumber == 10) {
for (let i = 0; i < 4; i++) {
pins.digitalWritePin(DigitalPin.P11, 1)
pins.analogWritePin(AnalogPin.P0, 400)
basic.pause(100)
pins.digitalWritePin(DigitalPin.P11, 0)
pins.analogWritePin(AnalogPin.P0, 0)
basic.pause(100)
}
}
})
pins.digitalWritePin(DigitalPin.P11, 0)
radio.setGroup(77)
basic.showIcon(IconNames.Yes)
basic.forever(() => {
item = sonar.ping(
DigitalPin.P16,
DigitalPin.P2,
PingUnit.Centimeters
)
if (item <= 30) {
pins.digitalWritePin(DigitalPin.P8, 0)
pins.digitalWritePin(DigitalPin.P12, 0)
pins.digitalWritePin(DigitalPin.P13, 0)
pins.digitalWritePin(DigitalPin.P14, 0)
}
})














Comments