Skip to content

Instantly share code, notes, and snippets.

Avatar

Anton Vanhoucke antonvh

View GitHub Profile
@antonvh
antonvh / main.py
Last active Oct 7, 2020
PS3/PS4 LEGO MINDSTORMS remote control script with front wheel calibration and shoulder button trim.
View main.py
#!/usr/bin/env pybricks-micropython
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor,
InfraredSensor, UltrasonicSensor, GyroSensor)
from pybricks.parameters import (Port, Stop, Direction, Button, Color,
SoundFile, ImageFile, Align)
from pybricks.tools import print, wait, StopWatch
import struct
@antonvh
antonvh / connection.py
Last active Jun 17, 2020
Remote control a MINDSTORMS EV3 robot with a SPIKE Prime Hub
View connection.py
# This code was originally written by Pybricks
# Paste all of it into a file named 'connection.py' and place it next to your 'main.py' file
# Nothing below is written by Anton's Mindstorms
# I found it here. https://github.com/pybricks/pybricks-projects
from uctypes import addressof, sizeof, struct
from usocket import socket, SOCK_STREAM
from _thread import start_new_thread
@antonvh
antonvh / main-car.py
Created Apr 22, 2020
Pybricks 2.0 code for remote controlled race car with another EV3 brick
View main-car.py
#!/usr/bin/env pybricks-micropython
# car code
from pybricks.hubs import EV3Brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor,
InfraredSensor, UltrasonicSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Button, Color
from pybricks.tools import wait, StopWatch
@antonvh
antonvh / coordinates.py
Last active Nov 4, 2020
Generate coordinates for a vertical plotter with Python
View coordinates.py
__author__ = 'anton'
from math import sin, cos, pi
from PIL import Image, ImageDraw
NUM_POINTS = 150
PREVIEW_SIZE = 500
CIRCLE = 1
SQUARE = 2
@antonvh
antonvh / get_voltage.py
Last active Sep 29, 2015
Get Voltage from BrickPi+
View get_voltage.py
import smbus
def get_voltage():
"""
Reads the digital output code of the MCP3021 chip on the BrickPi+ over i2c.
Some bit operation magic to get a voltage floating number.
If this doesnt work try this on the command line: i2cdetect -y 1
The 1 in there is the bus number, same as in bus = smbus.SMBus(1)
Google the resulting error.
@antonvh
antonvh / gist:8458472
Created Jan 16, 2014
Controlling a mindstorms NXT robot using a gamepad and python
View gist:8458472
#!python
from jaraco.nxt import *
from jaraco.nxt.messages import *
import time
import sdl2
import math
sdl2.SDL_Init(sdl2.SDL_INIT_JOYSTICK)
@antonvh
antonvh / gist:8458252
Created Jan 16, 2014
Sending a motor command to mindstorms NXT using python and the jaraco library.
View gist:8458252
from jaraco.nxt import *
from jaraco.nxt.messages import *
conn = Connection('/dev/tty.NXT-DevB')
cmd = SetOutputState(
i,
motor_on=True,
set_power=motorpower,
run_state=RunState.running,
@antonvh
antonvh / gist:8455505
Created Jan 16, 2014
Getting joystick input in python
View gist:8455505
import sdl2
sdl2.SDL_Init(sdl2.SDL_INIT_JOYSTICK)
joystick = sdl2.SDL_JoystickOpen(0)
while True:
sdl2.SDL_PumpEvents()
#depending on the gamepad this gives you a value between -32768 and +32768
#or between 0 and 32768
joy_x = sdl2.SDL_JoystickGetAxis(joystick, 0)
@antonvh
antonvh / gist:7439560
Created Nov 12, 2013
Installation steps for lego robot sumo
View gist:7439560
sudo easy_install pip
pip install numpy
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
brew tap homebrew/science
brew install opencv
pip install jaraco.nxt
hg clone https://bitbucket.org/antonvh/robot-sumo robot-sumo
cd robot-sumo/blob_recog
python blob_recognition.py