Close Menu
magazin Mehatronikamagazin Mehatronika
  • English
  • Početna
  • Industrija
  • Recenzije
    • Industrijska oprema
    • SBC računari
    • Razvojni sistemi
    • STEM
    • Mrežna oprema
    • Displeji
    • Dodaci
    • Alati
    • Muzička oprema
    • Pametni uređaji
    • Re:recenzija
  • Edukacija
  • Novosti
  • Lifestyle
    • Ekologija
    • Događaji
    • Intervjui
  • Stručni tekstovi
  • Forum
Facebook X (Twitter) Instagram LinkedIn
Trending
  • Automatizacija procesa u pivari
  • PKS partner na putu održivog poslovanja
  • Mehatronika intervju: Quanfeng (Rex) Li
  • akYtec ITP11 indikator za proces pasterizacije mleka
  • Novi Samsung Neo QLED 8K flagship televizori
  • Innomotics unapređuje proizvodnju papira u Bosni
  • Novi FAULHABER 14GPT i 16GPT metalni planetarni reduktori
  • 6×10 RGB Matrix for XIAO recenzija
  • Srpski
    • Srpski
    • English
LinkedIn Facebook X (Twitter) Instagram
magazin Mehatronikamagazin Mehatronika
  • Početna
  • Industrija
  • Recenzije
    • Industrijska oprema
    • SBC računari
    • Razvojni sistemi
    • STEM
    • Mrežna oprema
    • Displeji
    • Dodaci
    • Alati
    • Muzička oprema
    • Pametni uređaji
    • Re:recenzija
  • Edukacija
  • Novosti
  • Lifestyle
    • Ekologija
    • Događaji
    • Intervjui
  • Stručni tekstovi
  • Forum
magazin Mehatronikamagazin Mehatronika
Home»Stručni tekstovi»projekat colourMixer : MSP430FR5994-EduBoosterPack
Stručni tekstovi

projekat colourMixer : MSP430FR5994-EduBoosterPack

Aleksandar DakićBy Aleksandar Dakić10/04/2022Updated:14/03/20254 Mins Read

Korišćenjem PlatformIO plug-in-a, MS Visual Studio Code postaje veoma sofisticiran IDE za pisanje i razvoj aplikacija na mnogim razvojnim sistemima. Za razliku od Arduino IDE-a, koji ne podržava TI mikroprocesore i gde je potrebno koristiti Energia IDE, jedan broj TI ploča je podržan u PlatformIO okruženju. Takav je i slučaj sa kombinacijom MSP430FR5994 i BOOSTXL-EDUMKII pločom.

Iskoristili smo snagu mikrokontrolera sa prva i kolor LCD ekran, višebojnu diodu, tastere i džojstik na drugom i napisali veoma jednostavnu, ali ilustrativnu aplikaciju kojom se mogu menjanem R/G/B parametara na ekranu i na diodi dobiti svetlosti boje u skladu sa zadatim vrednostima svake od osnovnih boja.

Standard pri kodiranju boja za prikaz na ekranu je RGB, pri čemu se svaka od vrednosti ove tri boje kreće u rasponu od 0-255. Na ekranu je normalizovan prikaz na 100% kako bi intuitivnije mogli da posmatramo efekte mešanja.

Lepo napisane biblioteke za ove dve pločice (sa jednom napomenom!!!!) omogućavaju lako programiranje u Arduino stilu.

#include <Arduino.h>


// colourMixer magazinMehatronika eduIot projekat 2022

#include "LCD_screen.h"
#include "LCD_utilities.h"
#include "LCD_screen_font.h"
#include "LiquidCrystal.h"
#include <Screen_HX8353E.h>
#include "SPI.h"

Screen_HX8353E myScreen;

uint16_t valueBlue = 0;
uint16_t valueBlueO = 0;
uint16_t valueGreen = 0;
uint16_t valueGreenO = 0;
uint16_t valueRed = 0;
uint16_t valueRedO = 0;

#define joystickX 2
#define joystickY 26
uint16_t x, y;

