Stephen Covrig
/
Motor Control via PyQt
KL46Z code to use in conjunction with a PyQt GUI over a serial communication.
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_())
main.cpp@0:f2c6afc8e527, 2016-12-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |