Skip to content

Húsavík 2025

Dagur #1

Farið í Arduino IDE, Xiao RP2040 frá Seeed Studio tengdur við tölvu, "library" fyrir RP2040 og ESP32C3 sett inn og prufukeyrt.

Farið í nokkur grunn atriði;

  • For
  • While
  • Breytur, t.d. int og String
  • Global / Local breytur

Prófuðum hermun með Wokwi

Hlekkir

Dagur #2

  • Xiao RP2040 "flassaður" með CircuitPython
  • Íhlutir lóðaðir á sinn stað
  • Forrit og forritasöfn (e.library) sett upp
  • Prufukeyrsla og bilanagreining
    • Þónokkrar kaldar lóðningar og annað vesen en allt hafðist á endanum. Allir náðu lömpunum í gang og fóru sáttir heim.

Dagur 3

  • Síðustu lamparnir lagfærðir og komið í gang
  • Fiktað með lampann
    • Mismunandi kóðabútar prófaðir
  • KiCAD skoðað
    • Farið yfir grunnatriðin
    • Fab Lab íhlutasafni bætt við KiCAD
    • Einföld rafrás úfærð, bæði skematík og pcb útfærsla.
    • Skrár fyrir framleiðslu útfærðar, prófað að fara í gegnum pöntunarferli hjá OSH Park.

Kóðabútar

Virkja takka

from time import sleep
import neopixel
import board
from digitalio import DigitalInOut, Direction, Pull

# LED setup
pixel_ring_pin = board.D6
pixel_ring_num = 12
pixel_ring = neopixel.NeoPixel(pixel_ring_pin, pixel_ring_num, brightness=0.3, auto_write=False, pixel_order=(1, 0, 2, 3))

# Button setup
btn1 = DigitalInOut(board.D1)
btn1.direction = Direction.INPUT
btn1.pull = Pull.UP

btn2 = DigitalInOut(board.D3)
btn2.direction = Direction.INPUT
btn2.pull = Pull.UP

while True:
    if(btn1.value == True):
        print("Button 1 pressed")
        sleep(0.5)

    if(btn2.value == True):
        print("Button 2 pressed")
        sleep(0.5)

Virkja ljós

from time import sleep
import neopixel
import board
from digitalio import DigitalInOut, Direction, Pull

# LED setup
pixel_ring_pin = board.D6
pixel_ring_num = 12
pixel_ring = neopixel.NeoPixel(pixel_ring_pin, pixel_ring_num, brightness=0.3, auto_write=False, pixel_order=(1, 0, 2, 3))

# Button setup
btn1 = DigitalInOut(board.D1)
btn1.direction = Direction.INPUT
btn1.pull = Pull.UP

btn2 = DigitalInOut(board.D3)
btn2.direction = Direction.INPUT
btn2.pull = Pull.UP

birtustig = 0

while True:
    if(btn1.value == True):
        if birtustig <= 240:
            birtustig += 10
        print("Birta: " + str(birtustig))
        sleep(0.2)

    if(btn2.value == True):
        if birtustig >= 10:
            birtustig -= 10
        print("Birta: " + str(birtustig))
        sleep(0.2)

    for i in range(pixel_ring_num):
        pixel_ring[i] = (0,0,0,birtustig)
        pixel_ring.show()

Færa ljós með tökkum

from time import sleep
import neopixel
import board
from digitalio import DigitalInOut, Direction, Pull

# LED setup
pixel_ring_pin = board.D6
pixel_ring_num = 12
pixel_ring = neopixel.NeoPixel(pixel_ring_pin, pixel_ring_num, brightness=0.3, auto_write=False, pixel_order=(1, 0, 2, 3))

# Button setup
btn1 = DigitalInOut(board.D1)
btn1.direction = Direction.INPUT
btn1.pull = Pull.UP

btn2 = DigitalInOut(board.D3)
btn2.direction = Direction.INPUT
btn2.pull = Pull.UP

ledda = 0

pixel_ring[ledda] = (0,0,0,0)
pixel_ring.show()

while(True):
    if btn1.value == True:
        if ledda < pixel_ring_num-1:
            ledda += 1
        print(str(ledda))
        sleep(0.1)

    if btn2.value == True:
        if ledda > 0:
            ledda -= 1
        print(str(ledda))
        sleep(0.1)

    for i in range(pixel_ring_num):
        pixel_ring[i] = (0,0,0,0)    

    pixel_ring[ledda] = (0,0,0,50)
    pixel_ring.show()

Klukkureikningur / Modulus

from time import sleep
import neopixel
import board
from digitalio import DigitalInOut, Direction, Pull

# LED setup
pixel_ring_pin = board.D6
pixel_ring_num = 12
pixel_ring = neopixel.NeoPixel(pixel_ring_pin, pixel_ring_num, brightness=0.3, auto_write=False, pixel_order=(1, 0, 2, 3))

# Button setup
btn1 = DigitalInOut(board.D1)
btn1.direction = Direction.INPUT
btn1.pull = Pull.UP

btn2 = DigitalInOut(board.D3)
btn2.direction = Direction.INPUT
btn2.pull = Pull.UP

ledda = 0

pixel_ring[ledda] = (0,0,0,0)
pixel_ring.show()

while(True):
    if btn1.value == True:

        ledda += 1
        print(str(ledda))
        sleep(0.1)

    if btn2.value == True:

        ledda -= 1
        print(str(ledda))
        sleep(0.1)

    for i in range(pixel_ring_num):
        pixel_ring[i] = (0,0,0,0)    

    pixel_ring[ledda%pixel_ring_num] = (0,0,0,50)
    pixel_ring[(ledda+6)%pixel_ring_num] = (0,0,0,50)
    pixel_ring.show()

Dagur #4

ESP32C3 kynntur betur til leiks.

  • Farið yfir hvernig hann er forritaður. Board manager í Arduino IDE, brettinu bætt við.
  • Tengst við WiFi, upplýsingar sóttar af netinu (API)

Farið yfir notkun gervigreindar sem hjálpartóls við forritun

  • ChatGPT
  • Github Copilot

Kostir og gallar gervigreindar skoðaðir og ræddir

  • Þátttakendur notuðu gervigreind til að breyta og bæta lampann sinn.

Verkefni úr raunheimi skoðað og leyst.

  • Einn nemandi kom með bilað kjánaprik (e. RGB LED whip). Stýringin var ónýt, við skoðun kom í ljós að þetta var í raun hefðbundin 12v LED strippa.

Með því að tengja ESP32C3 við sameiginlega jörð og forrita kubbinn rétt, fékkst ljós á prikið.

  • 12v spenna + jörð inn á prikið
  • GND á ESP32 tengdur við sömu jörð og data pinni tengdur við DI (Digial In).

FIAT LUX!