int i=0;
int k = 0;

void setup() {

  pinMode(GREEN_LED, OUT);
  pinMode(RED_LED,OUT);    

  pinMode(37,OUT); // Blue
  pinMode(38,OUT); // Green
  pinMode(39,OUT); // Red

  pinMode(45,INPUT_PULLUP);
  pinMode(46,INPUT_PULLUP);
  pinMode(32,INPUT);
  pinMode(33,INPUT);

  Serial.begin(9600);
  
  myScreen.begin();
  myScreen.clear();
 
  myScreen.gText(10,110,"magazinMehatronika", whiteColour);


}

void loop() {

  x = map(analogRead(joystickX), 0, 4096, 0, 128);
  y = map(analogRead(joystickY), 0, 4096, 128, 0);
    if (x < 60)      x = 1;
    if (x > 126)    x = 126;
    if (y < 1)      y = 1;
    if (y > 126)    y = 126;

if ( x>80)
        { if (valueRed<100) { valueRedO=valueRed; valueRed++; k=1;}
        }
  if ( x<50)
        { if (valueRed>0) {valueRedO=valueRed; valueRed--; k=1;}    
        }

  if ( digitalRead(32))
        { if (valueBlue<100) { valueBlueO=valueBlue; valueBlue++; k=1;}
        }
  if ( digitalRead(33))
        { if (valueBlue>0) {valueBlueO=valueBlue; valueBlue--; k=1;}    
        }
  if ( y<50)
        { if (valueGreen<100) { valueGreenO=valueGreen; valueGreen++; k=1;}
        }
  if ( y>80)
        { if (valueGreen>0) {valueGreenO=valueGreen; valueGreen--; k=1;}    
        }
  analogWrite(39,valueRed*32/100);
  analogWrite(38,valueGreen*32/100);
  analogWrite(37,valueBlue*32/100);
  
  delay(200);
  // myScreen.clear();
  if (k==1) {
      k=0;
      
      myScreen.setFontSize(1);
      myScreen.gText(15,80, String(valueRedO)+"%",blackColour); 
      myScreen.gText(15,80, String(valueRed)+"%",redColour);
      for (i=0; i<10; i++) {myScreen.dRectangle(10+i,50+i,20-2*i,20-2*i,myScreen.calculateColour( valueRed*8*32/101, 0, 0));}

      myScreen.gText(55,80, String(valueGreenO)+"%",blackColour); 
      myScreen.gText(55,80, String(valueGreen)+"%",greenColour);
      for (i=0; i<10; i++) {myScreen.dRectangle(50+i,50+i,20-2*i,20-2*i, myScreen.calculateColour( 0, valueGreen*8*32/101, 0));}
      
      myScreen.gText(95,80, String(valueBlueO)+"%",blackColour); 
      myScreen.gText(95,80, String(valueBlue)+"%",blueColour);
      for (i=0; i<10; i++) {myScreen.dRectangle(90+i,50+i,20-2*i,20-2*i,myScreen.calculateColour( 0, 0, valueBlue*8*32/100));}
  
      
      for (i=0; i<10; i++) {myScreen.dRectangle(40+i,10+i,20-2*i,20-2*i, myScreen.calculateColour( valueRed*8*32/101, valueGreen*8*32/101, valueBlue*8*32/101));
                            myScreen.dRectangle(60+i,10+i,20-2*i,20-2*i, myScreen.calculateColour( valueRed*8*32/101, valueGreen*8*32/101, valueBlue*8*32/101));}
          
      }
  

}

NAPOMENA: Energia fajl za definiciju pinova pins_energia.c na lokaciji: C:\Users\User.platformio\packages\framework-energiamsp430\variants\MSP-EXP430FR5994LP mora se korigovati. Ti nije dobro dodelio vrednosti ponova 18 i 39. Na pinu 39 je crvena dioda i kako nije pridružena na TOB5, neće raditi PWM na tom pinu – logično. Dakle treba izmeniti ovu datoteku i promeniti linije od 457 do 510 i one treba da glase:

