a Versatile robotic platform for various tasks.

Similar projects worth following
// ------------------------- I N T R O
I present you TE-01. This is a project i'm building for over a month now.
My goal is to build a robust and small robotic platform with 2 major components: An arduino for the IO and a raspberry as the brain.
// ------------------------- T A S K S
- Exploration,
- House or garden mapping,
- Grapping/using things,
- Use tools like a spray (for killing paper wasp nest in my garden).
// ------------------------- F U N C
The robot is :
- Remote controled form a HTTP browser,
- Designed in 3D and printed in PLA / FlexPLA,
- Have many sensor : GPS, Gyro 9DOF, Lidar, Temperature, IR/Sonic),
- Have 2 cameras :
- IR cam for night vision and remote control,
- 720p cam for computer vision,
- Have a robotic arm with 1 hand for using tools.

coming soon.

Thank you

  • 1 × Arduino Mega 2560 Adruino controler
  • 1 × Rapsberry Pi3B 1Gb or RPi 4B Small Board Computer
  • 1 × Pcb prototype Empty pcb for prototyping or a breadboaed
  • 50 × a lot of wire
  • 1 × breadboard only for prototype. Wll be a PCB.

View all 11 components

  • 11.10.2019 - rebuild power system, disigning new shape

    nj13372 days ago 0 comments

    i'm continuing to remodel the whole thing in 3D and print it. 

    Tinkercad is really easy to use, and you can get pretty fast results.

    I have rebuilded the power system. my ina219 was not well connected and i2c informations was wrong. i've made a "shunt" near the battery, so i can calculate the percent left. 

    I'm using 2x18650 samsung 25R. With a given temperature, volatge, and Ah its easy to calculate the percent left in real time :

    Now i can get this information directly into the HTTP remote console : 

    Next step is to build the communication bus. I'm thing about i2c, but CAN bus seems to be cool too. i've not decided yet. 

  • 05.10.2019 - Majors changes on hardware

    nj133710/05/2019 at 16:56 0 comments

    Hi !

    While i'm coding the software part, i'm doing majors changes on the hardware part and on the 3D design. 

    The thing is too small. the size is actually 28 x 35 cm, i'm planning a bigger size. 45 x60 cm at least. 

    Today, i've redsigned the wheels. I've changed the design and the size. They are now 100mm from 65mm.

    Second big change, i'm not using DC motors anymore. They are not precise and slow speed is too hard to control. So i buyed some Nema17 (5 in total), and i'm planning to use theme with a4498 driver. 

    I Will use 4 battery 18650 (from 2) @ 2500mah for powering the 4 engines. battery can take 35A in a burst, i hope they can sustain the 4 Nema 17.

    If someone have experienced this, lets me know =)

    For the software part,  as you know, i'm using ubuntu on a RPi3. i've installed and apache2 and i will use python and JS as front languages for the remote control. The goal is to get something reactive with manuals controls. i'm thinking about using webSocket (local)with a Serial betwin Arduino Mega & Rpi. 

    Thank you for following my garage project =)

  • 03.10.2019 - installating OpenCV on RPI3B with ubuntu

    nj133710/02/2019 at 23:25 0 comments

    today i was checking some website for computer vision. And i think i will use an intel D415 or D435 cam depth camera. But it's not supported in raspbian. So i decided to install ubuntu on my Raspberry Pi 3. 

    Here is how to to do this.

    First, grab the archive from ubuntu, then write it to your SD car. I'm using rufus for this operation.

    When done, put your SDcard in the RPi3 and boot. Make the first configuration ... keyboard, location ... 

    Once this done, install SSHd : 

    apt remove openssh-server
    apt install openssh-server
    systemctl disable sshguard
    systemctl enable openssh-server

    Go to your main computer and connect with SSH, then purge some useless packages

    sudo su
    apt-get remove --purge libreoffice*
    apt-get clean
    apt-get autoremove

    Update the OS : 

    sudo apt update && sudo apt upgrade -y

    sudo apt update && sudo apt upgrade -y

    I'm the current version (beta), there is a bug with the firmeware, you need to force it

    sudo dpkg -i --force-all /var/cache/apt/archives/linux-firmware-raspi2_1.20190215-0ubuntu0.18.04.1_armhf.deb

    I need screen, cause i'm working with SSH and i dont want to loose my session : 

    apt install screen

     Then install RDP, so you can connect from windows easly : 

    sudo apt install xrdp
    sudo systemctl enable xrdp

    Now we can start OpenCV 4.X installation :

    First, make the swap bigger : 

    swapoff /swapfile
    rm  /swapfile
    dd if=/dev/zero of=/swapfile bs=1M count=2048
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile

    Then, install some needed packages :  

    apt install build-essential cmake git pkg-config libgtk-3-dev "libcanberra-gtk*"
    apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
    apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev opencl-headers
    apt install python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev

     Go back to your user and download openCV with git : 

    mkdir ~/opencv_build && cd ~/opencv_build
    git clone
    git clone
    mkdir -p ~/opencv_build/opencv/build && cd ~/opencv_build/opencv/build

    screen a new session : 


     hit space

    then cmake the thing : 

        -D CMAKE_INSTALL_PREFIX=/usr/local \
        -D ENABLE_NEON=ON \
        -D ENABLE_VFPV3=ON \
        -D BUILD_TESTS=OFF \
        -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \

    then compile the monster : 

    make -j4

    if make stop or hang, just restart it without the -j4 

    Make a coffee, grab a good netflix film, and stay relax for 2/3 hours.

    Once done, install the compiled thing :

    sudo make install


    Check if it's working :

    for C++ : 

    pkg-config --modversion opencv4

    For python : 

    python3 -c "import cv2; print(cv2.__version__)"

    lets get back to previous swap file : 

     sudo su
    swapoff /swapfile
    rm  /swapfile
    dd if=/dev/zero of=/swapfile bs=1M count=1024
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile

    Have fun =)

  • 29.09.2019 - battery case & ESP32

    nj133709/29/2019 at 12:36 0 comments

    My print is finished. So i soldered the metals part for the 18650 battery and inserted the on/off button. I'm always amazed by 3D printing technology that bring virtual things into real life : 

    Everything work perfectly =)

    Today, i will try to use a ina219 to get the battery percentage, current V and A.

    Yesterday, i tested the ESP32 in replacement of the arduino uno. I'm thinking about using it with long range wifi as AP. RPi will have 2 wifi network, one for the ESP32 to communicate via sockets, and on from a wifi dongle to remote SSH and devel operation. From my previous tests i was not convinced by the i2c bus to operate the remote control. webSockect will be more fast and reliable and can easily debugged.

    Ha..  and i printed the second track in FLEX PLA. That's great. no more noise when running and more grip.

    The poject is going on on the RPi3B too. I finished the setup on a samsung 256Go card with : 

    - Raspbian Lite,

    - Pyhton3 with PIP,

    - OpenCV 4.1.2 compiled from source,

    - and

    I backed up the whole thing with Win32DiskImager, so i can test a lot of thing now with no fear of beaking something.

    Thank you for reading and following my small garage project =) 

  • 27.09.2019 - powering up

    nj133709/27/2019 at 14:02 0 comments

    Today, i made changed some piece in the base 3D model. I make some sort of integrated holder for the 18650 battery. 

    The thing is printing ... got to wait 8h..

    I printed new track in FLEX PLA. they are a lot better than in normal PLA : 

    i made a PCB for the power distribution between the motor driver and the raspberry (i hooked up some microUSB) : 

    i soldered a power button.

    Thank you for reading =)

  • 25.09.2019 - Remote console

    nj133709/24/2019 at 21:26 0 comments

    Today, i got some time. So i worked with Flask and Python3 to build a small console to interact with the is a small program to interact with the i2c bus and sending order to arduino. 

    i decided to communicate only with code number with arduino. The thing is pretty simple : 

    Now i got to find some way to add a virual joystick or somehting like that.

  • 23.09.2019 - replacing driver motor l298n

    nj133709/23/2019 at 20:09 0 comments

    Today i have replaced the l298n driver motor with a DRV8833.

    My base is using 4 x DC 3-6V motor and the chip has only 4 pinout. I made some "Y" dupont cable for the "H" bridge, and after some tests, it's working. so the like the l298n, the DRV8833 can handle 4 motors. 

    Here is my test code for the arduino in C++: 

    #include <Arduino.h>
    // Serial Debug
    const unsigned long BAUD_RATE=115200;
    #define pinINA1 6 // Moteur A, entrée 1 - Commande en PWM possible
    #define pinINA2 7 // Moteur A, entrée 2 - Commande en PWM possible
    #define pinINA3 8 // Moteur B, entrée 1 - Commande en PWM possible
    #define pinINA4 9 // Moteur B, entrée 2 - Commande en PWM possible
    void setup(){
      Serial.println("Test DRV8833");
      // Initialize les broches de commandes DRV8833
      // du moteur A
      pinMode( pinINA1, OUTPUT );
      pinMode( pinINA1, OUTPUT );
      digitalWrite( pinINA1, 1 );
      digitalWrite( pinINA2, 1 ); 
      // du moteur B
      pinMode( pinINA3, OUTPUT );
      pinMode( pinINA4, OUTPUT );
      digitalWrite( pinINA3, 1 );
      digitalWrite( pinINA4, 1 ); 
    void loop(){
      // --- Moteur A: Controle pleine puissance -------------------
      // Marche avant
      Serial.println("Marche avant");
      digitalWrite( pinINA1, HIGH );
      digitalWrite( pinINA2, LOW  );
      digitalWrite( pinINA3, HIGH );
      digitalWrite( pinINA4, LOW  );
      delay( 3000 );
      // Arret par frein (voir documentation)
      digitalWrite( pinINA1, LOW );
      digitalWrite( pinINA2, LOW );
      digitalWrite( pinINA3, LOW );
      digitalWrite( pinINA4, LOW );
      delay( 2000 );

    Before PWM on motor was not working (changing the speed of the motors). Now i can change the speed of the motors and they make less sounds noise. 

    I'm using toys motors for testing the thing. i plan to replace them soon.

    Here is some part of the project, unmounted : 

    Thank you for reading me and have a good day.

  • 23 09 2018. Testing drivers motors, replacing DC-DC converter

    nj133709/22/2019 at 22:42 0 comments

    Today i have tested a motor drivers RDV8833 buyed from some chinese store online.  There was an error in the documentation: EEP pin have to be connected to 5v ( This took me 1h hour to find, but i'm pretty happy cause my little N20 motors are working (for another project).

    I'm thinking about replace the inefficient l298n.  but damn, this thing is so small... i waisted 20 min to solder pins .. :=)

    i've already replaced the  LM2596 DC-DC convertor with a smaller one. : 

  • i2c communication done

    nj133709/20/2019 at 13:34 0 comments


    Engine work well, arduino is doing is job as always.

    Today, i've been able to finish the i2c communication between arduino and raspberry. 

    Tomorrow i think a wil work on the remote console. i can send messages from rpi to arduino. this the base of what comming next.

View all 9 project logs

  • 1
    Nothing yet

    Wait for the base =)

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates