[MINDSTORMS] LEGO barcode scanner
Re: [MINDSTORMS] LEGO barcode scanner
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.
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.
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
«De génio, criança e louco... porquê só 1 pouco?»
Re: [MINDSTORMS] LEGO barcode scanner
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!
- Conchas
- Direcção
- Mensagens: 15878
- Registado: 26 jan 2007, 15:20
- Localização: Feijó (Almada)
- Contacto:
Re: [MINDSTORMS] LEGO barcode scanner
Não deve ser do tempo do @CyberX !
FCorreia
#EUusoOmeuLUGBULKnosEVENTOSdaPLUG
We are working to build a better
LEGO Fan, a lifelong experience - Play Well (Leg Godt)
#EUusoOmeuLUGBULKnosEVENTOSdaPLUG
We are working to build a better
LEGO Fan, a lifelong experience - Play Well (Leg Godt)
Re: [MINDSTORMS] LEGO barcode scanner
Fake news. Nunca vi tal coisa donde se conclui que nunca ocorreu.
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
«De génio, criança e louco... porquê só 1 pouco?»
Re: [MINDSTORMS] LEGO barcode scanner
Muito fixe o barcode scanner
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
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
Guilherme Santos
www.historybricks.com
www.historybricks.com
Re: [MINDSTORMS] LEGO barcode scanner
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
- 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
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
«De génio, criança e louco... porquê só 1 pouco?»
Re: [MINDSTORMS] LEGO barcode scanner
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.
- 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.
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
«De génio, criança e louco... porquê só 1 pouco?»
Re: [MINDSTORMS] LEGO barcode scanner
Gosto muito do conceito disto! Bom trabalho!
Re: [MINDSTORMS] LEGO barcode scanner
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).
Re: [MINDSTORMS] LEGO barcode scanner
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!
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
«De génio, criança e louco... porquê só 1 pouco?»
Re: [MINDSTORMS] LEGO barcode scanner
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.