Image
23.1.2020 0 Comments

IoT prakticky: Totem – univerzálne panely so základnými elektronickými komponentmi

Zostavu na prototypovanie a experimentovanie Totem Mini Lab je možné doplniť o tri postranné panely. Mechanicky ich môžete upevniť pomocou plastového nosníka, ktorý je v balení každého panelu aj s príslušným spojovacím materiálom, prípadne si pre postranné panely môžete urobiť stojan. Panely je totiž možné použiť k akémukoľvek mikrokontroléru, alebo vývojovej dosky s 3.3 V aj 5V logikou. K dispozícii sú tri typy panelov: I/O Side Panel, Sensor Side Panel a Audio Side Panel. Môžete si ich kúpiť osadené, alebo ako stavebnicu. My sme ich otestovali s doskou Arduino UNO.

Možnosti panelov ukazuje video:



Každý panel má v hornej časti konektor na pripojenie napájacieho napätia 3.3 V, alebo 5 V. Na paneloch I/O Side Panel a Sensor Side Panel je v strede vpravo prepojka, ktorou sa vyberá napätie.

Vľavo tri panely na spoločnom paneli, vpravo zostava Totem Mini Lab

Vľavo zostava Totem Micro Lab, vpravo tri panely na spoločnom paneli

I/O Side Panel má v hornej časti tri aretované spínače aj so signalizáciou stavu pomocou LED diód. Pod nimi je trojica potenciometrov s hodnotou 10k. Dva vonkajšie vývody potenciometra sú cez prepojky pripojené na na GND a VCC, takže môžete nastavovať na strednom vývode každého z troch potenciometrov rôzne meniteľné napätie medzi 0 a 3,3 V alebo 5 V. Keď odstránite prepojky, môžete potenciometer zapojiť do vlastného obvodu všetkými tromi vývodmi.

Na pokusy s AD prevodníkom keď na analógový vstup privádzate napätie regulované potenciometrom môžete použiť upravený príklad AnalogInput, ktorý nájdete vo vývojovom prostredí Arduino IDE v menu súbor -> príklady.

int sensorPin = A0;    // analógový vstup
int ledPin = 13;       // LED na doske Arduino
int sensorValue = 0;  
 
void setup() {
   pinMode(ledPin, OUTPUT);
}
 
void loop() {
  sensorValue = analogRead(sensorPin);
  digitalWrite(ledPin, HIGH);
  delay(sensorValue);
  digitalWrite(ledPin, LOW);
  delay(sensorValue);
}

Pod potenciometrami je rotačný enkoder. Ten pri otáčaní generuje impulzy na pinoch označených A a B. Ak otáčate hriadeľ na jednu stranu- doľava, impulz na B prichádza tesne pred impulzom na A, keď otáčate doprava, impulz B príde po impulze A. Podľa toho sa dá zistiť na ktorú stranu hriadeľom enkodéra otáčate. 

Príklad na prenos hodnoty nastavenej enkóderom cez sériové rozhranie a jej výpis vo vývojovom prostredí:

#define rotaryA 6  //priradenie portov
#define rotaryB 7
 
 int nPocitadlo = 0; 
 int nStav;
 int nPoslednyStav;  
 
 void setup() { 
   pinMode (rotaryA,INPUT);
   pinMode (rotaryB,INPUT);
   
   Serial.begin (9600);
  
   nPoslednyStav = digitalRead(rotaryA);  
 } 
 void loop() { 
   nStav = digitalRead(rotaryA); // aktuálny stav A
   if (nStav != nPoslednyStav){   // ak sa stav A zmenil bol impulz  
     if (digitalRead(rotaryB) != nStav) { // Ak  B nerovná sa A rotácia v smere hodinových ručičiek
       nPocitadlo ++;
     } else {
       nPocitadlo --;
     }
     Serial.print("Pozícia: ");
     Serial.println(nPocitadlo);
   } 
   nPoslednyStav = nStav; 
 }

Na paneli je ešte RGB LED, tri klasické tlačidlá s jedným vývodom pripojeným na GND, relé na 250 V schopné zopnúť prúd 10 A a ešte 3.5 mm Jack konektor, aby ste mohli do svojej zostavy priviesť audio signál.  

Príklad na nastavovanie farebných zložiek R,G a B LED diódy pomocou troch potenciometrov:

int lR = 9;  int lG = 10;  int lB = 11; // piny pre RGB LED s podporou PWM
int pR = A0; int pG = A1;  int pB = A2; //piny pre potenciometre
 
