Light Plotter with Intel Edison (14 / 16 steg)

Steg 14: Samla All kod



Detta är en översikt över den kod som har diskuterats i föregående steg. Min slutliga filen bifogas för din användning.

Koden består av dessa klasser

  • lightPen
  • SVGHandler
  • stepper
  • lightPlotter
  • cmdInterface

LightPen klass

Denna klass hanterar kommunikation med ESP8266 wifi-kontrollerad RGB LED via ett HTML-gränssnitt. Den har tre funktioner

setColourRGBTuple() Denna funktion används för att ange den aktuella färgen för ett RGB-värde som tillhandahålls i form av en tupel (R, G, B), där värdena R, G och B är mellan 0 och 255 (bas 10 - decimal)

setColourHexString() Denna funktion används för att ange den aktuella färgen för ett RGB-värde som tillhandahålls i form av en hex-sträng "#rrggbb", där värdena rr, gg och bb är mellan 00 och ff (bas 16 - hex)

setColour() Denna funktion kallas av setColourRGBTuple eller setColourHexString att tillämpa färg på Lysdioderna via HTML-begäran. Om vi kallas denna funktion direkt mellan motor steg kan det orsaka en försening och störa jämnhet i våra kliva. För att undvika detta kallas det i en tråd, så att det körs samtidigt med stegmotor koden.

SVGHandler klass

Denna klass operation förklarades i steg "XY koordinater från ett SVG" kort sagt den läser in en SVG (som antas ha absoluta koordinater enda och linjär väg objekt endast) och lagrar dem som en lista med början och slut koordinaterna för linjer, tillsammans med linjens färg. Segmenten bildar en lista av listor, med varje segment med formuläret [x 0 y0 x1 y1 RGB]. x- och y-koordinaterna är normaliserad flöten (skalas så att minst är 0 och högsta är 1).

Stepper klass

Denna klass beskrivs i steg "Python kod att köra steppers". Det hanterar I2C kommunikation med stegmotorer och ger en enkel step() funktion som antingen stepper framåt eller bakåt ett steg.

LightPlotter klass

Klassen LightPlotter sammanför alla dessa andra klasser i ett system som kan rita bilder med ljus. Det finns några viktiga variabler som konfigureras under initiering

  • de två motorerna definieras som motor1 (vänstra motor) och motor2 (högra motor), dessa är förekomster av klassen stepper
  • Antalet horisontella steg mellan motor1 och motor2 definieras (xRes). Detta måste fastställas experimentellt och kommer att bero på diametern på din remskivor och avståndet mellan motorerna.
  • Defaults tiden mellan steg (stepTime) definieras. ett värde på 10 MS (0,01) fungerat bra för mig, men du måste bestämma hur snabbt du kan gå utan saknas steg.
  • Den maximala steg tid (stepTimeMax) definieras också, men detta är egentligen bara en säkerhet för vissa beräkningar, den har inte en betydelse för hårdvara, jag valde 1 sekund, som nåddes aldrig i praktiken.
  • usableArea. Som beskrivs i den "Förståelse the geometri av en sträng Plotter" steg, extremiteter direkt under motorerna och direkt mellan motorerna (överst) bör undvikas, så jag definierar en variabel "usableArea" som är en procentandel av det teoretiska området. 70% (eller 0,7) är en bra utgångspunkt.
  • Ibland kanske du vill flytta hela bilden (till exempel rita en karaktärs fötter på golvet), variabeln "yOffset" tar hand om detta

Detta är klassen lightPlotter funktioner

  • setOrigin
  • gå till
  • runSteppers
  • Tryckluft

setOrigin() används för att berätta den lätta plottern att det är för närvarande på (0,0) som används i kalibrering.

runSteppers() är en bekvämlighet funktion som tar i ett antal steg som varje motor bör vända, och intervallet mellan steg för varje motor. Med trådar är två motorerna både kan utökas samtidigt.

goTo() tar i ett (X, Y) samordna och beräknar antalet steg som varje motor måste flytta för att få lampan till den platsen. I tillägg bestämmer fördröjningen mellan åtgärder för att säkerställa att båda motorerna samtidigt för att komma till deras destination. När dessa detaljer beräknas, goTo() gör användning av funktionen runSteppers() för att få motorerna flyttar.

cmdInterface klass

Den här klassen använder sig av den väldigt cool Python module "cmd" ger oss möjlighet att enkelt bygga ett kommandoradsgränssnitt för våra ljus plotter.

Funktioner som är prefixet "s" kan anropas från kommandoraden när skriptet körs. Du kan se att de alla motsvarar nästan direkt till funktionerna av de olika klasserna, i de flesta fall omfattar de lite av felkontroll för att se till att argumenten är sane. "Hur att använda systemet" steg beskriver hur man använder dessa.

  • do_plotsvg
  • do_movesteps
  • do_invertMotor
  • do_disableMotor
  • do_enableMotor
  • do_setrgb
  • do_goxy
  • do_goxyrgb
  • do_setusable
  • do_setorigin
  • do_setyoffset
  • do_exit
Se Steg
Relaterade Ämnen

Cloud seismograf med Intel Edison

Vi är en grupp av beslutsfattare som vill tillbringa nätter och helger knorramed tecnology här på Verona FabLab (Verona är en stad i norra Italien) och med detta instructable vill vi beskriva projektet vi har insett för Intel Maker contest.Detta proj...

Geiger ryggsäck med Intel Edison

Vi är en grupp av beslutsfattare som vill tillbringa nätter och helger mixtra med tecnology här på Verona FabLab (Verona är en stad i norra Italien) och med detta instructable vill vi beskriva projektet vi har insett för Intel Maker contest.Vårt proj...

Intel Edison Sensor Dashboard med fribord/Python/kolv (minimal programmering krävs)

Först ville jag säga tack för möjligheten att arbeta med en Edison och ges en vid Intel/Instructables för att ange deras IoT tävling. Jag tror att detta är ett bra sätt att göra samhällsbyggande och uppmuntra utvecklare att få engagerade och ombord....

Göra ett intelligent skrivbordsklockan, skriven i JavaScript, drivs med Intel Edison

Varför min klockor måste vara mer intelligent...Jag ställa alltid in påminnelser för min kalender möten men när denna lilla "XYZ möte börjar i 15 minuter" desktop anmälan dyker upp i hörnet på min datorskärm jag trycker på Snooze eller Stäng kna...

WiFi baserade hemautomation av Intel Edison och banan Pi M1

#IntelIoT #2015HackNTUHej! Människor,Detta är projektet jag gjort ensam under den nationella Taiwan Univ. Hackthon, sedan 21 augusti 2015 till 23 augusti 2015 i Taipei. Jag försökte göra något kunde vara till hjälp för de Taiwaness vars ålder är gamm...

BeatBox: chock spårning för paket med Intel Edison - Intel IOT

Hej allaVi kom precis tillbaka hem efter deltagande till Intel IoT Roadshow (och hackathon) i London.Det var fantastisk och full av idéer och kreativa drar. En mycket bra erfarenhet. Du borde prova.Vi kom som en redan bildade lag och med en mycket br...

Intellekten IoT EDI - övervakning en bekväm och säker miljö (med Intel Edison)

Innan för att starta, jag skulle vilja tacka Intel och Instructables för tillfället: Jag har valts bland annat vinnaren av en fantastisk Intel IoT Edison & Grove Kit... Det var mycket förvånande för mig, och jag är mycket tacksam för det. Tack! :-)In...

Intel® Edison Hands-on dag 1: Tryckknapp

Låt oss göra det enklaste exemplet! Tryck på knappen för att slå på lampan.Komponent som krävs1 × digital piranha LED ljus-modul1 × digital tryckknapp1 × IO Expansion sköld1 × Intel® Edison med Arduino Breakout KitSteg 1: anslutning Digital tryckknap...

