Hobbyelektronik

Her postes alt, som ikke direkte har noget med Ubuntu at gøre.
Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hobbyelektronik

Indlægaf Jakob77 » 14. jul 2014, 19:13

lath skrev:
Jakob77 skrev:du kan godt styre noget hardware fra en PC, hvis det er ok med dig at der først kan reageres på sensor input/reageres med en aktuator(f.eks. et relæ/magnetventil etc.), når scheduleren i Linux (kernen) mener at det er tid til at dit program får noget proces-tid på mikroprocessoren.


Det var en hyggelig måde at beskrive det på. :)
Men er det ikke meget et spørgsmål om at drosle ned på de andre pligter, som er pålagt systemet, og prioritere de vigtigste..?
Man går off-line og slår screensaver fra osv.
Gør man det, hvor lang tid vil du så skønne, at der max kan gå fra en føler aktiveres til ubuntu svarer..?
Der er da vist ikke særlig meget betænkningstid, hvis man spiller packman. ;)

Men i hvert fald er der mange formål, hvortil det ikke betyder noget, men en PC i øvrigt måske kan være en fordel frem for en PLC.
Hvis du forestiller dig en computer, som står midt i huset og kan tale med en række trådløse enheder.
Den bootes brutalt op med et tænd/sluk ur en gang i timen eller hver fjerde time og ikke om søndagen, eller hvad man nu ønsker.
Når PC'en er bootet op, så starter der automatisk et program, som tjekker status på nogle forskellige følere og vælger en programmeret reaktion dertil.
Det kan f.eks. være, at jeg har et relæ på min vaskemaskine, fordi den kun må starte, når vindstyrken overstiger 9 m/s
Det tjekker PC'en og starter selv vaskemaskinen, hvis betingelsen er opfyldt, og så tænder den samtidigt en lampe, så jeg kan se, at nu vaskes der.

Eller PC'en holder tjek på nedbøren og starter selv vandværket og styrer ventilerne til havevanding efter tørhed, klokken, vindstyrken, vindretningen og lager.

Der kan være mange spændende muligheder, selvom Ubuntu gerne vil have et par splitsekunder til reaktionen for at få "sjælen" med. :)

lath
Forfatter
Indlæg: 5057
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Hobbyelektronik

Indlægaf lath » 15. jul 2014, 04:42

AJenbo skrev:Man kan installere linux-image-lowlatency for at komme tættere på realtime (soft realtime). Der findes også ægte realtime til linux, men så er det uden for Ubuntu og mere nørdet.


Der er en interessant artikel om emnet for de nysgerrige:
http://www.embedded.com/design/operating-systems/4371651/Comparing-the-real-time-scheduling-policies-of-the-Linux-kernel-and-an-RTOS-

En anden ting er at man i alle tilfælde skal køre:

Kode: Vælg alt

sudo swapoff -a

Dvs ingen swap, da man ikke kan vente på at en page(=4 KB) kommer ind i fysisk RAM ude fra et lagermedie (hdd, sdd osv.), da den kopiering går så langsomt til at det styresystem nogensinde vil kunne kaldes noget med real-time.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Teknisk Software og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags

lath
Forfatter
Indlæg: 5057
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Hobbyelektronik

Indlægaf lath » 15. jul 2014, 05:04

Jakob77 skrev:
lath skrev:
Jakob77 skrev:du kan godt styre noget hardware fra en PC, hvis det er ok med dig at der først kan reageres på sensor input/reageres med en aktuator(f.eks. et relæ/magnetventil etc.), når scheduleren i Linux (kernen) mener at det er tid til at dit program får noget proces-tid på mikroprocessoren.


Det var en hyggelig måde at beskrive det på. :)
Men er det ikke meget et spørgsmål om at drosle ned på de andre pligter, som er pålagt systemet, og prioritere de vigtigste..?
...

Jeg kan ikke forstille mig at det gør noget at der kommer et par ekstra liter vand ud i din have eller ej.

I et vand forsyningssystem til f.eks. en storby der pumper flere kubikmeter (=1000 liter) vand i sekundet kan et RTOS(=Real-Time Operating System) vs et ikke-RTOS være forskellen på om at at alle vandledninger den pumpe er tilsluttet til er smadret eller ej. Årsagen er selvfølgelig at vand ikke kan komprimeres - kun sættes under tryk.

