Передача координат на Ардуино

automation.zhur...
Offline
Зарегистрирован: 27.04.2017

Здравствуйте !!! Нужна ваша помощь. Я с распберри подаю значения координат X и Y по Serial port поАрдуино. Координаты что по X что по Y имеют по 3 бита . У меня 2 проблемы. 1 проблема в том что до определенного момента координаты приходят как надо но вот дальше вместо координат к примеру 123 345 приходит 231 453 в общем перемешиваются как могут...не могу ни как понять в чем проблема... и 2 вопрос состоит в том что как мне эти координаты передавать одновременно к примеру координату X на 9 пин а Y на 10. Суть всей затеи в том что бы с помощью переданных координат с распберри , ардуино передавала эти координаты на аналоговые выходы и с них на двигатели и двигатели должны что либо отрисовывать в зависимости от координат.

char c[6];
void setuo() {
Serial.begin(9600);
}
void.loop() {
  if(Serial.available() > 0) {
    Serial.readBytes(c,6);
    Serial.print(c);
}
}

Здесь я просто вывожу в последовательный порт переданные значения. и они почему то еще какой то мусор выдает. ну и где то с середины значения начинают перемешиваться... Я так понимаю что какая та ошибка с массивом у меня...но не могу понять. помогите разобраться . ну и как эти координаты после на аналоговые выходы передать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

automation.zhuravleff пишет:

Координаты что по X что по Y имеют по 3 бита ... к примеру 123 345

...

У меня 2 проблемы. 

Боюсь, что гораздо больше.

automation.zhur...
Offline
Зарегистрирован: 27.04.2017

Почему?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, понимаете, если Вы не отличаете биты от десятичных цифр, то проблем в написании программ у Вас вовсе не две - весь процесс программирования для Вас одна сплошная проблема. Я прав?

automation.zhur...
Offline
Зарегистрирован: 27.04.2017

Я только начинаю в этом во всем разбираться. И конечно же есть косяки. Но мне это интересно и появилась интересная идея. Вот я и прошу помощи у тех кто может мои мысли направить на верное направление.

вот чать кода на Python с помощью которого я передаю координаты...

  for i  in range(100,300):

    for j in range(100,300):

       if ob[i,j] == 255:

          ard = serial.Serial(...,9600)

          ard.write(str(i))

          ard.write(str(j))

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

биты байты

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

бит - это байт минус налоги. 

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

DetSimen пишет:

бит - это байт минус налоги. 

вот из-за таких вот умников и денег нет на хрустальный мост аборигенам Крымля.

IVAN222
Offline
Зарегистрирован: 19.04.2017

А пайтон какую ошибку выдает?

У меня было на подобии токого, пайтон посылал координаты через ком порт на ардуино Х и У, после запуска через 1может 2-5 сек. пайтон выдавал ошибку связь с ком портом (ошибка была виндовская). Проблема оказалась в кабеле, хотя загрузка скетча была без проблем, а вот данные что то не очень посылал. И скорость 9600 была маловато ставил 115200.

automation.zhur...
Offline
Зарегистрирован: 27.04.2017

Пайтон работает к счастью без ошибок) и вроде перемешивание координат я как то победил =D. Координаты приходят в виде XYXYXYXYXY.... я теперь думаю как мне X на один пин подавать а Y на другой... и я как понимаю ардуино на выход выдает от 0 до 255 значит мне 255 нужно делить на полученную координату еще? т.к. значения координат у меня будут выше 255. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

automation.zhuravleff пишет:

 я как понимаю ардуино на выход выдает от 0 до 255 значит мне 255 нужно делить на полученную координату еще? т.к. значения координат у меня будут выше 255. 

"Всё уже крадено до нас" - http://arduino.ru/Reference/Map

И вообще, Вы бы почитали внимательно раздел http://arduino.ru/Reference, прежде, чем вопросы постить, нельзя же быть настолько "не читателем, а писателем".