Example of how use the Nucleo board with a processing GUI program. Processing code in the description section of mbed program.

Dependencies:   mbed

Committer:
dreamworker
Date:
Sat Jul 18 09:36:26 2015 +0000
Revision:
0:842c6c950cf5
Child:
1:b89267dee6da
Example of how use the Nucleo board with a processing GUI program.; Processing code in description;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dreamworker 0:842c6c950cf5 1 /*===========================================================================================================
dreamworker 0:842c6c950cf5 2 = Example of how use the Nucleo board with a processing GUI program =
dreamworker 0:842c6c950cf5 3 = Processing code =
dreamworker 0:842c6c950cf5 4 import g4p_controls.*; // GUI library
dreamworker 0:842c6c950cf5 5 import processing.serial.*; //serial library
dreamworker 0:842c6c950cf5 6 int rosso, verde, blu;
dreamworker 0:842c6c950cf5 7 int valoreSliderRosso,valoreSliderVerde,valoreSliderBlu;
dreamworker 0:842c6c950cf5 8 String porta;
dreamworker 0:842c6c950cf5 9
dreamworker 0:842c6c950cf5 10 Serial nucleoPort;
dreamworker 0:842c6c950cf5 11 GCustomSlider sdrRosso, sdrVerde, sdrBlu; // sliders creation
dreamworker 0:842c6c950cf5 12 GButton btnRosso, btnVerde, btnBlu, btnConnetti;//buttons creation
dreamworker 0:842c6c950cf5 13 GLabel Rosso, Verde, Blu, Porte; //labels creation
dreamworker 0:842c6c950cf5 14 GDropList sceltaPorta;//port selector creation
dreamworker 0:842c6c950cf5 15 void setup() {
dreamworker 0:842c6c950cf5 16 size(500, 320);
dreamworker 0:842c6c950cf5 17 frame.setTitle("Nucleo RGB Color");
dreamworker 0:842c6c950cf5 18 //=============================================================
dreamworker 0:842c6c950cf5 19 // sliders
dreamworker 0:842c6c950cf5 20 sdrRosso = new GCustomSlider(this, 20, 30, 380, 50, null);
dreamworker 0:842c6c950cf5 21 sdrRosso.setShowDecor(false, false, true, true);
dreamworker 0:842c6c950cf5 22 sdrRosso.setNbrTicks(5);
dreamworker 0:842c6c950cf5 23 sdrRosso.setLimits(0, 0, 255);
dreamworker 0:842c6c950cf5 24 valoreSliderRosso=0;
dreamworker 0:842c6c950cf5 25
dreamworker 0:842c6c950cf5 26 sdrVerde = new GCustomSlider(this, 20, 90, 380, 50, null);
dreamworker 0:842c6c950cf5 27 sdrVerde.setShowDecor(false, false, true, true);
dreamworker 0:842c6c950cf5 28 sdrVerde.setNbrTicks(5);
dreamworker 0:842c6c950cf5 29 sdrVerde.setLimits(0, 0, 255);
dreamworker 0:842c6c950cf5 30 valoreSliderVerde=0;
dreamworker 0:842c6c950cf5 31
dreamworker 0:842c6c950cf5 32 sdrBlu = new GCustomSlider(this, 20, 150, 380, 50, null);
dreamworker 0:842c6c950cf5 33 sdrBlu.setShowDecor(false, false, true, true);
dreamworker 0:842c6c950cf5 34 sdrBlu.setNbrTicks(5);
dreamworker 0:842c6c950cf5 35 sdrBlu.setLimits(0, 0, 255);
dreamworker 0:842c6c950cf5 36 valoreSliderBlu=0;
dreamworker 0:842c6c950cf5 37
dreamworker 0:842c6c950cf5 38 //=============================================================
dreamworker 0:842c6c950cf5 39 //label
dreamworker 0:842c6c950cf5 40 Rosso = new GLabel(this, 150, 10, 110, 50);
dreamworker 0:842c6c950cf5 41 Rosso.setText("Red");
dreamworker 0:842c6c950cf5 42 Rosso.setTextBold();
dreamworker 0:842c6c950cf5 43
dreamworker 0:842c6c950cf5 44 Verde = new GLabel(this, 150, 70, 110, 50);
dreamworker 0:842c6c950cf5 45 Verde.setText("Green");
dreamworker 0:842c6c950cf5 46 Verde.setTextBold();
dreamworker 0:842c6c950cf5 47
dreamworker 0:842c6c950cf5 48 Blu = new GLabel(this, 150, 130, 110, 50);
dreamworker 0:842c6c950cf5 49 Blu.setText("Blue");
dreamworker 0:842c6c950cf5 50 Blu.setTextBold();
dreamworker 0:842c6c950cf5 51
dreamworker 0:842c6c950cf5 52 Porte = new GLabel(this, 285, 180, 110, 50);
dreamworker 0:842c6c950cf5 53 Porte.setText("Port Selection");
dreamworker 0:842c6c950cf5 54 Porte.setTextBold();
dreamworker 0:842c6c950cf5 55
dreamworker 0:842c6c950cf5 56 //=============================================================
dreamworker 0:842c6c950cf5 57 //buttons
dreamworker 0:842c6c950cf5 58 btnRosso = new GButton(this, 20, 220, 80, 40, "Red");
dreamworker 0:842c6c950cf5 59 btnRosso.setTextBold();
dreamworker 0:842c6c950cf5 60 btnRosso.setLocalColorScheme(5);
dreamworker 0:842c6c950cf5 61
dreamworker 0:842c6c950cf5 62 btnVerde = new GButton(this, 110, 220, 80, 40, "Green");
dreamworker 0:842c6c950cf5 63 btnVerde.setTextBold();
dreamworker 0:842c6c950cf5 64 btnVerde.setLocalColorScheme(5);
dreamworker 0:842c6c950cf5 65
dreamworker 0:842c6c950cf5 66 btnBlu = new GButton(this, 210, 220, 80, 40, "Blue");
dreamworker 0:842c6c950cf5 67 btnBlu.setTextBold();
dreamworker 0:842c6c950cf5 68 btnBlu.setLocalColorScheme(5);
dreamworker 0:842c6c950cf5 69
dreamworker 0:842c6c950cf5 70 btnConnetti = new GButton(this, 300, 240, 80, 20, "Connect");
dreamworker 0:842c6c950cf5 71 btnConnetti.setTextBold();
dreamworker 0:842c6c950cf5 72 btnConnetti.setLocalColorScheme(7);
dreamworker 0:842c6c950cf5 73
dreamworker 0:842c6c950cf5 74 //=============================================================
dreamworker 0:842c6c950cf5 75 //serial port
dreamworker 0:842c6c950cf5 76
dreamworker 0:842c6c950cf5 77 sceltaPorta = new GDropList(this,300,220,80,50,3);
dreamworker 0:842c6c950cf5 78 sceltaPorta.setItems(Serial.list(),0);//serial port aviable list
dreamworker 0:842c6c950cf5 79 porta = sceltaPorta.getSelectedText();
dreamworker 0:842c6c950cf5 80 nucleoPort = new Serial(this, porta, 9600); //serial port assignament
dreamworker 0:842c6c950cf5 81 //initialization
dreamworker 0:842c6c950cf5 82 while (nucleoPort.available()<0){
dreamworker 0:842c6c950cf5 83 setZero();}
dreamworker 0:842c6c950cf5 84
dreamworker 0:842c6c950cf5 85 }
dreamworker 0:842c6c950cf5 86 void draw() {
dreamworker 0:842c6c950cf5 87 //background color
dreamworker 0:842c6c950cf5 88 background(68, 111, 216);
dreamworker 0:842c6c950cf5 89 //=============================================================
dreamworker 0:842c6c950cf5 90 //color boxes
dreamworker 0:842c6c950cf5 91 //red
dreamworker 0:842c6c950cf5 92 strokeWeight(2);
dreamworker 0:842c6c950cf5 93 stroke(104, 104, 255);
dreamworker 0:842c6c950cf5 94 rosso=sdrRosso.getValueI();
dreamworker 0:842c6c950cf5 95 fill(rosso, 0, 0);
dreamworker 0:842c6c950cf5 96 rect(400,40,40,40,7);
dreamworker 0:842c6c950cf5 97
dreamworker 0:842c6c950cf5 98 //green
dreamworker 0:842c6c950cf5 99 strokeWeight(2);
dreamworker 0:842c6c950cf5 100 stroke(104, 104, 255);
dreamworker 0:842c6c950cf5 101 verde=sdrVerde.getValueI();
dreamworker 0:842c6c950cf5 102 fill(0, verde, 0);
dreamworker 0:842c6c950cf5 103 rect(400,100,40,40,7);
dreamworker 0:842c6c950cf5 104
dreamworker 0:842c6c950cf5 105 //blue
dreamworker 0:842c6c950cf5 106 strokeWeight(2);
dreamworker 0:842c6c950cf5 107 stroke(104, 104, 255);
dreamworker 0:842c6c950cf5 108 blu=sdrBlu.getValueI();
dreamworker 0:842c6c950cf5 109 fill(0, 0, blu);
dreamworker 0:842c6c950cf5 110 rect(400,160,40,40,7);
dreamworker 0:842c6c950cf5 111
dreamworker 0:842c6c950cf5 112 //mixed
dreamworker 0:842c6c950cf5 113 strokeWeight(2);
dreamworker 0:842c6c950cf5 114 stroke(120, 120, 255);
dreamworker 0:842c6c950cf5 115 fill(rosso, verde, blu);
dreamworker 0:842c6c950cf5 116 rect(400,220,80,80,7);
dreamworker 0:842c6c950cf5 117
dreamworker 0:842c6c950cf5 118 if ((valoreSliderRosso == rosso) && (valoreSliderVerde == verde) && (valoreSliderBlu ==blu)){}
dreamworker 0:842c6c950cf5 119 else{
dreamworker 0:842c6c950cf5 120 //send values
dreamworker 0:842c6c950cf5 121 mouseReleased();
dreamworker 0:842c6c950cf5 122 }
dreamworker 0:842c6c950cf5 123 }
dreamworker 0:842c6c950cf5 124
dreamworker 0:842c6c950cf5 125 public void handleButtonEvents(GButton button, GEvent event) {
dreamworker 0:842c6c950cf5 126 //buttons actions
dreamworker 0:842c6c950cf5 127 if (button == btnConnetti){
dreamworker 0:842c6c950cf5 128 porta = sceltaPorta.getSelectedText();
dreamworker 0:842c6c950cf5 129 nucleoPort = new Serial(this, porta, 9600); println(porta);}
dreamworker 0:842c6c950cf5 130 else if (button == btnBlu){
dreamworker 0:842c6c950cf5 131 nucleoPort.write('B');
dreamworker 0:842c6c950cf5 132 nucleoPort.write(255);
dreamworker 0:842c6c950cf5 133 delay(100);
dreamworker 0:842c6c950cf5 134 nucleoPort.write('R');
dreamworker 0:842c6c950cf5 135 nucleoPort.write(0);
dreamworker 0:842c6c950cf5 136 delay(100);
dreamworker 0:842c6c950cf5 137 nucleoPort.write('G');
dreamworker 0:842c6c950cf5 138 nucleoPort.write(0);
dreamworker 0:842c6c950cf5 139 delay(100);}
dreamworker 0:842c6c950cf5 140 else if (button == btnVerde){
dreamworker 0:842c6c950cf5 141 nucleoPort.write('G');
dreamworker 0:842c6c950cf5 142 nucleoPort.write(255);
dreamworker 0:842c6c950cf5 143 delay(100);
dreamworker 0:842c6c950cf5 144 nucleoPort.write('R');
dreamworker 0:842c6c950cf5 145 nucleoPort.write(0);
dreamworker 0:842c6c950cf5 146 delay(100);
dreamworker 0:842c6c950cf5 147 nucleoPort.write('B');
dreamworker 0:842c6c950cf5 148 nucleoPort.write(0);
dreamworker 0:842c6c950cf5 149 delay(100);}
dreamworker 0:842c6c950cf5 150 else if (button == btnRosso){
dreamworker 0:842c6c950cf5 151 nucleoPort.write('R');
dreamworker 0:842c6c950cf5 152 nucleoPort.write(255);
dreamworker 0:842c6c950cf5 153 delay(100);
dreamworker 0:842c6c950cf5 154 nucleoPort.write('B');
dreamworker 0:842c6c950cf5 155 nucleoPort.write(0);
dreamworker 0:842c6c950cf5 156 delay(100);
dreamworker 0:842c6c950cf5 157 nucleoPort.write('G');
dreamworker 0:842c6c950cf5 158 nucleoPort.write(0);
dreamworker 0:842c6c950cf5 159 delay(100);
dreamworker 0:842c6c950cf5 160 }
dreamworker 0:842c6c950cf5 161
dreamworker 0:842c6c950cf5 162 }
dreamworker 0:842c6c950cf5 163 void setZero(){
dreamworker 0:842c6c950cf5 164 nucleoPort.write('G');
dreamworker 0:842c6c950cf5 165 nucleoPort.write(0);
dreamworker 0:842c6c950cf5 166 nucleoPort.write('R');
dreamworker 0:842c6c950cf5 167 nucleoPort.write(0);
dreamworker 0:842c6c950cf5 168 nucleoPort.write('B');
dreamworker 0:842c6c950cf5 169 nucleoPort.write(0);
dreamworker 0:842c6c950cf5 170 }
dreamworker 0:842c6c950cf5 171 void mouseReleased(){
dreamworker 0:842c6c950cf5 172 nucleoPort.write('G');
dreamworker 0:842c6c950cf5 173 nucleoPort.write(verde);
dreamworker 0:842c6c950cf5 174 valoreSliderVerde=verde;
dreamworker 0:842c6c950cf5 175
dreamworker 0:842c6c950cf5 176 nucleoPort.write('R');
dreamworker 0:842c6c950cf5 177 nucleoPort.write(rosso);
dreamworker 0:842c6c950cf5 178 valoreSliderRosso=rosso;
dreamworker 0:842c6c950cf5 179
dreamworker 0:842c6c950cf5 180 nucleoPort.write('B');
dreamworker 0:842c6c950cf5 181 nucleoPort.write(blu);
dreamworker 0:842c6c950cf5 182 valoreSliderBlu=blu;}
dreamworker 0:842c6c950cf5 183 ========================================================================================================*/
dreamworker 0:842c6c950cf5 184
dreamworker 0:842c6c950cf5 185
dreamworker 0:842c6c950cf5 186
dreamworker 0:842c6c950cf5 187 // Nucleo program
dreamworker 0:842c6c950cf5 188 #include "mbed.h"
dreamworker 0:842c6c950cf5 189 PwmOut red(D10);
dreamworker 0:842c6c950cf5 190 PwmOut green(D11);
dreamworker 0:842c6c950cf5 191 PwmOut blue(D12);
dreamworker 0:842c6c950cf5 192 Serial Processing(USBTX, USBRX);
dreamworker 0:842c6c950cf5 193 float mapRed,mapGreen,mapBlue;
dreamworker 0:842c6c950cf5 194 char c;
dreamworker 0:842c6c950cf5 195 int val;
dreamworker 0:842c6c950cf5 196 float map(int value, float x_min, float x_max, float y_min, float y_max)
dreamworker 0:842c6c950cf5 197 {
dreamworker 0:842c6c950cf5 198 return (y_min + (((y_max - y_min)/(x_max - x_min)) * (value - x_min)));
dreamworker 0:842c6c950cf5 199 }
dreamworker 0:842c6c950cf5 200 int main(){
dreamworker 0:842c6c950cf5 201 red = 1;
dreamworker 0:842c6c950cf5 202 wait(0.2);
dreamworker 0:842c6c950cf5 203 red = 0;
dreamworker 0:842c6c950cf5 204 green = 1;
dreamworker 0:842c6c950cf5 205 wait(0.2);
dreamworker 0:842c6c950cf5 206 green = 0;
dreamworker 0:842c6c950cf5 207 blue = 1;
dreamworker 0:842c6c950cf5 208 wait(0.2);
dreamworker 0:842c6c950cf5 209 blue = 0;
dreamworker 0:842c6c950cf5 210 Processing.baud(9600);
dreamworker 0:842c6c950cf5 211 while(1){
dreamworker 0:842c6c950cf5 212 if (Processing.readable()==1){
dreamworker 0:842c6c950cf5 213 c=Processing.getc();
dreamworker 0:842c6c950cf5 214 if (c != 'E'){
dreamworker 0:842c6c950cf5 215 if (c=='R'){
dreamworker 0:842c6c950cf5 216 val = Processing.getc();
dreamworker 0:842c6c950cf5 217 mapRed=map( val, 0, 255, 0, 1);
dreamworker 0:842c6c950cf5 218 red.write(mapRed);}
dreamworker 0:842c6c950cf5 219 else if ( c == 'G'){
dreamworker 0:842c6c950cf5 220 val = Processing.getc();
dreamworker 0:842c6c950cf5 221 mapGreen = map( val, 0, 255, 0, 1);
dreamworker 0:842c6c950cf5 222 green.write(mapGreen);}
dreamworker 0:842c6c950cf5 223 else if ( c == 'B'){
dreamworker 0:842c6c950cf5 224 val = Processing.getc();
dreamworker 0:842c6c950cf5 225 mapBlue = map( val, 0, 255, 0, 1);
dreamworker 0:842c6c950cf5 226 blue.write(mapBlue);}
dreamworker 0:842c6c950cf5 227 else {}
dreamworker 0:842c6c950cf5 228 }
dreamworker 0:842c6c950cf5 229 else {}
dreamworker 0:842c6c950cf5 230 }
dreamworker 0:842c6c950cf5 231 }
dreamworker 0:842c6c950cf5 232 }
dreamworker 0:842c6c950cf5 233