Arduino




 

Innehåll.


Inledning.
Installation på Mageia.
Mageia och Arduino IDE kompileringsfel.
Arduino och Raspberry Pi.
PIR, Passive Infrared motion sensor.
Adafruit CC3000 Wifi.
- Installera libraries.
- Adafruit CC3000 Wifi som webbserver.
Arduino WiFi Shield.
- Läs SD-kort.
Arduino Ethernet Shield.
Adafruit Motor/Stepper/Servo Shield.

Pro Micro, Arduino kompatibel.
Arduino/Genuino MICRO.
Sparkfun Pro Micro.
Omdöme.
Adafruit Pro Trinket.
RFID-RC522.
BMP280 Termometer
DHT22 Termometer


Arduino Uno
 

Inledning.

När man arbetar med Arduino måste man ha Arduino's gränser i minnet:

Microcontroller ATmega328
Operating Voltage 5V
Input Voltage (recommended) 7-12V (Matningsspänning)
Input Voltage (limits) 6-20V (Matningsspänning)
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz
Length 68.6 mm
Width 53.4 mm
Weight 25 g


Installation på Mageia.


När jag installerade Arduino och försökte starta Arduino's IDE kom det upp ett fönster som efterfrågade var jag ville spara programmen. När jag valt mapp så försvann fönstret och ingenting mer hände.

På en fråga på Mageia's forum fick jag tips om hur jag skulle bete mig.

Jag laddade ner filen rxtx 2.1.7 från http;//rxtx.qbang.org/wiki/index.php/Downloded. Jag packade upp filen med Ark, kopierade filen librxtxSerial.so till /usr/lib. Det fanns ingen rxtx-fil innan. Sedan gjorde jag filen till medlem i gruppen uucp.

Det funkade!.



2014-05-17.

Mageia och Arduino IDE kompileringsfel.
Det gick inte att kompilera. Det visar sig att det finns en bugg i programvaran men det finns även en "work around".
I filen /usr/avr/include/util/delay.h står följande:
Samma fel finns i Mageia 5 Beta 2.

...
#endif

#include <inttypes.h>
#include <util/delay_basic.h>

/** \file */
/** \defgroup util_delay : Convenience functions for busy-wait delay loops
...

Ändra det genom att lägga till #include <math.h> efter #include <inttypes.h>

...
#endif

#include <inttypes.h>
#include <math.h>
#include <util/delay_basic.h>

/** \file */
/** \defgroup util_delay : Convenience functions for busy-wait delay loops
...

Efter det så går det att kompilera.



Till början.

 

Arduino och Raspberry Pi.

Att ansluta en Arduino UNO till Raspberry Pi. Först installeras programvara för Arduino IDE.
sudo apt-get update
sudo apt-get install arduino
Laddade sedan ner ett script och körde det:
wget https://github.com/wyolum/alamode/blob/master/bundles/alamode-setup.tar.gz?raw=true -O alamode-setup.tar.gz
tar -xvzf alamode-setup.tar.gz
cd alamode-setup
sudo ./setup
sudo reboot

Anslut Arduino UNO till en USB-kontakt.

Öppna Arduino IDE vilket görs genom Menyknappen - Elektronik - Arduino IDE



Tools -> Serial Port -> /dev/ttyS0

File - > Examples - > Basics - > Blink.


Blink sketch laddas in i IDE. Klicka på upload icon or press cntrl + u för att ladda upp sketchen till Arduino. Du kommer att se den gröna LEDen 13 blinka, vilket betyder att Arduino arbetar.

Mera information finns på Arduinos hemsida.


Till början.



 

PIR, Passive Infrared motion sensor.

Program, sketch, för en PIR.
Kjell&Co artnr: 87892

/*
PIR2 sketch
a Passive Infrared motion sensor connected to pin 2
lights the LED on pin 13
*/

const int ledPin = 13; // choose the pin for the LED
const int inputPin = 2; // choose the input pin (for the PIR sensor)

void setup(){
   pinMode(ledPin,OUTPUT); // declare LED as output
   pinMode(inputPin, INPUT); // declare pushbutton as input
}

void loop(){
   int val = digitalRead(inputPin); // read input value
   if (val == HIGH) // check if the input is HIGH
   {
     digitalWrite(ledPin,HIGH); // turn LED on if motion is detected
     delay(500);
     digitalWrite(ledPin,LOW); // turn LED off
   }
}



