Shela the Robot Model C Page

Shela Project April 27, 2018


Shela Glamor shot prior to the addition of the arm

Hardware

Level One

Drive Section

Major parts

  • 2 / 5-inch diameter wheels

  • 2 / CNC Stepper Motor Nema 23 Bipolar 2.8A 269oz.in/1.9Nm CNC Mill Lathe Route
    2 / SainSmart CNC Micro-Stepping Stepper Motor Driver Name23 ST-M5045 2phase 4.5A 24-50V
    SainSmart 8-Channel Relay Module
    Arduino

    Description

    The motors are attached to the controllers. Controllers to Arduino. Arduino to Gateway Laptop.
    Motors controlled independently, steps per second, forward backward neutral and brake, through user software interface
    It has a top speed of a whopping one mile an hour.
    User interface visual basic
    Arduino/C
    Note: the motors are rated at 24 to 48 volts. I had it set for 24 volts. As the vehicle got bigger, the motors started to struggle. My power supply only puts out 30 volts, but it is enough to get it rolling again

    Level Two

    Power

    Pan/tilt forward camera

    Pan/tilt forward ultrasonic sensor.

    Power

    Power Supply
    PC power Supply
    2 / Mallofusa ® 2 DOF Pan and Tilt with Mg995 Servos Sensor Mount for Arduino Robot Set Car Plane DIY with Mallofusa Cable Tie
    Arduino
  • 1 usb cam
  • 1 ultrasonic sensor
  • Main power distribution power/surge strip
  • Description

    Pan tilts and ultrasonic sensor to Arduino.
    Arduino to Gateway Laptop. Pan tilt control through user software interface
    User interface visual basic
    Arduino/C
    Usb cam through Gateway Laptop/OS app

    Level Three

    Weapons

  • Machine gun
  • Laser sighting
  • Camera aiming
  • Machine gun fire by remote radio control Rear view usb cam Usb cam through Gateway Laptop/OS app

    Level Four

    NV55c Gateway Laptop slide out drawer


    Level Five

    Penthouse

    NV55c Gateway Laptop slide out drawer

    Vision System

    The original vision system was based on scanning a room with an ultrasonic sensor and creating a 3D space time SQL database. It was a good idea, but had several problems:
  • It was very slow
  • It was ok to keep the wee beasty from running into things, but not accurate enough to map a room

  • So I stepped up to the next least expensive option and got a Kinect v2 for windows 10.
    This introduced new problems of course. The gateway was not powerful enough to run the Kinect
  • It needed dedicated usb III controller
  • More memory
  • Specific gpu

  • I didn ' t have the money to buy a new BIG laptop. So I decided to go with the best I could afford for the vision and go with 2 PC ' s.

    The Kinect runs several data streams together and separately.

    I am using infrared, 3d, 1080p 2d color and a feed that identifies skeletal parts. 20 joints for 6 people.

    The 3d camera works from .5 to 8 meters in 1 millimeter increments and is programed in c#. The screen is broken up into 6 panels. Starting at the top left is the numerical representation of the database and program function buttons. Middle top is the real-time infrared and skeletal feed. The skeletal feed tracks 20 points for 6 people. The right top panel is a snapshot panel for the 3D camera. Lower left panel is the 1080p real-time feed. Lower right is the 3d camera real-time feed. The application maps the room from .5 to 8.5 meters in 1 millimeter slices and puts them in a database.

    Theory of Operation

    The two pc ' s that run the platform are connected to my wireless network and are operated remotely using Windows Remote Desktop connection The drive motors, cameras, ultrasonic sensor, the 2 pan tilts, 6 degree of freedom arm, and auxiliary stepper motor all run on the Gateway and are controlled through the GUI above. The interface was written in visual basic. The platform currently has 5 Arduinos, 4 of which run on the Gateway. The Arduinos are separated to facilitate testing and the electrical application type. For example, stepper motor applications and actuator applications get along well together, but don¡Çt get along with servo applications. It is also easier to make changes without affecting a lot of systems. You can also test parts of the system without firing up the whole shebang. That brings us to the two boxes in the upper left hand corner. When you fire up the program looks to see if there are Arduinos plugged in and lists them in the listbox. You can assign the program function and serial port assignment to the USB port by selecting the radio button and clicking on the USB port in the window. When you plug in a USB device, press the refresh button and the USB device will appear in the list box and you can assign it to the serial port as in the paragraph above. For the most part, if the Arduinos stay plugged in, there USB com names will stay the same and you can assign the serial ports without worrying. But occasionally, the USB com names change, typically if they are unplugged and plugged in again. What I do in this case is shut down the machine, unplug the USB ' s, fire up the machine, and then read the usb devices one at a time and assign them to the serial ports again. The tabbed listbox is the serial log from the Arduinos. Click the tab for the Arduino log you want to monitor. For now the rest of the controls are pretty self-explanatory and can be expanded on later. The vision system and armzilla run on the Asus. Armzilla currently doesn¡Çt have a GUI. I have 5 thumb joysticks hooked directly to the Arduino The vision system uses a Kinect 2 for windows. The GUI is written in C# using Windows Presentation Foundation.