Наскоро открих https://pybricks.com/ (https://pybricks.com/) и се опитвам да редактирам намерени в Интернет програми - гола вода съм в програмирането... Темата е продължение на Powered UP и Control+ управление с Gamepad (http://www.brickmania-bg.com/index.php?topic=4082.0).
За начало гледам 2 програми за 42124:
- Програма 1 (https://pybricks.com/projects/sets/technic/42124-off-road-buggy/powered-up-remote/);
- Програма 2 (https://racingbrick.com/2021/08/remote-control-for-control-sets-without-an-app-or-smartphone-pybricks/).
В програма 1 е заложено drive_speed += 1000, а в програма 2: drive_speed += 100.
И в 2-та случая бъгите се движи на максимална скорост (до колкото мога да преценя визуално). Въпросът ми е защо в единия случай макс е 100, а в другия e 1000, а крайният резултат е еднакъв?
Поиграх си и със "steer.run_target(500, steer_angle, wait=False)" - когато сменя 500 с 1000 завиващият мотор се движи по-бързо и на практика по-бързо достига максималния ъгъл на колелетата.
Като цяло ми се струва, че има някакво забавяне при обръщане на посоката на движение напред-назад. Сякаш след натискане на противоположния бутон, има забавяне и колата изчаква някакво време (части от секундата), преди да тръгне в обратна посока. При контролиране на хъба с оригиналната програма на Лего не съм забелязал подобно забавяне. За това има ли причина в програмата (кода) или е ограничение от самия хъб или Pybricks firmware-а?
Темата е обширна и мисля, че и други казуси ще изникват с времето.
Така както аз го чета:
# Choose the drive speed based on the right controls.
drive_speed = 0
if Button.RIGHT_PLUS in pressed:
drive_speed += 1000
if Button.RIGHT_MINUS in pressed:
drive_speed -= 1000
# Apply the selected speed.
front.run(drive_speed)
...
# Wait.
wait(10)
На всеки цикъл от по 10 милисекунди, т.е. една стотна, скоростта се презаписва с 0, 1000 или -1000
Не се ДОБАВЯ към текущата, а се подменя с една от тези 3. Така реално или е макс напред, или макс назад, или неподвижен
Щом казваш, че няма разлика между 100 и 1000, може би 100 е максимума.
Ако искаш да се държи като влаковете, т.е. едно цъкане на плюса го задвижва, второ го ускорява, и т.н., мога да се пробвам с нов код. Ако искаш продължително натискане да ускорява все повече, и това може да се случи... Всичко това е на база само на този код, и логични заключения :D
Още една питанка по темата - отново преработвам готова програма и сменям параметри, докато ми хареса резултатът, но запецнах.
Тук моторът на завиването измерва максималният ъгъл от крайно ляво до крайно дясно положение на гумите:
#steering calibration sequence
steering.run_until_stalled(500)
steering.reset_angle(0)
steering.run_until_stalled(-500)
maxAngle = steering.angle()
steering.run_target(500, (maxAngle/2))
steering.reset_angle(0)
А тук - при натискане на бутон + или - на дистанционното, завива в определената посока с 1/2 от максималния ъгъл на завиване:
#commands to steer
if Button.RIGHT_PLUS in pressed:
steering.run_target(2000, (maxAngle/2), Stop.HOLD,False)
elif Button.RIGHT_MINUS in pressed:
steering.run_target(2000, -(maxAngle/2), Stop.HOLD,False)
else:
steering.run_target(2000, 0, Stop.HOLD, False)
Питането ми е има ли начин да му "кажа" да завива с по 10 градуса по-малко от половината от максималния ъгъл в посока? Тоест - условно ъгълът от най-ляво до най-дясно, ако е 180 градуса (да речем, че толкова го е измерил), да завива не с по 90 градуса в посока, а с 80 градуса.
Пробвах с различни комбинации на скоби, знак "-" и числото 10, но програмата никак не ме "разбра". Не знам какъв е словоредът на нейния език... 8)
Пробвах и да разделя максималния ъгъл (maxAngle/2) на 2 и нещо, но дори и това не помогна - Нито "." приема за десетична запетая, нито ","-та сработва.
Това е жестоко!!!
https://www.youtube.com/watch?v=fxInp9cutNg&ab_channel=RacingBrick (http://www.youtube.com/watch?v=fxInp9cutNg&ab_channel=RacingBrick)
Някой може ли да предложи какъв джойстик би бил оптимален, ако има геймари наоколо...? :)
Ако правилно се ориентирам, нещо подобно май трябва да върши работа - Връзка (https://www.emag.bg/kontroler-wireless-microsoft-xbox-series-x-s-electric-volt-qau-00022/pd/D8R0TNMBM/?ref=fam#%D0%A1%D0%B2%D0%B5%D1%82%D0%BB%D0%BE%D0%B7%D0%B5%D0%BB%D0%B5%D0%BD).
Моля за мнение и препоръки за избора на безжичен джойстик за XBox.
Pybrciks-a e яко.
Слагал съм го на влаков хъб със сензор за цветове в долната част на влака ;)
Цитат на: mamun - 16, Февруари, 2024, 07:31:16 PM
Pybrciks-a e яко.
Слагал съм го на влаков хъб със сензор за цветове в долната част на влака ;)
Да, удобна опция за някоя влакова диорама. Duplo Train имат вграден сензор за цвят в базата и изпълняват 5 основни функции, като минат над съответния цвят. Имаме си вкъщи 10874 (https://brickset.com/sets/10874-1/Steam-Train) и сме посъбрали цветни тайлове. :)
Цитат на: vladoniki - 16, Февруари, 2024, 07:52:30 PM
Да, удобна опция за някоя влакова диорама. Duplo Train имат вграден сензор за цвят в базата и изпълняват 5 основни функции, като минат над съответния цвят. Имаме си вкъщи 10874 (https://brickset.com/sets/10874-1/Steam-Train) и сме посъбрали цветни тайлове. :)
Tочно от там взех идеята. като стигне бял тайл на релсата да обърне посоката ;)
Освен, че работи с хъба, контролът е пропорционален и за завиването и за движението... Уникален ъпдейт за всякакви модели! :)
(https://bricksafe.com/files/vladoniki/mocs/1.jpg/800x794.jpg)
Видео в действие.
http://youtube.com/shorts/BEBn4BD_G9k?feature=share (https://youtube.com/shorts/BEBn4BD_G9k?si=XbMoXs6gnR7vKGmE)
Управляваш Лего модела, блъскаш го в стената или моторите се натоварват от някое изкачване и контролерът вибрира в ръцете ти... Жестока нова опция за Force Feedback с XBOX контролер и PyBricks. Тествах го на катерача и работи отлично.
https://www.youtube.com/watch?v=ERWPdf0GllM&ab_channel=Pybricks (https://www.youtube.com/watch?v=ERWPdf0GllM&ab_channel=Pybricks)
Видео от събитието за Pybricks:
https://www.youtube.com/watch?v=EuoL1ghdmu8 (https://www.youtube.com/watch?v=EuoL1ghdmu8)
Повече информация може да се намери на Как да програмираме Lego модели с Pybricks (https://brickhunters.club/2024/08/07/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bc%d0%b5-lego-%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d0%b8-%d1%81-pybricks/)
Цитат на: gibona - 29, Август, 2024, 11:44:09 PM
Видео от събитието за Pybricks:
https://www.youtube.com/watch?v=EuoL1ghdmu8 (https://www.youtube.com/watch?v=EuoL1ghdmu8)
Повече информация може да се намери на Как да програмираме Lego модели с Pybricks (https://brickhunters.club/2024/08/07/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bc%d0%b5-lego-%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d0%b8-%d1%81-pybricks/)
Браво! Много интересно! :)
Аз съм нетърпелив кога PYBricks ще хванат цаката на навия хъб от 42176 Porsche GT4 e-Performance Race Car. Появиха се някакви видеа как се контролира сетът с XBox контролер, но системата е доста сложна и нямам идея как да го подкарам...
Хъбът и компактен и освен колички, мисля, че може да се измисли нещо верижно.
Освен това ми се върти в главата някоя бърза количка, която, поне леко, да дрифтва в завой. Но за целта трябва да не работи жироскопът, който е в хъба. А това без PYBricks, едва ли е възможно. :)
Работят по тази задача. Може да следиш напредъка тук: New LEGO Hub support - 42176 Porsche GT4 e-Performance (https://github.com/orgs/pybricks/discussions/1733)
Относно дрифта - може и без жироскоп - Drifting LEGO® 42096 Porsche 911 RSR (https://buwizz.com/drifting-lego-42096-porsche-911-rsr-with-buwizz/)
Трябва да имаш различни мотори на задните колела и да ги управляваш като танк (с различна скорост).
https://www.youtube.com/watch?v=K_sgGgjQQOw (https://www.youtube.com/watch?v=K_sgGgjQQOw)
Цитат на: vladoniki - 30, Август, 2024, 07:53:45 AM
Аз съм нетърпелив кога PYBricks ще хванат цаката на навия хъб от 42176 Porsche GT4 e-Performance Race Car.
Освен Размерите има ли някаква нова функционалност в него спрямо предишните PU хъбове ?
City hub - 1 бутон, 1 LED, 2 изхода
Technic hub - 1 бутон, 1 LED, 4 изхода
42176 hub - 1 бутон, 5 LED, 0 изхода, 3 мотора.
Цитат на: gibona - 30, Август, 2024, 01:57:01 PM
City hub - 1 бутон, 1 LED, 2 изхода
Technic hub - 1 бутон, 1 LED, 4 изхода
42176 hub - 1 бутон, 5 LED, 0 изхода, 3 мотора.
Тилт сензорът и жироскопът едно и също ли са? Май при 42176 това е в повече (не съм сигурен)?
Накратко - да: Does PrimeHub / InventorHub have a better IMU module than TechnicHub? (https://github.com/orgs/pybricks/discussions/1768)
Само BOOST Move hub е осакатен, другите са еднакви.