KL46Z code to use in conjunction with a PyQt GUI over a serial communication.

Dependencies:   mbed

Here is the Python code for the PyQt Gui...

from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
import serial
  
def printNumber(number):
    print number
    ser = serial.Serial('COM5',9600)   
    #state which port the KL46Z is connected to and the baud rate

    ser.write(unichr(number).encode()) 
    #encode number from slider and send the encoded character to KL46Z
  
if __name__=="__main__":
    app=QApplication(sys.argv)
    slider=QSlider(Qt.Horizontal)
    slider.setRange(1,127)
    slider.setFixedWidth(400)
    slider.setSliderPosition(64)
    #create a QApplication and QSlider
    
    QObject.connect(slider,SIGNAL("valueChanged(int)"),printNumber)
    #call the printNumber funciton each time the value on the slider changes 
  
    slider.show()
    #start the loop
    sys.exit(app.exec_())
Committer:
covrigs
Date:
Fri Dec 09 19:58:50 2016 +0000
Revision:
0:f2c6afc8e527
For ECE 111, Lab 4. KL46Z receives serial data from a python GUI and controls a motor via an L293D.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
covrigs 0:f2c6afc8e527 1 #include "mbed.h"
covrigs 0:f2c6afc8e527 2 #include "Motor.h"
covrigs 0:f2c6afc8e527 3
covrigs 0:f2c6afc8e527 4 Serial pc(USBTX,USBRX); // Declare serial connection
covrigs 0:f2c6afc8e527 5 Motor my_motor(PTB1,PTB0); // Declare motor and motor pin addresses
covrigs 0:f2c6afc8e527 6
covrigs 0:f2c6afc8e527 7 int main() {
covrigs 0:f2c6afc8e527 8
covrigs 0:f2c6afc8e527 9 pc.baud(9600);
covrigs 0:f2c6afc8e527 10 int slidervalue = 64;
covrigs 0:f2c6afc8e527 11 int readvalue = 0;
covrigs 0:f2c6afc8e527 12
covrigs 0:f2c6afc8e527 13
covrigs 0:f2c6afc8e527 14 while (1) {
covrigs 0:f2c6afc8e527 15
covrigs 0:f2c6afc8e527 16
covrigs 0:f2c6afc8e527 17 readvalue = int(pc.getc()); // reads the value from the serial port and stores it as "readvalue"
covrigs 0:f2c6afc8e527 18
covrigs 0:f2c6afc8e527 19 if (readvalue >=1 && readvalue <=127) { // checks to make sure "readvalue" is within a valid range
covrigs 0:f2c6afc8e527 20 slidervalue = readvalue;
covrigs 0:f2c6afc8e527 21 }
covrigs 0:f2c6afc8e527 22
covrigs 0:f2c6afc8e527 23 my_motor.Spin((float(slidervalue) - 1.0)/126.0); // turns "slidervalue" into a percentage and sends it to the motor's Spin function
covrigs 0:f2c6afc8e527 24
covrigs 0:f2c6afc8e527 25 }
covrigs 0:f2c6afc8e527 26 }