Skip to content

woolfel/ev3dev-lang-java

 
 

ev3dev-lang-java

EV3Dev-lang-Java is a Java project designed to build Software for Robots with EV3Dev hardware & the LeJOS way.

License: MIT Travis CI

ScreenShot

What is the latest EV3Dev version supported?

The libraries was tested with the latest stable EV3Dev release: Debian Jessie

  • Note: In the next release, we will include support for Debian Stretch

What is the hardware platforms supported in this project?

This Debian distro run nice with the following platforms:

If you need further information about stable EV3Dev images, click here

Introduction

In Lego Mindstorms ecosystem, the default solution to develop Java software for Lego Mindstorms is LeJOS. But now exists one alternative, EV3Dev-lang-java a Java project running on the top of EV3Dev.

Lego Mindstorms ecosystem is a nice educational way to learn Java programming in general and Robotics in particular. Now, it is possible to install a complete Linux distro in the third generation of the product and others companies like Mindsensors & Dexter Industries has released products which interact with Sensors & Actuators from Lego ecosystem and that boards can use the Power of the popular board Raspberry Pi 3

But, with the help of EV3Dev, it is possible to have the same Linux experience for multiple boards. So... why not develop a Java library for that Linux Distro? The answer is EV3Dev-lang-java. The project, takes the good things of both worlds: EV3Dev with the complete linux experience and LeJOS with the rich local navigation stack.

What projects are developed in EV3Dev-lang-java?

The following list contains the stables projects that it is possible to use without any restriction:

Incubator projects:

  • OpenJDK for EV3: A custom OpenJDK JRE build for EV3
  • Usb Devices: A library to use Arduino, Grove Sensors, GPS, IMU, LIDAR, and more devices...
  • ROS: A library to publish Sensor data to ROS for SLAM purposes

Advantages of the usage of this project?

Using this library you can develop educational robots with Java for multiple Bricks:

  • EV3 Brick
  • BrickPi+
  • BrickPi 3
  • PiStorms

Using the same objects, it is possible to deploy the software for robots on EV3 Brick, Raspberry Pi 3 with BrickPi 3 & PiStorms.

If you analyze the hardware, any EV3 Brick uses a SoC: Sitara Processor AM1808 (from year 2010) to manage Sensors & Actuators but now with the usage of a BrickPi/PiStorms unit, it is possible to use the power of a Raspberry Pi 3 increasing the possibilities to develop complex projects which require por Computational consumption.

2010 Chip included on EV3 Brick:

SoC: Sitara Processor AM1808
CPU: ARM9 300MHz
RAM: 16KB of Instruction Cache, 16KB of Data Cache ,8KB of RAM (Vector Table), 64KB of ROM

2018 Chip included on Raspberry Pi 3 Model B+:

SoC: Broadcom BCM2837 RISC de 64 bits
CPU: 4× ARM Cortex-A53, 1.4GHz
RAM: 1GB LPDDR2 (900 MHz)

Features included in the whole project

Java features

  • Automatic installation of Oracle Java JDK 8 for Brickpi+/PiStorms + Raspberry Pi 3
  • Partial installation of Oracle Java JRE 8 for EV3 Brick
  • OpenJDK Java 9 EA support for Brickpi+/PiStorms + Raspberry Pi 3
  • Java profiling tools Support (Oracle mission control & JConsole)
  • Logging support based on SLF4J
  • Centralized logs with Kibana

Platform features

  • Support for EV3 Brick, PiStorms v1/v2, BrickPi+ & BrickPi 3

Lego Mindstorms features

  • Regulated Motor Support
  • Unregulated Motor Support
  • Sensor Support (EV3 sensors)
  • Sounds Support
  • EV3 LCD Support

Robotics

Roadmap

Review the backlog to follow the features in course: https://github.com/ev3dev-lang-java/ev3dev-lang-java/issues

Getting Started

Take a look the documentation to use the project:

http://ev3dev-lang-java.github.io/docs/support/index.html

Examples

Take a look the following repository to learn how to use this project:

https://github.com/ev3dev-lang-java/examples

It is very easy to copy one example and use inside of the project template:

https://github.com/ev3dev-lang-java/template_project_gradle

Videos

Unit testing

Exist many examples used to test the project. In the future we will automate a good % of the tests using JUnit testing and Mocks but at the moment, many features are tested manually.

UML Design

ScreenShot

References:

About

A project to learn Java and create software for Mindstorms Robots using EV3Dev & the LeJOS way.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%