Arduino vs. andra utvecklingsmiljöer
Arduino vs. andra utvecklingsmiljöer
Nu har jag i ett antal olika trådar följt vad som nästan kan benämnas ett krig mellan å ena sidan Arduino användare och å andra sidan en grupp som verkar anse att det är något som motsvarar det som katter brukar släpa in. Jag kan inte låta bli att förundras lite över de kraftiga känslor som ämnet verkar riva upp hos båda sidor, delvis därför att jag själv använder såväl Arduino som andra utvecklingsmiljöer och tycker att alla fyller sin funktion. Till sist kände jag att jag inte kunde vara passiv längre. Jag är inte så naiv att jag tror att jag kan få stopp på "kriget", men jag hoppas att kunna få lite vettiga synpunkter och inte bara pajkastning...
Till att börja med tycks det ju finnas en diskussion om exakt vad Arduino är. Själv anser jag att begreppet Arduino skall tolkas som utvecklingsmiljön - dvs antingen mjukvaran (IDE) eller hårdvaran i form av labbkorten eller båda delarna tillsammans. En ensam ATmega, med eller utan bootloader, är ingen Arduino i sig själv.
Om man tittar på IDE mjukvaran, så visst finns det brister i den - men det gör det i alla andra IDE program som jag använt också. Men det går relativt snabbt att komma igång med Arduino programmeringen, inte minst då det följer med många exempelprogram och det finns en uppsjö av bibliotek och exempel att hämta hem från Internet. På vilket sätt skulle det här vara sämre än andra IDE för ATmega, PIC eller valfri annan processor? Att språket är en modifierad variant av C borde ju heller inte vara ett problem - antingen så kan man C från början och då lär man inte ha några större problem att hantera skillnaderna, eller också (som jag, som i grunden är en Delphi programmerare) så har man inte programmerat i C tidigare och har kanske heller inte (återigen som jag) någon tanke på att börja med det i andra sammanhang och då spelar skillnaderna heller ingen roll. På vilket sätt skulle det vara sämre att programmera en ATmega i Arduino-C än att programmera en PIC i pascal?
När det gäller hårdvaran så ser jag inte varför Arduino skulle vara sämre än någon annan labb-miljö? Jag har tidigare använt olika labbkort för PIC, men en fördel (som jag ser det) med Arduino är alla de färdiga shields som finns att köpa. Under en utvecklingsprocess är det rätt skönt att kunna fokusera på mjukvara och hårdvara separat. Är det en riktig produkt man bygger så gör man ju ändå ett eget kort i slutändan - men på vägen dit är det ju bra om man kan använda färdiga byggstenar.
Till sist är det då den ofta kritiserade bootloadern. En av de första sakerna jag letade rätt på när jag höll på med PIC var en bootloader. Jag ser gärna att det finns en möjlighet att uppdatera mjukvaran i mina produkter ute på fältet, utan att behöva ha en programmerare med sig. Och vill man inte ha den så kan man ju alltid köra utan... Det är ju dessutom inte helt ovanligt att kommersiella produkter har just en bootloader (t.ex. de allra flesta moderkort i våra PC), på vilket sätt är Arduinons bootloader sämre?
Jag har det sista året byggt ett antal projekt med ATmega programmerad med Arduino IDE (och med bootloader) på egna kort. Utvecklingen har oftast gjorts på orginalhårdvaran, innan det riktiga kortet designats. Jag har också använt "riktiga" Arduino kort i färdiga produkter, i de fall det varit enklast. Om man ska tro det som skrivs i vissa inlägg här så skulle det innebära att jag är en oprofessionell utvecklare, men den bilden delar inte jag själv. Dessa produkter och program används dagligen (ibland 24/7) av mig, mina kollegor och våra kunder. Resultatet kan ses av i bland miljontals tv-tittare och varken mina kunder eller jag (som i grunden är tv-producent och inte programmerare) skulle acceptera lösningar som inte håller måttet.
Eller har jag helt missat något med Arduinon, som gör att jag borde lämna plattformen och ägna mig åt att lära mig något annat istället?
Till att börja med tycks det ju finnas en diskussion om exakt vad Arduino är. Själv anser jag att begreppet Arduino skall tolkas som utvecklingsmiljön - dvs antingen mjukvaran (IDE) eller hårdvaran i form av labbkorten eller båda delarna tillsammans. En ensam ATmega, med eller utan bootloader, är ingen Arduino i sig själv.
Om man tittar på IDE mjukvaran, så visst finns det brister i den - men det gör det i alla andra IDE program som jag använt också. Men det går relativt snabbt att komma igång med Arduino programmeringen, inte minst då det följer med många exempelprogram och det finns en uppsjö av bibliotek och exempel att hämta hem från Internet. På vilket sätt skulle det här vara sämre än andra IDE för ATmega, PIC eller valfri annan processor? Att språket är en modifierad variant av C borde ju heller inte vara ett problem - antingen så kan man C från början och då lär man inte ha några större problem att hantera skillnaderna, eller också (som jag, som i grunden är en Delphi programmerare) så har man inte programmerat i C tidigare och har kanske heller inte (återigen som jag) någon tanke på att börja med det i andra sammanhang och då spelar skillnaderna heller ingen roll. På vilket sätt skulle det vara sämre att programmera en ATmega i Arduino-C än att programmera en PIC i pascal?
När det gäller hårdvaran så ser jag inte varför Arduino skulle vara sämre än någon annan labb-miljö? Jag har tidigare använt olika labbkort för PIC, men en fördel (som jag ser det) med Arduino är alla de färdiga shields som finns att köpa. Under en utvecklingsprocess är det rätt skönt att kunna fokusera på mjukvara och hårdvara separat. Är det en riktig produkt man bygger så gör man ju ändå ett eget kort i slutändan - men på vägen dit är det ju bra om man kan använda färdiga byggstenar.
Till sist är det då den ofta kritiserade bootloadern. En av de första sakerna jag letade rätt på när jag höll på med PIC var en bootloader. Jag ser gärna att det finns en möjlighet att uppdatera mjukvaran i mina produkter ute på fältet, utan att behöva ha en programmerare med sig. Och vill man inte ha den så kan man ju alltid köra utan... Det är ju dessutom inte helt ovanligt att kommersiella produkter har just en bootloader (t.ex. de allra flesta moderkort i våra PC), på vilket sätt är Arduinons bootloader sämre?
Jag har det sista året byggt ett antal projekt med ATmega programmerad med Arduino IDE (och med bootloader) på egna kort. Utvecklingen har oftast gjorts på orginalhårdvaran, innan det riktiga kortet designats. Jag har också använt "riktiga" Arduino kort i färdiga produkter, i de fall det varit enklast. Om man ska tro det som skrivs i vissa inlägg här så skulle det innebära att jag är en oprofessionell utvecklare, men den bilden delar inte jag själv. Dessa produkter och program används dagligen (ibland 24/7) av mig, mina kollegor och våra kunder. Resultatet kan ses av i bland miljontals tv-tittare och varken mina kunder eller jag (som i grunden är tv-producent och inte programmerare) skulle acceptera lösningar som inte håller måttet.
Eller har jag helt missat något med Arduinon, som gör att jag borde lämna plattformen och ägna mig åt att lära mig något annat istället?
Re: Arduino vs. andra utvecklingsmiljöer
Jo, så är det väl, antar jag.
Själv har jag aldrig provat Arduino av två enkla orsaker:
1) när jag skulle börja med microkontrollers så kände jag inte till Arduino - jag valde mellan PIC och AVR och AVR vann eftersom det var de som lyckades leverera en enkel tutorial som jag kunde förstå (Det finns säkert för PIC också , men jag hittade inte något då)
2) När jag väl börjat med AVR och Atmel Studio har det aldrig funnits något behov för Arduino.

