ev3dev-c 2.0a1.dev1 2019-01-27 kernel 4.14.80-ev3dev-2.3.1-ev3
WHAT IS IT?
ev3dev-c is a C library for LEGO MINDSTORMS EV3 Debian Linux which wraps access to the EV3 hardware.
The library also supports remote access to the EV3 brick over a network. So, if you configure WLAN on the brick, you can control the EV3 hardware from a remote computer, for example, running under Windows.
Before you start, make sure that you have opened an SSH connection to your EV3 brick.
You need to install the compiler and other tools:
sudo apt-get update sudo apt-get install build-essential sudo apt-get install git
Then, clone the library repository and its submodules to the directory of your choice, such as "/home/robot/ev3dev-c":
cd /home/robot/ git clone https://github.com/in4lio/ev3dev-c.git cd ev3dev-c/ git submodule update --init --recursive
Compile and install static and shared libraries:
cd source/ev3/ make sudo make install make shared sudo make shared-install
It's the right time to take a look at a small example. "hello.c" outputs a greeting as well as toggles the left LED color:
cd ../../eg/hello/ more ./hello.c
Let's compile and run this program. Note that we link our example with a static library:
gcc hello.c -lev3dev-c -o hello ./hello
See also – "Getting Started with C"
PYTHON, RUBY and PERL
Use pip to install ev3dev-c Python package:
pip install ev3dev-c
ev3dev-c Python package contains the following binary modules:
- "_ev3.pyd" – for remote control from Windows (x86)
- "_ev3.so" – for LEGO MINDSTORMS EV3 Debian
You have to install "python-dev", "ruby-dev" and "libperl-dev" packages to build the corresponding libraries.
What are unusual ".yu", ".yu-с" and ".yu-h" files for?
ev3dev-c is written using yupp lexical preprocessor – but don't panic – the generated source files in C also included.
You have to take into account that, by default, the preprocessing stage
is skipping when compilation is performed on the brick or using Docker.
SKIP_PP = 0 in the makefile to allow preprocessing anywhere.
How can I see some examples
|drive.c||Comprehensive example based on coroutines|
|remote.c||IR remote control using "brick" simplified library|
|remote.py||Use of "brick" library in Python|
|port.c||Use of EV3 ports|
|sensor.c||TOUCH and COLOR sensors example|
|tacho.c||TACHO motor running for 5 sec|
|dc.c||Use of a DC motor|
|servo.c||SERVO motor example|
|light.c||LEDs blinking example|
|rcx_led.c||Use of a RCX LED|
How to make an example
For instance, to compile "light.c" example:
cd ev3dev-c/eg/light/ make ./Debug/light
or, if you are running Windows:
How to control the EV3 hardware remotely
How to use Docker for Cross-Compilation
How to make and install STATIC library
cd ev3dev-c/source/ev3/ make sudo make install
How to make and install SHARED library
cd ev3dev-c/source/ev3/ make shared sudo make shared-install
How to use SHARED library
cd ev3dev-c/eg/port/ gcc port.c -lev3dev-c -o port ./port
Run the following on your command-line to clone the library repository and its submodules:
git clone https://github.com/in4lio/ev3dev-c.git cd ev3dev-c/ git submodule update --init --recursive
Pull the latest library and its submodules:
cd ev3dev-c/ git pull origin master git submodule foreach git pull origin master
Please feel free to contact me at email@example.com if you have any questions about this library.
Please see the file called "LICENSE".