Publisert Legg igjen en kommentar

VS Code for makers: Optimalt oppsett for embedded-utvikling

Visual Studio Code har blitt den foretrukne IDE-en for mange utviklere, og med god grunn. Med riktig oppsett blir VS Code et kraftfullt verktøy for embedded-utvikling som overgår mange tradisjonelle alternativer. La oss se på hvordan du optimaliserer VS Code for Arduino, ESP32, MicroPython og annen embedded-utvikling.

Hva du trenger:

  • PC/Mac med VS Code installert
  • USB-kabel for din mikrokontroller
  • Embedded-utviklingskort (Arduino, ESP32, Raspberry Pi Pico)
  • Stabil internettforbindelse for nedlasting av extensions

PlatformIO: Hjertet av embedded-utvikling i VS Code

PlatformIO er uten tvil den viktigste extension for embedded-utvikling. Denne kraftige plattformen støtter over 800 utviklingskort og håndterer alt fra kompilering til debugging.

Installasjon av PlatformIO

  1. Åpne VS Code og gå til Extensions (Ctrl+Shift+X)
  2. Søk etter «PlatformIO IDE» og installer den offisielle extension
  3. Start VS Code på nytt når installasjonen er ferdig
  4. PlatformIO-ikonet skal nå være synlig i Activity Bar til venstre

Første oppstart av PlatformIO kan ta noen minutter da det laster ned nødvendige verktøy og compilere i bakgrunnen. Dette er normalt.

Opprette ditt første PlatformIO-prosjekt

Klikk på PlatformIO-ikonet og velg «Create New Project». Her velger du korttype (for eksempel ESP32 Dev Module), framework (Arduino, ESP-IDF, eller Zephyr), og prosjektmappe. PlatformIO genererer automatisk en platformio.ini-fil som inneholder all konfigurasjon for prosjektet.

Tips: Bruk PlatformIO’s innebygde Library Manager i stedet for å kopiere biblioteker manuelt. Dette sikrer riktige versjoner og avhengigheter. Åpne den med Ctrl+Shift+P og søk etter «PlatformIO: Library Manager».

Arduino Extension: Enkel overgang fra Arduino IDE

For de som kommer fra Arduino IDE, tilbyr Microsoft en dedikert Arduino-extension som gir en mer kjent arbeidsflyt.

Installasjon og konfigurasjon

  1. Installer «Arduino» extension fra Microsoft
  2. Åpne Command Palette (Ctrl+Shift+P) og søk «Arduino: Initialize»
  3. Velg Arduino-installasjonsmappen hvis den ikke oppdages automatisk
  4. Konfigurer board og port i statuslinjen nederst i VS Code

Arduino-extension integrerer godt med eksisterende Arduino-biblioteker og skisser, men mangler noen av de avanserte funksjonene til PlatformIO.

MicroPython-støtte for moderne embedded Python

MicroPython har blitt stadig mer populært for rask prototyping på ESP32 og Raspberry Pi Pico. Flere extensions gjør MicroPython-utvikling smidig i VS Code.

Anbefalt MicroPython-oppsett

Installer «MicroPico» extension som gir excellent støtte for Raspberry Pi Pico, eller «Pymakr» for ESP32-basert MicroPython-utvikling. Begge tilbyr REPL-integrasjon, filsynkronisering og autocompletion.

For optimal arbeidsflyt, konfigurer en virtuell Python-environment med pip install esptool eller pip install adafruit-ampy for filoverføring til mikrokontrolleren.