Själv har jag aldrig provat Arduino av två enkla orsaker:
1) när jag skulle börja med microkontrollers så kände jag inte till Arduino - jag valde mellan PIC och AVR och AVR vann eftersom det var de som lyckades leverera en enkel tutorial som jag kunde förstå (Det finns säkert för PIC också , men jag hittade inte något då)
2) När jag väl börjat med AVR och Atmel Studio har det aldrig funnits något behov för Arduino.
Re: Arduino vs. andra utvecklingsmiljöer
Arduino är inte hårdvara eller mjukvara utan det är ett helt koncept. Ett koncept som omfattar hårdvaran med utvecklingskort bestyckar med ATmegaprocessor, bootloader, mjukvaran med IDE och det programmeringsspråk som används samt den standardiserade layout som korten har vilket gör att det finns en uppsjö tillbehörskort (shields) att köpa. Detta tillsammans gör det relativt enkelt att komma igång och steget från att blinka en lysdiod till att få ihop något som faktiskt kan vara användbart är inte så stort.
Genom att utvecklingsmiljön tar hand om en massa grundläggande förutsättningar och döljer dessa för användaren slipper man ägna tid åt att lära sig en massa detaljer för den variant av Atmega som sitter i kortet. Detta, plus att det finns en massa kodsnuttar att hämta hem gör att det går snabbt att komma framåt. Det ser jag som en av de stora fördelarna med konceptet. Jag tror att det är det som retar en hel del av belackarna, att vilken noob som helst kan komma och påstå att de kan programmera en MCU fast de inte egentligen har en aning om vad som försiggår.
Det som är en stor fördel (att utvecklingsmiljön döljer en massa grundläggande detaljer) är ju samtidigt en av de stora nackdelarna. Man har inte samma kontroll över vad som händer i detalj och får inte optimalt effektiv kod vare sig när det gäller prestanda eller kodstorlek. Man ser ibland uttalande av naiva nybörjare om att Arduino skall ersätta ditten eller datten, det visar bara på hur lite den som uttalar sig om det egentligen förstår. Men vad spelar det för roll, de lär sig med tiden. Skulle det vara så att man kommit till den gräns där utvecklingsmiljön begränsar är det ju inte värre än att man går över till en "riktig" utvecklingsmiljö, t.ex. Atmega Studio.
I mina ögon är Arduino bra, det är ett snabbt sätt att komma igång utan att behöva investera en massa tid i att grotta ner sig i detaljer. Det finns en stor kunskapsbas på nätet att söka i och framför allt är det roligt!
Genom att utvecklingsmiljön tar hand om en massa grundläggande förutsättningar och döljer dessa för användaren slipper man ägna tid åt att lära sig en massa detaljer för den variant av Atmega som sitter i kortet. Detta, plus att det finns en massa kodsnuttar att hämta hem gör att det går snabbt att komma framåt. Det ser jag som en av de stora fördelarna med konceptet. Jag tror att det är det som retar en hel del av belackarna, att vilken noob som helst kan komma och påstå att de kan programmera en MCU fast de inte egentligen har en aning om vad som försiggår.
Det som är en stor fördel (att utvecklingsmiljön döljer en massa grundläggande detaljer) är ju samtidigt en av de stora nackdelarna. Man har inte samma kontroll över vad som händer i detalj och får inte optimalt effektiv kod vare sig när det gäller prestanda eller kodstorlek. Man ser ibland uttalande av naiva nybörjare om att Arduino skall ersätta ditten eller datten, det visar bara på hur lite den som uttalar sig om det egentligen förstår. Men vad spelar det för roll, de lär sig med tiden. Skulle det vara så att man kommit till den gräns där utvecklingsmiljön begränsar är det ju inte värre än att man går över till en "riktig" utvecklingsmiljö, t.ex. Atmega Studio.
I mina ögon är Arduino bra, det är ett snabbt sätt att komma igång utan att behöva investera en massa tid i att grotta ner sig i detaljer. Det finns en stor kunskapsbas på nätet att söka i och framför allt är det roligt!
Re: Arduino vs. andra utvecklingsmiljöer
Arduino är framtiden. Arduino är inte bara en "leksak" som folk brukar kalla det för. Det är ett professionellt verktyg som blir ratat av PIC/AVRstudio programmerare för att det är just Arduino. Arduino må se ut som en leksak, men man kan göra minst lika mycket så som PIC och klassisk AVR programmering.
Om några år så kommer Arduino vara ute på arbetsmarknaden då det är enklare att utveckla med Arduino än AVRstudio/PIC programmering. Tid är pengar!
Det är vi unga som ska leda framtiden.
Om några år så kommer Arduino vara ute på arbetsmarknaden då det är enklare att utveckla med Arduino än AVRstudio/PIC programmering. Tid är pengar!
Det är vi unga som ska leda framtiden.

