SAMSUNG_032023 Advertisement SAMSUNG_032023 Advertisement SAMSUNG_032023 Advertisement

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

Mikrokontroléry
0

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

Luboslav Lacko

Všetky autorove články
Totem mini lab side panel mikroelektronika arduino

Pridať komentár