København får sit vand et godt stykke uden for byen (fra Nordsjælland), og bruger derfor nogle store pumper til vandforsyningen.
http://www.geus.dk/DK/popular-geology/edu/viden_om/grundvand/Sider/gv02-dk.aspx (Generelt om grundvand, ikke direkte om Kbhs vand)

Hos mig får du ofte noget ekstra bonus-information, når du spørger.
Det kan du så selv vurdere brugbarheden af.


/Lars
Jeg er Software ingeniør (Diplomingeniør) i Teknisk Software og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags

AJenbo
Admin
Indlæg: 19745
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Hobbyelektronik

Indlægaf AJenbo » 15. jul 2014, 12:28

lath skrev:Årsagen er selvfølgelig at vand ikke kan komprimeres - kun sættes under tryk.

Det er en af mine favorit fakta om vand, sammen med at det udvider sig når det fryser og at det kan super køles.

Brugeravatar
Kurt Christensen
Indlæg: 2239
Tilmeldt: 12. feb 2011, 13:22
IRC nickname: How to be me

Re: Hobbyelektronik

Indlægaf Kurt Christensen » 15. jul 2014, 13:55

AJenbo skrev:
lath skrev:Årsagen er selvfølgelig at vand ikke kan komprimeres - kun sættes under tryk.

Det er en af mine favorit fakta om vand, sammen med at det udvider sig når det fryser og at det kan super køles.

Rent teoretisk kan vand godt komprimeres, men det kommer de færreste nok ud for at observere.
BRUGERFLADEBRUGER med Ubuntu 17.10 64 bit :O)
Laptop Compaq Presario CQ70-230EO
Intel(R) Pentium(R) Dual CPU T3400 @ 2.16GHz, 4GB ram, GeForce 9200M GE/PCIe/SSE2

Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hobbyelektronik

Indlægaf Jakob77 » 19. jul 2014, 18:06

@lath


Det er faktisk meget interessant, at Ubuntu kan bruges til styring, synes jeg. :)

Kan man mon så købe noget hardware, f.eks. en relæskinne, som Ubuntu kan styre, eller er man henvist til selv at lodde noget sammen..?
Og hvordan ser softwaren ud..?

Man kan selvfølgelig altid købe en netværksprinter, og så lade den printe en side ud, som påvirker armen på en microswich, som trækker et relæ, som starter vaskemaskinen. ;)

lath
Forfatter
Indlæg: 5057
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Hobbyelektronik

Indlægaf lath » 19. jul 2014, 18:32

Jakob77 skrev:@lath


Det er faktisk meget interessant, at Ubuntu kan bruges til styring, synes jeg. :)

Kan man mon så købe noget hardware, f.eks. en relæskinne, som Ubuntu kan styre, eller er man henvist til selv at lodde noget sammen..?

Det kommer jo an på din pengepung. Har du ikke pengene til udstyr du kan købe af en virksomhed, så er det et DIY projekt.
Bliver det DIY, så kig efter en passende Arduino hardware(=kaldes en Arduino Shield) + en Arduino til at styre det.
Den her ser ud til at kunne det du vil: http://www.seeedstudio.com/wiki/Relay_Shield_V2.0 (seeduino er en af de mange *uino billig mærker, og Arduino er original varen i typisk noget højere kvalitet.)
Software center har et ganske gratis Arduino IDE(udviklingsmilø) du kan installere.
Jakob77 skrev:Og hvordan ser softwaren ud..?

Man bruger ofte en seriel port kommunikation. Det er nærmest standard at man indenfor små indlejrede systemer bruger simpel tekst baseret seriel port kommunikation

Du kan godt lave det sådan at du gemmer tidsparametre i Arduinoens mikrocontroller.
Det har den fordel at den kan fortsætte som intet var hændt efter at PCen slukkes, hvis Arduinoen altså har sin egen simple strømforsyning.

Alternativt kan du lade PCen boote op selv via en BIOS tids-indstilling, og så omprogrammere Arduino med nye tids-parametre, og/eller du kan kopiere måledata/en log ud af Arduinoen.

