torsdag 29 november 2018

Tomteluva med neopixel


RGB-dioder finns i olika former och den sort jag tycker är allra roligast är de som går att styra individuellt.

Vi brukar använda Adafruits Neopixel-bibliotek även om vi har LED-strippar från annat håll.

Lagom till jul så plockade vi ihop ett litet pysselkit bestående av en Adafruit Curcuit Playground, en batterihållare och en ledstripp. För att göra det enkelt lödde vi dit tre krokodilklämmor så att det blir enkelt att koppla in dioderna utan att löda.

Varje diod kan styras individuellt vilket gör det enkelt att skriva små program som skapar roliga effekter.

Curcuit Playground har, precis som micro:bit, ett antal inbyggda sensorer. I det här programmet använder vi ljudsensorn så att dioderna kan blinka i takt med musiken.

För det här programmet ska styrsignalen kopplas in på Pin 12.

Som framgår av koden finns det också en funktion för att få ett vandrande regnbågsljus. Mycket av koden är lånad från learn.adafruit.com

Installera och komma igång med Curcuit Playground

Här är fyra snabba steg för att komma igång och programmera en Curcuit playground.
  1. Skapa ett konto
  2. Installera en USB-drivrutin för att ladda upp koden
  3. Tryck på "Open code" nedan.
  4. Välja Curcuit Playground som kortet som ska programmeras.



Share:

måndag 1 oktober 2018

Så fungerar Arduino mikrokontroller

Hjärnan i en mikrokontroller är processorn. Den utför beräkningar men för att kunna göra det behöver processor flera olika sorters minne.

Det största minne är flashminnet. Här sparas programmet som mikrokontrollern ska köra. Minnet är 32 KB (kilobyte) stort vilket betyder att programmet maximalt kan ha runt 32768 tecken.

När programmet körs behövs ett arbetsminen. Här sparas alla värden och variabler som programmet använder. Det här minnet är 2 KB stort vilket betyder att 2048 tecken kan sparas. Det räcker ofta bra för att spara mätvärden, men det är begränsat om längre texter ska läsas eller behandlas på något sätt. Arbetsminnet töms varje gång Ardionon startas om.

EEPROM-minnet är permanent precis som flashminnet. Här kan sketchen spara värden som behöver användas nästa gång programmet ska köras. Det här minnet är 1 kB stort och innehåller alltså 1024 tecken.

Utöver minnen och processor finns två olika sätt att kommunicera med omvärlden.

Det första är den seriella databussen. Via en databuss skickas många signaler i följd efter varandra. Det finns många olika standarder för databussar och den vanligaste är USB och Ethernet. Vid styrning inom industrin används ofta en databuss som heter CAN.

Arduinos databuss är ofta kopplad till USB. På utvecklingskortet finns då ett speciellt chip som översätter USB-standarden (som är ganska komplicerad) till en enklare signal som används av Arduinon.

Det är via denna databuss programmet skickas till mikrokontrollern när en sketch laddas upp. Databussen kan också användas för att skicka signaler till datorn när programmet körs på Arduinon. Det underlättar felsökningen.

Den andra kommunikationen är via mikrokontrollens in och utsignaler. Läs mer under Analoga och Digitala signaler.
Share:

lördag 1 september 2018

RX och TX på Arduino

De två digitala stiften med nummer 0 och 1 är också märkta RX och TX. Det står för mottagning (recieve på engelska) och sändning (transmitt). Det är de här två stiften är de som används när mikrokontrollen programmeras.

På ett Arduino-kort med USB-anslutning är USB-kontrollen kopplad till RX och TX-stiften. De här två stiften är reserverade för kommunikation och används inte av programmet.
Share:

onsdag 1 augusti 2018

Kristallen på Arduino

Mitt på utvecklingskortet sitter en oval komponent i metall och det är kristallen. Den bestämmer frekvensen med vilken mikrokontrollen gör beräkningar och på så sätt utför det den programmerats för att göra.

https://commons.wikimedia.org/wiki/File:Arduino_crystal-1.jpg
Kristallen på en Arduino Uno R3 har en frekvens på 16 MHz. Det betyder att den kan göra 16 miljoner operationer i sekunden. Andra Arduino-kort har högre och lägre frekvensen. Det är först vid större projekt med många parallella operationer som en högre frekvens har någon praktiskt nytta.

Kristallen är en kvartsoscillator som ger en signal med en mycket konstant frekvens. Kvartsoscillatorer används i olika typer av elektroniska apparater från enkla armbandsur till datorer och navigationssystem. Det finns en mängd olika typer och varianter av kristalloscillatorer på marknaden.

Share:

söndag 1 juli 2018

Arduino historik

