I somras hörde en journalist från UR av sig med frågor gällande programmering i skolan. En vecka i början av september fick jag och mina elever på Getingeskolan ett trevligt besök under en tekniklektion. I bifogad länk nedan går det nu i efterhand att lyssna på radioprogrammet.
I reportaget finns en hel del bra tips till lärare, skolledare och huvudmän!
Sedan hösten 2018 ska alla skolor undervisa i programmering. Inför omställningen fanns en oro att skolorna inte skulle hinna med att fortbilda sina lärare. Det fanns också en osäkerhet kring hur undervisningen i programmering egentligen skulle gå till. Så hur ser det ut ett år efter införandet av programmering på schemat? Vad är det eleverna får? Och har lärarna hunnit lära sig det de ska lära ut?
Connector for optional ultrasonic sensor or I2C breakouts (fully compatible with Pimoroni’s Breakout Garden range)
The Microbit pins 0, 1, 2, Gnd and 3V are available for use with croc clips etc.
Lots of mounting holes to create your own “body” for the robot or additional sensors etc.
Makecode extension and micropython examples available
* Wheels need pushing on and optional pen-holder needs screwing in if purchased
Assembly Instructions
Push on the wheels
If you have the pen holder, then use 2 screws to screw the two pillars into the main board from the bottom, then use the remaining 2 screws to screw the top holder into the pillars
Coding Your MiniBit
Microsoft MakeCode
Click any image to enlarge.
To load the extension, select Advanced, then Extensions. Then enter “Minibit” into the search box and press Enter. If that doesn’t find it (there are sometimes earch glitches) you can enter the full URL into the search box: “https://github.com/4tronix/MiniBit”
Once loaded, you will have a MiniBit menu item with 4 sub-folders:
Motor Blocks
The first command “Drive at speed 600” will set both motors to speed 600. If you do nothing more, the MinBit will continue going forward forever.
The speed value can be from -1023 (full speed reverse) to 1023 (full speed forward). Setting the speed to 0 will stop the motors
There is also a block for spinning – left motor and right motor turn at the same speed but in opposite directions.
Both the drive and spin blocks have a paired block that will drive (or spin) for a selected amopunt of time and then stop
There are two ways of stopping. Coasting to a stop or braking. If you set the speed to 0 or use the “stop with no brake” command, then it will stop gently over the coourse of a second or so 9depending on initial speed). If you use the “stop with brake” block (or the drive/spin for a time block) then it will stop almost immediately.
Finally, you can drive each motor individually. For instance if you set the left motor to drive at 600 and the right motor to drive at 1000, then it will perform an arc towards the left
LED Blocks
You can use these blocks to set and clear one or all the LEDs.
Note that the MiniBit defaults to automatically updating the LEDs whenever any change is made see the “more…” section to learn how and why to change this behaviour
The LEDs on the MiniBit are labelled from 0 to 3. Use these numbers in the Makecode blocks to change the colour. eg setting LED 1 to Purple could be done like this:
The default brightness level is 40. This is plenty bright enough for most uses, saves damaging eyes, and reduces battery consumption. If required you can change the brightness from 0 up to 255
Sensor Blocks
Only one sensor in here; the ultrasonic distance sensor. You can get the values to the nearest object in cm, inches or microseconds
More Blocks
These are the advanced usage blocks. Most students will not need to use them.
Set update mode is used to switch between automatic LED updates or manual LED updates. The default is for automatic updates: every change to the LEDs results in all the LEDs being written to with the updated values. This is easy to understand, but it does mean that when making a lot of changes it can slow things down considerably. If doing that, it is best to use Manual update mode, make all the changes required, then use the show LED changes block to make all the updates in one go.
Rotate LEDs block will move the colour in LED 0 to LED 1, LED1 to LED2, LED2 to LED3 and LED3 to LED0. If done repeatedly, with a delay between each one, it will show the lED colours rotating around all the 4 LEDs.
Shift LEDs block will move LED0 to LED1, LED1 to LED2 and LED2 to LED3. It will blank LED0. So all the colours will disappear one at a time from 0 to 3
You can also create your own colours and replace the fixed list of colours in any command using the convert from red, green, blue block. For example, to set LED0 to a blue-green colour:
Programming in microPython
Driving Motors
The motors use 2 pins each to determine the speed and direction. In microPython we use write_analog ( ) to set the first pin to a value between 0 and 1023 and the second pin to 0 in order to go forward. To reverse, we swap the pins so that the first pin is set to 0 and the second pin is set to the value.
On the MiniBit the left motor uses pins 12 and 8, and the right motor uses pins 16 and 14.
So to move the left motor forwards at speed 600:
pin12.write_analog(600) pin8.write_digital(0)
And to move the right motor in reverse at speed 450:
pin16.write_digital(0) pin14.write_analog(450)
To stop with no brake, use write_digital ( ) to set both pins to 0. To stop with brake, set both pins to 1. eg. stop left motor with coasting and right motor with brake:
pin12.write_digital(0) pin8.write_digital(0)
pin16.write_digital(1) pin14.write_digital(1)
So a complete, but fairly useless, program to drive the motors for 2 seconds and then stop quickly, would look like this:
from microbit import * pin12.write_analog(600) pin8.write_digital(0) pin16.write_analog(600) pin14.write_digital(0) sleep(2000) pin12.write_analog(0) # temporary fix for python bug pin12.write_digital(1) pin8.write_digital(1) pin16.write_analog(0) # temporary fix for python bug pin16.write_digital(1) pin14.write_digital(1)
Note the 2 lines that write_analog(0) before swapping a pin from analog to digital. These are required until a fix is obtained for the python PWM driver continually updating the pin type to analog
Lighting the LEDs
This uses the standard neopixel code, with the LEDs connected to Pin 13.
At the top of your program add import neopixel then:
leds = neopixel.NeoPixel(13, 4)
leds is then an array of all 4 LEDs. leds[0] refers to the LED 0 and leds[3] refers to LED3. Each element of the array is a set of 3 numbers representing the Red, Green and Blue values (each 0..255) for that LED. So to set LED2 to Blue:
leds[2] = (0, 0, 255)
All this does is update the array. To show the new value of the array, we need to call the show ( ) function as follows:
leds.show ( )
Reading the Ultrasonic Distance Sensor
The ultrasonic sensor breakout is on pin15.
The concept is simple: send an ultrasonic pulse out, then time how long it takes to return. Using the speed of sound and some maths, we can then work out the distance. The following complete program has 2 parts to it: a function sonar ( ) which returns the distance to the object, and the main code in a loop which continually prints the distance. We also need to import the utime library:
from microbit import * from utime import ticks_us, sleep_us
def sonar(): pin15.write_digital(1) # Send 10us Ping pulse sleep_us(10) pin15.write_digital(0) pin15.set_pull(pin15, NO_PULL) while pin15.read_digital() == 0: # ensure Ping pulse has cleared pass start = ticks_us() # define starting time while pin15.read_digital() == 1: # wait for Echo pulse to return pass end = ticks_us() # define ending time echo = end-start distance = int(0.01715 * echo) # Calculate cm distance return distance
Det finns många olika byggsatser att köpa om du vill bygga en egen programmerbar robot eller en robotbil. Ett chassi till ett fordon är en ram, stomme eller bottenplatta med tillhörande hjul, hjulupphängning och motorer. För att få önskad funktion på din robot behöver du komplettera chassit med motordrivkretsar, styrelektronik och strömförsörjning. Det finns en hel del att ta hänsyn till när du ska välja vilka komponenter din robot ska bestå av. Enklast är att välja något som andra redan testat, så att du vet att delarna fungerar ihop och kan hitta instruktioner för hur man bygger ihop allt.
Här nedan visar vi ett antal exempel på byggsatser med chassi, motorer och hjul samt några lite mer kompletta lösningar där även alla elektronik-komponenter medföljer. När du har ett färdigt chassi kan du designa och bygga en egen kaross eller hölje till det. Varför inte t ex göra så att det ser ut som ett djur? Du kan givetvis även konstruera och bygga ett helt eget chassi som liknar något av dessa i valfritt material (t ex trä, plast, kartong eller metall). För att spara pengar och skona miljön kanske du kan hitta och använda något lämpligt återbruksmaterial? (Skolans läromedelsbudget är ju begränsad). Du skulle kunna göra det som ett riktigt bra ämnesövergripande skolprojekt som handlar om hållbar utveckling, uppfinningar, konstruktion, design, elektronik, mekanik, ekonomi, kommunikation, samarbete, materialkunskap, verktyg och bearbetning, skisser och ritningar, 3D-CAD och 3D-printing och programmering. Inte bara för att det är väldigt lärorikt, utan även för att det är kreativt, utmanande och kul! Skolämnen som berörs är i huvudsak teknik, bild och slöjd, men även matematik, fysik, samhällskunskap, hem- och konsumentkunskap, svenska, engelska och kemi.
Här är ett antal exempel på färdiga robot-kit:
Mini Robot Rover Chassis Kit
Kit för att bygga en egen robot med två hjul. Innehåller chassi, motorer och hjul. Komplettera med motordrivning, en Arduino eller Micro:bit och strömförsörjning. Innehåll: 2 DC-motorer (4-6 V) med hjul, stödhjul, metallchassi och topplatta för tillbehör. Mått monterad: 103x74x156 mm. Pris ca 250:- på Kjell & Co
Robotbyggsats med hjul och motor
Kit för att bygga en egen robot med två hjul. Innehåller chassi, motorer och hjul. Komplettera med motordrivning, en Arduino eller Micro:bit och strömförsörjning. Gör roboten smart med t.ex. optisk linjespårning (87064) eller avståndsmätning (87059). Chassit har hål för montering med skruv. Spänning motorer: 5 – 10 V.
En liten buggy som enkelt monteras med bara en skruvmejsel, ingen lödning krävs.
Innehåll Robo:Bit robotik-kontroller (kretskort) monteringsdetaljer (batterihållare, skruv, distanser, osv) 2 gula hjul med däck 2 motorer med anslutningskabel (ingen lödning) notera att micro:bit inte ingår!
Med den här byggsatsen kan man lära sig om att: Styra motorer med enkla fram/bak-kommandon. Styra motorernas hastighet i båda riktningarna med PWM. Med hjälp av en till micro:bit radiostyra buggyn. Använda rörelsesensorn hos micro:bit för att detektera krockar med hinder och undvika dem. Priset för detta kit är ca 480:- på Electrokit
Med en ultraljudsavståndsmätare (ingår ej) även: Upptäcka hinder när de kommer nära och undvika dem ”följa John”-program som försöker hålla ett konstant avstånd till föremål
Med en linjeföljare (ingår ej) även:
Använda linjesensorerna för att få buggyn att hålla sig i ”spåret” Skriva mer komplicerade program för när roboten stöter på korsningar av olika slag Jämföra olika strategier för att följa linjer Tillsammans med ultraljudsavståndsmätaren kan du få roboten att undvika hinder på banan och, efter att ha rundat den, upptäcka den igen.
Olimex Robotplattform 3 hjul
Olimex Robotplattform 3 hjul är en robotbyggsats med chassie, motorer, hjul och batterihållare. Chassiet består av en 3mm akrylplastskiva med en mängd fästpunkter för motorer, sensorer och övrig elektronik. Byggsatsen innehåller två utväxlade DC-motorer som skruvas fast i chassiet och två hjul med gummidäck som enkelt trycks fast direkt på motoraxlarna. Utöver de två drivhjulen medföljer även en stödkula som följer rörelser i alla riktningar samt en batterihållare för 4st AA-batterier. Komplettera med valfri mikrokontroller, motordrivare samt sensorer och du har en komplett autonom robot!
Innehåll: * 1st chassie * 2st motorer * 2st hjul 65 x 25mm * 1st stödkula * 2st monteringssatser för motor * 1st batterihållare 4xAA Pris för detta kit är ca 280:- på Electrokit
AlphaBot2 – Robot kit för Raspberry Pi
AlphaBot2 är en robotbyggsats gjord för Raspberry Pi Zero/Zero W, och klarar bland annat av att följa en linje, undvika föremål, mäta avstånd med ultraljud, kommunicera över Bluetooth/IR/WiFi (Bluetooth och WiFi kräver Pi Zero W) och har en inbyggd kamera som gåra att vinkla i höjdled. Monteringen är enkelt avklarad utan någon lödning eller kabeldragning; det är klart på några minuter och det finns gott om exempelkod för att komma igång snabbt.
Funktioner: * 5-kanals infraröd sensor, med analog utgång och PID-algorithm för stabil linjeföljning * Moduler för linjeföljning och för att undvika hinder, utan kabeldragning * TB6612FNG dubbel H-brygga motordrivare * N20 minimotor med metallkugghjul i växellådan. * Inbyggda RGB LEDs
På det övre kortet finns: * LM2596 spänningsregulator, levererar stabil ström (5V) till Raspberry Pi Zero * TLC1543 10 bitars AD-omvandlare, för integration med analoga givare och sensorer * PCA9685 servocontroller för jämn rörelse av kameraservot * CP2102 UART-konverterare, för att styra Pi över UART * USB HUB chip, så du kan använda fler USB-anslutningar (fyra stycken) * En summer * IR-mottagare
Mått: 220 x 165 x 70mm
Innehåll: AlphaBot2-PiZero (adapterkort) AlphaBot2-Base (chassi) RPi Camera (B) Ultraljudssensor Micro SD kort 16GB SG90 servo 2 DOF pan and tilt kit IR fjärrkontroll FC-20P kabel 8cm Micro USB-kontakt RPi Zero V1.3 Camerasladd 30cm USB-kabel typ A hane till microB hane AlphaBot2-PiZero skruvar skruvmejsel Pris ca 1200:- på Electrokit
Rover 5 Robotplattform
Rover 5 är en robotplattform av modell stridsvagn (tank) och använder 4 individuellt oberoende motorer, var och en med en halleffekt-kvadraturkodare och växellåda. Hela växellådsaggregatet kan roteras i steg om 5 grader för olika markfrigångskonfigurationer. Du kan även byta ut robotens larvfötter mot traditionella hjul.
Funktioner:
Justerbara växellådsvinklar 4 oberoende likströmsmotorer 4 oberoende hall-effektkodare Tjocka gummitankar 6x AA batterihållare 10 kg / cm stallmoment per motor Pris ca 800:- på Elektrokit
mBot Blue/Wifi från Makeblock
mBot Blue och mBot wifi från Makeblock är robotbyggsatser speciellt framtagna för barn och utbildning. Roboten monteras enkelt ihop, ingen lödning krävs, och programmeras i Arduino eller Scratch. En modul för 2.4GHz eller Bluetooth kommunikation medföljer och kan användas för att styra roboten trådlöst från en dator eller mobil. App för iPhone och Android finns gratis i Appstore och Google Play, sök efter namnet mBot. Det medföljer även en IR-fjärrkontroll som redan från start kan användas för att styra roboten manuellt. Med i paketet finns alla mekaniska delar som behövs för att bygga ihop roboten, styrkort, hjul och motorer, ultraljudssensor, linjeföljarsensor, kablar, batterihållare, fjärrkontroll samt skruvmejslar.
mBot är en komplett lösning för elever som vill lära sig mer om programmering, elektronik och robotar. Att arbeta med mBlock, inspirerad av Scratch 2.0 och kontrollerad av en Bluetooth-modul ger detta robotkit elever en oändlig massa möjligheter att lära sig vetenskap, teknologi, ingenjörskunskap och matematk.
Dra och släpp grafiskt programmeringsmjukvara som baseras på Scratch 2.0 ger barnen ett snabbt sätt att lära sig programmering, att kontrollera roboten, och att möjliggöra multipla funktioner från roboten. mBot bygger på lek och kreativitet.
Den mekaniska aluminiumkroppen av mBot är kompatibel med Makeblock plattformen och många Legodelar, medan elektroniken är utvecklad med Arduinos open source ekosystem. Detta gör att mBot har en nästan oändlig utökningsmöjlighet genom att använda många olika elektroniska moduler som du kan behöva för att bygga din ”drömrobot”.
• Mjukvara och programmering: mBlock (Grafisk) för Mac och Windows, iPad mBlocky, Arduino IDE • Microcontroller: Baserad på Arduino Uno • Strömförsörjning: 3,7V DC Lithium batteri eller fyra 1,5V AA batterier (säljes separat) • Trådlös kommunikation: Bluetooth eller 2,4 GHz wifi
I paketet ingår:2x Micro TT motor 1x Universal hjul 1x Me Ultraljud sensor 1x mCore 15x M4 x8 skruvar 1xME Line follower 2x Tyre 90T B 8x M3 muttrar 2x Velcro 4x M2.2 x 9.5 skruvar 1x Line follower map 4x M2 x 25 2x 6P6C RJ25-kablar 0,2m 1x IR fjärrkontroll (Knappcellsbatteri CR2025, medföljer ej) 1x Chassi 1x USB Typ A – Typ B kabel 1m 1x Batterihållare för 4 AA-batterier (batterier medföljer ej) 1x skruvmejsel 1x Skyddslock Mått(BxDxH): 170x130x90mm Längd 17 cm Fyra AA batterier köps separat 1 st knappcellsbatteri CR2025 köps separat Priser från ca 900:- beroende på modell och kan köpas från t ex Hands On Science
mBot Ranger Robot kit från Makeblock
mbot Ranger Robot Kit är ett 3-i-1 robotkit som stöder tre byggutföranden: Off-Road Land Raider, två-hjulig självbalanserande bil och Dashing Raptor, Predator.
Programmera och kontrollera mbot Ranger via smartphone, surfplatta, Mac eller PC. Trådlös komunikation via Bluetooth och WiFi 2,4G.
mBot Ranger är fullt kompatibel med mBlock som är en grafisk programmeringsmiljö baserad på Scratch 2.0 open-source kod. Den gör programmeringsprojekt och interaktiva projekt enklare genom drag-and-drop funktionsblock. Utöver stöd för programmering via en PC har mBot Ranger även stöd för att bli programmerad från en iPad och andra surfplattor med en enkelanvänd app: Makeblock HD.
Programmering: PC – mBlock iPad/Tablet – Makeblock Arduino IDE
Bil med kraftöverföring via remdrift i serien Bilar och kraftöverföring.
Byggsatsen innehåller chassi av korrugerad plast, hjul, axlar och axelbockar med monteringskuddar, 2 remskivor, gummiband, elmotor, batterihållare och omkopplare.
Storlek 20x14cm. Batteri 2 st AA beställs separat. Pris ca 80:- på Hands On Science
Enkla byggsatser där ni jämför effekten av olika kraftöverföringar från energikälla till rörelseenergi. Här är utväxling gjord med remskivor av olika diameter.
Remdrivning i fordon finns i lite olika varianter. I riktiga personbilar används det mest till att driva generatorn, vattenpumpen, AC-kompressorn, kylarfläkten eller servostyrningspumpen från bilens förbränningsmotor. Det finns dock några klassiska gamla exempel på bilar som hade remdrivning som kraftöverföring för att driva hjulen som t ex Daf/Volvo 343, även kallad Remjohan. Vissa veteranmopeder hade kraftöverföring med en rem för länge sedan, men sedan blev det i princip standard med kedja på både mopeder och motorcyklar. Idag har remdrift blivit vanligare igen på Scooter-mopeder bl a pga ryckfri och behaglig gång samt möjlighet att justera utväxlingen dynamiskt i den automatiska växellådan mha en variator. Andra remdrivna produkter är kvarnar, luftkompressorer och kapsågar.
Bilchassi med kugghjulsdrift
Byggsatsen innehåller chassi av korrugerad plast, hjul, axlar och axelbockar med monteringskuddar, 2 kugghjul, elmotor, batterihållare och omkopplare.
Storlek 20x14cm. Batteri 2 st AA beställs separat. Pris ca 80:- på Hands On Science
Enkla byggsatser där ni jämför effekten av olika kraftöverföringar från energikälla till rörelseenergi. Mellan drivkälla och hjul finns i allmänhet en växellåda med flera kugghjul.
Kugghjulsdrivna fordon är våra vanliga standardbilar, lastbilar och mopeder, cyklar traktorer samt även i borrmaskiner.