22/5/2016

Arduino (IDE) in gebruik: Hello World?

Filed under: — cybrarian @ 11:33 pm

Zie ook Arduino Starterkit en Arduino IDE installatie

Eerste gebruik

Eens de software geïnstalleerd op Linux, zijn ze op het punt gekomen van http://www.arduino.org/learning/getting-started/getting-started-arduino-uno.

Als ik het goed begrijp is dit de volgorde:

  1. arduino software opstarten
  2. usb-kabel aansluiten
  3. software menu Tools, bord kiezen (arduino UNO)
  4. software menu Tools, poort kiezen (serieel)

Bij het aansluiten van de kabel gaat de groene “ON” led op het bord aan. Ook knippert een gele “L” led tijdelijk, maar die gaat weer uit.

In de software, bij Tools, bord UNO staat al geselecteerd, en bij Seriele poorten krijg ik keuze uit:

  • /dev/ttyACM0
  • /dev/ttyS1

Als je even kijkt wat het systeem ziet na aansluiting (terminal dmesg):

[ 6464.723055] usb 7-1: new full-speed USB device number 2 using uhci_hcd
[ 6464.905570] usb 7-1: New USB device found, idVendor=2a03, idProduct=0043
[ 6464.905583] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 6464.905591] usb 7-1: Product: Arduino Uno
[ 6464.905598] usb 7-1: Manufacturer: Arduino Srl
[ 6464.905604] usb 7-1: SerialNumber: 7543536303835191B1A2
[ 6465.198641] cdc_acm 7-1:1.0: ttyACM0: USB ACM device

Is het duidelijk dat we ttyACM0 moeten kiezen.

(Check of EasyDFU draait als je ACM0 niet vindt; start net als de IDE op de commandolijn “EasyDFU”)

Programma
We kunnen het eerste programma laden, waarvoor niets op de Arduino moet aangesloten zijn (behalve de usb kabel):

File, examples, 01.Basics, Blink

Er komt een broncode programma op het scherm in de IDE (meer nog, bij mij kwam er een tweede IDE venster naar boven met de code, het eerste lege bleef ook staan, misschien omdat ik daar per vergissing een spatie of zo getikt heb, en het als gewijzigd wordt beschouwd).

Eigenlijk had ik nu de leds van TX en RX moeten zien reageren (Transmit en Receive herinner ik me nog van de modems). Maar ik zag niets, misschien omdat het te snel ging? De led “L” knippert wel, en blijft knipperen, maar deed die dat daarvoor ook al niet?

Beste test is de broncode van het programma aanpassen en kijken of de led anders knippertl; dit wordt de “hello world” voor mijn Arduino.

De tijdsinstelling zit in delay(1000);. Ik vervang de “loop” door:

digitalWrite(13, HIGH);
delay(2000); // short on, longer out
digitalWrite(13, LOW);
delay(4000);

en ik druk terug op de upload knop in de IDE. Nu zie ik de leds TX en RX inderdaad reageren, en het ritme van knipperen verandert zoals ik verwachtte.

Met dit eenvoudig programma kan je waarden veranderen en stukjes code kopiëren; (bv een tijd van 10 is nog zichtbaar, zelfs 1 nog als je geen te fel omgevingslicht hebt). Na elke verandering moet je de code terug naar het Arduino bord sturen, je programmeert immers niet direkt het bord, maar “upload” het programma.

De IDE software afsluiten heeft dus helemaal geen invloed op de werking van Arduino. Wijzigingen aan voorbeeldprojecten kan je bewaren in een eigen gekozen map (de voorbeelden zijn tegen overschrijven beschermd); een nieuwe map met de projectnaam bevat een bestand met de uitgang .ino.

Ok, nu mijn knipperend apparaat uitschakelen. Daarover niets in het begin van het projectenboek, maar de oplossing is eenvoudig: voedingskabel uittrekken (usb kabel indien die de voeding geeft).

Dit bord is geen computer. Het heeft geen operating system dat op een correcte manier een bestandssysteem moet afsluiten. Je kan dus gewoon de voedingskabel uittrekken.

Wel belangrijk is om het bord altijd zonder stroom te zetten op het moment dat je bezig bent met componenten installeren.

Arduino IDE, installatie

Filed under: — cybrarian @ 5:36 pm

IDE
De IDE is de programmeeromgeving voor Arduino. Het is een Java programma, dat dus Java nodig heeft, momenteel Java 1.7. Het programma is open source, je kan op de downloadsite ook de broncode van elke versie afhalen.

Zoals terug te vinden in het eerste artikel over de arduino starter kit, is de software te vinden op (www.arduino.org menu “Download”) http://www.arduino.org/download .
Daar moet je dan kiezen tussen de verschillende versies voor Windows, Mac of Linux; enventueel 32/64 bit.

Linux

Beschrijvingen voor Ubuntu zullen wel (meer) te vinden zijn; (hier Engelstalig).

Op https://software.opensuse.org/package/arduino kan je zien dat er voor openSUSE Tumbleweed en openSUSE Leap 42.1 een Arduino versie 1.6.8 beschikbaar is, voor alle andere is het Arduino 1.0.6.

Arduinostudio
http://software.opensuse.org/package/arduinostudio (arduinostudio-1-1.1.x86_64) van home:dsonck92 gaf in leap 42.1 een foutmelding op ontbrekende libqscintilla2.so.5), en Arduino 1.6.8 (en 1.0) een foutmelding op avr-libc, cross-avr-libc

Arduino 1.x