Arduino utvecklades för att lära studenter om elektronik och mikrokontroller. Det har genom åren blivit en mycket populär plattform såväl inom utbildning som inom makerrörelsen.

En stor anledning till framgången är enkelheten och att lösningar som utvecklas med Arduino blir mycket robusta. Det beror till stor del på avsaknaden av komplicerade faktorer som operativsystem, drivrutiner och databaser. Det här sätter naturligtvis vissa begränsningar på vad som går att göra, men för enklare uppgifter finns det sällan behov av kraften från exempelvis en Rasberry Pi. Enkelheten gör också att det går att bygga energieffektiva lösningar som enkelt kan drivas med batterier.

2005 började det utvecklas kommersiellt av Massimo Banzi och David Cuartielles. All utveckling sker enligt Creative Commons vilket också öppnat upp marknaden för konkurrerande produkter som också benämns som kloner.


Det är bara namnet Arduino som är skyddat enligt upphovsrätten. Det som skiljer kloner från originalprodukten är ofta kvaliteten på ingående komponenterna på utvecklingskortet.

Trots goda intentioner har det varit lite bråk kring varumärket genom åren och det är därför det idag finns två orginalprodukter, Arduino Uno och Genuino Uno.

En annan anledning till Arduinos framgång är utökningar med tilläggskort, så kallade Shields. Det är utvecklingskort som enkelt kopplas till utvecklingskortet och ger utökad funktionalitet som reläer, servostyrning, WiFi och Ethernet. Idag har det kommit många specialiserade kort som har utökad funktionalitet inkluderar direkt på ett och samma kort.
Share:

fredag 1 juni 2018

Kom igång att programmera Arduino online

Arduino kan programmeras online eller offline.

Arduino Online IDE är en modern web-editor där alla program (som vi fortsättningsvis kallar sketcher) sparas online kopplat till din profil. Det här är det enklaste sättet att komma igång och är den rekommenderade editorn om du har internetuppkoppling.

Ardiono IDE är ett program som installeras på datorn. Det fungerar för Windows, Mac och Linux.

All kod vi skriver här på bloggen finns på vårt konto på Arduino Online. Här är ett exempel på det första enkla programmet Blink som man hittar bland exemplen.


För att komma igång med Ardiuno IDE Online behöver du ett konto och det skaffar du här.

Följ instruktionerna och när du väl registrerat kontot är det bara att logga in.


Introduktion

När du loggar in kan du välja att få en kort introduktion. På bilderna nedanför hittar du de fyra vyerna översatta till svenska.








Share:

tisdag 1 maj 2018

Analoga signaler på Arduino

I nedre högra hörnet finns de analoga anslutningarna och de används, kanske inte helt förvånande, för att läsa av analoga spänningar. Avläsningen sker med en digital-analog omvandlare med tio bitars upplösningen vilket betyder att den analoga signalen internt motsvarar ett heltal mellan 0 och 1023. Det innebär att den analoga signalen har en upplösning motsvarande 0,005 volt.

Arduino Uno R3 - bild från arduino.cc
Det finns inga verkliga analoga utsignaler. Istället går det att använda vissa digitala stift för att simulera en spänning mellan 0 och 5 V genom att stiftet ger pulser som växlar mellan 0 och 1.

Om 0-pulsen är lika lång som 1-pulsen blir den genomsnittliga spänningen 2,5 volt. Genom att variera pulslängderna kan spänningen på det här sättet varieras mellan 0 och 5 volt. De stift som kan användas för att simulera en lägre spänning kallas PWM (Pulse Width Modulation). De är markerade med ~ framför siffran på stiftet.

De analoga stiften kan också användas som digitala in och utsignaler.

Bilden visar utvecklingskortet Arduino Uno R3.
Share:

söndag 1 april 2018

Digitala signaler på Arduino

Bilden visar utvecklingskortet Arduino Uno R3.

I övre högra hörnet finns mikrokontrollens digitala anslutningar. Dessa stift kan användas som insignaler för att läsa ett värde eller som utsignaler för att skicka ett värde.

Det är programmet i mikrokontrollen som styr hur varje stift ska användas. Som standard är signalerna insignaler och om stift ska användas som utsignaler måste det skrivas i programmet.

Insignalen är kopplat i serie med ett kraftigt motstånd vilket betyder att den inte påverkar den signal som mäts i någon nämnvärd omfattning.

Ett stift som inte får en signal kan växla slumpmässigt mellan 0 och 1. Därför brukar stiftet kopplas med ett motstånd på 10K ohm till plus eller minus. Det kallas PULLUP- respektive PULLDOWN. När stiftet får en signal, till exempel genom att en brytare sluts, kommer den signalen att vara mycket starkare än signalen från motståndet.

