[MINDSTORMS] LEGO barcode scanner

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

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por CyberX » 20 jan 2020, 12:01

o código já está funceminando... foi bem mais fácil do que pensava, uma lista para aqui, uma recursividade para ali e já tá.

Isto faz-me lembrar os malfadados pointers do Pascal e do C... cheira-me a memory leaks não tarda nada mas enfim, quem nunca viu um segfault que atire a primeira pedra.
«De génio, criança e louco... porquê só 1 pouco?»
Jorge Pereira - sócio 159
http://ofalcao.pt/
https://www.youtube.com/JorgePereira
http://www.brickshelf.com/cgi-bin/galle ... rgepereira

Avatar do Utilizador
AVCampos
Sócio
Sócio
Mensagens: 13275
Registado: 27 fev 2007, 19:26
Localização: Barreiro
Contacto:

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por AVCampos » 20 jan 2020, 13:42

Ora, não se lembram que era costume em todos os eventos estar a construir (e no fim a destruir) com bricks as paredes e balizas do campo de TechBall? Aqui faz-se o mesmo! ;D

Avatar do Utilizador
Conchas
Direcção
Direcção
Mensagens: 15535
Registado: 26 jan 2007, 15:20
Localização: Feijó (Almada)
Contacto:

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por Conchas » 20 jan 2020, 13:44

AVCampos Escreveu:
20 jan 2020, 13:42
Ora, não se lembram que era costume em todos os eventos estar a construir (e no fim a destruir) com bricks as paredes e balizas do campo de TechBall? Aqui faz-se o mesmo! ;D

Não deve ser do tempo do @CyberX ! ;D
FCorreia

#EUusoOmeuLUGBULKnosEVENTOSdaPLUG

We are working to build a better :plug:
LEGO Fan, a lifelong experience - Play Well (Leg Godt)

Oeiras :brincka: 2020    22-25.Fev

Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4003
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por CyberX » 20 jan 2020, 13:51

AVCampos Escreveu:
20 jan 2020, 13:42
Ora, não se lembram que era costume em todos os eventos estar a construir (e no fim a destruir) com bricks as paredes e balizas do campo de TechBall? Aqui faz-se o mesmo! ;D
Fake news. Nunca vi tal coisa donde se conclui que nunca ocorreu.
«De génio, criança e louco... porquê só 1 pouco?»
Jorge Pereira - sócio 159
http://ofalcao.pt/
https://www.youtube.com/JorgePereira
http://www.brickshelf.com/cgi-bin/galle ... rgepereira

Avatar do Utilizador
gads
Administrator
Administrator
Mensagens: 6110
Registado: 11 set 2006, 23:58
Localização: Oeiras

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por gads » 20 jan 2020, 20:48

Muito fixe o barcode scanner :clapping:
A ideia de dar isso aos putos para descobrirem a saída de um labirinto foi algo que me veio logo à cabeça também. Era uma experiência interactiva com o público que não exigiria muito mais do que já está feito ;D
Guilherme Santos
www.historybricks.com

Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4003
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por CyberX » 21 jan 2020, 12:15

Segunda versão do EV3 Code Pilot agora mais funcional:
- record and play de comandos
- operação relativamente simples e assistida por voz (por enquanto em inglês apenas)
- explicitamente prevista a remoção do scanner (o que permite, por exemplo, a utilização de um scanner apenas com 'n' robots num mesmo evento)



O hub USB não é necessário, eu é que gosto de complicar as coisas. Dispensado wi-fi, basta ligar o EV3 com o microSD do ev3dev lá dentro, navegar a estrutura de ficheiros até ao meu programa e mandar executá-lo, inserindo o scanner quando necessário e removendo-o quando desnecessário. Plug and play.

A próxima versão já deverá ter um conjunto de instruções ligeiramente mais rico (por exemplo a escolha de tempos de execução diferentes para cada passo ou notas musicais, à semelhança do Code Pilot original) e aceitam-se sugestões (esqueçam coisas como loops ou variáveis, não estou para desenvolver uma pseudo-linguagem de programação).

Agora o paleio técnico-maçónico do costume para parecer que percebo bué disto:
- cada código de barras é armazenado no programa python como um "dicionário", uma estrutura de dados que basicamente é um array que armazena o valor numérico do código de barras, uma palavra que contextualiza a função a executar (como "Forward") e a instrução em python que deve ser executada (no caso de "Forward" um comando da API ev3dev que comanda 2 motores em simultâneo)
- a cada código de barras lido é verificado se existe no dicionário e em caso afirmativo é adicionado o campo da intrução a uma lista (outra estrutura de dados)
- quando estamos satisfeitos retiramos o scanner e mandamos percorrer a lista de instruções, executando-as com uma função fantástica de python chamada "exec" e que permite executar código python dentro de python

