Skip to content

Latest commit

 

History

History
139 lines (124 loc) · 9.67 KB

hardware.md

File metadata and controls

139 lines (124 loc) · 9.67 KB

Hardware - Version 3 - 2020

BACK TO MAIN DOCUMENTATION TOC



VERSION 3 HARDWARE (2020+)

Description

The physical robot is currently based on a simple metal robot platform from Adafruit combined with a Raspberry Pi to perform the local edge AI, local text-to-speech, and to make use of cloud APIs. The RPi uses a "hat" for working with sensors, actuators, LEDs (Neopixels), DC wheel motors and Servos. The robot RPi communicates with Unity running on a computer with the OSC network protocol over WiFi.

Hardware Parts list

In addition to the above, the robot uses screws, standoffs, and velcro for mounting all the components

Hardware Assembly


Prepare the electronics

  • Create a Deflt AI Toolkit SD card for the RPi (see below)
  • For audio to work correctly on on older CRICKIT boards, you may need to cut a small trace on the bottom of the CRICKIT circuit board (see photo below)

  • Install the camera ribbon cable, feeding it through the CRIKIT camera cable cable hole. Connect to the RPi camera connector (blue side of the cable facing the Ethernet jack - watch this video), then connect the cable to the Camera
  • Carefully install the CRICKIT on the RPi using the included extension pins while keeping the camera cable plugged in
  • Plug the mic into the RPi upper left USB plug

Assemble the robot platform

  1. see also this page for a similar project with details/photos
  2. Mount the motors, then attach the wheels to the motors
  3. Attach the ball caster to the bottom front of the platform
  4. Use double faced tape to mount the pan/tilt servo assembly to the front top of the Platform
  5. Mount the RPi with CRICKIT installed onto the top of the platform using velcro - mount it sideways so the USB plugs face toward the right wheel - be sure mount it so an ethernet cable can be plugged in next to the wheel
  6. Mount the speaker underneath the platform, facing up, with velcro or double faced tape

Connect parts together

  • Solder the connection wires and mount the Neopixel ring and Ultrasonic sensor on the front, then connect the wires to the CRICKIT, routing them through the platform
  • Connect the pan/tilt servos to the servo ports (pan 1, tilt 2) on the CRICKIT
  • Connect the two DC motors to the motor ports on the CRICKIT - connect the black wires to the inner pins next to the GND outlet - Diagram - You may need to use use male-to-male header pins/jumpers to connect.
  • Connect the Proximity sensor to CRICKIT - I/O port row 1: Signal to Signal, power to 3.3V, Ground to GND
  • Connect the NeoPixel Ring to the CRICKIT NeoPixel connections, 5V, signal, ground
  • Attach the speaker to CRICKIT Hat
  • Mount the USB battery pack to the back side of the platform using Velcro, and attach a short USB A to 2.1mm Male Barrel Jack cable from the battery to the CRICKIT
  • Follow the startup sequence on the main page










Hardware version 2 - 2019

Installing Delft AI Toolkit software

Computer

Free Unity Software
  • Install Unity3D The toolkit is tested with Unity3D v2019.3.x
Delft AI Toolkit Unity Project
  • Download the toolkit software .zip file from our Releases page, uncompress, and place on your computer. This includes the Unity project, RPi code, and documentation
  • Open the toolkit in Unity - use Open from within Unity and select delft-toolkit-2_0_3>Unity>delft-toolkit
  • NOTE: If you chose to clone or download the software from the main GitHub page, note that we use xNode, IBM Watson SDK, and IBM SDK Core as a submodules (i.e. we use the code from the original repos). With a simple clone, the submodule code will be missing from this Unity project directory: delft-toolkit>Assets>Scripts>delftToolkit>Submodules>
    There are several solutions for this:
    • Download a Release - At significant version points, we upload a complete version as a release that includes the appropriate version of xNode. As mentioned above, this is the recommended method.
    • Git Clone With Submodules From Command Line - Use the following terminal command to clone the entire repo with the submodules included:
    git clone --recurse-submodules https://github.com/pvanallen/delft-ai-toolkit.git
    • Download - After you download the toolkit from GitHub with the download button, go to the xNode repo (or other submodules) and download the code yourself. Then place the xNode folder (or other submodules) in the toolkit Unity project at delft--ai-toolkit>unity>delft-toolkit>Assets>Scripts>delftToolkit>Submodules>xNode

Robot

Raspberry Pi - Disk Image
  • Command Line Only - NOTE: This disk image is derived from the "Lite" version of Raspbian, and therefor does not have the GUI windows software installed. This means you cannot use the visual desktop on a monitor.
  • Download the 2021-03-10 RPi disk image
  • Use a 32GB Micro SD card, ideally it should be a Class 10 for optimal speed. We've had good luck with the SanDisk Evo Plus 32
  • Copy the disk image to the card (more info for Mac and Windows). On the Mac Terminal:
    # get the name of the correct drive (look for one that is Windows_FAT_32 and 31.9 GB)
    diskutil list
    # unmound the disk (change "N" at the end to the correct number)
    diskutil unmountDisk /dev/diskN
    # write the image (change the .dmg filename to the current version
    # change "N" in rdiskN to the correct number from diskutil)
    sudo dd if=delft-toolkit-2021-03-10.dmg of=/dev/rdiskN bs=5m
  • Plug the SD card into the RPI, and then power the RPi up
  • Setup the WiFi: Connect your computer to the RPI with ethernet and login:
    ssh [email protected]
    # password: adventures
    # once logged in, edit the RPi WiFi configuration with your WiFi credentials
    sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
    # reboot for the new WiFi to take effect
    sudo poweroff
    # disconnect the Ethernet cable and remove and replace the power to boot
    # log back in, and confirm the WiFi has connected on wlan0
    ssh [email protected]
    # on RPI, check the IP address for wlan0
    ifconfig
  • If you are using more than one robot on your network, change the RPi hostname from the default of delftbt0 (e.g. to delftbt1, delftbt2, delftbt3, etc.)