Repository files navigation
Abstract
Puppet mode using Dualsense
A depth of field capable rover can scan a house interior
rover
how to control a movable vehicle using code?
what counts as a robot?
code control
debug/dummy control
remote control
autonomy
slam using depth of field
BOM
Key blackboxes
drive motors using motor hat
drive oled screen using stemmaqt
read gamepad
more difficult than I thought, had to create custom parser using jstest
Features
Dual controllers
Depth of field
Oled display
emotion
debug
ip
wifi setup
gamepad
ram
Architecture ideas
Robotics are about orchestrating a symphony of async messages
State based tree
use elf to keep track of input/sensors
main app builds component tree
each component has a state
gamepad.state.axes.joyr.x
rover.update({target_vector: angle, magnitude})
The Loop
Hardware
pi
install os 64
ssh into pi
update
upgrade
raspi-config
i2c
partition size
terminal autologin
oled
cable mod
pi io pins
stemmaqt, quick
ctontab -e:
@reboot /home/toy/code/pibot/run-oled-boot-screen.sh &
MotorHat
M1-4 all DC motors direct connection
Power
12v input for motor
5v regulator for pi
solder to io pads
Dev mode usb power cable
Setup
Dev:
Pi code-server:
mutagen forward create --name=code-server tcp:127.0.0.1:8080 <instance-ip>:tcp:127.0.0.1:8080
Bot:
Dualsense:
bluetooth setup:
chmod -R a+rwx /var/lib/bluetooth
chown -R pi:root /var/lib/bluetooth
bluetoothctl
discoverable on pairable on agent on default-agent
pair
bluetoothctl
pair mac
connect mac:address
trust mac:address
reboot and try again
test
apt-get install jstest-gtk
jstest /dev/input/js0
MotorHat
Enable i2c
test i2c motor hat and oled:
sudo apt-get install i2c-tools
i2cdetect -y 1
60, 70 and 3c
You can’t perform that action at this time.