Der er mange muligheder, men bemærk at mikrocontollere har meget lidt RAM, ofte kun fra 512 bytes til 2048 bytes, og er det vildt, så er vi oppe på 65536 bytes (64 KB) RAM - typisk i større ARM Cortex microcontrollere i Arduino konfiguration.
Jakob77 skrev:Man kan selvfølgelig altid købe en netværksprinter, og så lade den printe en side ud, som påvirker armen på en microswich, som trækker et relæ, som starter vaskemaskinen. ;)

He, he - og selv hvis det blev lavet er det nok tvivlsomt om der er moment nok (kraft(i Newton) gange arm(i meter) = NewtonMeter, Nm er moment) til at kunne lave det.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Teknisk Software og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags

Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hobbyelektronik

Indlægaf Jakob77 » 22. jul 2014, 00:32

@lath


Hvis du har et stykke tape og en blyant, så kan du forlænge armen på microswitchen, så der ikke skal bruges så stor kraft. :)


Billede

Jeg kunne godt have gættet på, at det var noget fra Legos forsøgsværksted 1988.
Der må siges at være basis for et godt og omfattende udviklingsprojekt til vinter.
Der kan for mig være 500 kr/ventil sparet i multifunktionsrelæer at gøre godt med.
Men de kan selvfølgelig også hurtigt få ben at gå på:
http://www.let-elektronik.dk/let-elektronik/workshop-kit/starter-kit.html


Består softwaren af kommandoer, som kan skrives til terminalen i scripts, eller skal der compiles evt. til en anden ekstension..?
Kan du give en lille smagsprøve på sproget..?
Det skal helst være med if then else and goto,, else kan jeg slet ikke hitte ud af det.
Det kan sikkert også køre på en old gammel computer med f.eks. ubuntu 8.10 ..?


Angående real time, så betyder en forsinket lukning af havvevandingsventilerne ikke noget. Men motoren må helst ikke stå og tvinge ventilen i mange sekunder med spænding på.
Jeg kan ikke forestille mig, at det kan blive et problem. Men gælder det også, at man ikke kan regne med real time til afgrænsede opgaver..?

F.eks. terminalkommandoen:

"beep 3"

Må man der heller ikke forvente et beep i præcist tre sekunder..?



Angående start af vaskemaskine tilsluttet kraft.
Man kan købe et dyrt relæ til tre faser.
Men er der egentlig noget i vejen for, at man i stedet benytter et separat relæ til hver fase, hvis de blot aktiveres samtidigt..?
Tre stk i fatning, som det gule på billedet ( så får jeg også lige vist, at jeg har fået lidt mere orden på fuglereden :) )

Kuglemotorventilstyring.jpg
Kuglemotorventilstyring.jpg (116.46 KiB) Vist 398 gange

lath
Forfatter
Indlæg: 5057
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Hobbyelektronik

Indlægaf lath » 22. jul 2014, 10:14

Jakob77 skrev:@lath


Hvis du har et stykke tape og en blyant, så kan du forlænge armen på microswitchen, så der ikke skal bruges så stor kraft. :)


Billede

Jeg kunne godt have gættet på, at det var noget fra Legos forsøgsværksted 1988.
Der må siges at være basis for et godt og omfattende udviklingsprojekt til vinter.
Der kan for mig være 500 kr/ventil sparet i multifunktionsrelæer at gøre godt med.
Men de kan selvfølgelig også hurtigt få ben at gå på:
http://www.let-elektronik.dk/let-elektronik/workshop-kit/starter-kit.html


Består softwaren af kommandoer, som kan skrives til terminalen i scripts, eller skal der compiles evt. til en anden ekstension..?

Det er maskinkode der afvikles i Arduinoens mikrocontroller.
Jakob77 skrev:Kan du give en lille smagsprøve på sproget..?
Det skal helst være med if then else and goto,, else kan jeg slet ikke hitte ud af det.