Alla digitala stift har en inbygg PULLUP-resistor som kan användas. Då definieras stiften som INPUT_PULLUP istället för INPUT. Signalen kommer då alltid att vara 1 förutom när stiften ansluts mot 0 (GND).

Vissa digitala stift kan ge en sk. PMV-signal, men mer om det längre fram.
Share:

torsdag 1 mars 2018

Strömförsörjning Arduino Uno

Bilden visar utvecklingskortet Arduino Uno R3. Det är det bästa kortet för att lära sig grunderna i att programmera mikrokontroller. Här är en kort introduktion av strömförsörjningen.

Längst ner till vänster sitter anslutning för strömförsörjning och strax ovanför strömkontakten sitter en spänningsregulator. Den omvandlar 7-12 volt till 5 volt vilket är den spänning som mikrokontrollen behöver. Spänningsregulatorn är ganska stor och det är för att den ska kunna avge värme som utvecklas om den inkopplade elektroniken är strömkrävande.

Uppe till vänster sitter anslutningen för USB. Här ansluts dator för programmering av mikrokontrollen men USB-uttaget kan också användas för strömförsörjning. Ett enkelt och smidigt sätt att driva Arduinon är med en vanlig powerbank.

Arduinon konsumerar ungefär 20-30 mA, men inkopplade komponenter som servon, motorer och dioder ökar strömbehovet rejält. En powerbank på 2500 mAh kan teoretiskt driva en Arduino i 100 timmar, men så fort ytterligare komponenter är inkopplade sjunker drifttiden till kanske något dygns drift.

Det finns olika sätt att minska strömkonsumtionen. Det effektivaste och enklaste är att köpa ett utvecklingskort som är optimerat för låg energiförbrukning. Den typen av kort kan ställas in för ”djup sömn” vilket innebär att i princip allt utom ett alarm är avstängt. När alarmet aktiveras väcks kortet och koden startar om från början.

Det blir lite extra komplicerat att programmera kortet när avancerade energisparfunktioner är aktiverade, men det ger samtidigt möjligheter att bygga riktigt smarta projekt som inte behöver extern strömförsörjning på flera veckor.

Den maximala strömförbrukningen per utsignal (pin) är 40 mA. Det räcker för att driva en diod, men inte för att driva en motor. När mer strömkrävande enheter ska drivas används ett relä för riktigt höga spänningar. För snabb reglering används ofta en transistor eller MOSFET. Om en utsignal kopplas till en strömkrävande enhet kan mikrokontrollern gå sönder.

Exempel

En trefärgad Neopixel-diod drar maximalt 60 mA, men en bra tumregel är att räkna 20 mA per diod eftersom alla dioder ofta inte lyser på full styrka samtidigt. Det betyder att det är helt säkert att använda 3 dioder utan separat strömförsörjning (max 180 mA), men att det förmodligen fungerar bra med 10 dioder så länge inte alla lyser samtidigt.

Om strömförbrukningen beräknas bli större än 200 mA används en separat spänningsomvandlare för att strömförsörja de inkopplade komponenterna.
Share:

torsdag 15 februari 2018

Teknik och programmering med Arduino - Lektionsplanering

Härom dagen sprang jag på en lektionsplanering för programming med Arduino. Planeringen bygger på 2 x 60 min programmering vid fem tillfällen.

Här används en kopplingsplatta, en Arduino Uno och diverse komponenter såsom piezohögtalare, fotoresistor, lysdioder i olika färger och naturligtvis lite sladdar och resistorer.

Här hittar du lektionsplaneringen för grundläggande Arduinoprogrammering.

Lektionsplaneringen är gjord av Staffan Melin och Martin Blom i Göteborg.

På Staffan sida hittade jag även en lektionsplanering för att bygga en robot med Arduino, inte helt olik den vi byggde hemma för ett par veckor sedan.
Share:

onsdag 7 februari 2018

Mikrokontroller

Hjärtat i Arduinon är mikrokontrollern. I princip alla andra komponenter på Arduinon finns där för att stödja microkontrollern. På kortet finns funktioner för att kommunicera med datorn och för strömförsörjning för mikrokontrollern och ansluten utrustning.

Mikrokontollern på en Arduino Uno är ett chip med 28 ben och den sitter i en hållare mitt på kortet. Chipet innehåller processor, minne och all elektronik för in och utsignaler. Chipen är tillverkat av Atmel som är en stor producent av chip för alla sorters elektronisk utrustning.

Den stora fördelen med Arduino är att det har blivit en defacto-standard för hobby och prototyp-projekt vilket gör det väldigt enkelt att komma igång med elektronik-programmering.