Tips: Bruk VS Code’s innebygde terminal (Ctrl+`) for å kjøre MicroPython-kommandoer direkte. Dette er mer effektivt enn å bytte mellom vinduer.

Debugging: Fra print-statements til ekte debugging

En av VS Code’s største styrker er den kraftige debugging-støtten. PlatformIO tilbyr ekte hardware-debugging for mange mikrokontrollere med riktig debugger-hardware.

Oppsett av debugging

For ESP32-kort med innebygd JTAG (som ESP32-S3), legg til følgende i platformio.ini:


debug_tool = esp-builtin
debug_init_break = tbreak setup

For Arduino Uno og lignende, bruk GDB-stubbing eller en ekstern debugger som ST-Link for STM32-kort. PlatformIO konfigurerer automatisk debugging-miljøet basert på valgt verktøy.

Sett breakpoints ved å klikke i venstre marg av editoren, og start debugging med F5. VS Code viser variabler, call stack og lar deg steppe gjennom koden linje for linje.

Seriell monitor og terminalintegrasjon

Både PlatformIO og Arduino-extension tilbyr innebygd seriell monitor, men med forskjellige styrker.

PlatformIO Serial Monitor

Åpne med Ctrl+Shift+P og søk «PlatformIO: Serial Monitor». Denne støtter flere samtidige tilkoblinger og avansert filtering av meldinger. Baudrate settes automatisk basert på koden din, eller kan overstyres i platformio.ini.

Arduino Serial Monitor

Tilgjengelig via Command Palette eller statuslinjen. Enklere interface, men integrerer godt med Arduino-skisser og -biblioteker.

Tips: For avansert seriell analyse, installer «Serial Monitor» extension som tilbyr plotting av numeriske data og logging til fil. Perfekt for sensordataanalyse.

Optimalisering av arbeidsflyt

Konfigurer VS Code-settings for optimal embedded-utvikling:

  • Aktiver «Auto Save» for å unngå tap av kode under eksperimentering
  • Installer «Error Lens» for inline visning av kompileringsfeil
  • Bruk «GitLens» for versjonskontroll av embedded-prosjekter
  • Konfigurer «C/C++» extension for bedre IntelliSense i Arduino/PlatformIO-prosjekter

RoboNordic har et bredt utvalg av utviklingskort og sensorer som fungerer utmerket med dette oppsettet – fra Arduino Nano til ESP32-devkits.

Vanlige feil og løsninger

  • PlatformIO kompilerer ikke: Sjekk at firewall ikke blokkerer nedlasting av toolchains. Windows Defender kan noen ganger forårsake problemer.
  • Seriell port ikke funnet: Installer riktige USB-drivere for ditt kort. CH340- og CP2102-drivere mangler ofte på nye installasjoner.
  • IntelliSense fungerer ikke: Generer compile_commands.json med PlatformIO for bedre C++ language server-støtte.
  • Langsom oppstart: Deaktiver unødvendige extensions. VS Code kan bli treg med for mange aktive extensions.
  • Debugging virker ikke: Kontroller at debug_tool er riktig konfigurert i platformio.ini og at nødvendig hardware er tilkoblet.

Med dette oppsettet har du et kraftfullt utviklingsmiljø som støtter alt fra enkel Arduino-programmering til avansert ESP32-utvikling med MicroPython. VS Code’s fleksibilitet kombinert med PlatformIO’s bredde gjør dette til en uslåelig kombinasjon for moderne embedded-utvikling.

Publisert Legg igjen en kommentar

Slik bygger du en autonom palletruck med ROS 2 og NVIDIA Jetson

Et spennende prosjekt fra Los Angeles viser hvordan en standard 24V elektrisk palletruck kan transformeres til en fullstendig autonom enhet. Med ROS 2, NVIDIA Jetson og smart integrering kan hobbyister og profesjonelle lære av denne tilnærmingen.

Retrofitting av eksisterende industriutstyr til autonome systemer representerer en kostnadseffektiv måte å modernisere arbeidsplasser på. Dette prosjektet demonstrerer hvordan etablert teknologi kan kombineres med moderne robotikk-stacks for å skape praktiske løsninger.

Teknisk arkitektur og maskinvareintegrasjon

Kjernen i systemet bygger på NVIDIA Jetson Orin Nano som kjører Ubuntu med ROS 2 Humble. Denne kombinasjonen gir tilgang til Nav2-navigasjonsstacken og slam_toolbox for kartlegging og lokalisering.

Drive-by-wire-implementeringen løses elegant ved å bruke en Teensy-mikrokontroller som grensesnitt mot pallettruckens eksisterende motorkontroller. Systemet kan kommunisere via throttle injection eller CANopen-protokoll, avhengig av utstyrets spesifikasjoner. Dette gir kontroll over:

  • Trekkraft og retning
  • Løftemekanisme
  • Hjulencoder-avlesning for posisjonsfeedback

Mekanisk tilpasning og sikkerhet

Den mest krevende delen av integreringen er fabrikasjon og montering av styreaktuator på tiller-kolonnen. Dette krever presisjon og forståelse for pallettruckens opprinnelige design. Aktuatoren må være robust nok til å håndtere industrielle arbeidsforhold.

Sikkerhet prioriteres høyt med implementering av manuell nødstopp som fysisk avbryter all trekkraft, uavhengig av programvare.

Navigasjon og praktisk implementering

Etter maskinvareintegrasjon følger kalibrering og testing. Systemet startes i teleoperasjonsmodus for initial validering, før det kartlegger et avgrenset område ved hjelp av SLAM-algoritmer.

Nav2-implementeringen gjør det mulig for enheten å:

  • Planlegge optimale ruter
  • Navigere rundt hindringer
  • Utføre presise posisjoneringer for lasting/lossing

Prosjektets 1-2 ukers tidsramme viser at med riktig planlegging og eksisterende programvare kan komplekse autonome systemer realiseres relativt raskt. Dette åpner for skalerbare løsninger hvor flere enheter kan rulles ut basert på samme arkitektur.

For robotikk-entusiaster representerer dette et praktisk eksempel på hvordan ROS 2 og tilgjengelig maskinvare kan løse reelle industriutfordringer. Tilnærmingen kan tilpasses andre typer kjøretøy og arbeidsoppgaver.

Kilde: ROS Discourse

Publisert Legg igjen en kommentar

Ny Python-løsning for analytisk invers kinematikk i robotarmer

Personal Robotics Lab har lansert ssik 1.1, et Python-bibliotek som forenkler analytisk invers kinematikk for 6R og 7R robotarmer. Biblioteket er designet som en moderne etterfølger til IKFast og tilbyr ren Python-kode med BSD-3-lisensiering.

Invers kinematikk er en av de mest grunnleggende utfordringene i robotikk – å beregne hvilke leddvinkler som kreves for å posisjonere en robotarms endepunkt på et ønsket sted. Det nye ssik-biblioteket lover å gjøre denne komplekse oppgaven mer tilgjengelig for utviklere.

Hva gjør ssik annerledes?

ssik skiller seg ut ved å tilby analytiske løsninger i stedet for numeriske tilnærminger. Dette betyr raskere og mer pålitelige beregninger, spesielt viktig for sanntidsapplikasjoner. Biblioteket håndterer både 6R (6 rotasjonsledd) og 7R (7 rotasjonsledd) manipulatorer, inkludert utfordrende konfigurasjoner som tidligere verktøy har slitt med.

ssik returnerer alle mulige løsninger for en gitt posisjon, noe som gir utviklere full kontroll over hvilken armkonfigurasjon de ønsker å bruke.

Installasjonen er enkel med kommandoen pip install ssik. Biblioteket er skrevet i ren Python, noe som eliminerer komplekse avhengigheter og gjør det lettere å integrere i eksisterende prosjekter.

Praktiske bruksområder

ssik støtter flere populære robotarmtyper, inkludert ikke-Pieper 6R armer som Kinova JACO 2 og ikke-SRS 7R armer som Flexiv Rizon 4. Dette gjør biblioteket relevant for et bredt spekter av robotikkprosjekter – fra industriell automatisering til forskning og utdanning.

For hobbyister og studenter representerer ssik en sjanse til å eksperimentere med avansert robotikk uten å måtte implementere komplekse matematiske algoritmer fra bunnen av. Profesjonelle utviklere vil sette pris på den spesialiserte koden per arm-type og den omfattende løsningsoppramsingen.

Arven etter IKFast

ssik bygger videre på erfaringene fra Rosen Diankovs IKFast, som formet hvordan en hel generasjon robotikkutviklere tenkte om analytisk invers kinematikk. Den nye løsningen beholder de beste egenskapene – spesialisert kode per arm, analytiske grener og komplett løsningsoppramming – mens den moderniserer tilnærmingen med ren Python og forbedret kompatibilitet.

Med sin åpne BSD-3-lisens og aktive utviklerfellesskap inviterer ssik til både bruk og bidrag. Utviklerteamet tar gjerne imot spørsmål, forespørsler om støtte for spesifikke armtyper og hjelp med integrasjon i eksisterende systemer.

Kilde: ROS Discourse

Publisert Legg igjen en kommentar

G-code grunnleggende: Forstaa CNC-maskinens spraak

G-code er CNC-maskinens morsmål – et presist språk som forteller maskinen nøyaktig hvor den skal bevege seg, hvor raskt, og hva den skal gjøre. I denne guiden skal vi ta deg gjennom fundamentene i G-code, slik at du kan lese, forstå og skrive enkel CNC-kode selv.

Hva du trenger:

  • Tilgang til CNC-maskin eller simulator (f.eks. CAMotics)
  • Teksteditor eller CAM-programvare
  • Kaliper for måling
  • Basiskunnskap om koordinatsystemer

Grunnleggende G-code struktur

G-code består av linjer med kommandoer som utføres sekvensielt. Hver linje inneholder vanligvis en eller flere instruksjoner som forteller maskinen hva den skal gjøre. La oss se på en typisk G-code-linje:

G01 X10.5 Y20.0 Z-2.0 F300

Her betyr:

  • G01 – lineær bevegelse (G-kommando)
  • X10.5 Y20.0 Z-2.0 – målkoordinater
  • F300 – fremføringshastighet (feed rate)

G-code følger en modal struktur, som betyr at en kommando forblir aktiv til den blir overstyrt av en ny kommando. Hvis du setter G01, vil alle påfølgende bevegelser være lineære til du spesifiserer noe annet.

Kommentarer og formatering

Kommentarer legges til med semikolon eller parenteser:

G01 X10 Y10 F300 ; Beveg til startposisjon
(Dette er også en kommentar)

Koordinatsystemer og nullpunkt

Før du begynner med bevegelseskommandoer, må du forstå koordinatsystemer. CNC-maskiner bruker kartesiske koordinater med X, Y og Z-akser:

  • X-akse: Vanligvis høyre-venstre bevegelse
  • Y-akse: Frem-tilbake bevegelse
  • Z-akse: Opp-ned bevegelse

Maskinnullpunktet (machine home) er maskinens fysiske nullpunkt, mens arbeidsnullpunktet (work coordinate) er det du definerer for ditt spesifikke prosjekt. Du setter arbeidsnullpunktet med:

G54 ; Velg arbeidskoordinatsystem 1
G92 X0 Y0 Z0 ; Sett nåværende posisjon som nullpunkt

START G-code

Sett arbeidskoordinater (G54)

Start spindel (M03)

Bevegelseskommandoer

Flere operasjoner?

Stopp spindel (M05)

SLUTT (M30)

Nei Ja

Viktige bevegelseskommandoer

G00 – Rask bevegelse

Brukes for posisjonering uten å kutte materiale. Maskinen beveger seg med maksimal hastighet:

G00 X50 Y25 Z5 ; Rask bevegelse til posisjon

G01 – Lineær interpolasjon

Kontrollert lineær bevegelse med spesifisert hastighet. Brukes for rett kutting:

G01 X100 Y50 F300 ; Lineær bevegelse med 300 mm/min

G02 og G03 – Sirkelbevegelse

G02 for medurs (clockwise) og G03 for moturs (counter-clockwise) sirkelbevegelse:

G02 X20 Y0 I10 J0 F200 ; Medurs bue med radius 10mm

Her definerer I og J senterpunktet relativt til startposisjonen.

Tips: Start alltid med enkle rette linjer før du går over til buer. Mange nybegynnere roter seg bort i I- og J-parametrene for sirkelbevegelse.

Spindel- og verktøykontroll

M-kommandoer (miscellaneous functions) kontrollerer spindel, kjølevæske og andre maskinfunksjoner:

  • M03 S1200 – Start spindel medurs med 1200 RPM
  • M04 S800 – Start spindel moturs med 800 RPM
  • M05 – Stopp spindel
  • M08 – Start kjølevæske
  • M09 – Stopp kjølevæske

Verktøyskift

T01 M06 ; Velg verktøy nummer 1 og utfør verktøyskift

Praktisk eksempel: Enkel firkant

La oss lage en komplett G-code for å frese en 20x20mm firkant:


G21 ; Millimeter
G90 ; Absolutte koordinater
G54 ; Arbeidskoordinatsystem
M03 S1000 ; Start spindel 1000 RPM
G00 X0 Y0 Z3 ; Rask til startposisjon
G01 Z-2 F100 ; Senk ned i materialet
G01 X20 F300 ; Til høyre hjørne
G01 Y20 ; Til øvre høyre
G01 X0 ; Til øvre venstre
G01 Y0 ; Tilbake til start
G01 Z3 F100 ; Løft verktøyet
M05 ; Stopp spindel
M30 ; Program slutt

Tips: Test alltid G-code i en simulator først. Programmer som CAMotics eller LinuxCNC sin simulator kan spare deg for kostbare feil på ekte maskiner.

Manuell redigering av G-code

Selv om CAM-programvare genererer mesteparten av G-koden din, er det ofte nødvendig å gjøre manuelle justeringer. Vanlige endringer inkluderer:

  • Justering av fremføringshastigheter
  • Endring av spindelhastighet
  • Legge til sikkerhetsposisjonering
  • Optimalisering av verktøybaner

Når du redigerer manuelt, husk å opprettholde korrekt sekvens og modalitet. Bruk alltid en systematisk tilnærming og test endringene grundig.

Tips: Hvis du trenger CNC-komponenter eller verktøy for dine prosjekter, finner du et godt utvalg i vår CNC-kategori på RoboNordic.

Vanlige feil

  • Glemme å sette arbeidskoordinater: Fører til at maskinen kutter på feil sted eller krasjer
  • Feil fremføringshastighet: For høy hastighet kan knekke verktøy, for lav hastighet kan brenne materialet
  • Manglende sikkerhetshøyde: Verktøyet kan kollidere med klemmer eller arbeidsstykket under rask bevegelse
  • Inkonsistent modalitet: Blande absolutte (G90) og relative (G91) koordinater uten å spesifisere overgangen
  • Glemme å stoppe spindel: Kan føre til skade på verktøy eller arbeidsstykke når programmet avsluttes

G-code er grunnlaget for all CNC-programmering. Med forståelse av disse grunnleggende konseptene kan du begynne å lage enkle programmer og forstå mer kompleks kode generert av CAM-systemer. Øv deg med enkle geometrier før du går videre til mer avanserte operasjoner som 3D-konturering eller adaptive clearance.

Publisert Legg igjen en kommentar

Bygge autonom lagerrobot med ROS 2: Fra CAD-design til ferdig løsning

En utvikler har delt sin erfaring med å bygge en komplett autonom mobilrobot (AMR) for lagerautomatisering ved hjelp av ROS 2. Prosjektet dekker alt fra CAD-design i Fusion 360 til avansert navigasjon og presis docking med ArUco-markører.

Utviklingen av autonome lagersystemer blir stadig mer tilgjengelig for hobbyister og mindre bedrifter takket være åpen kildekode-verktøy som ROS 2. La oss se hvordan dette omfattende robotprosjektet ble realisert fra bunn av.

Systemarkitektur og teknisk stack

Roboten bygger på en solid teknisk foundation med ROS 2 som hovedrammeverk. Chassiset ble designet i Fusion 360 før det ble eksportert til URDF-format for bruk i ROS-økosystemet.

Den tekniske stacken består av flere sentrale komponenter:

  • Nav2 for navigasjon og ruteplanning
  • ArUco-basert visuell docking for presis justering ved hyller
  • Tilpasset waypoint-sekvensering for flerhylle-oppgaver
  • Gazebo og RViz for simulering og visualisering

Dette gir roboten mulighet til å autonomt navigere mellom ulike hyller, hente varer og levere dem til angitte soner uten menneskelig inngripen.

Utfordringer med LiDAR og odometri

En kritisk utfordring oppsto da LiDAR-punktskyen roterte sammen med roboten i RViz, noe som ødela kartlegging og navigasjon. Problemet viste seg å være en odom/TF mismatch under svinger.

Løsningen ble å utvikle en Ground TruthOdom-node som bruker Gazebo pose-data for å publisere stabil /odom og konsistent TF, inkludert håndtering av tidsstempel-problemer mellom ROS og Gazebo.

Denne typen debugging og problemløsning er typisk for robotikkprosjekter og viser viktigheten av å forstå TF-systemet i ROS grundig.

Praktisk anvendelse og resultater

Det ferdige systemet demonstrerer imponerende kapasiteter ved autonomt å betjene forespørsler for spesifikke hyller (Hylle B og Hylle C) og levere varene til utleveringssonen. ArUco-markørene sikrer presis posisjonering ved hver hylle, noe som er kritisk for pålitelig varehåndtering.

Prosjektet viser hvordan moderne robotikk-verktøy kan kombineres for å skape sofistikerte automatiseringsløsninger. For hobbyister og studenter representerer dette en excellent læringskilde for avanserte ROS 2-konsepter som transformasjoner, navigasjon og sensorfusjon.

Systemet er fullt kompatibelt med standard ROS 2-distribusjoner og kan tilpasses ulike lagerlavouter og robotplattformer. OpenCV-integrasjonen for ArUco-deteksjon gjør løsningen robust og kostnadseffektiv sammenlignet med proprietære docking-systemer.

Kilde: ROS Discourse

Publisert Legg igjen en kommentar

Kraftige rabatter på 3D-printere: Spar opptil 2400 kroner på kvalitetsutstyr

Store rabatter på 3D-printere gjør det nå ekstra attraktivt å investere i ny printertekologi. Med besparelser på opptil 2400 kroner fra ledende merkevarer som Bambu Lab, Elegoo og Creality, er dette en gylden mulighet for både hobbyister og profesjonelle.

Markedet for 3D-printere har aldri vært mer tilgjengelig, og de nåværende tilbudene gjør det enda enklere å ta steget inn i denne fascinerende verdenen. La oss se nærmere på hva som gjør disse tilbudene særlig interessante for norske entusiaster.

Bambu Lab: Presisjon møter brukervennlighet

Bambu Lab har revolusjonert 3D-printing-markedet med sine intelligente løsninger. Deres printere utmerker seg med automatisk kalibrering og avanserte sensorer som overvåker printprosessen kontinuerlig. Dette gjør dem ideelle for både nybegynnere som ønsker problemfri oppstart og erfarne brukere som krever konsistent kvalitet.

Med integrert AI-teknologi kan Bambu Lab-printere automatisk justere parametere underveis, noe som dramatisk reduserer feilprint og materialspill.

Spesifikasjoner som ofte imponerer inkluderer lukket printervolum for bedre temperaturkontroll, støtte for avanserte materialer som ABS og PETG, samt byggeområder som dekker de fleste hobbyprosjekter.

Elegoo og Creality: Solid ytelse til konkurransedyktige priser

For de som søker maksimal verdi for pengene, representerer Elegoo og Creality utmerkede alternativer. Elegoo har gjort seg bemerket innen resin-printing med sine MARS-serien, som leverer eksepsjonell detaljoppløsning ned til 0.01mm lagtykkelse.

Creality, kanskje best kjent for sin Ender-serie, tilbyr robust konstruksjon og omfattende community-støtte. Dette betyr:

• Lett tilgang til oppgraderinger og modifikasjoner
• Omfattende dokumentasjon og feilsøkingsressurser
• Kompatibilitet med tredjepartstilbehør

Filament og resin: Kompletter oppsettet

Sammen med printerrabattene følger ofte reduserte priser på forbruksmateriell. PLA-filament forblir førstevalget for nybegynnere på grunn av lav printtemperatur og minimal lukt, mens PETG egner seg utmerket til funksjonelle deler som krever høyere styrke.

For resin-printing åpner rabattene muligheter for å eksperimentere med spesialresiner som ABS-like eller tough resin, som utvider spekteret av mulige anvendelser betydelig.

Disse tilbudene representerer en sjelden mulighet til å oppgradere verkstedet eller starte 3D-printing-reisen med profesjonelt utstyr til hobbypriser. Med riktig printer kan alt fra prototyping til kunstprosjekter realiseres med imponerende kvalitet.

Kilde: Tom’s Hardware

Publisert Legg igjen en kommentar

3D-printing materialer: PLA, PETG, ABS og mer

Valg av riktig filament kan avgjøre suksessen til 3D-printing-prosjektet ditt. La oss utforske egenskapene til de mest populære materialene og når du bør bruke hvert av dem.

Hva du trenger

  • 3D-printer med oppvarmet hotend (minimum 200°C)
  • Oppvarmet printbed (anbefales for ABS/PETG)
  • Termometer eller IR-temperaturmåler
  • Kalibrerte ekstruderings- og temperaturinnstillinger
  • Ventilasjon (spesielt for ABS-printing)

PLA – Det brukervennlige materialet

PLA (Polylactic Acid) er det mest populære filamentet for gode grunner. Dette biologisk nedbrytbare polymeret er laget av maisstivelse eller sukkerrør og tilbyr en perfekt balanse mellom brukervennlighet og kvalitet.

Egenskaper og fordeler

  • Lav printtemperatur: 190-220°C (ingen oppvarmet bed nødvendig)
  • Minimal warping: Utmerket adhesjon til de fleste overflater
  • Luktfri: Faktisk en søtlig duft under printing
  • Skarp detaljgjengivelse: Perfekt for prototyper og dekorative gjenstander
  • Stort fargevalg: Fra standard farger til spesialvarianter med trefyll eller metall

PLA er ideelt for interiørbruk, prototyper, hobbyprosjekter og utdanningsformål. Temperaturbegrensningen på rundt 60°C gjør det uegnet for gjenstander som utsettes for varme, som bildeler eller oppvaskmaskin-sikre gjenstander.

Tips: Bruk en print-hastighet på 40-60 mm/s for optimal kvalitet med PLA. Øk retraction-innstillingene (4-6mm) hvis du opplever stringing mellom deler av printet.

PETG – Styrke møter enkelhet

PETG (Polyethylene Terephthalate Glycol) kombinerer det beste fra PLA og ABS. Dette materialet har vunnet popularitet blant makers som trenger større styrke uten kompleksiteten til ABS.

Unike fordeler

  • Kjemisk resistens: Tåler mange løsemidler og rengjøringsmidler
  • Glassklart eller farget: Perfekt for beholdere og dekorative elementer
  • FDA-godkjent: Mange PETG-varianter er mat-sikre
  • Høy slagstyrke: Mer fleksibelt enn PLA, sterkere enn ABS
  • Lett å printe: Mindre temperaturkritisk enn ABS

Print PETG ved 230-250°C med bed-temperatur på 70-80°C. Materialet krever ofte mindre layer-adhesjon-problemer enn ABS, men kan være mer klebrig under printing.

Tips: Reduser print-hastigheten til 30-40 mm/s med PETG for å unngå stringing. Bruk en noe høyere nozzle-temperatur hvis du opplever dårlig lag-adhesjon.

ABS – Industristandarden

ABS (Acrylonitrile Butadiene Styrene) er det samme materialet som brukes i LEGO-klosser og bildeler. Selv om det er mer utfordrende å printe, tilbyr ABS overlegen styrke og temperaturbestandighet.

Utfordringer og løsninger

ABS krever mer oppmerksomhet enn PLA og PETG. Hovedutfordringene inkluderer:

  1. Warping: Krever oppvarmet bed (90-110°C) og ideelt sett et lukket printerkammer
  2. Lukter: Avgir styrene-gasser som krever ventilasjon
  3. Temperaturkontroll: Sensitive for trekk og temperaturvariasjoner
  4. Bed-adhesjon: Krever ofte spesiell tape eller belegg

Print ABS ved 220-250°C med kontrollert miljø for beste resultat. Materialet kan post-prosesseres med aceton for glatt overflate.




Sammenligning av 3D-printing materialer



Materiale


Temp (°C)


Bed temp


Styrke


Vanskegrad


Bruksområde



PLA


190-220


Ikke nødv.


Middels


Lett


Prototyper



PETG


230-250


70-80°C


Høy


Middels


Funksjonsdeler



ABS


220-250


90-110°C


Svært høy


Vanskelig


Industribruk



TPU


210-230


40-60°C


Relevante produkter fra RoboNordic

Publisert Legg igjen en kommentar

Gammel 3D-skriver blir til Arduino-styrt penn-plotter

Ingeniørstudent Elliot Madsen har gitt nytt liv til en gammel 3D-skriver ved å bygge om den til en funksjonell penn-plotter styrt av Arduino UNO. Prosjektet viser hvordan klassisk teknologi kan gjenoppstå gjennom moderne mikrokontrollere.

Penn-plottere var en gang ryggraden i ingeniørens verktøykasse, spesielt for utskrift av store tekniske tegninger hvor de var både økonomiske og presise. Selv om digitale arbeidsflyter og alternative utskriftsmetoder har redusert deres utbredelse, fascinerer denne teknologien fortsatt mange som ønsker å forstå ingeniørfagets historie.

Fra 3D-skriver til presisjonsinstrument

Madsen tok utgangspunkt i en eldre 3D-skriver og gjennomførte en omfattende ombygging for å skape sin egen penn-plotter. Kjernen i systemet er en Arduino UNO mikrokontroller som styrer alle bevegelser med imponerende presisjon.

Den opprinnelige 3D-skriverens mekanikk – inkludert steppermotorer, lineære akser og rammestruktur – dannet det perfekte grunnlaget for plotteren. Ved å erstatte ekstruderen med en penn-holder og implementere Arduino-basert kontrollsystem, kunne han bevare den høye posisjoneringsnøyaktigheten som kreves for tekniske tegninger.

Tekniske spesifikasjoner og funksjonalitet

Arduino UNO-kontrolleren kommuniserer med steppermotordrivere som håndterer X-, Y- og Z-aksebevegelser. Z-aksen brukes til å løfte og senke pennen, noe som gir mulighet for både kontinuerlige linjer og separate geometriske elementer i samme tegning.

Systemet kan håndtere standardiserte G-kode-kommandoer, noe som gjør den kompatibel med eksisterende CAD-programvare og tegneverktøy.

Penn-plotteren støtter forskjellige penntyper og kan produsere detaljerte tekniske tegninger, kunstneriske skisser og prototyper av grafiske design. Arbeidsområdet bestemmes av den opprinnelige 3D-skriverens dimensjoner, som typisk gir tilstrekkelig plass for A3-format og mindre.

Praktiske anvendelsesområder

For ingeniørstudenter og hobbyister åpner dette prosjektet for flere interessante muligheter:

  • Utskrift av skjematiske tegninger og kretsskjemaer
  • Produksjon av presise tekniske illustrasjoner
  • Kunstneriske prosjekter med matematiske mønstre
  • Prototyping av grafiske brukergrensesnitt

Ombyggingen krever grunnleggende kunnskap om Arduino-programmering og elektronikk, men representerer et overkommelig prosjekt for de fleste med teknisk interesse. Resultatet er et unikt verktøy som kombinerer nostalgi med moderne fleksibilitet.

Dette prosjektet demonstrerer perfekt hvordan eldre teknologi kan få nytt liv gjennom kreativ tilnærming og moderne mikrokontrollere som Arduino UNO.

Kilde: Arduino Blog

Publisert Legg igjen en kommentar

Ndimensions Labs søker robotikk-ingeniører: Navigasjon og elektronikk i fokus

Ndimensions Labs, et Boston-basert selskap som utvikler infrastruktur for neste generasjons robotikk-AI, søker nå to spesialiserte ingeniører. Stillingene gir innsikt i hvilke ferdigheter som er mest ettertraktet i robotikk-bransjen.

Selskapet som jobber med å revolusjonere hvordan roboter forstår og navigerer i komplekse miljøer, har åpnet to interessante stillinger som gir oss et innblik i hvor robotikk-industrien beveger seg.

Robotikk-navigasjonsingeniør: AI møter klassiske metoder

Den første stillingen fokuserer på robotnavigasjon og søker en AI-ingeniør som kan kombinere klassiske teknikker med moderne AI-metoder. Hovedarbeidsområdene inkluderer:

SLAM (Simultaneous Localization and Mapping), baneplanning og romlig resonnering – teknologier som løser navigasjonsproblemer som ennå ikke har gode løsninger.

Dette viser hvordan bransjen beveger seg mot hybride tilnærminger der tradisjonelle robotikk-algoritmer kombineres med maskinlæring. For hobbyister og studenter som vil inn i dette feltet, betyr det at både grunnleggende forståelse av ROS (Robot Operating System) og moderne AI-frameworks som TensorFlow eller PyTorch blir stadig viktigere.

Elektronikk-ingeniør: Fra prototype til produksjon

Den andre stillingen søker en elektroingenier som skal eie hele prosessen fra design til produksjon. Dette inkluderer prototyping, testing og produksjonsforberedelser av robotikk-hardware.

Stillingen illustrerer hvor viktig det er å forstå hele verdikjeden i robotikk-utvikling. Moderne robotikk-prosjekter krever ikke bare programmeringsferdigheter, men også dyp forståelse av:

  • Sensorfusjon og signalbehandling
  • Strømstyring og batteriteknologi
  • PCB-design og elektronisk prototyping
  • EMC og termisk håndtering

Hva dette betyr for robotikk-miljøet

Med en lønnsskala på $100,000 – $300,000 og hybride arbeidsformer, signaliserer disse stillingene at robotikk-bransjen konkurrerer hardt om talenter. For norske robotikk-entusiaster kan dette være inspirerende – det viser hvilke ferdigheter som er mest verdifulle å utvikle.

Ndimensions Labs’ fokus på «infrastruktur for neste generasjons robotikk-AI» antyder også at vi beveger oss mot mer standardiserte plattformer og verktøy, noe som kan gjøre robotikk-utvikling mer tilgjengelig for mindre aktører og hobbyister.

Dette er trender vi bør følge nøye med på i det norske robotikk-miljøet.

Kilde: ROS Discourse

Publisert Legg igjen en kommentar

PCB-design med KiCad: Fra skjema til kretskort

KiCad har revolusjonert verden av PCB-design ved å tilby profesjonelle verktøy helt gratis. I denne guiden tar vi deg gjennom hele prosessen fra første skjemategning til ferdig kretskort klar for produksjon.

Hva du trenger

  • PC med Windows, macOS eller Linux
  • KiCad 7.0 eller nyere (gratis nedlasting)
  • Internettforbindelse for symbolbiblioteker
  • En enkel krets å starte med (f.eks. LED-blinker)
  • Tålmodighet – første PCB tar tid!

Installasjon og oppsett av KiCad

Last ned KiCad fra den offisielle nettsiden (kicad.org). Nyeste versjon kommer med forbedret brukergrensesnitt og oppdaterte biblioteker. Under installasjonen, sørg for å installere alle symbolbibliotekene – disse inneholder tusener av komponenter du vil trenge.

Etter installasjon, åpne KiCad og opprett et nytt prosjekt. Du får en prosjektmappe med flere filer som hører sammen. Hovedfilene er .kicad_pro (prosjektinnstillinger), .kicad_sch (skjema) og .kicad_pcb (kretskortet).

Tips: Opprett alltid en egen mappe for hvert prosjekt. KiCad genererer mange filer underveis, og god organisering sparer tid senere.

Skjemalegning – fundamentet for alt

Start med skjemaeditoren (Schematic Editor). Her tegner du den elektriske kretsen før du lager det fysiske kretskortet. Skjemaet er din «oppskrift» – det forteller KiCad hvordan komponentene skal kobles sammen.

Plassering av komponenter

Bruk A-tasten for å legge til komponenter. Søk etter komponenter i bibliotekene – for en LED-krets trenger du typisk:

  • LED (Device:LED)
  • Motstand (Device:R)
  • Strømkilde eller batteri (power:+BATT, power:GND)

Plasser komponentene logisk på skjemaet. Bruk M for å flytte, R for å rotere, og E for å editere egenskaper som verdier og referanser.

Tilkoblinger og nett

Koble komponenter med ledninger ved å bruke W-tasten. KiCad skaper automatisk «nett» (nets) – dette er elektriske forbindelser som senere blir til kobberledere på PCB-en. Navngi viktige nett for oversiktens skyld.

Tips: Bruk merkelapper (labels) på signaler som går mellom ulike deler av skjemaet. Dette gjør store skjemaer mye mer leselige enn lange ledninger.

Fra skjema til PCB – footprint-tildeling

Når skjemaet er ferdig, må hver komponent tildeles en «footprint» – dette er den fysiske formen komponenten har på kretskortet. Åpne Footprint Assignment Tool fra skjemaeditoren.

Her ser du alle komponentene fra skjemaet til venstre og tilgjengelige footprints til høyre. Typiske valg:

  • LED: LED_THT:LED_D5.0mm (for 5mm LED)
  • Motstand: Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal
  • Konnektorer: Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical

Footprint-navn forteller deg mye: THT (Through-Hole Technology) vs SMD (Surface Mount Device), dimensjoner, og orientering. Velg footprints som matcher dine faktiske komponenter.

Start prosjekt

Tegn skjema

Tildel footprints

PCB layout

Design OK?

Nei

Ja

Eksporter Gerber

PCB-layout – hvor magien skjer

Åpne PCB-editoren og importer komponentene fra skjemaet med «Update PCB from Schematic». Alle komponentene dukker opp som en haug – nå skal du plassere dem strategisk på kretskortet.

Plassering av komponenter

Start med å definere kortstørrelsen ved å tegne en outline på Edge.Cuts-laget. Deretter plasserer du komponenter logisk:

  • Relaterte komponenter nær hverandre
  • Innganger til venstre, utganger til høyre
  • Strømkomponenter spredt for god varmefordeling
  • Hold høy-frekvens kretser unna støykilder

Rutning – å lage forbindelsene

Etter plassering kommer rutning – prosessen med å tegne kobberledere mellom komponentene. KiCad viser «ratsnest» – tynne linjer som viser hvilke pads som skal kobles sammen.

Bruk X-tasten for å starte rutning. Moderne KiCad har forbedret auto-ruter, men manuell rutning gir best kontroll. Viktige prinsipper:

  1. Start med strømforsyning (power og ground)
  2. Bruk tykke spor for strøm (typisk 0.5-1mm)
  3. Hold signalspor korte og direkte
  4. Unngå 90-graders hjørner – bruk 45-grader eller buede spor

Tips: Bruk flere lag hvis kretskortet blir komplekst. Et dedikert ground-plan på bakside gjør rutning mye enklere og forbedrer elektriske egenskaper.

Design Rule Check og finpuss

Før produksjon, kjør Design Rule Check (DRC) for å finne feil. Dette sjekker at spor ikke er for tynne, at avstander er korrekte, og at alle nett er rutet. Rett alle feil før du går videre.

Legg til silkscreen-tekst for referanser og verdier. Dette hjelper enormt under lodding og feilsøking. Plasser tekst så den ikke dekkes av komponenter.

Gerber-eksport – klar for produksjon

Gerber-filer er industristandarden for PCB-produksjon. Gå til File → Fabrication Outputs → Gerbers. Eksporter disse lagene:

  • F.Cu (Front Copper)
  • B.Cu (Back Copper)
  • F.Paste (Solder Paste – hvis SMD)
  • F.Silkscreen (Component markings)
  • F.Mask (Solder Mask)
  • Edge.Cuts (Board outline)

Generer også en drill-fil for hull. Mange PCB-produsenter aksepterer også KiCad-filer direkte, men Gerber er universelt støttet.

Vanlige feil å unngå

  • Feil footprint-størrelse: Mål alltid komponenter før du velger footprints. En 0805 motstand er ikke det samme som 0603.
  • For smale strømspor: Beregn strømbelastning og velg sporbredde deretter. En vanlig feil er å bruke samme sporbredde overalt.
  • Manglende ground-tilkobling: Sørg for at alle komponenter har ordentlig ground-forbindelse. Bruk thermal vias hvis nødvendig.
  • Glemt design rules: Sjekk PCB-produsentens minimumskrav for sporbredde, via-størrelse og avstand mellom elementer.
  • Dårlig komponentplassering: Tenk på lodding og testing. Plasser testpunkter tilgjengelig og unngå komponenter under andre komponenter.

Neste steg

Med Gerber-filene klare kan du bestille kretskort fra produsenter som JLCPCB, PCBWay eller lokale alternativer. For prototyper holder det ofte med 1-2 lags kort, mens komplekse design kan kreve 4-6 lag.

Mens du venter på kretskortene, kan du forberede komponentinnkjøp. RoboNordic har et bredt utvalg av elektronikkkomponenter som kan hjelpe deg å realisere designet ditt.

KiCad-dokumentasjonen og community-forumer er utmerkede ressurser for videre læring. Med disse grunnleggende ferdighetene er du klar til å ta fatt på mer avanserte prosjekter med mikrokontrollere, høyhastighets-signaler og kompleks rutning.