Я пытаюсь получить некоторые данные из Arduino, и я не могу декодировать данные, которые поступают из него. Я искал какую-то информацию, и я нашел ответы на эти вопросы, например:Получение данных и их декодирование дает редкие символы
Unicode string to String in python
На платформе Arduino посылает цифры (данные) в 8-битной кодификации (UTF-8). Я пробовал много разных кодов и лучшее расшифровывает, что я получил это:
Я использую SublimeText 2, чтобы написать свой код, и это то, что консоль показывает мне, когда я использую print
, Мне нужно декодировать данные, поэтому я могу использовать его позже, чтобы нарисовать фигуру matplotlib.
Этот последний код, который я написал дал мне результат, показанный выше:
class readData(QWidget):
def __init__(self):
super(readData, self).__init__()
self.resize(300, 100)
self.btn = QPushButton("Close", self)
self.btn.setGeometry(150, 50, 100, 30)
self.btn_2 = QPushButton("Search Data", self)
self.btn_2.setGeometry(50, 50, 100, 30)
self.btn.clicked.connect(self.close)
self.btn_2.clicked.connect(self.searchData)
def searchData(self):
arduinoData = serial.Serial('com7', 9600) #We open port com7
while True:
print "Searching for data"
while(arduinoData.inWaiting() == 0): #We wait for the data
print "There is no data"
print "Reading and converting data"
arduinoString = str(arduinoData.readline())
ardString = unicode(arduinoString, errors = "ignore")
print "This is the data: "
print type(arduinoString)
print ""
print arduinoString
print type(ardString)
def close(self):
#WE CLOSE THE WINDOW AND THE PORT
Я открываю простой QWidget
, чтобы показать две кнопки: одна, чтобы начать поиск данных и показать его, а другой, чтобы закрыть окно и порт. Это простое окно:
Как я должен декодировать (или кодировать, я действительно не знаю, сейчас), чтобы показать номера, что мне нужно? Что я делаю не так? Я надеюсь, что вы можете мне помочь.
Я только что прочитал об этом. Еще раз спасибо. Теперь у меня другая проблема. Идк, почему он сейчас ничего не читает. Кажется, что он перестает работать и не работает после 'print 'Чтение и преобразование данных'' –
Кажется, что 'arduinoData.readline()' висит. Но трудно сказать, почему. Может быть, arduino перестает отправлять какие-либо данные? –
Простите, Пабло, я бы хотел помочь вам. Но я еще не работал с серийной ссылкой Arduino на Python. У меня есть опыт работы с TCP/UDP-связью с микроконтроллерами PIC (и чтение данных на ПК с помощью программы Python) –