const uint8_t digital_pin_to_timer[] = {
   NOT_ON_TIMER, /*  dummy */
   NOT_ON_TIMER, /*  1 - 3.3v */
   T1A1,         /*  2 - P1.2 */
   NOT_ON_TIMER, /*  3 - P6.1 */
   NOT_ON_TIMER, /*  4 - P6.0 */
   NOT_ON_TIMER, /*  5 - P6.2 */
   T1A2,         /*  6 - P1.3 */
   NOT_ON_TIMER, /*  7 - P5.2 */
   NOT_ON_TIMER, /*  8 - P6.3 */
   NOT_ON_TIMER, /*  9 - P7.1 */
   NOT_ON_TIMER, /* 10 - P7.0 */
   NOT_ON_TIMER, /* 11 - P8.1 */
   NOT_ON_TIMER, /* 12 - P8.2 */
   NOT_ON_TIMER, /* 13 - P8.3 */
   NOT_ON_TIMER, /* 14 - P5.1 */
   NOT_ON_TIMER, /* 15 - P5.0 */
   NOT_ON_TIMER, /* 16 - RST  */
   NOT_ON_TIMER, /* 17 - P5.3 */
   NOT_ON_TIMER, /* 18 - P4.4 */
   NOT_ON_TIMER, /* 19 - P5.7 */
   NOT_ON_TIMER, /* 20 - GND  */
   NOT_ON_TIMER, /* 21 - 5.0v */
   NOT_ON_TIMER, /* 22 - GND  */
   NOT_ON_TIMER, /* 23 - P3.0 */
   NOT_ON_TIMER, /* 24 - P3.1 */
   NOT_ON_TIMER, /* 25 - P3.2 */
   NOT_ON_TIMER, /* 26 - P3.3 */
   NOT_ON_TIMER, /* 27 - P1.4 */
   T0B2,         /* 28 - P1.5 */
   NOT_ON_TIMER, /* 29 - P4.7 */
   NOT_ON_TIMER, /* 30 - P8.0 */
   NOT_ON_TIMER, /* 31 - P4.1 */
   NOT_ON_TIMER, /* 32 - P4.2 */
   NOT_ON_TIMER, /* 33 - P4.3 */
   NOT_ON_TIMER, /* 34 - P2.5 */
   T0B1,         /* 35 - P2.6 */
   T4A1,         /* 36 - P7.3 */
   T0B3,         /* 37 - P3.4 */
   T0B4,         /* 38 - P3.5 */
   T0B5,         /* 39 - P3.6 */
   T0B6,         /* 40 - P3.7 */
   NOT_ON_TIMER, /* 41 - P2.0 */
   NOT_ON_TIMER, /* 42 - P2.1 */
   T0A1,         /* 43 - P1.0 */
   T0A2,         /* 44 - P1.1 */
   NOT_ON_TIMER, /* 45 - P5.6 */
   NOT_ON_TIMER, /* 46 - P5.5 */
   NOT_ON_TIMER, /* 47 - P4.0 */
   NOT_ON_TIMER, /* 48 - P1.6 */
   NOT_ON_TIMER, /* 49 - P2.2 */
   NOT_ON_TIMER, /* 50 - P1.7 */
   NOT_ON_TIMER, /* 51 - P7.2 */
};

Projekat možete preuzeti na GitHub-u:

https://github.com/magazinMehatronika/MSP430FR5994-EduBoosterPack-colourMixer

 

Texas Instruments
Previous ArticleTHT-ovo prvo na svetu driverless svetlo otporno na toplotu idealno za okruženja sa visokim temperaturama
Next Article DOSSIS: Podmazivanje
Aleksandar Dakić

Aleksandar je osnivač magazina Mehatronika. Sa pozadinom u električnom inženjeringu i dugom istorijom rada u stručnim časopisima, on se fokusira na ključnom sadržaju magazina Mehatronika i stoji iza brojnih inicijativa.

Related posts

Stručni tekstovi

Automatizacija procesa u pivari

