EV3Basic

Para os mais especializados em mecânica e electrónica em LEGO.
Responder
Avatar do Utilizador
AVCampos
Sócio
Sócio
Mensagens: 13812
Registado: 27 fev 2007, 19:26
Localização: Barreiro
Contacto:

EV3Basic

Mensagem por AVCampos »

Como odeio a programação gráfica (como a que vem com o EV3), e os ambientes de programação textuais para o EV3 são complicados de se começar (ev3dev), a pagantes (RobotC) ou aparentemente abandonados (BricxCC), eu andava um bocado descontente com a programação no EV3...

... até que li aqui sobre o EV3Basic, que me pareceu interessante.

[align=center][img height=540]http://www.legomindstormsrobots.com/wp- ... sic-01.jpg[/img][/align]

É uma extensão do Microsoft Small Basic, do qual também nunca tinha ouvido falar antes: é um ambiente de programação grátis e extremamente (talvez até um pouco demais) simplificado, que me faz lembrar em espírito o velhinho QBasic.

Ainda estou a explorar os seus meandros, mas parece interessante para se fazer umas coisitas sem andar às cabeçadas. :fixe:

Small Basic: http://smallbasic.com
EV3Basic: https://github.com/c0pperdragon/EV3Basic/releases
Guia de iniciação: http://www.legomindstormsrobots.com/leg ... amming-ev3
Avatar do Utilizador
Conchas
Direcção
Direcção
Mensagens: 16131
Registado: 26 jan 2007, 15:20
Localização: Feijó (Almada) / Sesimbra
Contacto:

Re: EV3Basic

Mensagem por Conchas »

Imagino que não suporte File Access, comunicação BT/WiFi, daisy chain, etc... !?
FCorreia

#EUusoOmeuLUGBULKnosEVENTOSdaPLUG

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

Sanjoanense :brincka: 2026, 3-5 de Outubro
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4558
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: EV3Basic

Mensagem por CyberX »

Fernando, acho que devias ver o Monibrick.

Permite correr aplicações .Net portanto podes usar o Visual Studio da Microsoft ou frameworks de desenvolvimento rapido como o Xamarin que geram código compatível.
Não refere daisy chain explicitamente mas permite comunicações com outros sistemas (uncluindo NXT e EV3), com alguma pesquisa na Google arranjas um mecanismo simples de message queing sobre .Net
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
AVCampos
Sócio
Sócio
Mensagens: 13812
Registado: 27 fev 2007, 19:26
Localização: Barreiro
Contacto:

Re: EV3Basic

Mensagem por AVCampos »

Pelo menos daisy chaining parece suportar, este é um dos exemplos que vêm com o bicho:

Código: Selecionar todos

Motor.Power("1A",50)
Motor.Power("1B",50)
Motor.Power("1C",50)
Motor.Power("1D",50)

While "True"
  LCD.StopUpdate()
  LCD.Clear()
  LCD.Text(1,0,2,1,  "Plug touch sensors to")
  LCD.Text(1,0,14,1, "the daisy chain bricks")
  LCD.Text(1,0,26,1, "to control the motors")
  
  For l=1 To 4
    For s=1 To 4
      m = l + Text.GetCharacter(64+s)
      P = Sensor.ReadPercent(s+(l-1)*4)
      x = s*40 - 30
      y = l*20 + 25      
      If P>50 Then
         LCD.FillRect(1,x,y, 30,18)
         LCD.Text(1,x+2,y+5, 1, P)
         Motor.Start(m)
      else
         LCD.Rect(1,x,y,30,18)    
         LCD.Text(1,x+10,y+5, 1, P)
         Motor.Stop(m,"true")
      Endif
    endfor
  endfor
  LCD.Update()
  
  Program.Delay(100)
EndWhile
Eu diria que os motores no 1º EV3 são referenciados por "1A" a "1D", no 2º por "2A" a "2D" e por aí fora, e os sensores por 1 a 4, 5 a 8, e por aí fora.

Quanto a acesso aos ficheiros e comunicação sem fios, não vi nenhum exemplo com isso.

À primeira vista o MonoBrick parece ter uma complexidade ao nível do ev3dev.
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4558
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Re: EV3Basic

Mensagem por CyberX »

Suporta sim. O manual detalha:
Motor

Control the Motors connected to the Brick.
At any function you need to specify one or more motor ports that should be affected (for example, "A", "BC", "ABD").
When additional bricks are daisy-chained to the master brick, address the correct port by adding the layer number to the specifier (for example, "3BC", "2A"). In this case only the motors of one brick can be accessed with a single command.

(...)
Sensor

Access sensors that are attached to the brick.
To specify the sensor use the port number which is printed below the socket on the brick (for example 1).
To access sensors of further bricks that are connected via daisy-chaining, use the next higher numbers instead (5 - 8 will access the sensors on the first daisy-chained brick, 9-12 the sensors on the next one and so on).
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Responder