Elektronisk LEGO

Micro:bit er en god introduktion til computer og elektronik for de 9-15 årige. Da mange af de yngste også leger med Lego, er det oplagt, at kombinere Lego med Micro:bit.

Og noget af det sjoveste imo ved computer science, er at styre motorer. Fx en servo-motor, som her skal bruges til en katapult. Det er Micro:bit ikke ideel til, bl.a. fordi en motor ofte kræver mere strøm end micro:bit kan levere. Men det kan lade sig gøre fx via et motor-breakout board.

Her vil jeg dog i stedet give motoren strøm fra et eksternt 9V batteri, så boarded er ikke nødvendigt. Og når batteriet alligevel er fremme, kan det lige så godt give strøm til Micro:bit, selv om denne max tåler 5V. Jeg giver den 3,3V.

For at komme fra 9V til 3,3V bruger jeg en volt-regulator (efter råd af Martin Lilliendal), som giver en fast spænding, men også et vametab: LM1117T-3.3. Men strøm kan også leveres til bitten via USB eller 2xAAA batterier og til servoen via 9V batteri -gør kredsløbet noget enklere.

Jeg har forbundet via pin connectors/jumper wires:
        
Men forbindelser kan næsten lige så vel skabes med krokodillenæb eller bedre ved lodning.

Kredsløb:

Det er afgørende, at Micro:bit ikke får 9V! Så mål evt. spændingen med et multimeter på den sorte og røde ledning, som går til Micro:bit.

Den ene knap (A) skal lade katapulten til en vagfri vinkel (jo længere tid der trykkes, desto længere går armen ned), og den anden knap (B) skal affyre.

Det er ikke den aller nemmeste kode, og ej heller kredsløb, så projektet er ikke velegnet til de mindste. Men ændres koden, så servoen blot drejer til to fastsatte vinkler, er det noget nemmere.

Kode bygget i pxt miljøet: show leds, er ikke nødvendigt.

JavaScript:
let angle = 10
basic.forever(() => {
while (input.buttonIsPressed(Button.A)) {
pins.servoWritePin(AnalogPin.P0, angle)
basic.pause(10)
angle = angle + 1
}
while (input.buttonIsPressed(Button.B)) {
angle = 10
pins.servoWritePin(AnalogPin.P0, angle)
basic.pause(100)
}
})

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