Det hedder Processing, og ligner C programmerings sproget - og goto giver generelt grim kode så brug den sparsomt:
Læs mere her: http://arduino.cc/en/Reference/HomePage
Bemærk at der findes et Processing Library der indeholder en masse nyttig funktionalitet.
Jakob77 skrev:Det kan sikkert også køre på en old gammel computer med f.eks. ubuntu 8.10 ..?

Der er kildekode for Arduinoen, også er der kildekoden for et Linux program, der skal kommunikere med din Arduino.
Arduino softwaren kører ikke på en PC.

Flere detaljer:
  • Der er maskinkode der kører på din Arduino. Maskinkoden laves af en compiler/oversætter ud fra Processing kildekode. Compileren kører på en host, der er en PC, men compilerens target er en Atmel ATMega microcontroller der bruges af Arduinoen. Aruino IDE'et pakker så compilerns objektkode(=rå maskinkode) om til firmware og uploader så firmwaren til Atmel ATMega microcontrolleren via ISP(In circuit Serial Programming) interfacet, der er 6 elektriske forbindelser til Atmel microocontrolleren.
  • Du skal lave et andet program der kører på PCen - jeg foreslår at du lader din Arduino lave seriel kommunikation, hvor der snakkes med tekst. Det er nemt at lave.

    Processing virker vist-nok også på blandt andet Linux:
    Hints:
Jakob77 skrev:Angående real time, så betyder en forsinket lukning af havvevandingsventilerne ikke noget. Men motoren må helst ikke stå og tvinge ventilen i mange sekunder med spænding på.

Det er lige præcis det du kan bruge microcontrolleren i arduino en til - at overholde bestemte tidskrav.
I praksis skal du lave Arduino softwaren sådan at den ignorer hvis PC kommanderer åben i for lang tid.
Jakob77 skrev:Jeg kan ikke forestille mig, at det kan blive et problem. Men gælder det også, at man ikke kan regne med real time til afgrænsede opgaver..?

F.eks. terminalkommandoen:

"beep 3"

Må man der heller ikke forvente et beep i præcist tre sekunder..?

Det er helt rigtig forstået.
Det er aldrig præcist 3 sekunder - det kan kun hardware såsom en Arduino garantere.

Jakob77 skrev:Angående start af vaskemaskine tilsluttet kraft.
Man kan købe et dyrt relæ til tre faser.
Men er der egentlig noget i vejen for, at man i stedet benytter et separat relæ til hver fase, hvis de blot aktiveres samtidigt..?
Tre stk i fatning, som det gule på billedet ( så får jeg også lige vist, at jeg har fået lidt mere orden på fuglereden :) )

Kuglemotorventilstyring.jpg


Det er ikke så god en ide, for i praksis vil de 3 faser ikke gå on eller off på det samme tidspunkt.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Teknisk Software og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags

AJenbo
Admin
Indlæg: 19745
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Hobbyelektronik

Indlægaf AJenbo » 22. jul 2014, 11:53

Det kan være der er en seperat chip til at håndtere lyden som så kan holde tonen i præcis 3 sek

lath
Forfatter
Indlæg: 5057
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Hobbyelektronik

Indlægaf lath » 22. jul 2014, 12:04

AJenbo skrev:Det kan være der er en seperat chip til at håndtere lyden som så kan holde tonen i præcis 3 sek

Ikke på en PC - en ekstra seperat chip er for dyrt.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Teknisk Software og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags

Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hobbyelektronik

Indlægaf Jakob77 » 22. jul 2014, 18:08

@lath

Jeg takker mange gange for alle dine gode informationer. :)

Men så ligner Arduino vel egentlig en PLC til forveksling..?

Jeg er mere ude på, at det er Ubuntu, der skal styre det hele selv med hud og hår, kun når computeren er tændt, og så må eventuelle problemer med "unreal time" løses på anden vis, hvis de opstår.
Hvordan ser mulighederne ud, hvis man i stedet gerne vil den vej..?
En USB port burde vel nok kunne trække nogle relæer på kommando fra Ubuntu..?

Eller måske er det så alligevel tilbage til den trådløse netværksprinter, som får besked på at printe ud, når vaskemaskinen skal tænde. ;)

lath
Forfatter
Indlæg: 5057
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Hobbyelektronik

Indlægaf lath » 22. jul 2014, 21:41

