Arduino

From Frack - Hackerspace Friesland
Jump to navigationJump to search
Onderwerp: Arduino
Arduino.jpg
Deskundigen
Gebruiker Elmer.jpg Elmer
Gebruiker Elmer.jpgElmer de Looff (Elmer) Rol: niet-deelnemer Deskundig met: Arduino, ENC28J60, Elektronica, GnuCash, HTML, LPD8806, Linux, MediaWiki, Mercurial, Netwerken, OpenVPN, Programmeren, Python, SSH, Software, Solderen Beginnend met: Dm-crypt, Javascript Werkt aan: Geen projecten :(
,
Gebruiker CrazyA.jpg CrazyA
Gebruiker CrazyA.jpgCrazyA Rol: deelnemer Deskundig met: AVR, Arduino, Blender, Elektronica, GL-Inet, LPD8806, POV-Ray, RaspberryPi Werkt aan: Geen projecten :(
,
Gebruiker CodeHunger.jpg CodeHunger
Gebruiker CodeHunger.jpgCodeHunger (CodeHunger) Rol: niet-deelnemer Deskundig met: Arduino, HTML, Javascript, Mustache, Programmeren, Python, Sammy Werkt aan: Geen projecten :(
,
Gebruiker Lijnenspel.jpg Lijnenspel
Gebruiker Lijnenspel.jpgJelle (Lijnenspel) Rol: niet-deelnemer Deskundig met: Arduino, Programmeren, Sammy Werkt aan: Geen projecten :(
,
Afbeelding Anoniem.png Failbaitr
Failbaitr Rol: deelnemer Deskundig met: Arduino, CNC, CNC-Frezen, Canvas, Digitale Fabricatie, ENC28J60, Glasvezel lassen, HTML, Hydroponics, Javascript, LPD8806, Linux, Mercurial, Programmeren, Python, Robotica, Software, Stappenmotor Beginnend met: Elektronica Werkt aan: Geen projecten :(
,
Gebruiker Groveld.jpg Groveld
Gebruiker Groveld.jpgMartin Groeneveld (Groveld) Rol: niet-deelnemer Deskundig met: Arduino, Canvas, Elektronica, HTML, SSH, Solderen Beginnend met: AVR, Linux Werkt aan: Geen projecten :(
,
Gebruiker Fugu.jpg Fugu
Gebruiker Fugu.jpgLammert (Fugu) Rol: deelnemer Deskundig met: Arduino, CNC, CNC-Frezen, ENC28J60, Glasvezel lassen, Linux, Netwerken, Stellaris Launchpad Werkt aan: Geen projecten :(
Beginners
Pan.png Panter
Pan.pngPanter Rol: deelnemer Deskundig met: Programmeren Beginnend met: Arduino, Python, RaspberryPi, Robotica, Solderen Werkt aan: Geen projecten :(
Onderdeel van Elektronica
Deelonderwerpen LPD8806
Arduino wordt o.a. gebruikt in
!UIT 2012, ArduCopter, Arduino Spectrum Analyzer, Arduino Workshop, Beamerluik, Bedlights, Cirkelklok, Conrad BEL-8006 radiothermostaat, DIY Theremin, DMX Homelight, Drum Counter, Escape Room, HydroponicGarden, HypnoDisc, LPD8806-Lan, Lasercutter, Ldr2ethernet, Led cube, Led it be ledder lamp, Led kubus kit, Ledstrip Miniprojecten, Ledtafel, Midi-controller, Moodlights met ws2812 en NRF24L01, Poerbest v2, Servo Arduino, Spacestate light, Spinoff Led it be lamp, Stadsverwarming, Stofbot, WeatherDuino

Arduino is een populair en eenvoudig platform voor beginners om te beginnen met programmeerbare elektronica. Het biedt een grote varieteit aan hardware-koppelingen en voorbeeldsoftware die in een breed scala toepassingen verwerkt kunnen worden.

Icoon informatie.svg Deze pagina is een beginnetje. Voeg informatie toe door deze pagina te bewerken.

Arduino is een opensource computerplatform dat is opgebouwd rond de ATmega168-microcontroller van Atmel en het softwareontwikkelplatform Processing. Dit platform is bedoeld voor hobbyisten, artiesten, kunstenaars en iedereen die geïnteresseerd is in het maken en ontwerpen van slimme en creatieve objecten die kunnen reageren op hun omgeving.


Wikipedia, Arduino

Commandline programmeren

Het is mogelijk om zonder de gebruikelijke Arduino IDE toch te compilen en te programmeren. Dit kan met behulp van de arduino-mk applicatie. Op Debian-achtige Linuxen als volgt te installeren:

sudo apt-get install arduino-mk

Daarna moet er een Makefile gemaakt worden. Deze moet geplaatst worden in de projectmap en de naam moet met een hoofdletter beginnen. Plaat hierin de volgende inhoud:

ARDUINO_DIR            = /usr/share/arduino
TARGET                 = <projectnaam>
ARDUINO_LIBS           =
MCU                    = atmega328p
F_CPU                  = 16000000
ARDUINO_PORT           = /dev/ttyUSB0
AVRDUDE_ARD_BAUDRATE   = 115200
AVRDUDE_ARD_PROGRAMMER = arduino
 
include /usr/share/arduino/Arduino.mk

Voer vervolgens de volgende commando's uit op de terminal:

make
avrdude -D -c arduino -b 57600 -p m328p -P /dev/ttyUSB0 -U flash:w:build-cli/<projectnaam>.hex:i

Op deze manier is het bijvoorbeeld mogelijk om de Arduino die aan je RaspberryPi is aangesloten op afstand (via SSH bijvoorbeeld) te programmeren.

Er gaat iets mis!!

Als je bij het uitvoeren van make een error krijgt als deze:

make: ard-parse-boards: Command not found

Lees dan het volgende artikel: http://www.martyndavis.com/?p=335

De eenvoudige oplossing hiervan is het aanpassen van /usr/share/arduino/Arduino.mk. Op regel 218 moet de volgende sectie worden aangepast:

ifndef PARSE_BOARD
PARSE_BOARD = ard-parse-boards --boards_txt=$(BOARDS_TXT)
endif

Naar:

ifndef PARSE_BOARD
PARSE_BOARD = $(ARDUINO_DIR)/ard-parse-boards --boards_txt=$(BOARDS_TXT)
endif

Arduino.mk alternatief

Voor mensen op een oudere versie Ubuntu/Debian (met arduino-mk <0.8.4) werkt het bovengenoemde package beperkt. Een en ander gaat mis wanneer er gebruikgemaakt wordt van extra geinstalleerde libraries (in de sketchbook directory, niet in de Arduino core-directory). Voor die mensen is er een aangepaste Makefile gemaakt: http://ed.am/dev/make/arduino-mk

Documentatie en dergelijke is te vinden vanaf de genoemde link. De Makefiles die nodig zijn met deze basis zijn aanzienlijk eenvoudiger en ook uploaden is doodsimpel (make upload).

SOURCES      := NewController.ino
LIBRARIES    := Wire PCA9685_RGB
BOARD        := lightbox
SERIALDEV    := /dev/ttyUSB1
 
include /usr/share/arduino/Arduino.mk

Bovenstaande makefile compileert de NewController voor de Lightbox. Hier wordt gebruikgemaakt van een apart Arduino board (voor een lijst: make boards), en een aantal libraries. Deze worden eerst geladen uit de directory van de sketch, daarna uit de sketchbook/libraries directory en daarna uit de Arduino core.

Het compilen en uploaden van deze sketch kan een simpele stap:

make upload

Sensoren

Met je Arduino kun je ook allerlei sensoren uitlezen en/of aansturen. Onze vriendjes van Tkkrlab hebben een mooie pagina gemaakt waarop 37 van deze sensoren beschreven zijn en van voorbeeldcode zijn voorzien: [[1]] Doe er je voordeel mee ;-)