- Lennart Aspenryd
- Tidigare Lasp
- Inlägg: 12607
- Blev medlem: 1 juli 2011, 19:09:09
- Ort: Helsingborg
Re: Arduino vs. andra utvecklingsmiljöer
Bra inlägg.
Någon måste säga ifrån när dessa forumtalibaner enbart ser fyrkantiga hjul.
Utbildning och referensmaterial är bland de viktigaste för att lyfta ett språk eller en hårdvara.
Ibland känner jag för att sluta här pga talibaner som bara framhäver sitt eget.
Men vi vet var deras sign är!
Jag var glad när jsg lärde en mig motsvsrigheten till broadminded!
Narrowminded som med skygglappar.
Men det är som smalspår, lättare att vicka omkull.
Någon måste säga ifrån när dessa forumtalibaner enbart ser fyrkantiga hjul.
Utbildning och referensmaterial är bland de viktigaste för att lyfta ett språk eller en hårdvara.
Ibland känner jag för att sluta här pga talibaner som bara framhäver sitt eget.
Men vi vet var deras sign är!
Jag var glad när jsg lärde en mig motsvsrigheten till broadminded!
Narrowminded som med skygglappar.
Men det är som smalspår, lättare att vicka omkull.
Re: Arduino vs. andra utvecklingsmiljöer
Problemet om du tar upp pengaspåret är inlåsningen du gör till Atmels µC. Du tappar direkt en mycket viktig förhandlingspunkt mot leverantörerna om de vet att du är inlåst till deras µC. Rätt skriven C kod är lätt att porta över till nästan varenda µC tillverkares egna µC familj och passande C kompilator.
Visst är det inte aktuellt vid småserier, men när besparingar på 10-20cent per enhet överstiger utvecklingskostnaden med råge, då börjar andra regler gälla.
Och mitt första fungerande µC baserade bygge var på en BasicStamp2 (http://www.hth.com/) 90 talets Arduino
Visst är det inte aktuellt vid småserier, men när besparingar på 10-20cent per enhet överstiger utvecklingskostnaden med råge, då börjar andra regler gälla.
Och mitt första fungerande µC baserade bygge var på en BasicStamp2 (http://www.hth.com/) 90 talets Arduino

Re: Arduino vs. andra utvecklingsmiljöer
Jupp, skygglappar... Och när framtidens hopp inte fattar hur det fungerar med t.ex. bootloader kan man ju se att det är en riktig bra framtid...
Men visst, det är alltid ungdomerna som kommer att ta över och de gamla som fasas ut, det kommer att hända er också.
Men jag får nog göra er besvikna: Arduino kommer aldrig att bli industristandard! ATmega är helt enkelt för slö och dyr, det finns mycket bättre alternativ.
Men så är det när ni har skygglappar på, ni ser inte verkligheten.
Men visst, det är alltid ungdomerna som kommer att ta över och de gamla som fasas ut, det kommer att hända er också.
Men jag får nog göra er besvikna: Arduino kommer aldrig att bli industristandard! ATmega är helt enkelt för slö och dyr, det finns mycket bättre alternativ.
Men så är det när ni har skygglappar på, ni ser inte verkligheten.
Re: Arduino vs. andra utvecklingsmiljöer
Ja, bevare mig väl!Al_Bundy skrev:
Det är vi unga som ska leda framtiden.

- MicaelKarlsson
- Inlägg: 4669
- Blev medlem: 18 juni 2004, 09:16:07
- Ort: Aneby
- Kontakt:
Re: Arduino vs. andra utvecklingsmiljöer
Är det enklare med Arduino? På vilket sätt?Al_Bundy skrev:Om några år så kommer Arduino vara ute på arbetsmarknaden då det är enklare att utveckla med Arduino än AVRstudio/PIC programmering. Tid är pengar!
För mig är det enklare att utveckla på AVR-plattform än att gå över till Arduino eftersom tid är pengar.
Nädu gosse lille, det är vi gamla gubbar som skall mala ner er vilja och fasa in er på den rätta vägen!Det är vi unga som ska leda framtiden.

Re: Arduino vs. andra utvecklingsmiljöer
Det är möjligt att Arduino är framtiden, dock enbart för hobbyister, inga andra.
Och varför, tja för långsam, för dyr, låst hårdvara osv.
Det tar inte längre tid att utveckla i MPLAB än något motsvarande, förmodligen går det dessutom snabbare, eftersom man inte är låst till Arduinons begränsningar.
Bootloader, kan vara bra om man skall programmera i fält, annars är det väl inga direkta fördelar, snarare tvärtom.
Och varför, tja för långsam, för dyr, låst hårdvara osv.
Det tar inte längre tid att utveckla i MPLAB än något motsvarande, förmodligen går det dessutom snabbare, eftersom man inte är låst till Arduinons begränsningar.
Bootloader, kan vara bra om man skall programmera i fält, annars är det väl inga direkta fördelar, snarare tvärtom.
Re: Arduino vs. andra utvecklingsmiljöer
Vad som är effektivt beror på vilken kunskapsnivå man är på och vilka begränsningar som är hanterbara i projektet.
Re: Arduino vs. andra utvecklingsmiljöer
När det gäller Professionell utveckling, får man väl ändå utgå ifrån att de som jobbar med utveckling vet vad de håller på med.
Hobby-utveckling är en helt annan sak.
Hobby-utveckling är en helt annan sak.
Re: Arduino vs. andra utvecklingsmiljöer
Inom de branscher där utvecklingen måste gå snabbt används mer och mer autogenerad kod. Där är Simulink ett vanligt verktyg och den vägen kommer säkerligen utvecklas mer i framtiden. För att öka tillförlitligheten är standardiserad kod viktigt och inom bilindustrin simuleras flera programvaror mot varandra genom Autosar.Al_Bundy skrev:Tid är pengar!
Eftersom programvara tenderar till att bli mer och mer komplex behövs avancerade utvecklingsverktyg. Jag tror utvecklingen likt mönsterkortdesign bidrar till mer komplicerade verktyg istället för enklare.
Att Arduino skulle få genomslag inom tillverkningsindustrin ser jag som högst orimligt. Sedan har jag inget emot DIY-kulturen som snarare ökar teknikintresset. Ända nackdelen är väl att många är mer resultatinriktade än teknikintresserade vilket hämnar personlig utveckling inför större projekt.
Re: Arduino vs. andra utvecklingsmiljöer
TomasL skrev:Det är möjligt att Arduino är framtiden, dock enbart för hobbyister, inga andra.
TomasL, ska jag tolka dessa två inlägg som att jag inte är professionell utvecklare då? Eller har jag missförstått dig?TomasL skrev:När det gäller Professionell utveckling, får man väl ändå utgå ifrån att de som jobbar med utveckling vet vad de håller på med.
Hobby-utveckling är en helt annan sak.
Nu är det väl en rätt så stor andel på det här forumet som både professionellt och på hobbynivå jobbar med utveckling där kanske enbart en eller ett fåtal enheter skall tillverkas. Så det är väl inte ett argument för eller emot valet av kontroller för ett specifikt projekt? Jag skulle heller inte välja en ATmega om jag skulle serietillverka i större volymer, lika lite som jag skulle beställa mikrokontrollers med fabriksprogrammerade ROM till prototypserier.AndLi skrev:Visst är det inte aktuellt vid småserier, men när besparingar på 10-20cent per enhet överstiger utvecklingskostnaden med råge, då börjar andra regler gälla..
Utan att veta hur det fungerar i din bransch, så kan jag i alla fall säga att i min så är det mer regel än undantag att produkter kan programmeras med ny firmware av användarna själva. Och då pratar vi om serietillverkade enheter från t.ex. Sony, Panasonic m.fl. leverantörer som nog måste kallas professionella.TomasL skrev:Bootloader, kan vara bra om man skall programmera i fält, annars är det väl inga direkta fördelar, snarare tvärtom.
Nej, Arduino är inte bara en leksak. Men jag skulle heller inte påstå att det är framtiden - i form av att den skulle ersätta de andra utvecklingsmiljöerna som du nämner. Däremot tror jag den kommer leva parallellt med dessa. Ute i verkligheten (på arbeten) vågar jag, till trots vad en del andra här hävdar, påstå att Arduinon redan är - jag känner till flera företag som använt plattformen för såväl prototyper som för färdiga produkter i enstaka exemplar eller små serier. Och som tjänat ganska mycket pengar på det, om man nu skall se det som ett tecken på professionalitet.Al_Bundy skrev:Arduino är framtiden. Arduino är inte bara en "leksak" som folk brukar kalla det för. Det är ett professionellt verktyg som blir ratat av PIC/AVRstudio programmerare för att det är just Arduino. Arduino må se ut som en leksak, men man kan göra minst lika mycket så som PIC och klassisk AVR programmering.
Om några år så kommer Arduino vara ute på arbetsmarknaden då det är enklare att utveckla med Arduino än AVRstudio/PIC programmering. Tid är pengar!