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
ogString
- 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!