Voor OpenSUSE kan het voor desktopgebruikers met “One Click Installer” die vanuit Yast installeert (meer uitleg playground.arduino.cc/Linux/OpenSUSE)
Het Yast Meta Package arduino.ymp wordt gedownload, en een klik erop start de Yast softwarebeheerder.

Daarmee wordt volgende repository geïnstalleerd:

http://download.opensuse.org/repositories/CrossToolchain:/avr/openSUSE_13.1/ (openSUSE BuildService – CrossToolchain (avr))

Als je het programma start, en je in het menu Extra, de Seriele Poort keuze grijs staat en dus niet gekozen kan worden, ben je hetvolgende waarschijnlijk vergeten:

Je moet de gebruiker (user login) nog het recht geven om de hardware te gebruiken (in dit geval via de seriele poort);
YaST, “Security and Users”, open “User and Group Management”
en maak de gebruikerslogin lid van de groepen dialout, lock en uucp.

Kies daarvoor de user, Edit, tab Details, rechtse kolom Additional groups: vink volgende aan:
dialout
lock
uucp

NL: Yast configuratiecentrum, Beveiliging en gebruikers, Gebruikers en groepenbeheer, gebruiker selecteren, wijzigen, Details, Extra groepen, Dialout, lock en uucp aanzetten.

Ok; log uit om bij login te aktiveren.

Bij de geïnstalleerde software is geen link op de Desktop verschenen, evenmin een nieuw menu onder Development/IDE; wel een laatst geïnstalleerd programma “EasyDFU”, dat deel uitmaakt van CrossToolchain.

Menu, Run Commnand: arduino; dit start een programma met als venstertitel bv:

sketch_may22a |Arduino 1.0.6

ArduinoIDE Dat is de Arduino IDE.

Commandolijn

Voor OpenSUSE kan je zo installeren vanuit de commandolijn:

su root
zypper ar -f http://download.opensuse.org/repositories/CrossToolchain:/avr/openSUSE_13.1 'CrossToolchain:avr'

zypper ref
zypper in arduino

usermod -a -G dialout,lock,uucp mijngebruikersnaam

logout
login

arduino

Eventueel: als je een foutmelding kreeg op het ontbreken van avr-libc
(The C Runtime Library for AVR Microcontrollers)

zypper install avr-libc

Ps: Fritzing
OpenSUSE, Yast/Software Management, zoek op naam+trefwoord+overzicht+omschrijving naar “arduino” geeft als resultaat fritzing, een EDA platform, waarmee je je projecten kan documenteren (leren over componenten en tekenen van het schema van de verbonden draadjes, opslaan, en zelfs exporteren om het eindresultaat als bordje in productie te laten maken). Het installeert fritzing, fritzing-parts, libQt5SerialPort5.

OpenSUSE Leap 42.1 Arduino 1.6
Na een paar keer proberen uit de verschillende aangeboden versies van Arduino 1.6.X (ondermeer 1.6.8, 1.6.9) had ik succes met 1.6.10 :

home:Ximi1970:Toolch… 1.6.10 64 Bit Source 1 Click Install

De arduino IDE start en ik kan een geopende project compileren (verder gebruik volgt).

Upd nov 2016:
– Ik heb een probleem met het compileren van een sketch op Leap 42.1, zelfs de meest basic dingen als blinking led werken niet. Na het lezen van:
https://forum.arduino.cc/index.php?topic=415801.0
Citaat:

Arduino AVR Boards 1.6.12 included with Arduino IDE 1.6.10 uses LTO, which appears to be the cause of this issue. The problem will likely occur if Arduino AVR Boards 1.6.12 is installed in any Arduino IDE version, not just 1.6.10. So you can try to install Arduino AVR Boards 1.6.11 using Boards Manager and be sure to not update from Arduino AVR Boards 1.6.11, even if the IDE shows an updatable boards notification. You can turn the notifications off by File > Preferences > Check for updates at startup(uncheck).

besluit ik inderdaad de AVR versie 1.6.11 te installeren. Daarna werkt het, maar je krijgt inderdaad update meldingen.

OSX

Mac is voorzien bij de downloads, gewoon downloaden en installeren. In de IDE kan je onder het menu Tools, Board het juiste bordje kiezen (bv Arduino Uno – zie je verpakking), en daarna de juiste seriële poort, bv

  • /dev/tty.usbmodem262471 (voor Uno en Mega
  • /dev/tty.usbserial-Q6006hSc (nieuwere)

Oudere OSX

Wie met een oudere Mac (OSX 6.xx) werkt, en dus nog Java SE 6 (1.6.x) gebruikt, moet een oudere versie van de software installeren, bv versie 1.6, te vinden op:
https://www.arduino.cc/en/Main/OldSoftwareReleases

Voor Arduino IDE 1.6.8 wordt OS X 10.7 Lion gevraagd.
Ook wordt de originele uitgave van de IDE in zijn laatste uitgave 1.0.6 nog aangeboden. Daaronder een gedetailleerde lijst met alle versies in archief.

Bij Mac OSX is er tot 1.6.1 keuze tussen een gewone en een Java 7 versie. Waarschijnlijk is vanaf dan alles Java 7, en kan je tot en met hier die “gewone versie” (zonder java vermelding) gebruiken omdat toen Java 6 verondersteld werd.

De grootte wordt niet vermeld, maar om een idee te geven, voor arduino-1.6.1-macosx.zip is dat 142 MB.

Terug te vinden in je download map indien je niet onmiddellijk geopend hebt met het archiveringshulpprogramma.
Daarmee kan je de download uitpakken, wat een Arduino programmabestand geeft van 501 MB. Kopieer (sleep) het naar je programma-folder.


(meer…)

Powered by WordPress