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
  • Edukacija
  • Novosti
  • Lifestyle
    • Događaji
    • Intervjui
  • Stručni tekstovi
  • Forum
Facebook X (Twitter) Instagram LinkedIn
Trending
  • MFT-X1 ispitivanje instalacija
  • Elecfreaks TPBot Edu recenzija
  • WIKA – IvDam Process Control – partnerstvo koje se gradi da traje
  • Würth Elektronik ICLED FeatherWing recenzija
  • WIKA IoT Cloud Platform – Srce IIoT ekosistema
  • WIKA Asystom Beacon
  • igus: Plastična ležišta za bolji vid
  • Seeed Studio XIAO-RP2350 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
  • Edukacija
  • Novosti
  • Lifestyle
    • 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

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
Stručni tekstovi

Signalni uređaji za Ex zonu

Sponsor: Sobel02/05/2025
Stručni tekstovi

Kako se nositi sa momentom inercije u aplikacijama koje zahtevaju precizno pozicioniranje?

Sponsor: Mitsubishi ElectricMitsubishi Electric26/04/2025
Kompanije
ABB akYtec Armsom Automatika Banana Pi Beogradski Sajam Bosch Rexroth CADCAM Data CHIRON Croatia CircuitMess Danfoss DFRobot Digilent Dossis Eaton Edatec 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 magazinMehatronika malina314 Mean Well / ASIKO Melco-Buda Metronik Microsoft Mikro Kontrol Milk-V Mitsubishi Electric Momentum National Instruments Neminik Neofyton NVIDIA OM SISTEM Orange Pi PCBWay Pickering Radxa Raspberry Pi Recom Renishaw Rittal Samsung Schneider Electric Schunk Seeed Studio Servoteh 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 Weidmuller Wurth Elektronik Yaskawa Yokogawa
Distribuciju štampanih izdanja srednjim školama omogućile kompanije
Facebook X (Twitter) Instagram LinkedIn
  • Politika privatnosti
  • 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.

Koristimo minimalne kolačiće kako bismo omogućili nesmetano korišćenje naše stranice. Molimo vas da potvrdite vašu saglasnost.