Sadržaj:

RGB indikator temperature (sa XinaBox -om): 5 koraka (sa slikama)
RGB indikator temperature (sa XinaBox -om): 5 koraka (sa slikama)

Video: RGB indikator temperature (sa XinaBox -om): 5 koraka (sa slikama)

Video: RGB indikator temperature (sa XinaBox -om): 5 koraka (sa slikama)
Video: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, Srpanj
Anonim
RGB indikator temperature (s XinaBox -om)
RGB indikator temperature (s XinaBox -om)

Ovo je službeno moj prvi članak o Instructablesima, pa ću priznati da upravo sada koristim ovu priliku da ga isprobam. Osjetite kako platforma radi, sa strane cijelog korisničkog iskustva. No, dok to radim, zaključio sam da mogu i iskoristiti priliku da podijelim jednostavan projekt na kojem sam danas radio (koristeći proizvode iz XinaBox-a, koji se, inače, izgovara kao "X-in-a- Kutija ").

U ovom jednostavnom uputstvu u 5 koraka pokazat ću sljedeće teme:

  • Potrebne komponente
  • Povezivanje različitih xChips -ova zajedno.
  • Postavljanje Arduino IDE okruženja.
  • Pisanje koda
  • I na kraju, isprobavanje ideje

Ono što neću dijeliti u ovom uputstvu:

  • Koliko god volio zalaziti u objašnjavanje što svaki od tih xCipova može učiniti i kako s njima možete manipulirati za izvršavanje određenih funkcionalnosti, to ne bi bio cilj ovog uputstva. U bliskoj budućnosti planiram objaviti i druge Instructables koji će zaroniti u svaki od različitih xChips -a koji su dostupni putem XinaBox kataloga proizvoda.
  • Neću se upuštati u osnove Arduino koda jer pretpostavljam da već imate određenu razinu iskustva s korištenjem Arduino IDE -a, kao i razumijevanje osnovne razine programiranja na C/C ++.

Korak 1: Što vam treba …

Što trebaš…
Što trebaš…
Što trebaš…
Što trebaš…
Što trebaš…
Što trebaš…

Tehnički, većina osnovnih vodiča o proizvodima obično započinje s "Hello World!" primjer, ili čak "Blink" primjer, koji vam je možda već jako poznat budući da ste u nekom trenutku radili s Arduinom ili Raspberry Pi. Ali ne želim početi s time jer svi već rade istu stvar, što čini da je pomalo dosadno.

Umjesto toga, htio sam početi s praktičnom idejom projekta. Nešto što je i dovoljno jednostavno i prilagodljivo u složeniju projektnu ideju ako želite.

Evo stavki koje će nam trebati (pogledajte fotografije date u ovom odjeljku Instructable):

  1. IP02 - Napredno USB sučelje za programiranje
  2. CC03 - Corm Cortex M0+ Core
  3. SW02 - VOC i vremenski senzor (koji koristi senzor BME680 tvrtke BOSCH)
  4. xBUS konektori - za omogućavanje I2C komunikacije između različitih x čipova (x2)
  5. xPDI priključak - za omogućavanje programiranja i otklanjanja pogrešaka (x1)

Korak 2: Povezivanje dijelova

Povezivanje komada
Povezivanje komada
Povezivanje komada
Povezivanje komada
Povezivanje komada
Povezivanje komada

Za povezivanje svih dijelova prvo ćemo početi s 1 dijelom xBUS konektora i xPDI konektorom.

Slijedeći slike koje sam dao, primijetite orijentaciju x čipova i mjesto gdje će konektori ići.

Između IP02 i CC03 x čipova prilično je lako identificirati spojne točke.

Za CC03 to će biti južna strana. Za IP02 to će biti sjeverna strana xChipa.

Nakon što to učinimo, dodat ćemo još jedan xBUS konektor na zapadnu stranu CC03 xChipa.

Gotovo?

Sada samo spojite SW02 xChip na zapadnu stranu CC03.

Prije nego što umetnemo IP02 u prijenosno računalo, provjerite jesu li odabrane sljedeće opcije za dva prekidača:

  • B je odabran (lijevi prekidač)
  • DCE je odabran (desni prekidač)

Konačno, sada smo spremni za umetanje IP02 u prijenosno računalo i početak postavljanja Arduino IDE -a.

Korak 3: Postavljanje Arduino IDE -a

Postavljanje Arduino IDE -a
Postavljanje Arduino IDE -a
Postavljanje Arduino IDE -a
Postavljanje Arduino IDE -a

Opet, u ovom uputstvu, napravio sam pretpostavku da ste već upoznati s Arduino IDE okruženjem, kao i kako upravljati knjižnicama u razvojnom okruženju.