Till början.



 

Adafruit CC3000 Wifi.


Kortet levereras med stiftlisterna omonterade.
Monteringsanvisningar finns här.

The CC3000 WiFi module from Texas Instruments is a small silver package which finally brings easy-to-use, affordable WiFi functionality to your Arduino projects. It uses SPI for communication (not UART!) so you can push data as fast as you want or as slow as you want. It has a proper interrupt system with IRQ pin so you can have asynchronous connections. It supports 802.11b/g, open/WEP/WPA/WPA2 security, TKIP & AES. A built in TCP/IP stack with a "BSD socket" interface supports TCP and UDP in both client and server mode, with up to 4 concurrent socket connections.

Installera libraries.
Du kan ladda ner den senaste ZIP-filen från denna adress:
https://github.com/adafruit/Adafruit_CC3000_Library/archive/master.zip
Döp om den uppackade foldern till Adafruit_CC3000. Kontrollera att Adafruit_CC3000 foldern innehåller Adafruit_CC3000.cpp och Adafruit_CC3000.h; samt ccspi.cpp, ccspi.h, en exampelfolder, och en utility folder

Flytta Adafruit_CC3000 library till din sketchbookfolder/libraries/ mapp. Du kan hitta din sketchbookfolder genom att öppna Preferences tab i Arduino IDE.
Du måste kanske skapa librariesmappen ifall den saknas:
mkdir /home/pi/sketchbook/libraries

Starta om Arduino IDE.

Resultatet borde se ut ungefär så här.



Programanpassning.
Om du använder WEP i ditt lokala nätverk måste du göra följande anpassning i dina program:
Då ska lösenordet (OBS! Använd dina siffror) se ut så här:

const char WLAN_PASS[] = {0x1A, 0x2B, 0x3C, 0x4D, 0x5E, 0x00};

Kom ihåg att lägga till 0x00 i slutet, efter lösenordets bokstäver så som det visas ovan!
Försäkra dig även att använda rätt säkerhetssystem (unsecured, WEP, WPA, or WPA2).

// Security can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2


#define WLAN_SECURITY WLAN_SEC_WEP

 


Till början.


Adafruit_CC3000 som webbserver.

Exempel på kod för att göra en Arduino uno Rev 3 och en Arduino_CC3000 WiFi till en webbserver.

 
														
							

Det är viktigt att det gulmarkerade avsnittet görs i rätt ordning.

if (strcmp(action, "GET") == 0) {
        // Respond with the path that was accessed.
        // First send the success response code.
        client.fastrprintln(F("HTTP/1.1 200 OK"));
        // Then send a few headers to identify the type of data returned and that
        // the connection will not be held open.
        client.fastrprintln(F("Content-Type: text/html"));
        client.fastrprintln(F("Connection: close"));
        client.fastrprintln(F("Server: Adafruit CC3000"));
        // Send an empty line to signal start of body.
        client.fastrprintln(F(""));
        // Now send the response data.
        client.fastrprintln(F(""));
        client.fastrprintln(F("<!DOCTYPE HTML>"));
        client.fastrprintln(F("<html>"));
        client.fastrprintln(F("<head>"));
        client.fastrprintln(F("<meta charset=utf-8>"));
        client.fastrprintln(F("<title>Page Title</title>"));
        client.fastrprintln(F("</head>"));
        client.fastrprintln(F("<body>"));
        client.fastrprintln(F("<h1> Hello from Arduino!</h1>"));
        client.fastrprintln(("<p> A web page from Arduino server</p>"));
        client.fastrprintln(F("</body>"));
        client.fastrprintln(F("</html>"));
      }

 


Till början.



Arduino WiFi Shield.

Om du använder WiFi shield med en Arduino tidigare än Uno rev3, nödgas du att göra nedanstående koppling för att WiFi shield ska fungera. WiFi board använder IOREF-stiftet på nyare Arduino stiftlayout (Uno rev3, Mega2560 rev3, och senare) för att känna av referensspänningen för de I/O-stift som kortet är anslutet till. Om du använder WiFishield med ett äldre kort, måste du ansluta kortets IOREF-stift till 3.3V. Du kan göra det antingen med en kopplingstråd för att ansluta IOREF till 3.3V såsom visas på bilden nedan eller genom att löda IOREF jumper i botten på kortet som visas nedan. VARNING: Om du löder jumper, anslut inte kortet till en rev3 eller senare Arduino. För att vara säker ta bort IOREF-stiftet på kortet. Annars kommer du att kortsluta 3.3V till 5V genom IOREF-stiftet.



