Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!
Sky Leilani
Published © CC BY-SA

Modernize a 1980's Robot

Revive the 1980s Tomy Omnibot as the Omnibot MAIV (Modernized with AI and Viam) and control it from anywhere in the world

IntermediateFull instructions provided3 hours247

Things used in this project

Hardware components

Omnibot 2000
Prices can vary dramatically - we paid about $200 for an “as-is, non-working” copy. You do not need one with the remote control or tray included.
×1
12V to 5V DC USB Type-C step-down power converter
×1
60W PCIe 12V 5A Power Supply
Digilent 60W PCIe 12V 5A Power Supply
×1
SparkFun Full-Bridge Motor Driver Breakout - L298N
SparkFun Full-Bridge Motor Driver Breakout - L298N
×2
LED E10 bulbs
×1
Webcam, Logitech® HD Pro
Webcam, Logitech® HD Pro
×1
12V Battery pack
×1
Ultrasonic Sensor - HC-SR04
SparkFun Ultrasonic Sensor - HC-SR04
×1
Raspberry Pi 4 Model B
Raspberry Pi 4 Model B
×1
DC barrel pigtail connectors
×1
18 guage stranded wire
×1
Quick wire connectors
×1
Velcro tape
×1
Breadboard Wire Kit
Digilent Breadboard Wire Kit
×1

Software apps and online services

Viam Platform
Viam Robotics Viam Platform

Hand tools and fabrication machines

Multitool, Screwdriver
Multitool, Screwdriver
Drill, Screwdriver
Drill, Screwdriver
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Soldering iron (generic)
Soldering iron (generic)
Solder Wire, Lead Free
Solder Wire, Lead Free
Mastech MS8217 Autorange Digital Multimeter
Digilent Mastech MS8217 Autorange Digital Multimeter

Story

Read more

Schematics

Viam Omnibot Motor Wiring

Wire the left and right motors to a motor controller and Raspberry Pi for Viam control of your MAIV Omnibot.

Viam Omnibot Wiring 2

Code

Full MAIV JSON

JSON
Add to your robot's JSON configuration in the Viam app.
{
  "components": [
    {
      "name": "local",
      "model": "pi",
      "type": "board",
      "namespace": "rdk",
      "attributes": {},
      "depends_on": []
    },
    {
      "depends_on": ["local"],
      "model": "gpio",
      "name": "base-l",
      "type": "motor",
      "attributes": {
        "pins": {
          "a": "32",
          "b": "38",
          "pwm": "35"
        },
        "board": "local",
        "dir_flip": true,
        "max_rpm": 200
       }
    },
    {
      "depends_on": ["local"],
      "model": "gpio",
      "name": "base-r",
      "type": "motor",
      "attributes": {
        "pins": {
          "a": "31",
          "b": "36",
          "pwm": "22"
        },
        "board": "local",
        "dir_flip": false,
        "max_rpm": 200
      }
    },
    {
      "model": "wheeled",
      "name": "base",
      "type": "base",
      "attributes": {
        "left": ["base-l"],
        "right": ["base-r"],
        "wheel_circumference_mm": 90,
        "width_mm": 220
      },
      "depends_on": ["base-l", "base-r"]
    },
    {
      "type": "motor",
      "model": "gpio",
      "name": "neck",
      "attributes": {
        "max_rpm": 200,
        "pins": {
          "a": "16",
          "b": "37",
          "pwm": "29"
        },
        "board": "local"
      },
      "depends_on": ["local"]
    },
    {
      "attributes": {
        "video_path": ""
      },
      "depends_on": ["local"],
      "model": "webcam",
      "name": "face-cam",
      "type": "camera"
    }
  ]
}

Credits

Matt Vella

Posted by Sky Leilani
Thanks to Matt Vella.

Comments