Arduino of niet?

Hallo iedereen,

Sinds kort ben ik bezig met de opleiding HBO mechatronica, een combinatie van elektrotechniek en mechanica. Nu zijn we op school bezig met wat schakelingen te bouwen en wat dingen te simuleren en het leek mij wel aardig hier thuis aan verder te gaan.

Nu dacht ik er over om de arduino Uno te bestellen om een beetje mee te oefenen/testen/spelen :P
Is dit een goede keus of zijn er betere opties? Ik moet dan ook nog wat weerstandjes, ledjes, servo's, een breadboard, wires en dat was het wel zo'n beetje geloof ik. Ik heb namelijk nog helemaal niets.

De Uno kan ik hier bestellen te zamen met servo's, leds en draadjes, alleen een breadboard en weerstanden moet ik ergens anders bestellen. Welke webshop verkoopt deze tegen een redelijke prijs en hoeveel ohm is goed om mee te beginnen?

Alvast bedankt,

Groet,
Samuel

Je zou ook gewoon een schakelingetje uit losse onderdelen op kunnen bouwen. Naast een AVR zelf heb je maar weinig nodig. Je hebt nog wel een programmer nodig.
Bij Futurlec hebben zo overigens ook leuke eenvoudige boards met AVR erop. En ook programmers.
ps, oh, waarom geen Arduino? Je hebt HBO nivo, dus je moet wel in staat zijn om "echt" te programmeren. Dus in C of desnoods assembly (laatste zou ik niet aanraden overigens).

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Bedankt voor je reactie.

Mijn HBO niveau is overigens nog niet echt bijzonder hoor!! :P
We krijgen net uitgelegd wat een weerstand is XD

Hiervoor heb ik VWO gedaan, dus mijn kennis is nogal wat matig op het gebied van met m'n handen werken. Maar ik zal eens kijken naar wat jij aandraagt.

Wat is het makkelijkst en aardigst om mee te beginnen? Ik heb geen printerport of iets dergelijks, dus het liefs usb.