Läsa SD-kort.

Programexempel på hur man kan läsa en fil på SD-kortet. I detta fall finns bland annat filen INDEX.HTM på kortet, i rooten.



Till början.



Arduino Ethernet Shield.

Exempelsketcher finns sedan tidigare i programvaran till Arduino, till exempel WebServer.



Till början.



Pro Micro - Arduino kompatibel.

Pro Micro är ett Arduino kompatibelt utvecklingskort.
Microcontroller ATmega32U4
Detta kort har varit svårt att ladda upp sketcher till.


SparkFun ATmega32U4 Board Support
===========================

This contains support for the following SparkFun 32u4 based Arduino-compatible development boards:
* [ProMicro 5V](https://www.sparkfun.com/products/11098)
* [ProMicro 3.3V](https://www.sparkfun.com/products/10999)
* [Fio v3](https://www.sparkfun.com/products/11520)
* [MakeyMakey](https://www.sparkfun.com/products/11511)

### Installation Instructions

To add this support to your Arduino IDE, simply copy the "sparkfun" folder, and all of its contents, into a "hardware" directory in one of two
places:
* The actual Arduino directory
* Directory structure example: C:/Program Files (x86)/Arduino/hardware/sparkfun/avr
* Inside your Sketchbook directory
* Directory structure example: C:/Users/userName/Arduino/hardware/sparkfun/avr

### Notes

* **Please note: This will only work under Arduino IDE versions 1.5 and up.**
* **For Arduino 1.0.X Compatibility**: Please download our [release for Arduino 1.0.6 and earlier](https://github.com/sparkfun/SF32u4_boards/releases/tag/pre-1.6).
* Information on compiling and programming the bootloader can be found in the bootloader directory.



Till början.



Arduino MICRO original.

Arduino MICRO är ett Arduino utvecklingskort.
Microcontroller ATmega32U4
Detta kort fungerade direkt att ladda upp sketcher till. Har upptäckt att det krävs IDE 1.6.6 för att med Mageia kunna programmera och skriva till den seriella monitorn. Måste kunna komma åt port /dev/ttyACM0. Och att komma åt rätt port tycks vara programmerat beroende på vilket utvecklingskort man anslutit.


In addition, some pins have specialized functions:

- Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data using the ATmega32U4 hardware serial capability. Note that on the Micro, the Serial class refers to USB (CDC) communication; for TTL serial on pins 0 and 1, use the Serial1 class.
- TWI: 2 (SDA) and 3 (SCL). Support TWI communication using the Wire library.
- External Interrupts: 0(RX), 1(TX), 2, 3 and 7. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details.
- PWM: 3, 5, 6, 9, 10, 11 and 13. Provide 8-bit PWM output with the analogWrite() function.
- SPI: on the ICSP header. These pins support SPI communication using the SPI library. Note that the SPI pins are not connected to any of the digital I/O pins as they are on the Arduino/Genuino Uno, they are only available on the ICSP connector and on the nearby pins labelled MISO, MOSI and SCK.
- RX_LED/SS This is an additional pin compared to the Leonardo. It is connected to the RX_LED that indicates the activity of transmission during USB communication, but is can also used as slave select pin (SS) in SPI communication.
- LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off.
- Analog Inputs: A0-A5, A6 - A11 (on digital pins 4, 6, 8, 9, 10, and 12). Arduino/Genuino Micro has a total of 12 analog inputs, pins from A0 to A5 are labelled directly on the pins and the other ones that you can access in code using the constants from A6 trough A11 are shared respectively on digital pins 4, 6, 8, 9, 10, and 12. All of which can also be used as digital I/O. Each analog input provide 10 bits of resolution (i.e. 1024 different values). By default the analog inputs measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and the analogReference() function.

Uppdatera för USB.
Det kan vara lämpligt att uppdatera "library" för att få med möjligheten att unsluta med USB:
Starta Arduino IDE.
1. Välj Vertyg - Kort - Boards Manager
2. Hitta den version som gäller i ditt fall och är märkt INSTALLED
3. Klicka på Update
Nu finns det sannolikt möjlighet att välja porten /dev/ttyACM0



Till början.



Sparkfun PRO MICRO.

Sparkfun PRO MICRO är ett utvecklingskort från Sparkfun (USA).
Microcontroller ATmega32U4
Detta kort fungerade direkt att ladda upp sketcher till. Har upptäckt att det krävs IDE 1.6.6 för att med Mageia kunna programmera och skriva till den seriella monitorn. Måste kunna komma åt port /dev/ttyACM0. Och att komma åt rätt port tycks vara programmerat beroende på vilket utvecklingskort man anslutit.
Sparkfun tillhandahåller eget programbibliotek.







Till början.


Omdöme.

Mitt omdöme om de tre olika Micro-utvecklingskorten.
Sparkfun Pro Micro och Arduino Micro fungerar som väntat. De ger både en möjlighet att välja mellan /dev/ttyACM0 och /dev/ttyS0 som port. Denna möjlighhet medges ej av Pro Micro (kompatibel). För Mageia innebär detta att det inte går att programmera kortet. Vidare kräver Pro Micro att man gör en RESET innan man försöker ladda upp en ny sketch.
För mig innebär detta att Pro Micro är inte kompatibel med Arduino.


Adafruit Pro Trinket.

ATmega328P onboad chip in QFN package
16MHz clock rate, 28K FLASH available
USB bootloader med en LED indikator som liknar USBtinyISP så du kan programmera den med AVRdude och/eller Arduino IDE (med små enkla konfigureringsändringar).
Även anslutning för en FTDIport för omprogrammering
Micro-USB kontakt för strömförsörjning och/eller USB för uppladdning, du kan placera den i en ask eller tejpa fast den och använda önskad USB-kabel när du önskar att omprogrammera den.
5.0V strömförsörjningsregulator med 150mA kapacitet och ultra-låg dropout. Up to 16V inspänning, med reverse-polaritetsskydd, temperatur- och strömbegränsningsskydd.
Strömförsörjning med antingen USB eller extern strömförsörjning (såsom batteri) - den kommer att skifta överautomatiskt
En grön LED som indikerar strömförsörjning och en röd LED för pinne #13
En resetknapp för att koppla in bootloader eller omstart av program.
Fungerar med 99% av existerande Arduino sketcher (allting som inte använder mer än 28K, och inte kräver användning av pinne #2 och #7)



Installation av program/libraries:
Ställ dig i önskad map/direktory.
cd /home/user/önskad map
Ladda hem till exempel 64-bits versionen.
wget http://adafruit-download.s3.amazonaws.com/trinket-arduino-1.0.5-linux64.tgz
tar xvfz trinket-arduino-1.0.5-linux64.tgz

I Arduino IDE välj:
Programmer = USBtinyISP
Board = Pro Trinket 5V/16 MHz (USB)

Sedan ska det fungera att installera/utveckla de program man önskar.

Referens: Adafruit.



Till början.


RFID-RC522.



Koppling

Sparkfun Pro Micro

RFID-RC522

   VCC  3,3V
   RST  RST
   GND  GND
  15  SCK
  14  MISO
  16  MOSI
  10  SDA



Adafruit Motor / Stepper / Servo Sheild.



Egenskaper: - 2 anslutningar för hobby högprecisions servo-motorer;
- 4 H bryggor, TB6612, som can driva motorer från 4.5V till 13.5V;
- 4 DC bidirectional motorer med 8 bitars upplösningshastighetsval (Arduino PWM);
- 2 stegmotorer (unipolar or bipolar); - Pulldown resistors för att starta motorerna; - Header för strömförsörjningskablar;
- Arduino Reset knapp;
- Jumper för att separera strömförsörjning kompatibel med Arduino UNO, Leonardo, ADK/Mega R3, Diecimila & Duemilanove. Fungerar med Mega/ADK R2.


Installera bibliotek.
Börja med att ladda ner zip-filen för bibliotek(libraries) från Github.
Unzip filen.
Kopiera mappen inne i zip-filen till Libraries-mapp i din Arduino Sketchbook-mapp. Döp om mappen till Adafruit_Motorshield.


Stegmotor.

Stegmotor SYS35ST28-0504A.


Inkoppling av stegmotor.



Program.


Referens.


Inköp:
electrokit.
Adafruit.



BMP280 Termometer.




Koppling.


Vin - 5V
GND - GND
SCK - A5
SDI - A4

Program.



Till början.



DHT22 Termometer.



Koppling.



Program.
DHT22.c


DHT22.h



Till början.