Skip to content

A collection of scripts and functionality, some practical and useful day to day, others with no redeeming usefulness other than fun!

Notifications You must be signed in to change notification settings

MZandtheRaspberryPi/im_practical_programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

im_practical_programming

This is a landing page for a collection of scripts and projects, some practical and useful day to day, others with no redeeming usefulness other than fun! See below projects and links:

Big Projects

digital_compass

This is a project where I designed, manufactured, and coded a digital compass that uses an inertial measurement unit (IMU) to estimate orientation in 3d-space. I implemented an extended kalman filter to (EKF) to do the estimation. Find the repo here. A video explanation is available here and a video demo is available here.
compass_pic
compass_pic_2
compass_demo

quadruped_learning

This is a project where I taught a robot dog to walk in simulation. I used imitation learning and inverse reinforcement learning. Find a video demo here and the repo here.
motion_retargeting

robodanceproject.com

This is a project where I implemented a front end in Angular and a back end in C++ to explore and visualize forward kinematics for a quadruped robot. I deployed this using Amazon Web Service's Lightsail. Find the repo here. robo_dance

think_like_an_octopus

This was an in-depth blog post I wrote around options for python multiprocessing including threading, multiprocessing, calling C++ code, and numpy. Find the repo here with a .pdf and links to the post.
octopus_blog_pic

mycobot

I prepared a robot arm to pick and place objects and use computer vision for students to use in a hackathon. See more details here. full_setup demo_pic

crystal_ball

This was a fun project where I made an orb that mounted to a cane like a witch's staff. Find the repo here with a write up and more pictures. witch_staff

toulouse_rover

This was a fun project I did to build an autonomous car, using a lidar. I did the robot design, hardware, and software by myself. It supports kinematics for differential drive, skid steering, and omni wheels, and a fourth fixed slow speed mode which is good for autonomous driving. It uses ROS and hector_mapping as well as move_it to do mapping and path planning. You can find more details here, and see a video explanation here.

toulouse autonomous_toulouse

all_seeing_drone

A project to introduce autonomous movement and face-following for a robolink CoDrone. I used the CoDrone API which lets you command roll, pitch, yaw, and throttle, but built a lot of functionality on top of that to do tracking, and in some cases rewrote bits of the CoDrone API to work with my needs. See the README here.

Demo of Autonomous Drone
Bottom left: processed drone video with debug information
Top left: cell phone camera in corner of room, showing drone flying
Right: raw drone input video
Notice it tracking me!

Here's a youtube video showing off the project. There's a link in the description of this video to another video that is more technical and shows some of the project work. Making a PB&J with autonomous drone camera-person

great_ball_project

This project uses Asyncronous Real-Time Communication (via the python aiortc library) to send video from a server to a client. This video is of a green ball bouncing. The client then uses computer vision to find the center of the ball and send it back to the server which displays an error from the true value.

Libraries used in include aiortc, numpy, opencv-python, and multiprocessing. In the below GIF, the window on the right has the raw frames from the server. The image on the left is overlaying a small blue dot on the calculated center, for display purposes. Unit tests, logging, config files, and more were added for code quality. Docker images and a deployment using Minikube were done as well.
great_ball_proj

holiday_project_2023

I designed a custom circuit and printer circuit board using a 555 timer and a 4017 decade counter to be my christmas cards for 2023. You can find the files here and a video demo here.
pcb_render
pcb_gif

my_bittle

This is a project where I integrated a camera sensor, a robot dog, and a raspberry pi to control the dog with computer vision. You can see a video demo here. You can find one python library I created to control the robot dog here and another python library to get images from the camera here. The demo code for integration is here. A writeup blog post is here.

bittle-demo

Spot Micro Robot

This was a fun project where I 3d printed the robot, planned the hardware, assembled, and used a fellow robot builder's ROS Repo to get it walking. I contributed a bit to the robot builder's ROS repo as well. It was mainly a hardware and electronics project for me. Check it out here.
spot_micro_demo

robo_arm

This is a robot arm project that I built from the ground up, including the software. It has two capabilities. The first is an arduino based arm that can be controlled via onboard joysticks and displays output to an OLED screen as it moves in x, y, z space with an inverse kinematic model. The second is a ROS Powered version that uses rosserial to communicate with the master node, and allows publishing of messages on a topic to command the arm in x, y, z coordinates. You can get to the repo here.
roboarm

Here is a demo of the arduino based version of the arm, and here is a demo of the ros based version of the arm.

prod_disaster_counter

This was a fun project to make a little device that can count things for people, like days in a row they've meditated, practiced a musical instrument, or gone for a walk. I made two versions of this. The first was hastily done on a prototyping board, the second was designed and manufactured to be prettier and more functional. You can find the documentation including cad, ecad, and code here.

You can see a video demo here.
demo_gif

Ultrasonic Bat

This was a project I organized and led with a group of friends. It is a small bat to hang on a christmas tree or put on a desk, that has ultrasonic sensors, RGB lights in the wings, and an OLED screen for a face. It can react when it sees things in front of it! I did all the 3d design and printing, as well as some of the software work relating to the oled and facial animations. I also coordinated with the hardware group, the software group, and the design group to make sure all the intermediate pieces worked together in the end product. You can find more info here.
ultrasonic bat

magic_box

This was a magical light box I built for a friend getting married. It has animations, looks pretty, and lets the user set the color for some of the animaetions. You can get to the repo with more details here.
magic box 1
magic box 2

Buddy Robot Dance with ROS

This was a fun project to get a robot to dance using ROS. I used a robot from Slant Concepts and re-coded it to work with ROS, via rosserial and a bluetooth connection. Check it out here.
buddy_dance

Pi Watch

This was a project to make a raspberry pi watch that can check buses near my apartment, show the weather, and turn off with button presses. Check out the repo here and a video showing off the project here.
pi_watch.gif

Tableau Wine Night

This was a fun project to create a dataset from a winetasting I did among friends. From there I analyzed the data, created metrics, and presented an interactive visualization on it via Tableau Public. Find it here.
wine_night

Smaller Projects

bike_mudgaurd

I did some 3d-modelling and manufacturing to create a (not great) mudgaurd for my bike. Currently on v2. Find the repo here.
mudgaurd

headless_pi_setup

A guide on how to setup a Raspberry Pi with an emphasis on security, without a keyboard or display for the Pi. See the guide here!
pi_guide.png

Alexa and Raspberry Pi Lamp

A demo on how to control a Raspberry Pi Lamp using an Echo Dot. See the repo with links to guides here.
alexa_light_demo

Mood Lamp Guide

Here's a guide that is more a collection of tutorials to help you get your raspberry pi mood lamp kit from pimoroni up and running. Check it out here.
alexa_light_demo

Minecraft Server on your Pi

This has some links to guides to setup a minecraft server on your pi, as well as some tips on running the server and extra commands! Check it out here.
minecraft

R2D2 Sculpture with Amazon Echo Inside

This was a fun project to slice and print out some models I found and assemble them. Check it out here.
r2d2

About

A collection of scripts and functionality, some practical and useful day to day, others with no redeeming usefulness other than fun!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published