Собрал робоняшу, а она всё время влево едет. Напряжение везде ровно 3.50 Код (Javascript): var marsohod = require('@amperka/robot-2wd') .connect(); var SPEED=1; var KR=1; var KL=1; var ls=0; var rs=0; var t=0; var encoderL = require('@amperka/digital-line-sensor') .connect(P9); var encoderR = require('@amperka/digital-line-sensor') .connect(P13); marsohod.go({l:SPEED*KL, r: SPEED*KR}); encoderL.on('black', function() {ls=ls+1;}); encoderR.on('black', function() {rs=rs+1;}); setInterval(function() {print("t:"+t+"sec, lm:"+ls+" lr:"+rs); t=t+1;},1000); А обороты разные: t:20sec, lm:630 lr:620 t:21sec, lm:661 lr:650 t:22sec, lm:691 lr:679 t:23sec, lm:721 lr:709 t:24sec, lm:752 lr:739 t:25sec, lm:782 lr:769 t:26sec, lm:814 lr:798 t:27sec, lm:845 lr:827 t:28sec, lm:876 lr:857 t:29sec, lm:906 lr:886 t:30sec, lm:936 lr:915 Я конечно выровнял скорость, уменьшив на другом на 25%, но а как-же соревнования и т.д. когда скорость заведомо ниже?
Под нагрузкой проводили измерения на моторах? Все ли "пустоты" на колесах "пустые"? и лучше так сделайте: Код (Javascript): var encoder = require('@amperka/digital-line-sensor'); var encoderL = encoder.connect(P9); var encoderR = encoder.connect(P13);
Измерения проводил без нагрузки, после того, как увидел что Робоняша едет вправо под нагрузкой по полу. Код (C++): var marsohod = require('@amperka/robot-2wd').connect(); var SPEED=1; var KR=1; var KL=1; marsohod.go({l:SPEED*KL, r: SPEED*KR}); Думал криво собрал, но датчики тоже подтверждают.
Напечатал на самоклейке один сектор 180градусов черным здесь не ошибается - единица за оборот Код (C++): var Motor = require('@amperka/motor'); var motorr=Motor.connect({phasePin: P7, pwmPin: P6}); var motorl=Motor.connect({phasePin: P4, pwmPin: P5}); var SPEED=1; var KR=1; var KL=1; motorl.write(1); motorr.write(1); var t=10; var ls=0; var rs=0; var encoder = require('@amperka/digital-line-sensor'); var encoderL = encoder.connect(P9); var encoderR = encoder.connect(P13); encoderL.on('white', function() {ls=ls+1;}); encoderR.on('white', function() {rs=rs+1;}); setInterval(function() {print("t:",t,"sec, lm rpm:",ls, "rm rpm:",rs); t=t+10;},10000); На 5 вольтах от USB ноутбука дает такие обороты: t: 10 sec, lm rpm: 25 rm rpm: 24 t: 20 sec, lm rpm: 50 rm rpm: 49 t: 30 sec, lm rpm: 75 rm rpm: 73 t: 40 sec, lm rpm: 100 rm rpm: 98 t: 50 sec, lm rpm: 125 rm rpm: 123 t: 60 sec, lm rpm: 150 rm rpm: 147 то есть левое колесо на 3 об\мин крутится быстрее.
На мотор шиелд провода моторов местами поменял, тоже самое, дело в моторе t: 10 sec, lm rpm: 26 rm rpm: 24 t: 20 sec, lm rpm: 51 rm rpm: 48 t: 30 sec, lm rpm: 77 rm rpm: 72 t: 40 sec, lm rpm: 102 rm rpm: 95 t: 50 sec, lm rpm: 128 rm rpm: 119 t: 60 sec, lm rpm: 154 rm rpm: 143
А что писать? Пришлите мне нормальные моторы и нормальную наклейку на пульт, который ни разу не Амперка, а от какого-то СarMP3, пульт присылать не надо - коды, я уже понял как подменить. Вот так купишь ребенку конструктор, а приходиться играться самому. Лучше бы я ему mindstorms ev3 купил, там всё причесано.
В зависимости от того, что Вы хотите. Решить проблему или просто пожаловаться и посетовать... Я не понимаю смысл вашего послания. Хотели купить EV3, но не купили и теперь жалеете? Так могу Вас успокоить, там тоже бывают косяки моторов... не смотря на высокий контроль качества... да брака ничтожно мало...Да и вообще, Лего по сути узконаправленная игрушка... и очень дорогая в итоге... хотя и прикольная как и все Лего...