In order to add wheel odometry I made additions hardware, electronics and software. For the hardware I needed to add a wheel encoder disk to the motor axles. This was 3D printed. As for the electronics, in order to pickup interruptions of that encoder disk, I needed to position a light barrier such that it doesn't jam the moving parts. For the software I had to get that PCF8583 I2C realtime clock chip to work as an impulse counter.
In order to accomodate for the Lidar, for which the SLAM algorithms in turn require wheel odometry data and the ESP32-CAM in order to provide a video stream, I had to rework much of the robot from 2018. I repositioned the electronics, swapped the main controller and rewired components to commincate via I2C making the robot more easily extensible.
For quite some time I've wanted to purchase a 360 lidar for one of my robots. They give the robot the ability to measure distances of obstacles surrounding it. 360 lidars are commonly used on robotic vacuums, but have been available for hobbyists for some time. I just couldn't justify the price for hobbyist projects. Recently the 'YouYeeToo' / 'WayPonDev' / 'LDRobot' 'FHL-LD20' or 'D200 Lidar Kit' came to by attention. It costs only 48 Eur. Let's see, if I can get it to work. If the signal is clean enough we can try Simultaneous Localization and Mapping.
CNC (=computerized numerical control) milling is the process of removing material by using a rotary cutter that is positioned by a computer. I have been constructing my own CNC milling machines and after many attemps with various levels of success, I switched to a commercial mechanics kit that I then modified for my purposes.
The DirtDevil Spider M607 is a cheap entry-level vacuum robot. It does not feature optical mapping, but rather randomly moves around until it hits an obstacle and then turns to avoid it. This works reasonably well, but I purchased the robot in order to modify it.
The DigiStump DigiSpark is an excellent microcontroller development board. The price of only 1-2 Euro is so low you can drop it in your designs and leave it there. […] This Guide will show you how to setup the Arduino IDE, configure it for use with the DigiSpark Board, set up the drivers, connect it and compile and program the „Echo“ Example, which enables sending data to and from the DigiSpark via USB using either Python or C++.