Za potrebe ovog projekta trebat će nam dvije glavne knjižnice:

  • arduino-CORE-https://github.com/xinabox/arduino-CORE
  • Biblioteka SW02 -

Preuzmite obje knjižnice na mjesto na radnoj površini.

Zatim pokrenite svoj Arduino IDE.

Na glavnom izborniku odaberite "Sketch"> "Include Library"> "Add. ZIP Library …"

Ponovite isti postupak za obje datoteke knjižnice.

Zatim ćemo morati odabrati relevantnu "ploču" kao i "port". (Primijetite da sam također označio potrebne izbore pomoću narančaste kutije.

  • Ploča: "Arduino/Genuino Zero (izvorni USB priključak)"
  • Priključak: "COMXX" (ovo bi trebalo biti u skladu s COM priključkom koji se odražava na vašem stroju. Moj koristi COM31)

U redu! Znam da ste jedva čekali uskočiti u kodiranje, pa ćemo se u sljedećem koraku usredotočiti na to.

Korak 4: Vrijeme je za kodiranje

U ovom odjeljku počet ću dijeljenjem isječaka koda iz dovršenog koda projekta. I na kraju ću objaviti cijeli izvor, što će vam olakšati jednostavno kopiranje i lijepljenje koda u vašu Arduino IDE izvornu datoteku.

Datoteke zaglavlja:

#include /* Ovo je knjižnica za glavne funkcije XinaBox Core. */

#include /* Ovo je knjižnica za VOC i senzor vremena xChip. */

Definiranje nekih konstanti za upravljanje RGB LED signalima:

#define redLedPin A4

#define greenLedPin 8 #define blueLedPin 9

Zatim moramo deklarirati prototip funkcije za prosljeđivanje RGB vrijednosti

void setRGBColor (int redValue, int greenValue, int blueValue);

Deklariranje SW02 objekta:

xSW02 SW02;

Metoda setup ():

void setup () {

// Pokretanje I2C komunikacijske žice.begin (); // Pokretanje senzora SW02 SW02.begin (); // Odgoda senzora za normalizaciju kašnjenja (5000); }

Sada za glavnu petlju ():

void loop () {{100} {101}

plovak tempC; }

Zatim ćemo morati anketirati pomoću objekta SW02 koji smo stvorili ranije u programu da bismo započeli komunikaciju sa senzorskim čipom:

// Očitavanje i izračunavanje podataka sa senzora SW02SW02.poll ();

Sada čitamo kako bismo dobili očitanje temperature senzora

tempC = SW02.getTempC ();

Nakon što pročitamo, posljednja stvar koju ćemo učiniti je koristiti niz if … else … kontrolnih naredbi za određivanje temperaturnog raspona, a zatim pozvati funkciju setRGBColor ()

// Raspon temperature možete prilagoditi svojoj klimi. Za mene živim u Singapuru, // koji je tropski tijekom cijele godine, a temperaturni raspon ovdje može biti prilično uzak. if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

Napomena: Ako vas zanima koje su relevantne RGB vrijednosti za određenu boju, preporučujem vam da pretražite Google za "Vrijednosti boje RGB". Dostupno je mnogo web stranica na kojima pomoću birača boja možete odabrati boju koju želite

// Ako želite, a nije obavezno, možete dodati i kašnjenje između ispitivanja radi očitanja senzora.

kašnjenje (DELAY_TIME);

Naravno, na početku programa možete proglasiti konstantu DELAY_TIME, na taj način, morate promijeniti vrijednost samo jednom, a ne na više mjesta u cijelom programu. Konačno, potrebna nam je funkcija za kontrolu naše RGB LED:

void setRGBColor (int redValue, int greenValue, int blueValue) {

analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Završni program

#uključi

#include #define redLedPin A4 #define greenLedPin 8 #define blueLedPin 9 void setRGBColor (int redValue, int greenValue, int blueValue); const int DELAY_TIME = 1000; xSW02 SW02; void setup () {// Pokretanje I2C komunikacijske žice.begin (); // Pokretanje senzora SW02 SW02.begin (); // Odgoda senzora za normalizaciju kašnjenja (5000); } void loop () {// Stvorite varijablu za spremanje podataka pročitanih sa SW02 float tempC; tempC = 0; // Očitavanje i izračunavanje podataka sa SW02 osjetnika SW02.poll (); // Zatražite od SW02 da dobije mjerenje temperature i pohrani u // temperatue varijablu tempC = SW02.getTempC (); if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Malo kašnjenje između kašnjenja očitanja senzora (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Sad kad je naš program spreman, programirajmo xChip! Postupak prijenosa potpuno je isti kao i način na koji biste učitali program na svoje Arduino ploče.

Kada završite, zašto ga ne biste isključili iz utičnice i izvukli na probno puštanje.

Preporučeni: