This week we looked at a representation of a robot arm. The body of our robot is allowed to slide horizontally and the arm can pivot at the shoulder (where the upper arm attaches to the body) and at the elbow (where the lower arm attaches to the upper arm).
An important point about this project was to show how transformations add up together. Transformations include translations (moving in straight line), rotations (turning about a pivot point) and scaling (changing size). We’ve used translations and rotations for our robot.
In P5, the origin, or place where the x and y coordinates are both zero is at the upper left-hand corner of the screen. The x coordinate gets bigger as we move right and the y coordinate gets bigger as we move down.
When we translate, we move the origin to somewhere else. This is handy for a few reasons but if we are performing rotations. All rotations happen around the origin, wherever that happens to be at the time.
This diagram shows all the transformations we use for our robot:
Translate to move the origin to the centre of the robot body
Translate to move the origin to the shoulder
Upper arm rotation at the shoulder
Translate to move the origin to the elbow
Lower arm rotation at the elbow
Because these transformations stack up on top of each other, this is what each part experiences:
Body – Transformations: 1
Upper Arm – Transformations: 1, 2, 3
Lower Arm – Transformations: 1, 2, 3, 4, 5
The body is only affected by one, but the lower arm is affected by all five.
To move the robot, we set up three variables:
bodyPos to store the body position (our first transformation)
upperArmAngle to store the rotation at the shoulder (our third transformation)
lowerArmAngle to store the rotation at the elbow (our fifth transformation)
We created a function called handleInput() called from the draw() function (which is called every frame). In that we used the keyIsDown() function from P5 to check for keys being held down. We made the left/right arrow keys move the body horizontally, the up/down arrow keys rotate at the shoulder and the Z/X keys to rotate at the elbow.
I didn’t realize when I posted yesterday that the results of the Pioneers Challenge were out today.
Here is the Raspberry Pi Blog post announcing the winners.
Congratulations to Barry, Kevin and Zack the Zombie Trolls whose project Zombie In The Middle won the We Appreciate What You’re Trying To Do prize. the following is a quote from the website.
“Playing piggy in the middle with zombies sure is a unique way of saving humankind from total extinction! We loved this project idea, and although the Zombie Trolls had a little trouble with their motors, we’re sure with a little more tinkering this zombie-fooling contraption could save us all.”
Well done to the three boys and well done to all the Bodgers because all the Pioneers teams helped each other out, most importantly at the beginning when we were trying to come up with ideas for our entries.
Last Saturday we finished up for the break with our Christmas party. We played video of the projects we entered in the Raspberry Pi Foundation’s Pioneers Challenge “Only You Can Save Us”. The challenge involved teams working on projects that would help people if there was a zombie apocalypse.
We then gave everyone an opportunity to have a go at a robot wars style game with our Raspberry Pi robots.
Happy Christmas Everyone, we’re really looking forward to next year and building more cool stuff.
This weekend in the Bodgers Group our three Raspberry Pi Pioneers teams continued to work on their projects.
The Zombie Herders were working on a PIR (passive Infra-red) sensor which is the type of sensor commonly found in burglar alarms.
They used the GPIOZero library for Python and sample code which can be found here. However they didn’t have much success so we need to do more testing on our sensor and if necessary order a new one.
The zombie trolls worked on creating a 3-D model for their project using FreeCAD which they will print out when we return after the break.
I’m afraid I not allowed to discuss what it will be used for at this point :-).
Team Green Fingers worked on more scripts for their project including using their Arduino and a relay to switch a 12 volt automobile bulb on and off.
As with most projects like this we had a little trouble getting it going as we forgot to set the pin we used on the Arduino as an Output. Thanks to James and his Dad for bringing in the 12 volt powerpack.
We are off for the next two Saturdays and we’re back again on the 11th of November.
There was great excitement at this weeks session as the Pioneers teams opened their gifts from the Raspberry Pi Foundation. Each team member received a Raspberry Pi USB wristband, a Pioneers Lanyard, stickers and some sweets. Each team also got a copy of the Makers Guide to the Zombie Apocalypse and some zombie make-up.
We also got to see what was in our “Mystery Box” and I’m sure we are going to get great use out of it in future projects.
We then talked about the videos we’ll need a part of our entry and we had a look at a video from Pioneers on we need to put in our videos.
Then the teams spent some time planning out what they are going to do for their films.
Next week we are going to get back to working on our our projects.
We started today’s session with some information about the group and our plans for the year ahead.
We spoke about Digital Making, Digital Makers use technology to make something and learn about that technology while doing so. Technology available to Digital makers includes Raspberry Pi, Arduino, Fritzing, Sensors, Displays, 3D Printing and basic components.
Our Philosophy in the Bodgers group is that the most important thing is to get the project working. We don’t worry about how secure, how robust or how pretty our project is as long as it works long enough to show it works and that we understand how it works. We will use whatever resources we can get our hands on, online tutorials, online code, cheap components and cheap and easily available materials.
This year we will focus on projects, I will do some demos but there won’t be classroom type sessions. We would like you to work in teams. We will do one project between now and Christmas and another between Christmas and June. We would like everyone to work on the Pioneers Challenge between now and Christmas, after Christmas you can work on anything you want maybe Coolest Projects, Scifest or even PiWars.
We watched an excellent Video by @estefanniegg who takes a similar approach to project building as we do.
We then had a brainstorming session for the Pioneers Challenge and as you can see we had some great ideas.
We have narrowed down our ideas to a few projects and the mentors are busy trying to source materials for next week.
We will enter some of our projects next week and we might have a look at 3D printing software.
See you then,
Declan, Dave and Alaidh
By the way don’t forget to check out our Twitter account @CDA_Bodgers
I haven’t posted here for a while as we’ve been working on projects for the past few months.
First of all I would like to congratulate the seventeen Bodgers who were awarded belts yesterday. It’s been a pleasure mentoring you and you are all welcome to return in September and spend another year with us in the Bodgers group.
I would like to thank Dave for helping me out with the group and thanks also to Alaidh who helped us up until Christmas.
Dave and I are already making plans for next year and we’re very excited about what we are going to do. Tune in next September when we will have more information.
In other news the CoderDojo Foundation and the Raspberry Pi Foundation have merged. I’m sure this will make very little difference to what we do day to day at CoderDojo Athenry, it may mean more resources will be available for us as a group involved in STEM activities. You can read more about it from CoderDojo here and from Raspberry Pi here.
As part of the show and tell session the Bodgers group held a Robot Wars Style event. We used the two wheeled robots from last year controlled by Nintendo Wii Remotes.
If you want to build your own two wheeled robot you can check out my notes from last year here.
To control the robots using the Wiimote I followed Matt Hawkins Wiimote tutorial from here (If you have a Raspberry Pi 3 you can skip step 2 as Bluetooth is already working. Don’t forget step 3 install Python Cwiid). I then added the code to control the robot using GPIO Zero, you can get my code wii_robot.py here.
Hi everybody, this week we changed from preprogrammed automated robots to remote-controlled robots. We converted our simple Pygame script from last week which controlled a small rectangle on our screens so it could control our robots.
As Pygame needs a screen to operate we had to get VNC going before we could start, I think we had it working for most people by the time the session ended. VNC will be a hugh advantage to us as we start to write more code as we can use a mouse and copy and paste with a GUI text editor instead of Nano on Putty.
We also added a webcam to our robots which worked well, we would probably need to work on mounting them properly if we wanted to use them for real life applications.
Here is a video of them in action.
I will go over the code again next week, if you want to take a look at the code check out pygame_robot.py and robot_cam.py here.
We will leave robots for a while and go back to basic electronics for the next few weeks.
Sorry for the delay in posting, I’ve been very busy this week. Last Saturday we started the session by testing our robots on an obstacle course. Here is a video of them in action.
Then we had a quick look at Pygame which we will use to control our robots this week. If you missed last week don’t worry as I will do a recap tomorrow. Meanwhile here is a very good Pygame tutorial. Here are my slides from last week pygame-101.