Tudo isto sem ponteiros nem outras coisas que me horrorizavam em C/Pascal - as estruturas de dados em Python já incorporam tudo o que é necessário.

Como habitualmente todos os desenvolvimentos deste projecto incluindo código fonte, PDF's e sabe-se-lá mais o quê estarão disponíveis online free as in beer and free as in speech: https://ofalcao.pt/blog/series/barcode
«De génio, criança e louco... porquê só 1 pouco?»
Jorge Pereira - sócio 159
http://ofalcao.pt/
https://www.youtube.com/JorgePereira
http://www.brickshelf.com/cgi-bin/galle ... rgepereira

Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4003
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por CyberX » 21 jan 2020, 20:31

entretanto adicionei mais uns comandos:
- escolha do tempo que cada comando de movimento dura a executar (1, 2, 3, 4 ou 5 segundos ou um valor aleatório de entre estes 5)
- escolha da "velocidade" aplicada aos motores (20, 40, 60, 80 e 100%)

Com isto fiz uma nova folha de comandos mas fiz um erro - para poupar espaço coloquei 2 comandos por linha e o scanner tem dificuldades em distingui-los porque varre a folha toda de um lado ao outro, tenho de tapar um dos comandos com a mão. Terei de imprimir nova folha noutro formato.

Amanhã tentarei alguns sons pré-gravados e as notas músicais básicas de modo a ficar mais parecido com o Code Pilot original. Esse também tinha 2 comandos para ler um sensor de toque mas não estou a pensar implementar.
«De génio, criança e louco... porquê só 1 pouco?»
Jorge Pereira - sócio 159
http://ofalcao.pt/
https://www.youtube.com/JorgePereira
http://www.brickshelf.com/cgi-bin/galle ... rgepereira

Avatar do Utilizador
agadoijo
Sócio
Sócio
Mensagens: 1180
Registado: 06 mai 2013, 14:06
Localização: Oeiras

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por agadoijo » 22 jan 2020, 23:27

Gosto muito do conceito disto! Bom trabalho!
:clapping: :clapping: :clapping:

Avatar do Utilizador
AVCampos
Sócio
Sócio
Mensagens: 13275
Registado: 27 fev 2007, 19:26
Localização: Barreiro
Contacto:

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por AVCampos » 22 jan 2020, 23:35

Seria mais fácil de usar por crianças (e muito mais difícil de programar) dividir o campo em células, como um labirinto desenhado em papel quadriculado, e o robot mover-se-ia uma célula de cada vez e rodaria 90º (assumindo células quadradas).

Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4003
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por CyberX » 23 jan 2020, 00:05

AVCampos Escreveu:
22 jan 2020, 23:35
Seria mais fácil de usar por crianças (e muito mais difícil de programar) dividir o campo em células, como um labirinto desenhado em papel quadriculado, e o robot mover-se-ia uma célula de cada vez e rodaria 90º (assumindo células quadradas).
baseplates de 2 cores dispostas como num tabuleiro xadrez?
um sensor de cor a apontar para baixo para determinar a mudaça de quadricula, um giro para garantir que 90º são mesmo 90º...
fazivel mas acho que não tenho tempo para desenvolver isso até Oeiras. O código está aberto, se alguém quiser experimentar força!
«De génio, criança e louco... porquê só 1 pouco?»
Jorge Pereira - sócio 159
http://ofalcao.pt/
https://www.youtube.com/JorgePereira
http://www.brickshelf.com/cgi-bin/galle ... rgepereira

Avatar do Utilizador
AVCampos
Sócio
Sócio
Mensagens: 13275
Registado: 27 fev 2007, 19:26
Localização: Barreiro
Contacto:

Re: [MINDSTORMS] LEGO barcode scanner

Mensagem por AVCampos » 23 jan 2020, 00:18

CyberX Escreveu:
23 jan 2020, 00:05
um giro para garantir que 90º são mesmo 90º...
Com o tempo isso irá acumular erro, talvez fosse melhor dois sensores de cor lado a lado para, quando um detectasse a mudança de cor, o robot rodaria sobre si mesmo até o outro também detectar.

Responder