Jakob77 skrev:@lath

Jeg takker mange gange for alle dine gode informationer. :)

Men så ligner Arduino vel egentlig en PLC til forveksling..?

Jeg er mere ude på, at det er Ubuntu, der skal styre det hele selv med hud og hår, kun når computeren er tændt, og så må eventuelle problemer med "unreal time" løses på anden vis, hvis de opstår.
Hvordan ser mulighederne ud, hvis man i stedet gerne vil den vej..?
En USB port burde vel nok kunne trække nogle relæer på kommando fra Ubuntu..?

Eller måske er det så alligevel tilbage til den trådløse netværksprinter, som får besked på at printe ud, når vaskemaskinen skal tænde. ;)


En Arduino er ikke en PLC, da en PLC mere er en rugged computer der er god til hard real-time automation. En Ardunio er lagt fra rugged.

Du kan godt gøre det sådan at Ubutnu styrer hele showet - via en parallel printerport f.eks. med tilhørende drivere (der strømforstærker signalet så det kan trække en relæspole.

Husk - absolut ingen swap partition eller swap fil må bruges, da de det tager i omegen af en faktor 1000x længere tid at hente en page(=4 KB) fra disk end fra RAM.


I praksis har du brug for en kodensator, og så sender du et signal ud til porten så længe ventil skal være åbent.
Kodensatoren skal kunne holde på så høj en spænding at en bipolar transistor et lille stykke tid efter at du har sendt et signal.
Du skal sigte efter at der altid kan leveres imellem 0,6 volt til 0,7 volt per bipolar transistor, så transistorerne er åbne.
Du skal naturligvis darligton koble nogle transistorer indtil strømmen er så lav at parallelporten kan trække transistoren.

Du har brug for kondensatoren for at undgå at relæet står og klaprer ( tænder og slukker hele tiden).
Et relæ der klaprer leverer en firkant impuls, som relæet sandsynligvis ikke kan holde til i lang tid - og endnu mere er den slags firkant impulser særligt dårlige for vekselspændingsudstyr - DC elektromekanik klarer den slags meget bedre.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Teknisk Software og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags

Jakob77
Indlæg: 889
Tilmeldt: 19. dec 2008, 15:52
IRC nickname: Jakob77

Re: Hobbyelektronik

Indlægaf Jakob77 » 23. jul 2014, 09:25

@lath


Det lyder som om, at jeg bliver pioner, hvis jeg begiver mig ud i at lade Ubuntu styre showet alene.
Jeg forstår slet ikke, at det ikke er længere fremme, så der findes lækker software og strømlinet hardware med trådløse relæer og sensorer i lange baner til næsten ingen penge.


Det kan sikkert være udmærket og bedst med Arduino på nogle områder, men på andre områder virker det umiddelbart på mig, som at gå over åen efter vand.
Hvad f.eks., når styringen skal tage hensyn til noget så simpelt som de sidste dages nedbør for at kunne fastlægge den tid, som der skal vandes..?
Kan der findes eller fastsættes variabler i Ubuntu, som Arduino'en kan aflæse og styre efter..?
Eller skal jeg så "bare lige" skrive et program, som automatisk ved bootup aflæser nedbøren og omsætter den til en variabel, som det så indskriver i Arduinoprogrammet og automatisk compilerer det til Arduino'en, som det så omsider må give besked på at starte..?

lath
Forfatter
Indlæg: 5057
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Hobbyelektronik

Indlægaf lath » 23. jul 2014, 12:50

Jakob77 skrev:@lath
Det lyder som om, at jeg bliver pioner, hvis jeg begiver mig ud i at lade Ubuntu styre showet alene.
Jeg forstår slet ikke, at det ikke er længere fremme, så der findes lækker software og strømlinet hardware med trådløse relæer og sensorer i lange baner til næsten ingen penge.

Der findes et SBC, som er en Debian Linux computer - den er dog ret dyr i forhold til en Rapberry Pi (6x prisen for en Raspberry Pi, model A/model A+) .
Sidste link er til et stærkstrøms add-on modul. De virker sådan uden videre.
Jakob77 skrev:Det kan sikkert være udmærket og bedst med Arduino på nogle områder, men på andre områder virker det umiddelbart på mig, som at gå over åen efter vand.
Hvad f.eks., når styringen skal tage hensyn til noget så simpelt som de sidste dages nedbør for at kunne fastlægge den tid, som der skal vandes..?

Det er den måde man gør det på. Device drivers til styresystemer er mere komplicerede at lave.

Du har brug sensor input fra en fugtighedssensor og nok også en temperatur sensor, da fugtighed og temperator over tid er de vigtige parametre for planter.
Brug af sensorer gøres nemmest med et indlejret system, så som en Arduino.
Jakob77 skrev:Kan der findes eller fastsættes variabler i Ubuntu, som Arduino'en kan aflæse og styre efter..?

Det kan man godt.
Du definerer en protokol - altså en måde at kommunikere på - imellem dit Arduino system og enhver computer der vil kommunikere med den.

Jeg anbefaler seriel port kommunikation, og en tekst baseret protokol, fordi en tekst-baseret protokol er nem at teste direkte i et seriel port program.

Ved at bruge et seriel port program kan du teste kommunikationen før du bygger programmet der skal bruge den samme tekst-baserede kommunikation.
Jakob77 skrev:Eller skal jeg så "bare lige" skrive et program, som automatisk ved bootup aflæser nedbøren og omsætter den til en variabel, som det så indskriver i Arduinoprogrammet og automatisk compilerer det til Arduino'en, som det så omsider må give besked på at starte..?

Det virker ikke helt som om du forstår hvordan det foregår.

Firmware/et program, og software generelt skal ikke gen-oversættes fra kildekode bare fordi du ændrer på en variabel.

Arduino systemet
Lige efter opstart gør man altid det at man lader microcontrolleren konfigurere dens I/O porte. Det gør den ved at tildelte bestemte værdier til bestemte adresser.
Når det er sket starter man en endeløs løkke (C kode):

Kode: Vælg alt

while 1 {
    /* inde i den endeløse løkke har microcontrollerens software både rollen som program og det et styresystem normalt laver.  */
}

Det ser ud til at i Processsing programmeringssproget, som er det programmeringssprog en Arduino programmeres i, så sker konfigurationen i setup() {...}, og while-løkken sker i loop() { ... } .

while-løkken(der hedder loop() i Processing), skal lave det her:
  • Modtage kommandoer fra en PC via en seriel port.
    Der er noget til at komme godt i gang her: http://arduino.cc/en/Tutorial/DigitalReadSerial
  • Give svar til PCen.
  • Periodisk hente data ind fra en eller flere sensorer.
  • Lave noget på baggrund af data fra sensorerne, ofte gerne er der nogle parametre i RAM der bestemmer hvad den skal gøre i en bestemt situation.
Intet fra oversående liste kræver en gen-oversættelse af Ardinoens program/firmware.

Jeg bemærker at en Atmel AtMega har en EEPROM, så du kan lægge en default/standard handling ind i EEPROM, som så kopieres ind i RAM.
De default/standard handlinger bruger den så, medmindre den har fået noget andet at vide via dens serial port.
EEPROM har også memory wear (P/E =100.000).

Iøvrigt kan du ikke programmere en Atmel microcontrolleren mere end 10.000 gange i træk (P/E = 10.000) på grund af at de kvante-mekaniske fælder der lagrer microcontrollerens program som bits ikke længere virker.
Det fænomen hedder memory wear: http://en.wikipedia.org/wiki/Flash_memory#Memory_wear

På PCen
Du har brug for et program ovre på din PC tll at snakke med dit Arduino system via en seriel port.
Opgaven er så blevet nemmere af at ardunoen nu laver det meste af arbejdet, og du skal nu kun skubbe en kommando ned til Arduino systemet, eller du kan udlæse værdier med andre kommandoer.

/Lars

Edit, 20140724, 11:49: Redigeret for bedre forståelse
Senest rettet af lath 24. jul 2014, 11:48, rettet i alt 1 gang.
Jeg er Software ingeniør (Diplomingeniør) i Teknisk Software og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags

Tilbage til "Off-Topic"

Hvem er online

Brugere der læser dette forum: Google [Bot] og 0 gæster