Bit:Bot Flere opgaver!

Relaterede dokumenter
Bit:Bot Introduktion og første opgave

Bit:Bot Introduktion og første opgave

BitBot robotbil - Kørsel

64 til BBC micro:bit en. :GAME Advarsel: TM. Kortets layout:

Micro-pixel Neopixel til micro:bit

Mircobit Kursus Lektion 1

Kom igang med Scroll:bit

SPHERO 2.0 undervisningsforløb til mellemtrinnet i matematik Polygoner og vinkler

Extraudstyr og opgaver til Micro:Bit

9. Tyverialarm med buzzer

BBC micro:bit så er du i gang

Lær Edison at kende. Det her er Edison en programmerbar robot

Dit eventyr med robotter Det er dig, der styrer

Konfiguration af BOOX Nova. Der tages forbehold for trykfejl og ændringer i producentens / Googles software.

Under 'Microsoft Block Editor', klik 'New project' for at åbne block editor-værktøjet.

LAVET AF HANS-CHRISTIAN KELLER 1

Det er nemmere at indtaste det her hvis programmet er væk

Hos Podconsultsbutik kan du finde vandpumpen i 3 udgaver, hvilket har betydning for hvordan du samler og forbinder pumpen til din Micro:bit.

Lær Python - Dag 4, modul 2 Objektorienteret programmering

Mircobit Kursus Lektion 4 (Du skal her vælge Lets Code Og herefter Block Editor.)

SÅDAN BRUGER DU TEKST- BEHANDLING INTRODUKTION

Michael Jokil

Morse med micro:bit. Morse med micro:bit

TinkerCad - Arduino simulator

Dit eventyr med robotter Det er dig, der programmerer

Manual for VALTRONICS IP kamera Android APP

Guide til opdatering af Parrot CK3100 LCD, 3200LS Color, 3200LS+ og MK6100 med en Parrot Dongle

Efter installation af GEM Drive Studio software fra Delta s CD-rom, skal hoved skærmbilledet se således ud: (koden til administrator adgang er: admin)

Sådan logger du ind... 2 Hvilke mapper kan du tilgå... 3 Visning af eksempel af en fil... 5 Sådan deler du en fil... 7 Se hvad du deler med andre...

Sådan laver du en animationsfilm

Fable Kom godt i gang

Montage bjælkeklipper BM 870 III Art. No / BM 875 III Art. No

Gå ind på forsiden til hjemmesiden. Skriv typo3 i adresselinjen og tryk på retur.

I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide

Mircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)

Edb-tekstbehandling, præsentation mm

Fable Kom godt i gang

Lav din egen forside i webtrees

IT sikkerhed Whitelist

Manual for Synkron hjemmesider

Simulering af en Mux2

Genvejstaster i kapilel 6. IKON BETEGNELSE INDLAGT SKAL TILFØJES Set Auto Borders Indsætter færdigt tegnede kanter,

MSI pakke til distribution af AutoPilot komponenter.

MV-Nordic Lucernemarken Odense S Telefon mv-nordic.com

Opgaver. Notater. Opgave 1: Find kursus hjemmeside og bladre lidt rundt på siderne.

Gmail Lær det selv! Valdemar Bonde

Hurtigbrugsanvisning til Dynomet 6.31 for Windows 7

Kom godt i gang med Fable-robotten

Advanced Sitecore Google Maps

Start af nyt schematic projekt i Quartus II

Beat the Clock Sorteringsnetværk

FitLight Trainer brugsvejledning. Tablet controller. version 1.7

Brugermanual 3D Webcam

Mircobit Kursus Lektion 5 (Du skal her vælge Lets Code og nederst Microsoft Block Editor.)

Vejledning for LOF s afdelingshjemmeside - redigeret i Umbraco

BBC micro:bit Buggy som følger en linje

Vejledning til Mozart Viewer 12

Montage bjælkeklipper BM 5001R Art. No Assembly scythe mower BM 5001R Art. No

Arduino Programmering

Classic Tween. Navigationsseddel. Fase Forklaring Navigation. Åbn en ny Flash File. Åbn Flash, vælg symbolet ud for ActionScript 3.0.