Över åren har det kommit fler och fler specialiserade kort för olika ändamål. Det finns kort med utökad funktionalitet som WiFi och GSM vilket gör det enklare att skapa projekt där kommunikation med omvärlden är en viktig del. Det finns också kort som har snabbare processor vilket betyder att mikrokontrollern klarar av att driva mer komplexa projekt där Arduinon ska hantera många in och utsignaler.

En viktig del av filosofin med Arduino är att hela designen tagits fram som Open Source. Det betyder att all design av hårdvaran och mjukvara är allmänt tillgänglig och att vem som helst får göra utvecklingskort för Arduino.

Att det finns Arduino som inte är ”original” är alltså en del av konceptet. Det viktiga att hålla reda på vilken design som ligger till grund för det kort du köper. Så länge du exemplevis köper ett kort som är Arduino Uno-kompatibelt spelar det inte så stor roll vilket märke som råkar stå på kortet.
Share:

tisdag 6 februari 2018

Det här är Arduino

Arduiono är en plattform för mikrokontroller. Det är enkelt att använda och tack vare open source filosofin är det väldigt enkelt komma igång och sina bygga egna elektronikprojekt.

Mikrokontrollern har in och utsignaler som är digitala eller analoga. Det gör det möjligt att läsa och tolka sensorer för exempelvis ljud, ljus och temperatur och att styra lampor, servon och reläer.
En Arduino Uno. Bild Creative Commons Wikipedia.

En Arduino kopplas oftast till datorn via USB och kan också programmeras för att fungera som enhet för att styra datorn (ungefär som en mus eller ett tangentbord).

En mikrokontroller kan liknas vid en liten dator. Den har en processor, arbetsminne och permanent minne där små program, sketcher, kan sparas. Utöver det har mikrokontrollern ett antal kopplingspunkter, pins, som kan anslutas för att läsa eller styra olika signaler.

Insignaler kan vara både analoga och digitala vilket gör det mycket enkelt att ansluta sensorer till Arduino.

Analoga signaler betyder i praktiken att Arduinon mäter en spänning, ofta mellan 0-5 volt. Med hjälp av resistorer och transistorer kan signaler från olika sensorer anpassas för att ge signaler i rätt intervall. Många sensorer till Arduino är anpassade för att ge signaler som redan från början ligger i rätt spänningsintervall.

Digitala signaler är det enkla fallet på eller av, 0 eller 1. Det kan exempelvis vara en knapp eller en strömbrytare som kopplas till Arduino. När en digital sensor kopplas till Arduino är det ofta en serie av nollor och ettor som tolkas till bestämda värden. Det gör att exempelvis en termometer som kopplas digitalt till Arduinon direkt kan ge ett temperaturvärde.

Utsignaler kan också vara analoga eller digitala. Den kan användas för att exempelvis tända och släcka en diod, men i mer avancerade projekt är det ofta en styrsignal till exempelvis en motor eller en strömbrytare. Digitala signaler kan också vara en serie av signaler som tolkas av den anslutna enheten. Det gör det till exempel möjligt att styra en panel av dioder med en enda signal.
Share:

söndag 4 februari 2018

Ljudstaplar

Häromdagen lödde jag ihop fyra RGB-ledstrippar så att de bildar en matris med 4 x 4 LEDs. Eftersom varje diod är adresserbar med Neopixel-biblioteket så är det enkelt att skapa olika mönster.

Så här är det kopplat:


Jag har gjort olika mönster och den bloggposten handlar om är staplar som rör sig till musiken.

Det finns inget i den här koden som känner av musiken, just nu är det ungefär i takt till musik med 120 slag per minut (vilket är ganska typiskt för popmusik).

Inga direkta konstigheter med koden. Jag försökte först att ha en slumpfunktion som avgjorde hur staplarna rörde sig, men det såg inte bra ut. Istället använder jag en array där jag hittat ett mönster som funkar.

Koden tänder 1, 2, 3 eller fyra rader. Den översta är röd, den andra gul och de två undre är gröna. Som du ser kopplas datasignalen till dioderna in på digital 2.

Om du inte har NeoPixel-biblioteket måste du ladda ner det för att allt ska funka.

Så här blev resultatet. Koden hittar du längst ner i bloggposten.




Share:

onsdag 31 januari 2018

Hello World!

Hej och välkommen till bloggen på CodeKid.se

Här kommer du hitta tips om olika programmerings och elektronikprojekt. Vi kommer mest att skriva om Arduino och olika varianter av micropython.

Vi har en annan sida där vi skriver om roboten Edison. Vem vem, vi kanske skriver om den också.
Share:

Leta i den här bloggen

Använder Blogger.

Sidor

Deltagare

Vad är en Edison robot?

Edison är en programmerbar robot utformad för att vara ett komplett stöd för undervisning i programmering och robotutbildning. Edison är...