[Bericht gewijzigd door Samueldw op zondag 11 september 2011 13:22:24 (17%)

arduino is heel makkelijk om mee te beginnen.
ik vind zelf dan wel een arduino nano makkelijker, die kan direct op een breadboard (breadboard is een grote aanrader)
het is wel erg simpel maar je leert er zeker van, dingen als if/for/case loopjes leer je er wel van en wat basis C kennis ook.
als je iets met een beetje meer uitdaging wil koop dan een LPCXpresso.
die met de LPC1114 zitten heel library's en voorbeelden bij.

ding is niet veel duurder en zit een goede volledige programmeeromgeving bij.
programmeeromgeving van de arduino is heel erg simpel namelijk.
die LPCXpresso is wat sneller, kan een hoop meer en is niet te veel moeilijker.

Zelf doe ik ook HBO (2e jaar MBO doorstroom). Bij ons op school kregen we het vak programmeren en hiervoor moesten we een Arduino aanschaffen. Ik denk dat het voor jou zeker geen kwaad kan om hiermee te beginnen. Zelf heb ik nooit met de Arduino software gewerkt, maar volgens mij lijkt hij erg op C.

Het voordeel van de Arduino software is dat er heel veel standaard libraries te krijgen zijn. Zeker als het voor het eerst is dat je gaat programmeren op een microcontroller is het goed om eerst te leren hoe je hem moet programmeren dan eerst uit te zoeken hoe alles werkt. Misschien zijn sommige dit niet met me eens, maar zodra je weet hoe je moet programmeren, weet je ook waarnaar je op zoek bent als je gaat zoeken in een datasheet van een microcontroller.

Ik ben ook zo begonnen op het MBO door te programmeren op een AVR bordje waar standaard libraries zaten bijgeleverd. Daarna ben ik overgestapt op PIC microcontrollers.

Je kan dus makkelijk beginnen op de arduino, en het daarna moeilijker maken door deze te gaan programmeren in AVR studio. In die software zitten standaard niet alle libraries in, dus je moet zelf in de datasheet opzoeken hoe alles werkt. Als op internet (Ebay) zoekt kan je genoeg goedkope Arduino klonen vinden die hetzelfde als het origineel werken (Arduio is opensource).

Anything that can go wrong will go wrong

Arduino gebruikt onder water AVR-GCC, de GCC variant voor AVR. WinAVR doet dat ook voor zover ik weet.
Maar alles wat legaal C (of C++) is volgens GCC kun je dus gebruiken met de arduino omgeving.

Overigens kun je een Arduino prima gebruiken om een losse AVR (op een breadboard) te programmeren. Maar het makkelijkst is een parallelle poort en zelf een kabeltje maken voor AVRdude: http://www.bsdhome.com/avrdude/

Als je geen paralelle poort hebt zou ik een bus pirate kopen. Kost een keer 30 Euro, maar dan kun je ook ongeveer alle seriele protocollen via USB aan:
http://dangerousprototypes.com/docs/Bus_Pirate

Persoonlijk heb ik het niet zo op de Arduino methode. Met enkele lijnen code heb je iets werkend, dat klopt. Het probleem is dat je geen enkel benul hebt van WAT het ding nu eigenlijk doet.
Arduino gebruikt de 'top down' methode: Eerst iets moois laten doen, dan verdiepen in de werking. De bottom-up methode vind ik toch prettiger: eerst de basis, dan meer.
Ik heb op de HBO ook lessen microcontrollers gehad. Dat begon met de werking van zo'n ding. Dan een ledje laten knipperen in assembler.
Vervolgens hetzelfde doen in C, en de verschillen zien tussen je eigen assembly en die van de c-compiler. (Compilers zijn geen wonderdingen!)
Een stap verder is de periferie aan de gang, timers, UART, AD converter. Daarna een eigen library maken voor een LCD.
Let wel: Ik ben absoluut niet tegen libraries en standaard stukken code, maar het is goed om te weten wat er onder water gebeurt.

Om te beginnen is in principe een breadboard met wat componenten en een microcontroller genoeg. LCD'tje erbij voor output. Programmer kun je vaak zelf bouwen. Ik was destijds lazy en heb voor 30 euro de orginele Pic-kit (microchip) gekocht, en later een avr-isp (atmel, zelfde prijs). Deze programmers werken naadloos vanuit de ontwikkelomgeving van de betreffende fabrikant.

Just my 2 cents

In principe hoeven we ook niet te weten wat er achter de schermen allemaal word uitgevoerd, zolang we de hogere taal zelfde kunnen bereiken met minder werk en code is dat alleen maar positief. Met avr studio en GCC compiler doe je ook niet alles tot op de blote hardware programmeren en word er ook al hoop voor je gedaan, met arduino word er nog meer uit handen genomen.

Enige nadeel is dat de taal erg lomp(grote en traag) is, maar het principe is ideaal natuurlijk. Ook voor professioneel gebruik zou het ideaal zijn als je even de nadelen weglaat van de lompheid. Dan zou je dus veel meer werk kunnen verrichten, code is beter leesbaar. Leer curve is minder steil, opleidingen zouden goedkoper kunnen en sneller, etc. Maar helaas word elke trap die we hoger gaan in programmeertaal ook inefficiënter.

Is eigenlijk beetje hetzelfde als C vs assembler, C is makkelijker te leren, lezen en schijven voor de meeste mensen. Maar C code is groter dan assembler, wellicht ook trager?

Ik denk dat ik toch voor de arduino ga en dan probeer deze in C te programmeren. Dit wordt mijn eerste projectje en om dan gelijk in het diepe te springen....

Welke webshop is goed voor weerstandjes en een breadboard? Arduino werkt op 12V is het niet? Dan heb ik nog wel een DC adapter liggen. En draadjes, leds en de arduino zelf bestel ik in HongKong.

een arduino kan werken vanaf je USB poort, geen adapter nodig.
er zit een 7805 achtige spanningsregelaar op, 9V tot 15V gaat goed.

Hij gaf aan dat hij de opleiding Mechatronica doet, dat betekend dat je vooral PLC's of andere voorbedachte systemen gaat programmeren, zoals S7 systemen met scada. In veel van de scada pakketen wordt ook in C geprogrammeerd, Hiervoor moet je weten hoe je omgaat met libraries en hoe je die kunt toepassen. Je gaat niet uitzoeken hoe de inwendige hardware van de PLC werkt.

Op de PLC systemen zelf kan je wel assembly aantreffen, maar meestal functieblokken bestaande uit ladderdiagrammen (ligt ook aan het bedrijf). Het kan dus zeker geen kwaad om assembly te leren (staat nog op mijn to-do lijstje).

Ik denk zelf dat het snelheidsverschil voor niet complexe applicaties niet veel zal uitmaken.

Breadbordje heb ik via ebay gekocht voor 1,50 met verzendkosten (700 punten) er zijn ook grotere. Ook heb ik daar voor 5 euro een assortiment met 1000 weerstanden gekocht. Ligt er dus aan hoe snel je het wilt hebben. Extra 1 k en 10 k weerstanden kunnen ook geen kwaad, die vliegen er doorheen bij mij.

[Bericht gewijzigd door M4ngler op zondag 11 september 2011 15:31:54 (18%)

Anything that can go wrong will go wrong

Het verschil in snelheid tussen c en arduino is best groot. Maar bij kleine simpel programmaatje waar snelheid geen rol speelt maakt het inderdaad niks uit. Overigens is arduinio niks anders dan een AVR met FTDI chip, je kan er alles mee wat je normaal ook zou kunnen met avr. En Arduino taal is op veel punten ook gewoon gelijk aan C, alleen worden de instellingen en zo uit handen genomen en worden op de achtergrond in C uitgevoerd. Arduino is eigenlijk niks meer dan heel stel C functies die het lezen en schijven makkelijker maken.

Arduino
digitalWrite(9,HIGH); // 57 clock cycles
digitalWrite(9,LOW); // 57 clock cycles
digitalWrite(8,value); // 57 clock cycles

Zelfde in C
bitSet(PORTB,1); // 2 clock cycles
bitClear(PORTB,1); // 2 clock cycle
bitWrite(PORTB,0,value); // 3 clock cycles

Assembler ken ik niet, wellicht dat iemand dat kan aanvullen. Dat zou als het goed is in 1 cyclus moeten kunnen denk ik, of is daar meer dan 1 instructie voor nodig?

Op 11 september 2011 13:08:09 schreef Samueldw:
Mijn HBO niveau is overigens nog niet echt bijzonder hoor!! :P
We krijgen net uitgelegd wat een weerstand is XD

Ik bedoelde niet "kennis" die je opdoet door ervaring. Nivo is wat je hebt van jezelf. IQ dus. Als je HBO doet dan moet dat boven de 100 zitten en kun je best wat meer dan alleen wat Arduino spielerei. Maar goed, de hardware is op zich wel ok, en daarmee kun je altijd nog naar C overstappen.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Ik heb mij ivm wat projecten de laatste tijd wat verdiept in Arduino.
Hoewel het concept beslist wat vervelende nadelen heeft is het voor een beginner beslist een goede keuze om met microcontrollers bekend te geraken.

Redenen die voor Arduino pleiten zijn :
- Goedkoop in aanschaf
- IDE die op diverse platformen draaid (ok het is JAVA maar het is bruikbaar)
- Veel voorbeeldjes die je meteen kunt uitproberen en ombouwen naar je eigen toepassing
- Veel opprikbordjes (shields genaamd) te verkrijgen waardoor je een aantal dingen snel kunt uitproberen.
- grote community waardoor het gemakkelijk is om aan info te komen

Nadelen:
- Leuk die handige libs, maar zo leer je natuurlijk niet zelf een uC te programeren.
- Wil je zelf zaken als timers en dergelijke programeren, dan moet je goed opletten dat je geen conflict met de libs krijgt.
- Arduino wordt geprogrameerd in C/C++ maar dan wel in een wat merkwaardige variant die voor beginners heel prettig werkt maar die niet noodzakelijk valt toe te juichen... gelukkig gaat het als regel om kleine projecten, immers veel past er niet in zo'n arduino
- Leuk al die shields maar er is geen standaard waardoor veel shields niet samen kunnnen werken, dus shields stapelen is er niet altijd bij.

Verder:
- Je kunt uiteraard ook gewoon zelf een Makefile schrijven en je zooi met avrdude naar de Arduino uploaden.

- Er zijn inmiddels diverse 32bit hardware compatible varianten van de Arduino te vinden. Met diverse van die dingen heb ik wisselende ervaringen.
Je loopt hier echt tegen de limieten van het concept.

Desondanks Arduino voor beginners, een dikke +

http://pascal.nedlinux.nl Niet tegenspreken, Ik heb altijd gelijk !

Mijn mening; met het Arduino (Open Source) is niets mis mee. Je kunt snel een sensor oid aansluiten, schakelinge opzetten en een stukje software draaien (zonder je hierin echt te moeten verdiepen) en testen. In de praktijk blijkt het niet zo, dat je zomaar een x-aantal shields op elkaar kunt stapelen.

Mocht je de voorkeur hebben aan PIC controllers, dan heb je voor 25 euro ook al een chipKIT Uno32 met een PIC32 op 80Mhz on-board.

Webshop voor Electronic Prototype | http://eProto.nl/

Zoek eens naar de ti launchpad.
Kost maar 4.30$. Met gratis verzendig.
Gewoon kopen op www.ti.com en dan op shop ofzo drukken.

Het is een soort arduino maar dan veel goedkoper.

Michel, de TI430-launchpad is zeer zeker de moeite waard maar niet vergelijkbaar met een Arduino.

Er zijn overigens idd ook een aantal 32bit compatibles te vinden.
De meeste daarvan heb ik al uitgeprobeerd.
Waar ik inmiddels ervaring mee heb zijn de Maple (32bits ARM core) en chipKit Max32 (32bit PIC)
De chipKit Uno en ook de Olimex-pinguino beide 32bit PIC cpu liggen hier ook op de plank maar daar heb ik verder nog niet naar gekeken.
Ervaringen zijn wisselen.

iha, zodra je aan 32bit denk, dan denk je waarschijnlijk ook aan wat grotere projecten.
Dan maak ik liever gewoon mijn eigen code en een Makefile.
Het arduino concept op die dingen is slechts beperkt geimplementeerd nauwelijks tot niet porteerbaar en eerder een last dan een hulp.

Kortom Arduino ja, zolang het maar eenvoudige projectjes blijven.
En tja op een AVR kun je geen grote projecten draaien he.

http://pascal.nedlinux.nl Niet tegenspreken, Ik heb altijd gelijk !

Ik had het voorrecht om op mijn HBO opleiding een processorbord aan te mogen schaffen van collega Wouter van Ooijen (voti).
Dat bordje werkt op basis van een ARM als ik me het goed herinner.

Zelf werk ik graag met Microchip op de evaluation boards van Microcohip.
Soms maak ik zelf iets.

Ik selecteer eerst de chip op basis van de eisen van het project.
Als het met een 8-bitter kan, dan neem ik natuurlijk geen 32 bitter.

Wat ik wil zeggen is dat je benadering niet juist is.

Maar ik geef onmiddelijk toe dat het is lastig een goed ontwikkelplatform te kiezen en dat bij je past. Zelf ben ik geen voorstander van Arduino, enkele redenen zijn hier al genoemd.

Ik kan je maar 1 goede tip geven.
Koop niet te snel iets om maar iets te kopen.
Kijk goed om je heen, er is heel veel moois te koop.
En soms voor veel minder Euro's ook nog.

Bart Hiddink is Ideetron; electronics and projects, http://www.ideetron.nl. LoRaWAN Nutcase.

Ik dank jullie voor al jullie antwoorden.

Ik merk wel dat arduino leuk is maar misschien wat te laag gegrepen voor de rest van dit jaar.
Binnenkort krijg ik van school een atmega168 of atmega328. Dat is als het goed is de zelfde chip als op de arduino. Dus misschien kan ik daar wat mee. Die gaan we gebruiken op een robot autootje die we ook gaan programmeren, maar het programmeren duurt nog even.

Ik zal ook al jullie opties nog eens doornemen.

Onderschat de Arduino niet !
Met de hardware is zeker niets mis en beslist niet onder de maat voor je opleiding (en anders wil ik je wel een paar voorbeelden geven van zaken die prima met een Atmel kunnen maar toch vrij pittig zijn)
Als je het Arduino software concept beu bent, staat niets je in de weg om gewoon zelf je code te kloppen en een Makefile te maken.

Ik heb ondertussen ervaring met vrijwel alle 32bit varianten van arduino die leverbaar zijn.
buiten mijn eigen toepassing (waar in ook die dingen aan de krappe kant zijn) ben ik nog weinig redenen tegen gekomen om een 32bit microcontroller toe te passen.

http://pascal.nedlinux.nl Niet tegenspreken, Ik heb altijd gelijk !

"te laag gegrepen" vind ik een rare uitspraak. Je kunt met een atmega168 niets meer of minder dan met de atmega 168 op de arduino. 't enige is dat op de arduino d'r al het een en ander op en aan gesoldeerd is. En de pinnetjes zijn makkelijk beschikbaar.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ik ben begonnen met de aankoop van meerdere Arduino printjes en shields. De enige reden was omdat ik daarmee bruikbare printjes had waar de controller opstond. Atmega168 of Atmega328p speeld geen rol. Ik heb nooit de software van arduino gebruikt, gewoon in assembler mijn eerste toepassingen geschreven. Oke, ik heb wel de STK600 aangekocht omdat ik geen beperkingen wou naar ontwikkelingen maar met een lowcost programmer gaat het even goed als je buget beperking hebt.

Om een Atmega328p vol te schrijven moet je toch al een vrij grote toepassingen hebben. Ik heb nu een domotika project draaien met 8 wireless slave, DCF77, 18B20 temperatuur sensors, rolluiken sturingen enz. Alle bordjes gebruiken een Atmega328p als standaard. De centrale bediening heeft nu ongeveer 3.2 Kbyte aan software, nog ruim 28K over!

Als je over een Atmega168 of 328 beschikt, kun je met een arduino printje direct heel vele testen maken en alles leren gebruiken wat in de controller zit. Maar dat kan evengoed op een breadbordje tot je de meeste stappen onder de knie hebt.

Nu ik zelf de printjes maak heb ik nog meer mogelijkheden voor een optimale layout. Maar die heb je zeker nog niet nodig om te starten. Of je nu assembler of C gebruikt maakt niet veek uit. Assembler geef je wel het voordeel dat je de datasheets zal moeten lezen en leren gebruiken maar je hardware kennis zal veel hoger liggen dan bij het gebruik van de bestaande lib's in C. Maar C zal later wel veel sneller ontwikkelen, toch ik heb het niet nodig om eerder welke toepassing te schrijven.

En tja op een AVR kun je geen grote projecten draaien he.

Onzin, ik heb diverse complexe meet en regel (PID / Fuzzy logic) systemen gemaakt met een AVR.

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.

Hangt een beetje af van je definitie van "groot".

Een 1280x1024 LCD aansturen op basis van dingen die via TCP/IP aangeleverd worden is te groot voor een AVR. (ieder van de twee naar mijn mening al, maar goed sommige mensen vinden dat je met een AVR TCPIP kan doen, maar naar mijn mening is dat onvoldoende om betrouwbaar te zijn).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Tja idd, de reden waarom ik voor een 32bit cpu kies is vooral omdat ik voor mijn project (RealTime DSP) veel geheugen en ook heel veel paardekrachten nodig heb.
Wat ik er verder mee doe is voor veel mensen welliswaar heel spannend, maar kan in princype ook op een atmel (waar ik som overigens ook best spectaculaire dingen op doe)

Het is de aap die de code tiept waardoor bepaald word hoe spannend zo'n Arduino is.

http://pascal.nedlinux.nl Niet tegenspreken, Ik heb altijd gelijk !