Opret ODBC datakilde Vejledning

PLUK OG SORTER FRUGT

Fase Forklaring Navigation. Åbn Flash, vælg symbolet ud for Actions Script 3.0. Markér frame 15, højreklik og vælg F6

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

xgalleri Mulige filtyper Installation web-version

5 ARBEJDE MED EDITOREN

Rumfart. Introduktion. Scratch. Nu skal du lære hvordan du programmerer din egen animation! Arbejdsliste. Test dit Projekt.

Revision (sidste opdatering) Software Version 8:29

TK/TBL / v.0.1. DigiMatch. Elektronisk Kamprapport

Vejledning. Indhold. Side 1

Hurtigbrugsanvisning til Dynomet 6.66 for Windows 7-10

Sådan kommer du nemt i gang med Joomla!

Apparatur: 1 EV3 startkasse, målebånd, sort bred lærredstape, oplader, kan benyttes som passer, kridt, plader til at lave bakker med, niveauborde.

En lille vejledning i at bruge Paint Win 98 og Win XP Indhold

VEJLEDNING TIL WORD INDHOLDSFORTEGNELSE. 1. Linjeafstand. side Margener.. side Sidehoved og sidefod... side Sidetal..

VALTRONICS IPHONE/IPAD APP BRUGERVEJLEDNING

Som regel kan alle Apps ikke vises på en side du kan derfor skyde frem og tilbage på skyderen. For at se alle dine Apps - klik på den nedadvendende

1. Når egenskaben Handling er indstillet til "Altid" for et løkke-ikon, vises symbolet for uendeligt ( ) nederst til højre i ikonet.

Worldtrack Tracking Platform BRUGERVEJLEDNING Version 2.01

Vejledning til WIFI Kamera. Version 2.0

Fjernbetjening Flex Teknisk manual

Hvordan gør jeg? Gennemgang af fotoredigeringsprogrammet Picasa

TalkingWeb til ipad / Android

Odense Video Klub Bent Sehested Side - 1. Start AE og kontroller indstillingerne for PAL:

SunFlux Varenr.: 03104

Afsnitstyper Susanne V. Andersen

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.

Brugervejledning Webshop... 1 Indhold... 1 Udfyld oplysninger om webshop og firma... 2 Informationsfelter... 3 Specialfelter... 3

Brug af Word til matematik

BRUGERVEJLEDNING DAO - MAGENTO INTEGRATION MODUL VERSION BRUGERVEJLEDNING DAO MAGENTO INTEGRATION

PHP kode til hjemmeside menu.

... øvelser. Fortæl mig, og jeg glemmer. Vis mig, og jeg husker. Involver mig, og jeg forstår. Konfutse

Vejledning til opbygning af hjemmesider

Lær Python dag 1 - modul 1

Velkommen. sidste runde

Cecilie Maria Nielsen, Mathias Fornitz Eriksen og Martin Arnetoft klasse

OPC Access 3.0 opdatering via Stored Procedure

Gode råd til flot og miljøvenlig tekst og grafik.

Grise Nøgle Etui Carmen Jorissen creacarmen.wordpress.com

Transkript:

Bit:Bot Flere opgaver! INDLEDNING Her er yderligere 10 opgaver, som jeg har samlet og oversat. Programmerne er hentet fra Firmaet 4tronics hjemmeside: http://4tronix.co.uk/blog/?p=1490 og fra Mark Atkinsons hjemmeside Multiwingspan: http://multiwingspan.co.uk/micro.php?page=bitbot I Øvelse 2 & 3, er det en fordel at programmere din Bit:Bot ved hjælp af Microsoft PXT-Editoren. I Øvelse 4-10 er det dog MicroPython Editoren du skal bruge! Venlig hilsen og god fornøjelse! Søren Westerholm, Coding Pirates Sorø. OPGAVE 2: BRUG HORNET! Dette er et yderst simpelt program: Programmet ser sådan ud I JavaScript: pins.digitalwritepin(digitalpin.p14, 1) basic.pause(250) pins.digitalwritepin(digitalpin.p14, 0) UDFORDRING: 1. Indsæt programstumpen til Program 1, så din Bit:Bot dytter 1 gang når den kører forlæns og 2 gange når den kører baglæns! 2. Konstruer selv en udfordring! Bit:Bot Flere opgaver Side 1 af 10