void setup()
{
  pinMode(lR, OUTPUT); pinMode(lG, OUTPUT); pinMode(lB, OUTPUT);
  pinMode(pR, INPUT); pinMode(pG, INPUT); pinMode(pB, INPUT);  
}
 
void loop(){
  analogWrite(lR, analogRead(pR));
  analogWrite(lG, analogRead(pG));
  analogWrite(lB, analogRead(pB));
  delay(20);
  
}

Sensor Side Panel má v hornej časti mikrofón s predzosilňovačom, takže môžete experimentovať napríklad s meraním úrovne hluku. Nasleduje grafický OLED displej s rozlíšením SSD1306 a obvodom SSD 11306, ktorý sa k mikrokontroléru pripája cez rozhranie I2C dvomi vodičmi + GND.  My sme pripojili signály zbernice displeja na piny Arduina takto:

  • OLED SCL – Arduino Uno A5
  • OLED SDA – Arduino Uno A4

Na zobrazovanie textu a grafiky potrebujete do Arduino IDE pridať dve knižnice:  

Adafruit_SSD1306 library

GFX Library

Môžete vyskúšať komplexný príklad ssd1306_128x64_i2c demonštrujúci možnosti grafiky, alebo jednoduchý príklad na zobrazenie textu:

#include
#include
#include
 
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64 
 
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
 
void setup() {
  Serial.begin(115200);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  delay(200);
  display.clearDisplay();
 
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 10); display.println("NEXTECH");
  display.setCursor(0, 30); display.println("IoT Prakticky");
  display.display(); 
}
 
void loop() {
  
}

Na paneli je aj čidlo na meranie teploty DHT1, ktoré sa pripája cez jednovodičové rozhranie a NTC termistor, ktorého odpor zo zvyšujúcou sa teplotou klesá.

Príklad na meranie teploty:

const int analogInPin = A0;  // analogovy vstup
 
int sensorValue = 0;        
int outputValue = 0;        
void setup() {
   Serial.begin(9600);
}
 
void loop() {
  sensorValue = analogRead(analogInPin);
  outputValue = map(sensorValue, 0, 1023, 0, 255);
  Serial.print("hodnota = "); Serial.print(sensorValue);
  Serial.print("\t prepocitana = "); Serial.println(outputValue);
  delay(2);
}

Na paneli je aj bzučiak a regulátor jednosmerných motorov s obvodom BD6220F, ktorý má mikrospínače na ovládanie smeru a potenciometer na ovládanie otáčok. Regulátor sa dá ovládať aj z mikrokontroléra cez PWM. Na doske je aj merač úrovne s 10-timi farebnými LED diódami. 

Tretí Audio panel má v hornej časti nf zosilňovač s výkonom približne 1 W a pod ním je reproduktor. Zosilňovač a reproduktor sú prepojené prepojkou, o jej rozpojení sa dajú použiť samostatne. Na napájanie zosilňovača je potrebné externé napájacie napätie 12 V. V spodnej časti je nastaviteľný generátor signálu s obvodom XR2206 s obdĺžnikovým aj sinusovým priebehom do frekvencie 1 MHz. Každý z panelov stojí okolo 25 eur.

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Mikrokontroléry

Programovanie PLC – aplikácia pre riadiacu jednotku UniPi Axon M205 so systémom Mervis

24.02.2020 00:10

V predchádzajúcom článku zo série programovanie PLC sme predstavili riadiacu jednotku UniPi Axon M205. Programovanie tejto riadiacej jednotky s implicitne nainštalovaným systémom Mervis pomocou diagra ...

Mikrokontroléry

Programovanie PLC – Riadiaca jednotka UniPi Axon M205

22.02.2020 00:10

Programovateľný logický kontrolér (PLC) a prevodník Unipi Axon M205 má k dispozícii dostatočný počet digitálnych, reléových a analógových vstupov a výstupov, takže sa dá použiť aj v rozsiahlejších pro ...

Mikrokontroléry

Programovanie PLC – Siemens Logo! analógové vstupy a funkcie

21.02.2020 00:10

V predchádzajúcich častiach sme predstavili možnosti programovania „entry level“ PLC Siemens Logo!, či už priamo pomocou tlačidiel na module, alebo vo vývojovom prostredí Logo! Soft Control. Pokračuje ...

Žiadne komentáre

Vyhľadávanie

itSMF 2020

Najnovšie videá