Ero sivun ”Arduino 101” versioiden välillä

Kohteesta Uusi Nokia wiki
Loikkaa: valikkoon, hakuun
 
(11 välissä olevaa versiota samalta käyttäjältä ei näytetä)
Rivi 4: Rivi 4:
 
= Ennakkovaatimukset =
 
= Ennakkovaatimukset =
  
* perustason C-osaaminen
+
* perustason ohjelmointiosaaminen (kurssilla ei käydä läpi peruskoodaamisjuttuja)
  
 
= Tavoitteet =
 
= Tavoitteet =
Rivi 21: Rivi 21:
  
 
 
{|
+
{| class="wikitable"
! Name ! Processor ! Operating/Input Voltage! CPU Speed ! Analog In/Out ! Digital IO/PWM ! EEPROM [kB] ! SRAM [kB] ! Flash [kB] ! USB ! UART  
+
|+ Eri Arduinomallien vertailua https://www.arduino.cc/en/Products/Compare
 +
! Name  
 +
! Processor  
 +
! Operating/Input Voltage  
 +
! CPU Speed  
 +
! Analog In/Out  
 +
! Digital IO/PWM  
 +
! EEPROM [kB]  
 +
! SRAM [kB]  
 +
! Flash [kB]  
 +
! USB  
 +
! UART  
 +
|-
 +
|101     
 +
| Intel® Curie
 +
| 3.3 V/ 7-12V
 +
| 32MHz
 +
| 6/0
 +
| 14/4
 +
| -
 +
| 24
 +
| 196
 +
| Regular
 +
| -
 +
|-
 +
|Gemma   
 +
| ATtiny85   
 +
| 3.3 V / 4-16 V
 +
| 8 MHz
 +
| 1/0
 +
| 3/2
 +
| 0.5
 +
| 0.5
 +
| 8
 +
| Micro
 +
| 0 
 +
|-
 +
|LilyPad 
 +
| ATmega168V ATmega328P
 +
| 2.7-5.5 V / 2.7-5.5 V
 +
| 8MHz
 +
| 6/0
 +
| 14/6
 +
| 0.512
 +
| 1
 +
| 16
 +
| -
 +
| -
 +
|-
 +
|LilyPad SimpleSnap
 +
| ATmega328P
 +
| 2.7-5.5 V / 2.7-5.5 V
 +
| 8 MHz
 +
| 4/0
 +
| 9/4
 +
| 1
 +
| 2
 +
| 32
 +
| -
 +
| -
 +
|-
 +
|LilyPad USB
 +
| ATmega32U4
 +
| 3.3 V / 3.8-5 V
 +
| 8 MHz
 +
| 4/0
 +
| 9/4
 +
| 1
 +
| 2.5
 +
| 32
 +
| Micro
 +
| -
 +
|-
 +
|Mega 2560
 +
| ATmega2560
 +
| 5 V / 7-12 V
 +
| 16 MHz
 +
| 16/0
 +
| 54/15
 +
| 4
 +
| 8
 +
| 256
 +
| Regular
 +
| 4
 +
|-
 +
|Micro
 +
| ATmega32U4
 +
| 5 V / 7-12 V
 +
| 16 MHz
 +
| 12/0
 +
| 20/7
 +
| 1
 +
| 2.5
 +
| 32
 +
| Micro
 +
| 1
 +
|-
 +
|MKR1000
 +
| SAMD21 Cortex-M0+
 +
| 3.3 V/ 5V
 +
| 48MHz
 +
| 7/1
 +
| 8/4
 +
| -
 +
| 32
 +
| 256
 +
| Micro
 +
| 1
 +
|-
 +
|Pro
 +
| ATmega168 <br/> ATmega328P
 +
| 3.3 V / 3.35-12 V <br/> 5 V / 5-12 V
 +
| 8 MHz <br/> 16 MHz
 +
| 6/0
 +
| 14/6
 +
| 0.512 <br/> 1
 +
| 1 <br/> 2
 +
| 16 <br/> 32
 +
| -
 +
| 1
 +
|-
 +
|Pro Mini
 +
| ATmega328P
 +
| 3.3 V / 3.35-12 V 5 V / 5-12 V
 +
| 8 MHz 16 MHz
 +
| 6/0
 +
| 14/6
 +
| 1
 +
| 2
 +
| 32
 +
| -
 +
| 1
 +
|-
 +
|Uno
 +
| ATmega328P
 +
| 5 V / 7-12 V
 +
| 16 MHz
 +
| 6/0
 +
| 14/6
 +
| 1
 +
| 2
 +
| 32
 +
| Regular
 +
| 1
 +
|-
 +
|Zero
 +
| ATSAMD21G18
 +
| 3.3 V / 7-12 V
 +
| 48 MHz
 +
| 6/1
 +
| 14/10
 +
| -
 +
| 32
 +
| 256
 +
| 2 Micro
 +
| 2
 +
|-
 +
|Due
 +
| ATSAM3X8E
 +
| 3.3 V / 7-12 V
 +
| 84 MHz
 +
| 12/2
 +
| 54/12
 +
| -
 +
| 96
 +
| 512
 +
| 2 Micro
 +
| 4
 +
|-
 +
|Esplora
 +
| ATmega32U4
 +
| 5 V / 7-12 V
 +
| 16 MHz
 +
| - 
 +
| -
 +
| 1
 +
| 2.5
 +
| 32
 +
| Micro
 +
| -
 +
|-
 +
|Ethernet
 +
| ATmega328P
 +
| 5 V / 7-12 V
 +
| 16 MHz
 +
| 6/0
 +
| 14/4
 +
| 1
 +
| 2
 +
| 32
 +
| Regular
 +
| -
 +
|-
 +
|Leonardo
 +
| ATmega32U4
 +
| 5 V / 7-12 V
 +
| 16 MHz
 +
| 12/0
 +
| 20/7
 +
| 1
 +
| 2.5
 +
| 32
 +
| Micro
 +
| 1
 +
|-
 +
|Mega ADK
 +
| ATmega2560
 +
| 5 V / 7-12 V
 +
| 16 MHz
 +
| 16/0
 +
| 54/15
 +
| 4
 +
| 8
 +
| 256
 +
| Regular
 +
| 4
 +
|-
 +
|Mini
 +
| ATmega328P
 +
| 5 V / 7-9 V
 +
| 16 MHz
 +
| 8/0
 +
| 14/6
 +
| 1
 +
| 2
 +
| 32
 +
| -
 +
| - 
 +
|-
 +
|Nano
 +
| ATmega168 <br/> ATmega328P
 +
| 5 V / 7-9 V
 +
| 16 MHz
 +
| 8/0
 +
| 14/6
 +
| 0.512 <br/> 1
 +
| 1 <br/> 2
 +
| 16 <br/> 32
 +
| Mini
 +
| 1
 +
|-
 +
|Yùn
 +
| ATmega32U4 AR9331 Linux
 +
| 5 V
 +
| 16 MHz 400MHz
 +
| 12/0
 +
| 20/7
 +
| 1
 +
| 2.5 16MB
 +
|32 64MB
 +
| Micro
 +
| 1
 +
|-
 +
|Arduino Robot
 +
| ATmega32u4
 +
| 5 V
 +
| 16 MHz
 +
| 6/0
 +
| 20/6
 +
| 1 KB (ATmega32u4)/512 Kbit (I2C)
 +
| 2.5 KB (ATmega32u4)
 +
| 32 KB (ATmega32u4) of which 4 KB used by bootloader
 +
| 1
 +
| 1
 +
|-
 +
|MKRZero
 +
| SAMD21 Cortex-M0+ 32bit low power ARM MCU
 +
| 3.3 V
 +
| 48 MHz
 +
| 7 (ADC 8/10/12 bit)/1 (DAC 10 bit)
 +
| 22/12
 +
| No
 +
| 32 KB
 +
| 256 KB
 +
| 1
 +
| 1
 
|-
 
|-
| 101      | Intel® Curie| 3.3 V/ 7-12V | 32MHz | 6/0 | 14/4 | - | 24| 196 | Regular | - |-
 
| Gemma    | ATtiny85    | 3.3 V / 4-16 V | 8 MHz | 1/0 | 3/2 | 0.5 | 0.5 | 8 | Micro | - | 0 |-
 
| LilyPad  | ATmega168V ATmega328P | 2.7-5.5 V / 2.7-5.5 V | 8MHz | 6/0 | 14/6 | 0.512 | 1 | 16 | - | - |-
 
| LilyPad SimpleSnap | ATmega328P | 2.7-5.5 V / 2.7-5.5 V | 8 MHz | 4/0 | 9/4 | 1 | 2 | 32 | - | - |-
 
| LilyPad USB | ATmega32U4 | 3.3 V / 3.8-5 V | 8 MHz | 4/0 | 9/4 | 1 | 2.5 | 32 | Micro | - |-
 
| Mega 2560 | ATmega2560 | 5 V / 7-12 V | 16 MHz | 16/0 | 54/15 | 4 | 8 | 256 | Regular | 4 |-
 
| Micro | ATmega32U4 | 5 V / 7-12 V | 16 MHz | 12/0 | 20/7 | 1 | 2.5 | 32 | Micro | 1 |-
 
| MKR1000 | SAMD21 Cortex-M0+ | 3.3 V/ 5V | 48MHz | 7/1 | 8/4 | - | 32 | 256 | Micro | 1 |-
 
| Pro | ATmega168 ATmega328P | 3.3 V / 3.35-12 V 5 V / 5-12 V | 8 MHz 16 MHz | 6/0 | 14/6 | 0.512 1 | 1 2 | 16 32 | - | 1 |-
 
| Pro Mini | ATmega328P | 3.3 V / 3.35-12 V 5 V / 5-12 V | 8 MHz 16 MHz | 6/0 | 14/6 | 1 | 2 | 32| - | 1 |-
 
| Uno | ATmega328P | 5 V / 7-12 V | 16 MHz | 6/0 | 14/6 | 1 | 2 | 32 | Regular | 1 |-
 
| Zero | ATSAMD21G18 | 3.3 V / 7-12 V | 48 MHz | 6/1 | 14/10 | - | 32 | 256 | 2 Micro | 2 |-
 
| Due | ATSAM3X8E | 3.3 V / 7-12 V | 84 MHz | 12/2 | 54/12 | - | 96 | 512 | 2 Micro | 4 |-
 
| Esplora | ATmega32U4 | 5 V / 7-12 V | 16 MHz | -  | - | 1 | 2.5 | 32 | Micro | - |-
 
| Ethernet | ATmega328P | 5 V / 7-12 V | 16 MHz | 6/0 | 14/4 | 1 | 2 | 32 | Regular | - |-
 
| Leonardo | ATmega32U4 | 5 V / 7-12 V | 16 MHz | 12/0 | 20/7 | 1 | 2.5 | 32 | Micro | 1 |-
 
| Mega ADK | ATmega2560 | 5 V / 7-12 V | 16 MHz | 16/0 | 54/15 | 4 | 8 | 256 | Regular | 4 |-
 
| Mini | ATmega328P| 5 V / 7-9 V | 16 MHz | 8/0 | 14/6 | 1 | 2 | 32 | - | - | - |-
 
| Nano | ATmega168 ATmega328P | 5 V / 7-9 V | 16 MHz | 8/0 | 14/6 | 0.512 1| 1 2 | 16 32 | Mini | 1 |-
 
| Yùn | ATmega32U4 AR9331 Linux | 5 V | 16 MHz 400MHz | 12/0 | 20/7 | 1 | 2.5 16MB |32 64MB | Micro | 1 |-
 
| Arduino Robot | ATmega32u4 | 5 V | 16 MHz | 6/0 | 20/6 | 1 KB (ATmega32u4)/512 Kbit (I2C) | 2.5 KB (ATmega32u4) 32 KB (ATmega32u4) of which 4 KB used by bootloader | 1 | 1 |-
 
| MKRZero | SAMD21 Cortex-M0+ 32bit low power ARM MCU | 3.3 V | 48 MHz | 7 (ADC 8/10/12 bit)/1 (DAC 10 bit) | 22/12 | No | 32 KB | 256 KB | 1 | 1 |-
 
 
|}
 
|}
  