ØVELSE 3: 'NEOPIXELS' er navnet for sammenkædede lysdioder (RGB LEDs), der kører på jævnstrøm. Med en enkelt GPIO pin kan du styre en anseelig bunke af disse! Der er 12 Neopixels på din Bit:Bot, 6 på hver side. De er praktisk nok nummereret fra 0-11 på PCB forbindelsen. De 12 Neopixels er forbundet til pin 13. INDLEDNING For at kunne bruge Neopixel blokkene, skal du først importere biblioteket. Dette gør du ved at klikke på Settings link. Vælg import package for at importere biblioteket. De nedenstående blokke bruges til at tænde dine Neopixels i 1 farve! Som JavaScript ser programmet ud som herunder: let robotpixels = neopixel.create(digitalpin.p13, 12, NeoPixelMode.RGB) basic.forever(() => { robotpixels.showcolor(neopixel.colors(neopixelcolors.red)) basic.pause(1000) robotpixels.showcolor(neopixel.colors(neopixelcolors.green)) basic.pause(1000) robotpixels.showcolor(neopixel.colors(neopixelcolors.blue)) basic.pause(1000) robotpixels.clear() basic.pause(1000) }) Bit:Bot Flere opgaver Side 2 af 10

Du kan tænde dine Neopixels individuelt. Nedenstående program tænder den første og den sidste Pixel. De er nummereret fra 1-11. Som JavaScript ser programmet ud som herunder: let robotpixels = neopixel.create(digitalpin.p13, 12, NeoPixelMode.RGB) robotpixels.setpixelcolor(0, neopixel.colors(neopixelcolors.red)) robotpixels.setpixelcolor(11, neopixel.colors(neopixelcolors.red)) Du kan ændre på lysintensiteten af dine Neopixels med følgende programstump: Som JavaScript ser programmet ud som herunder: let robotpixels = neopixel.create(digitalpin.p13, 12, NeoPixelMode.RGB) basic.forever(() => { for (let i = 0; i <= 255; i++) { robotpixels.setbrigthness(i) robotpixels.showcolor(neopixel.colors(neopixelcolors.red)) basic.pause(20) } basic.pause(1000) }) Bit:Bot Flere opgaver Side 3 af 10

Der er indbyggede funktioner som du kan lege med. De giver nogle flotte effekter. Her er et par stykker som du kan prøve: Som JavaScript ser programmet ud som herunder: let robotpixels = neopixel.create(digitalpin.p13, 12, NeoPixelMode.RGB) robotpixels.showrainbow(1, 360) basic.pause(3000) basic.forever(() => { robotpixels.rotate(1) basic.pause(100) }) UDFORDRING: 1. Prøv I forbindelse med Øvelse 1 og Øvelse 2 at bruge lysstyrke og farver til f. eks at vise af til venstre / højre. 2. Ved at bruge forskellige grader af rødt kan du prøve at efterligne et hjertes pulsslag Bit:Bot Flere opgaver Side 4 af 10

ØVELSE 4: FØLG LINIEN! Indledning Din Bit:Bot har 2 liniesensorer monteret på undersiden. De er forbundet til de samme PIN s som knapperne på din Micro:Bit. Du burger en read_digital() kommando på disse pinde til at kontrollere om sensorerne ser en sort linje. Ved at ændre indstillingerne på venstre og højre motors hastighed, kan du, ud fra sensorernes data få din Bit:Bot til f.eks. at følge en cirkel! Hvis den venstre sensor detekterer en sort linje, skal du øge hastigheden på den højre motor og hvis den højre gør der, er det den venstre motors hastighed, der skal øges! Her så programmet, skrevet I MicroPython. Det fungerer fint på en Lego Mindstorm bane, som jo har en ret tyk linje at følge! Det kan sagtens være, at du kommer til at ændre en smule på værdierne for at få din Bit:Bot til at følge en anden linjetykkelse! def Drive(lft,rgt): pin8.write_digital(0) pin12.write_digital(0) if lft<0: pin8.write_digital(1) lft = 1023 + lft if rgt<0: rgt = 1023 + rgt pin12.write_digital(1) pin0.write_analog(lft) pin1.write_analog(rgt) def FollowLine(): lft = pin11.read_digital() rgt = pin5.read_digital() if lft==0 and rgt==1: #turn right Drive(400,100) elif lft==1 and rgt==0: # turn left Drive(100,400) elif rgt==0 and lft==0: # straight on Drive(400,400) sleep(20) # a small delay before starting sleep(1000) # keep on following the line forever FollowLine() Bit:Bot Flere opgaver Side 5 af 10

