DIY micro:bit buggy

DIY har mange grader. Jeg har endnu ikke udvundet mit eget kobber, men bygget en buggy baseret på micro:bit, inspireret af de mange Arduino-baserede tohjulede buggy’s, som findes. Fx denne:

Basic robot.jpgBy SimonwilmotEget arbejde, CC BY-SA 3.0, Link

Hverken Arduino eller micro:bit giver strøm nok til de gule DC motorer, som mange af robotbilerne bruger. Derfor skal bruges et board eller skjold. Fx et motorboard eller L298N. Her er brugt L298N.

Simpelt kredsløb:

Det kræver et connector (breakout-)board at lave kredsløbet.

Bemærk at både Boardets “0V” og batteriboksens sorte ledning, skal forbindes til GND på L298N. De fleste forbindelser kan skabes med hun-hun kabler:

Alle dele monteres fx som:

De pins som styrer om motorerne drejer, og hvilken vej, ses her. De styres af digitale signaler, som kan have værdien 0 eller 1 (tændt eller slukket).

Motorerne kører på max eller ingen omdrejninger. Husk at der skal være jumpers på pin EnA og EnB på L298N -det er de sorte “hatte” i de gule cirkler nedenfor.

Koden (JavaScript) for en motor-test, som kører fremad, bagud, drej til den ene side, drej til den anden side, stop:
pins.digitalWritePin(DigitalPin.P13, 0)
pins.digitalWritePin(DigitalPin.P14, 1)
pins.digitalWritePin(DigitalPin.P15, 0)
pins.digitalWritePin(DigitalPin.P16, 1)
basic.pause(2000)
pins.digitalWritePin(DigitalPin.P13, 1)
pins.digitalWritePin(DigitalPin.P14, 0)
pins.digitalWritePin(DigitalPin.P15, 1)
pins.digitalWritePin(DigitalPin.P16, 0)
basic.pause(2000)
pins.digitalWritePin(DigitalPin.P13, 1)
pins.digitalWritePin(DigitalPin.P14, 0)
pins.digitalWritePin(DigitalPin.P15, 0)
pins.digitalWritePin(DigitalPin.P16, 1)
basic.pause(2000)
pins.digitalWritePin(DigitalPin.P13, 0)
pins.digitalWritePin(DigitalPin.P14, 1)
pins.digitalWritePin(DigitalPin.P15, 1)
pins.digitalWritePin(DigitalPin.P16, 0)
basic.pause(2000)
pins.digitalWritePin(DigitalPin.P13, 0)
pins.digitalWritePin(DigitalPin.P14, 0)
pins.digitalWritePin(DigitalPin.P15, 0)
pins.digitalWritePin(DigitalPin.P16, 0)

Supplér evt. med passende pile/billeder i 5×5 displayet.

Styre hastighed:
Ovenfor et simpelt kredsløb, idet pin EnA og EnB på L298N ikke anvendes (se ovenfor). Når disse to pins bruges og forbindes med særlige pins på micro:bitten, kan de styre omdrejningstallet, gennem et analogt signal (værdi mellem 0 og 1023).

Hvis hastigheden skal styres kan kredsløbet fx se sådan ud. Husk at fjerne jumper-hattene på pin EnA og EnB (ses ikke på tegningen):

Og forbindelserne skal stilles til:

* = værdi mellem 0 og 1023.

L298N har en pin, som tilsyneladende leverer 5V. Flere steder advarer mod at bruge den som strømforsyning til micro:bit, selv om det er fristende.

Kode, som får buggy til at accellerere til max og derefter stop. Vigtigt at give analoge pins besked, før de digitale:
basic.showIcon(IconNames.Snake)
for (let index = 0; index <= 1023; index++) {
index += 10
pins.analogWritePin(AnalogPin.P0, index)
pins.digitalWritePin(DigitalPin.P13, 0)
pins.digitalWritePin(DigitalPin.P14, 1)
pins.analogWritePin(AnalogPin.P1, index)
pins.digitalWritePin(DigitalPin.P15, 0)
pins.digitalWritePin(DigitalPin.P16, 1)
basic.pause(100)
}
pins.digitalWritePin(DigitalPin.P13, 0)
pins.digitalWritePin(DigitalPin.P14, 0)
pins.digitalWritePin(DigitalPin.P15, 0)
pins.digitalWritePin(DigitalPin.P16, 0)

Test:

Hvis de to motorer ikke kører samme vej, byttes om på to ledninger. Hvis de ikke kører lige hurtigt (som i videoen), kan kompasset evt. bruges til at korrigerer. Buggy’en kan udbygges med afstandsmåler eller Bluetooth-styring eller begge dele.

Mere inspiration kan hentes her.

Dette indlæg blev udgivet i Maker, Micro:bit. Bogmærk permalinket.