Work on my unofficial entry into the Picasso challenge has been continuing, even if a little slowly. After a great deal of messing around and redesigning I have finally managed to design and 3D print the two plastic holders for the stepper motors that I have decided to use for my HoloPiBot. Because of the all the practice of making parts for Project14 activities I am getting much better and quicker at creating them. Still lots more to learn yet, such as tolerances when parts have to fit together (not sure what that is called). At the moment I design the plastic part to be the same size as the actual part and them jam them together. You can get some tight fits this way!

 

I did have to make some adjustments to the support frame provided with the video display for the HoloPiBot as the HDMI connect on it was proud by about 1 mm above the back sheet of acrylic. I solved this by adding a nut after the front two sheets which hold the actual display and the last two sheets which flattened off the back and provide support for the Raspberry Pi case. It does mean the whole case is a bit more flexible but hopefully it will be OK once everything is assembled.

 

In order to ensure that the holes for the plastic step motor holders were in the correct places I decided to drill through the holes in the plastic step motor holders and into the back two sheets. This worked fine for the first hole but then regrettably snapped a thin piece of acrylic when I was doing the second hole. Fortunately when all the screws were inserted it all held together, but when I've finished drilling all the holes for the remaining step motor holders I might go back and glue it all together. It would then be more rigid as well.

 

    

 

I have also encountered a problem with the wheels I decided to use. I couldn't find any thin large ones which are best for holonomic motion so I decided to use some fairly standard larger and wide yellow ones (mainly because I had two already). It looked as if they would fit nicely onto the shafts of the step motors but in reality the hole in the wheel shaft is 0.5 mm larger than the shaft on the step motor. The step motor shaft is a 5 mm diameter with flats cut into each side which are 3.0 mm apart. Disappointingly the hole in the wheel is for a 5.5 mm diameter shaft with flats that are 3.5 mm apart so the wheel is all floppy if just pushed on. I decided a quick bodge was the order of the day and stuck a small piece of black insulation tape onto the motor shaft. This increases the shaft diameter by the required 0.5 mm and creates a tight fit. If I take the wheel off I do have to replace the insulation tape but I do not intend to do that very often.

 

I have also now ordered a Raspberry Pi 3B+ as well as a Pi Camera V2 plus some more step motors and some more wheels. When all these parts come I should then be able to create a complete working HoloPiBot - well, apart from the software for the Raspberry Pi.

 

I do have some concerns about the available space underneath the display. Now that I am able to see how much space the wheels and step motors take which is more room that I had anticipated, I'm not sure if there will be enough room for the Raspberry Pi and a chunky battery power pack. I'll have to see.

 

At the moment I am writing the software to test out the operation of the step motors using Arduino Nano. It's just quicker. I can grapple with Python or something else when the hardware is finished and the Raspberry Pi is installed. Anyway, the essence of my step motor test programme is listed below. It just drives one step motor continuously forward at a suitably slow speed, while the other step motor just turns left and right, also at a slow speed. You can just about see all this happening in the video above. With only one motor unit completed you cannot really see the holonomic motion part yet. Hopefully when I have printed out more step motor holders I might be able to create something a bit more complete.

 

 

void loop()

{

int count;

count = 0;
while(1)
  {
    forwardstep();
    if (count < 50)
      {
        leftturnstep();
      }
    else
      {
        rightturnstep();
      } /* if */
    count++;
    if (count > 100)
      count = 0;
    } /* while */
} /* loop */

 

Dubbie