UDFORDRING: 1. Brug sort elektrikertape til at konstruere dine baner. Det er let at fjerne efter brug, men fungerer bedst hvis kontrasten er stor - altså brug hvidt papir som underlag! 2. Brug funktionerne LightLeft() and LightRight() til at bruge dine Neopixels! 3. Styr din Bit:Bot igennem en farlig labyrint! TILFØJELSESPAKKE TIL PXT-EDITOREN Microsoft PXT-Editoren. Er blevet udvidet med en Bit:Bot pakke. Du installerer pakken, når du har åbnet PXT-Editoren. Klik på Advanced folderen. Klik på Add Package og søg efter Bit:Bot. Din PXT-Editor har nu fået tilføjet nogle nye Byggeklodser, som passer perfekt til programmeringen af din Bit:Bot! UDFORDRING: 3. Løs ØVELSE 4, men gør programmeringen nemmere og simplere ved at bruge dine nye Byggeklodser. Bit:Bot Flere opgaver Side 6 af 10

ØVELSE 5-10: FORSKELLIGE MICROPYTHON PROGRAMMER! Hvis du nu har fået blod på tanden med hensyn til Python programmering, er her en række småprogrammer som du sikkert kan få glæde af. Programmerne klippe / klistres ind i MicroPython Editoren. Her kan du eventuelt tilpasse og ændre dem for til sidst at downloade dem til din Micro:Bit. Jeg har hentet programmerne, så du kan klippe / klistre fra dem. Bemærk, at enkelte af programmerne fylder flere spalter! Programmerne er hentet fra firmaet 4Tronics hjemmeside: http://4tronix.co.uk/blog/?p=1490 Bit:Bot Flere opgaver Side 7 af 10

5. MOTORTEST # Add your Python code here. E.g. lefta = pin0 leftb = pin8 righta = pin1 rightb = pin12 def forward (speedpct): speed = speedpct * 10.23 lefta.write_analog(speed) righta.write_analog(speed) def reverse (speedpct): speed = speedpct * 10.23 lefta.write_analog(1023-speed) righta.write_analog(1023-speed) def spinleft (speedpct): speed = speedpct * 10.23 lefta.write_analog(1023-speed) righta.write_analog(speed) def spinright (speedpct): speed = speedpct * 10.23 lefta.write_analog(speed) righta.write_analog(1023-speed) def stop(): lefta.write_analog(0) righta.write_analog(0) display.show(image.arrow_n) forward(50) sleep(3000) display.show(image.arrow_e) spinright(50) sleep(3000) display.show(image.arrow_s) reverse(50) sleep(3000) display.show(image.arrow_w) spinleft(50) sleep(3000) display.show(image.happy) stop() sleep(3000) 6. NEOPIXEL FARVE TEST! import neopixel from random import randint np = neopixel.neopixel(pin13, 12) bright = 40 for pixel_id in range(0, len(np)): np[pixel_id] = (bright,0,0) sleep(1000) for pixel_id in range(0, len(np)): np[pixel_id] = (0,bright,0) sleep(1000) for pixel_id in range(0, len(np)): np[pixel_id] = (0,0,bright) sleep(1000) for pixel_id in range(0, len(np)): np[pixel_id] = (bright,bright,bright) sleep(1000) 7. FØLG LYSET! lefta = pin0 leftb = pin8 righta = pin1 rightb = pin12 lightsensor = pin2 lightselect = pin16 lightselect.write_digital(0) # select left sensor rval = lightsensor.read_analog() lefta.write_analog(rval) sleep(1) lightselect.write_digital(1) # select right sensor rval = lightsensor.read_analog() righta.write_analog(rval) sleep(1) Bit:Bot Flere opgaver Side 8 af 10