Intel® Edison Hands-on dag 3: Tända dimmer

Lätta dimmers är anordningar som används för att variera ljusstyrkan påen ljus. Med en rotation sensor, kan vi finjustera intensiteten i ljuseffekt. Du rotera mer ratten, desto ljusare LED. Så låt oss försöka göra en dimmer av oss själva.Rotationen s...

Intel® Edison Hands-on dag 5: Röst aktiverat lampa

Röst aktiverat lampaHade du någonsin varit nyfiken på den röststyrda glödlampan i din barndom? Hade du någonsin stämplade och om igen och bara slå på ljuset? Så länge du klappa händerna, kommer ljuset att vända på. I detta avsnitt kommer vi göra såda...

Intel® Edison Hands-on dag 6: Sensor lampa

I detta avsnitt kommer vi försöka göra en sensor lampa. Närnågon går förbi sensor lampa, LED kommer att automatiskt på. Naturligtvis blir det om ingen är runt. I detta exempel väljer vi PIR rörelsesensor. Det gör att du kan upptäcka om någon har flyt...

Intel® Edison Hands-on dag 7: Lysande Treasure Box

Självlysande skattkista, namnet låter kul. Och det skulle vara riktigt roligt! Vi kommer att göra denna box, som kommer att vara stängd under dagen, en gång i natt, dess ljus får ljusare med rutan öppnas långsamt. Ha-ha... det inre arbetet i rutan är...

Lösa Sudoku med Intel Edison

Mål• Från en bild av en Sudoku pussel, extrahera och (valfritt) lösa pussel.Målet element• Packa pussel från bilden (omforma bilden).• Identifiera talen i varje cell. – Korrelera nummer till deras respektive cell position.• (valfritt) lösa pussel och...

TEAM INVERKAN! Smart hjälm - Intel Edison, Sparkfun 9DOF

Intellekten Edison med Sparkfun 9DOF LSM9DS0 IMU3: e plats @ Intel IoT Roadshow NYC 2015Detta Instructable är för en Intel Edison IoT Smart hjälm som använder en Sparkfun 9DOF att samla in data från hjälmen för att mäta huvudet tramas och skapa en 3D...

Remote bil övervakning och spårning med Intel Edison

Jag är vanligtvis mångordig, men för denna del ska jag försöka vara kortfattad. Detta projekt är:En Intel Edison + en GPS-mottagare + en Bluetooth OBD-II läsare (tillval eftermarknaden bil sensorer) + en bil.Lägg i några program och du kan övervaka p...

MCU-1: En budget-medvetna Intel Edison MCU baserat Rover leksaksbil. (Intel IoT)

Liten video visar hinder skatteundandragande och få knappen baserat kommandon via bluetooth.Steg 1: SammanfattningDetta projekt kommer att bygga en enkel rover bil som kan styras av en android smart app med röst eller knappen baserat kommandon distan...

Intel Edison IoT remote miljöparametrar monitor

Detta är en mycket grundläggande projekt helt gjord i javascript genom IDE "Intel XDK IoT edition". När du är klar, har du ett system för att övervaka miljöparametrar (temperatur, ljus och luft kvalitet), lokalt i LCD-skärmen och på distans via...

IoT NFT Aquaponic System Controler med WebApp (Intel Edison & Node.js)

KretsloppsodlingAquaponic kombinerar vattenbruk (odla fisk) med Hydroponics (odling i vatten). Fisk utsöndrar bryts ner av bakterier till nitrat som absorberas av växter som näringsämnen, och plantera rötter agera som ett filter till rent vatten för...

Kontrollerande julbelysningen med Intel Edison + Grove Smart Relay

Detta Instructable guidar dig genom processen att använda Intel Edison styrelsen och Grove Smart reläet för att styra Christmas lights (eller andra elektroniska objekt för den delen).I slutet av detta Instructable har du ett eluttag wired att bara ha...