Sponsor: ENEL Valjevo14/09/2025
Industrija

akYtec ITP11 indikator za proces pasterizacije mleka

Sponsor: akYtec dooakYtec doo11/09/2025
Stručni tekstovi

akYtec ITP11 u prehrambenoj industriji

Sponsor: akYtec dooakYtec doo31/07/2025
Stručni tekstovi

Korišćenje ENGEL iQ clamp control

Sponsor: Neofyton09/07/2025
Stručni tekstovi

Inovativna rešenja za optimizaciju potrošnje energije u industriji

Sponsor: EXOR ETI d.o.o.26/06/2025
Stručni tekstovi

Evakuacija zgrada

Sponsor: Sobel13/05/2025
Kompanije
ABB akYtec Armsom Automatika Banana Pi Beogradski Sajam Bosch Rexroth CADCAM Data CHIRON Croatia CircuitMess Danfoss DFRobot Digilent Dossis Eaton Elcom Media Elecfreaks Elecrow Electronic Design Elektromont ELESA+GANTER EMP EMT elektro ENEL Valjevo EP-Solutions ePlan Eurocom EXOR ETI Fanuc Faulhaber Festo Fox Electronics Gamax Gomo Design Hennlich Hidraulika HMS ICM Electronics ICOP INEA SR INNOMOTICS IvDam Process Control LattePanda Libre Computer Lilygo magazinMehatronika malina314 Mean Well / ASIKO Melco-Buda Metronik Microsoft Mikro Kontrol Mitsubishi Electric Momentum National Instruments Neminik Neofyton NVIDIA OM SISTEM Orange Pi PCBWay Pickering Radxa Raspberry Pi Recom Renishaw Rittal Sajam voda Samsung Schneider Electric Schunk Seeed Studio Siemens SM Automation Sobel Soldered staubli STMicroelectronics SunFounder Tectra / Megger teenage engineering Tehnogama TeLa elektrik TI LaunchPad Tipteh TRC pro Trim Triton Engineering UMBRAmatik Unicom Uno-Lux Processing Uno Lux NS URAM System Vesimpex VETS Wago Weidmuller Wurth Elektronik Yaskawa Yokogawa
Distribuciju štampanih izdanja srednjim školama omogućile kompanije
Facebook X (Twitter) Instagram LinkedIn
  • Uređivačka politika
  • Kontakt
  • Media kit
  • Slanje jedinica za recenziju
  • Pretplata
  • Elektronska izdanja

magazin Mehatronika - Agencija “Gomo Design”
Stanoja Glavaša 37, 26300 Vršac, Serbia
+381 60 0171 273

© 2025 magazin Mehatronika by Gomo Design.

Type above and press Enter to search. Press Esc to cancel.

Logo magazin Mehatronika
Manage Consent
Da bismo omogućili najbolje korisničko iskustvo, koristimo tehnologije kao što su kolačići da bismo obradili informacije o uređaju sa kojeg pristupate sajtu, kao i informacije o posećivanju naših stranica. Prihvatanje naše upotrebe ovih tehnologija znači da nam dozvoljavate da obradimo ove podatke. Odbijanje ili kasnije opozivanje pristanka može dovesti do prestanka rada određenih funkcija sajta.
Funkcionalni kolačići Stalno aktivni
Skladištenje ili pristup ovim podacima je neophodan za omogućavanje osnovnog korisničkog iskustva u pružanju usluge ili priustupu sadržaju kojeg je korisnik izričito tražio, odnosno za svrhu komunikacije preko elektronske mreže.
Podešavanja
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistički kolačići
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing kolačići
Ovi podaci se koriste u kreaciji korisničkih profila na koje se šalje marketinški materijal, ili koji se koriste za praćenje interakcija korisnika sa sajtom, ili sa nekoliko sajtova za marketinške svrhe.
Upravljajte opcijama Upravljajte uslugama Upravljajte {vendor_count} dobavljačima Pročitajte više o ovim svrhama
Pogledaj podešavanja
{title} {title} {title}