8. SKANNER import neopixel from random import randint numpixels = 12 np = neopixel.neopixel(pin13, numpixels) bright = 40 def setpixel(id, val): if (id>=0 and id<=5): np[id] = (val, 0, val) np[id+6] = (val, 0, val) for i in range (0, 6): setpixel(i-3, 0) setpixel(i-2, 2) setpixel(i-1, 10) setpixel(i, 40) setpixel(i+1, 10) setpixel(i+2, 2) setpixel(i+3, 0) sleep(100) for i in range (6, 0, -1): setpixel(i-3, 0) setpixel(i-2, 2) setpixel(i-1, 10) setpixel(i, 40) setpixel(i+1, 10) setpixel(i+2, 2) setpixel(i+3, 0) sleep(100) 9. FØLG LINIEN! # Add your Python code here. E.g. righta.write_analog(spd) def spinright (spdpct): lefta.write_analog(spd) righta.write_analog(1023-spd) def softright (spdpct): lefta.write_analog(spd) righta.write_analog(350) def stop(): lefta.write_analog(0) righta.write_analog(0) lastfwd = 0 lline = leftline.read_digital() rline = rightline.read_digital() if((lline == 1) and (rline == 0)): softleft(speedturn) #sleep(1) lastfwd = 0 while ((leftline.read_digital() == 1) and (rightline.read_digital() == 0)): pass #sleep(1) elif((rline == 1) and (lline == 0)): softright(speedturn) #sleep(1) lastfwd = 0 while ((rightline.read_digital() == 1) and (leftline.read_digital() == 0)): pass #sleep(1) else: if (lastfwd == 0): forward(speedfwd) lastfwd = 1 lefta = pin0 leftb = pin8 righta = pin1 rightb = pin12 leftline = pin11 rightline = pin5 speedfwd = 100 speedturn = 40 def reverse (spdpct): lefta.write_analog(1023-spd) righta.write_analog(1023-spd) def forward (spdpct): lefta.write_analog(spd) righta.write_analog(spd) def spinleft (spdpct): lefta.write_analog(1023-spd) righta.write_analog(spd) def softleft (spdpct): lefta.write_analog(350) Bit:Bot Flere opgaver Side 9 af 10

10. POWER ON SELFTEST! #Power On Self Test: Tester næsten alle Bit:Bottens funktioner! import neopixel lefta = pin0 leftb = pin8 righta = pin1 rightb = pin12 leftline = pin11 rightline = pin5 buzzer = pin14 lightsensor = pin2 lightselect = pin16 np = neopixel.neopixel(pin13, 12) sleepdel = 800 def forward(): lefta.write_digital(1) righta.write_digital(1) def reverse(): lefta.write_digital(0) righta.write_digital(0) forward() showall(50,0,0) showleftline() showrightline() showlight() sleep(sleepdel) stop() showall(0,50,0) showleftline() showrightline() showlight() sleep(sleepdel) stop() reverse() showall(0,0,50) showleftline() showrightline() showlight() sleep(sleepdel) stop() showall(50,50,50) buzzer.write_digital(1) showleftline() showrightline() showlight() sleep(sleepdel) buzzer.write_digital(0) stop() def stop(): lefta.write_digital(0) righta.write_digital(0) def showall(red,green,blue): for i in range(12): np[i] = (red,green,blue) def showleftline(): aset = leftline.read_digital() * 9 for i in range(4): display.set_pixel(0,i,aset) display.set_pixel(0,4,9) def showrightline(): aset = rightline.read_digital() * 9 for i in range(4): display.set_pixel(4,i,aset) display.set_pixel(4,4,9) def showlight(): lightselect.write_digital(0) leftlight = lightsensor.read_analog() lightselect.write_digital(1) rightlight = lightsensor.read_analog() for i in range(5): if leftlight > i*200: display.set_pixel(1,4-i,9) else: display.set_pixel(1,4-i,0) if rightlight > i*200: display.set_pixel(3,4-i,9) else: display.set_pixel(3,4-i,0) Bit:Bot Flere opgaver Side 10 af 10