Rivi 59: Rivi 312:
 
Esitellään I2C- ja SPI-väylät ja käydään läpi niiden eroavaisuuksia, miksi jossain kannattaa käyttää yhtä ja jossain muualla toista jne.
 
Esitellään I2C- ja SPI-väylät ja käydään läpi niiden eroavaisuuksia, miksi jossain kannattaa käyttää yhtä ja jossain muualla toista jne.
  
 +
{| class="wikitable"
 +
!
 +
! I2C <br/> Inter-Integrated Circuit
 +
! SPI <br/> Serial Peripheral Interface
 +
|-
 +
| Kehittäjä
 +
| Philips
 +
| Motorola
 +
|-
 +
| Master/slave
 +
| multimaster, multislave
 +
| 1 master, multislave
 +
|-
 +
| Signaalit
 +
|  SDA: Serial Data Line <br/> SCL: Serial Clock Line
 +
|  SCLK: Serial Clock (masterilta)<br/> MOSI: Master Out Slave In (data masterilta) <br/> MISO: Master In Slave Out (data slavelta) <br/> SS: Slave Select (masterilta) <br/> (SISO: 3-johtiminen muunnelma, MOSI+MISO)
 +
|-
 +
| Kellolähde
 +
| master/clock stretch
 +
| master
 +
|-
 +
| Duplex
 +
| half
 +
| full
 +
|-
 +
| Osoiteleveys
 +
| 7 bit
 +
| 7 bit
 +
|-
 +
| Viestin rakenne
 +
| start / stop
 +
| low / high
 +
|-
 +
|}
 
