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, Juli
Anonim
RGB indikator temperature (sa XinaBox -om)
RGB indikator temperature (sa XinaBox -om)

Ovo je službeno moj prvi članak o Instructablesu, pa ću priznati da upravo sada koristim ovu priliku da ga isprobam. Osjetite kako platforma radi, sa strane cijelog korisničkog iskustva. Ali 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- Okvir ").

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 xChips -a može učiniti i kako s njima možete manipulirati za izvršavanje određenih funkcionalnosti, to ne bi bio cilj ovog uputstva. Planiram u bliskoj budućnosti 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đeno iskustvo s korištenjem Arduino IDE -a, kao i osnovno razumijevanje programiranja na C/C ++.

Korak 1: Šta vam treba …

Sta ti treba…
Sta ti treba…
Sta ti treba…
Sta ti treba…
Sta ti treba…
Sta ti treba…

Tehnički, većina osnovnih vodiča o proizvodima obično započinju 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 tim jer svi već rade istu stvar, što zaista postaje 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 - Arm Cortex M0+ Core
  3. SW02 - VOC i senzor vremena (koji koristi senzor BME680 kompanije BOSCH)
  4. xBUS konektori - za omogućavanje I2C komunikacije između različitih x čipova (x2)
  5. xPDI konektor - za omogućavanje programiranja i otklanjanja greš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 komadom xBUS konektora i xPDI konektorom.

Prateć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 naš laptop 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 sa Arduino IDE okruženjem, kao i načinom upravljanja bibliotekama u razvojnom okruženju.

Za potrebe ovog projekta trebat će nam dvije glavne biblioteke:

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

Preuzmite obje biblioteke na lokaciju unutar radne površine.

Zatim pokrenite svoj Arduino IDE.

U glavnom meniju odaberite "Sketch"> "Include Library"> "Add. ZIP Library …"

Ponovite isti postupak za obje datoteke biblioteke.

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

  • Ploča: "Arduino/Genuino Zero (izvorni USB port)"
  • Port: "COMXX" (ovo bi trebalo biti u skladu sa COM portom koji se odražava na vašoj mašini. Moj koristi COM31)

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

Korak 4: Vrijeme je za kodiranje

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

Zaglavlje datoteke:

#include /* Ovo je biblioteka za glavne XinaBox Core funkcije. */

#include /* Ovo je biblioteka za VOC i senzor vremena xChip. */

Definiranje nekih konstanti za kontrolu RGB LED signala:

#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);

Deklarisanje objekta SW02:

xSW02 SW02;

Metoda setup ():

void setup () {

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

Sada za glavnu petlju ():

void loop () {{100} {101}

float 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 raspona temperature, a zatim pozvati funkciju setRGBColor ()

// Raspon temperature možete prilagoditi svojoj klimi. Za mene živim u Singapuru, // koje je tropsko 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 "RGB vrijednosti boje". 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 za očitavanja 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

#include

#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 (); // Kašnjenje senzora za normalizaciju kašnjenja (5000); } void loop () {// Kreirajte varijablu za spremanje podataka pročitanih sa SW02 float tempC; tempC = 0; // Očitavanje i izračunavanje podataka sa SW02 senzora 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čitavanja senzora (DELAY_TIME); } void setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Sada kada je naš program spreman, programirajmo xChip! Postupak otpremanja je potpuno 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čuje se: