Line Follower simples

Para os mais especializados em mecânica e electrónica em LEGO.
Responder
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4488
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Line Follower simples

Mensagem por CyberX »

Imagem

Isto nasceu há 2 anos para ser um "saco de porrada" para o sumo robot do AVCampos e ficou esquecido numa caixa desde então.
Decidi dar-lhe um propósito mais condigno com uma modificação ultra-rápida, sem quaisquer modificações no hardware apenas adaptando muito ligeiramente o código para "line follower" que há 4 anos usei para ensaiar uma versão muito muito inicial do Pybricks no Robot Inventor hub

https://github.com/orgs/pybricks/discussions/149

o facto de praticamente não ter de alterar o código (e o que alterei foi essencialmente por ter mudado de hub, de RI para Technic) mostra o quão fiável é usar uma plataforma de desenvolvimento sólida e fiável como o Pybricks. Se estivesse a usar uma App da LEGO, passados 4 anos, tinha de reinstalar a App, chafurdar no file system do telemóvel antigo para extrair o programa antigo e introduzi-lo no novo para depois descobrir serem versões incompatíveis - sim, é uma crítica à LEGO.

o código:

Código: Selecionar todos

from pybricks.hubs import TechnicHub
from pybricks.parameters import Port, Color, Direction, Button
from pybricks.pupdevices import Motor, ColorDistanceSensor
from pybricks.tools import wait

hub = TechnicHub()
mL = Motor(Port.A, Direction.COUNTERCLOCKWISE)
mR = Motor(Port.B)
s = ColorDistanceSensor(Port.D)

SPEED = 50
TIME = 1
THRESHOLD = 10
KP = 2.5

hub.system.set_stop_button(None)
while not Button.CENTER in hub.buttons.pressed():
    pass

while True:
    v = s.reflection()
    print(v)
    steering = (v - THRESHOLD) * KP
    mR.dc(SPEED + steering)
    mL.dc(SPEED - steering)
a variável THRESHOLD foi ajustada aqui no pavilhão dos Leões de Porto Salvo, tive de a baixar bastante para o robot "apanhar" a linha do tapete de papel do NXT

a variável SPEED também foi reduzida substancialmente para evitar uma versão fast and furious e permitir a coexistência com outros line followers (mas provavelmente ainda terei de a diminuir mais)

Video fresquinho:
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4488
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: Line Follower simples

Mensagem por CyberX »

Não há fome de line followers que não dê em fartura

Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4488
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: Line Follower simples

Mensagem por CyberX »

Actualizo este tópico para reportar que aquele tapetezinho em papel com o percurso estampado, vindo do NXT 2.0, continua a ser imprescindivel para o sucesso destes amiguinhos:
- desdobra-se
- coloca-se o line follower sobre a linha, de preferência na parte recta
- liga-se, aguarda-se que estabilize e larga-se

E ali fica horas a fio, só torcendo o papel a cada volta (tenho de me lembrar de trazer UHU stick para fixar o papel)

Já comprei +2 para ter de reserva.

O papel mede 88.5x62.5 cm2 e é uma genuína "peça" LEGO :D
Os line followers têm tamanhos diversos. O mais alto talvez tenha 18 a 20 L quando em pé.
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
AVCampos
Sócio
Sócio
Mensagens: 13785
Registado: 27 fev 2007, 19:26
Localização: Barreiro
Contacto:

Re: Line Follower simples

Mensagem por AVCampos »

Acho que as únicas coisas que faltam aos "Segways" são uma plataforma para segurar o bicho na vertical quando o programa é inicializado, e uma rotina de calibração inicial para poder lidar com diferentes valores de claro e escuro (pelo que me apercebi eles consideravam o cinzento das baseplates como "escuro")... não é assim tão complicado, pelo que me lembro até o meu CatBot, que é baseado em RCX, tem isso. >:D
CyberX Escreveu: Hoje, 16:00 O papel mede 88.5x62.5 cm2 e é uma genuína "peça" LEGO :D
CRÉDITOS CRÉDITOS CRÉDITOS 🤑🤑🤑🤑🤑
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4488
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: Line Follower simples

Mensagem por CyberX »

a plataforma é uma ideia interessante; teria de ser comprida porque em geral o robot demora um pouco a convergir... mas parece-me simples de atingir

a rotina de calibração... é pá... faz-me comichão isto não ser plug 'n play; pq raio é que funciona SEMPRE com o papel, independentemente da luz do pavilhão ou de minha casa, e tenho de calibrar para as baseplates? é por serem brilhantes em vez de baças?
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
AVCampos
Sócio
Sócio
Mensagens: 13785
Registado: 27 fev 2007, 19:26
Localização: Barreiro
Contacto:

Re: Line Follower simples

Mensagem por AVCampos »

Se fossem brilhantes, o robot interpretá-las-ia como "claro", mas o que vi é que ele tendia a seguir o limite entre o papel (indiscutivelmente "claro") e as baseplates, o que me leva a suspeitar que as interprete como "escuro". Se não queres mesmo fazer uma rotina de calibração, talvez remedeie deslocar o limiar claro/escuro hardcoded mais para o lado do escuro?
Responder