Leikitään vaikkapa DACilla, komennellaan sillä analogisyntetisaattoria.
 
Leikitään vaikkapa DACilla, komennellaan sillä analogisyntetisaattoria.
 +
 +
[https://i2.wp.com/marcusjenkins.com/wp-content/uploads/2014/06/ARDUINO_V2.png Pinout Uno]
  
 
= Muuta projektiin liittyvää =
 
= Muuta projektiin liittyvää =
 
== Hankinnat ==
 
 
 
<s>* nippu Arduinoja, mistä?</s>
 
  
 
== Selvitettävää ==
 
== Selvitettävää ==

Nykyinen versio 25. syyskuuta 2018 kello 20.23

Tänne suunnitellaan Arduino-kurssin pohjia. N. kuukauden kestävä kurssi jossa tavataan kerran viikossa?

Ennakkovaatimukset

  • perustason ohjelmointiosaaminen (kurssilla ei käydä läpi peruskoodaamisjuttuja)

Tavoitteet

Kurssille osallistunut osaa kurssin jälkeen:

  • asentaa Arduinolle kehitysympäristön Windows-, Linux- tai BSD-ympäristöön
  • kirjoittaa C-ohjelmia Arduinolle "perinteiseen" tapaan
  • komennella SPI- ja I2C-oheislaitteita
  •  ???

Ohjelma

1. pvä

Esitellään mikä Arduino on, teoriaa, selitetään mitä koneelle tarvii asentaa ja miten devausympäristön on tarkoitus toimia. Annetaan Arduinot kotiin ja tehtäväksi laittaa ympäristö kuntoon ensi viikoksi.


Eri Arduinomallien vertailua https://www.arduino.cc/en/Products/Compare
Name Processor Operating/Input Voltage CPU Speed Analog In/Out Digital IO/PWM EEPROM [kB] SRAM [kB] Flash [kB] USB UART
101 Intel® Curie 3.3 V/ 7-12V 32MHz 6/0 14/4 - 24 196 Regular -
Gemma ATtiny85 3.3 V / 4-16 V 8 MHz 1/0 3/2 0.5 0.5 8 Micro 0
LilyPad ATmega168V ATmega328P 2.7-5.5 V / 2.7-5.5 V 8MHz 6/0 14/6 0.512 1 16 - -
LilyPad SimpleSnap ATmega328P 2.7-5.5 V / 2.7-5.5 V 8 MHz 4/0 9/4 1 2 32 - -
LilyPad USB ATmega32U4 3.3 V / 3.8-5 V 8 MHz 4/0 9/4 1 2.5 32 Micro -
Mega 2560 ATmega2560 5 V / 7-12 V 16 MHz 16/0 54/15 4 8 256 Regular 4
Micro ATmega32U4 5 V / 7-12 V 16 MHz 12/0 20/7 1 2.5 32 Micro 1
MKR1000 SAMD21 Cortex-M0+ 3.3 V/ 5V 48MHz 7/1 8/4 - 32 256 Micro 1
Pro ATmega168
ATmega328P
3.3 V / 3.35-12 V
5 V / 5-12 V
8 MHz
16 MHz
6/0 14/6 0.512
1
1
2
16
32
- 1
Pro Mini ATmega328P 3.3 V / 3.35-12 V 5 V / 5-12 V 8 MHz 16 MHz 6/0 14/6 1 2 32 - 1
Uno ATmega328P 5 V / 7-12 V 16 MHz 6/0 14/6 1 2 32 Regular 1
Zero ATSAMD21G18 3.3 V / 7-12 V 48 MHz 6/1 14/10 - 32 256 2 Micro 2
Due ATSAM3X8E 3.3 V / 7-12 V 84 MHz 12/2 54/12 - 96 512 2 Micro 4
Esplora ATmega32U4 5 V / 7-12 V 16 MHz - - 1 2.5 32 Micro -
Ethernet ATmega328P 5 V / 7-12 V 16 MHz 6/0 14/4 1 2 32 Regular -
Leonardo ATmega32U4 5 V / 7-12 V 16 MHz 12/0 20/7 1 2.5 32 Micro 1
Mega ADK ATmega2560 5 V / 7-12 V 16 MHz 16/0 54/15 4 8 256 Regular 4
Mini ATmega328P 5 V / 7-9 V 16 MHz 8/0 14/6 1 2 32 - -
Nano ATmega168
ATmega328P
5 V / 7-9 V 16 MHz 8/0 14/6 0.512
1
1
2
16
32
Mini 1
Yùn ATmega32U4 AR9331 Linux 5 V 16 MHz 400MHz 12/0 20/7 1 2.5 16MB 32 64MB Micro 1
Arduino Robot ATmega32u4 5 V 16 MHz 6/0 20/6 1 KB (ATmega32u4)/512 Kbit (I2C) 2.5 KB (ATmega32u4) 32 KB (ATmega32u4) of which 4 KB used by bootloader 1 1
MKRZero SAMD21 Cortex-M0+ 32bit low power ARM MCU 3.3 V 48 MHz 7 (ADC 8/10/12 bit)/1 (DAC 10 bit) 22/12 No 32 KB 256 KB 1 1


TODO

  • tehdään Gogsiin projektipohja ja joku blink-henkinen projekti jonka voi buildata ja uploadata

2. pvä

Tarkastetaan että ympäristöt toimivat ja jokainen saa käännettyä binäärejä ja uploadattua ne Arduinoonsa.

Esitellään I2C- ja SPI-väylät ja käydään läpi niiden eroavaisuuksia, miksi jossain kannattaa käyttää yhtä ja jossain muualla toista jne.

I2C
Inter-Integrated Circuit
SPI
Serial Peripheral Interface
Kehittäjä Philips Motorola
Master/slave multimaster, multislave 1 master, multislave
Signaalit SDA: Serial Data Line
SCL: Serial Clock Line
SCLK: Serial Clock (masterilta)
MOSI: Master Out Slave In (data masterilta)
MISO: Master In Slave Out (data slavelta)
SS: Slave Select (masterilta)
(SISO: 3-johtiminen muunnelma, MOSI+MISO)
Kellolähde master/clock stretch master
Duplex half full
Osoiteleveys 7 bit 7 bit
Viestin rakenne start / stop low / high

Leikitään vaikkapa DACilla, komennellaan sillä analogisyntetisaattoria.

Pinout Uno

Muuta projektiin liittyvää

Selvitettävää

Sopivan stackin pystyttäminen Windows-ympäristöön

Jatkohommat

Arduino IoT -kurssi teollisuuteen, vaikka tähän tyyliin https://create.arduino.cc/projecthub/user425778085/arduino-and-fiware-technology-13462a