~ Dec 20th, 2014 A student found the http://spark.io website
~ Jan 8 20th, 2015 Started this blog
I know nothing about Robotics, Arduinos, Raspberry Pi's, Seeed Grove Sensors, Actuators (motors etc) and generally anything to do with breadboards, but I have taught High School Computer Programming, and Physics for a few decades. Students recently showed me the site http://spark.io and I am now hooked. The spark core ($39) and photon ($19) is like an Arduino merged with a Raspberry Pi but constantly internet connected. So instead of spending hours and hours getting an Arduino doing what you want, why not use the wealth of online javascript resources and let your computer browser do all the heavy coding while the spark device reads the environment through sensors and activates actuators from program or internet user control. This site is dedicated to my journey from knowing nothing about Robotics to wherever it will take me.
Class countdown until the September 8th, 2015 8:50 Am
Feb 9th, 2015: I now have some idea where this is going. Note: Just read that Samsung is getting into the Robotics 3D printing arena
I have seven months until my Robotics, 3D Printing and Mobile App Design course begins.
Recently I saw some grade 5 's using Lego Mindstorms. Very cool but I am hopefully not teaching that to grade 10-12.
So what needs to be done on this site? This list should make good headings for the rest of this blog. Well in no particular order:
Things to do before Sep 8th, 2015
updated Feb 15, 2015 Conductive Glue learn how to make a 3D printed circuit board and paint it with circuit scribe metal ink or some high conductivity high heat glue. This board will not be very heat resistive but that might make it into one big fuse if it melts. Will really show the students any design flaws and where to put a heat sink.
Design a penny based glue-able heat sink. Ok well that was not too hard. Here is the image. Needs heat resistant glue.
I have not yet tested this but it looks kind of cool, the normal penny heat sink is just a stack of pennies, hopefully this is a better method.
Design IoT ready logic level components such as :
Sensors from base components, no expensive Shields.
Actuators with motor drivers. Stay below 9V. Any student wanting higher voltages would need a serious electrical safety certification.
Try to buy a logic level power bar. I don't want to hack anything with high voltage.
Reversibly hack a cheap RC vehicle I have a New Bright car. The chip is a bit small. Would be easier with a car with a larger RC control chip. Why reversible, because you can always switch back to RC mode to see if the car still works. Hard to debug something that doesn't have a default working state.
(IoT Ready- separate power from logic control unless the item is very low voltage and current. 3.3 volts and 10-30 m Amps)
Perfect webpages that control the Spark. Show best embedded links here
Simplify using the spark or switch to a better WiFi micro-controller
Learn from the Arduino and Raspberry Pi community but remember that when they say something is easy it is a code word for ridiculously confusing. Remember that with computers there is always an easier way to do things.
So I spent this week playing around with the idea of conductive glue or paint. I wanted to have my students use the 3D printer to make simple circuit boards then use conductive glue to
connect the components using a trough on the back of the circuit board. However, most of my attempts to make the $2 conductive ink or glue turned out to have a horrendously high resistance. The cost of purchasing the ink seems very high, so I may try a different route at the moment. I did find some useful links however.
http://www.proto-pasta.com/product/#CCPLA A 3D printing PLA filament that is conductive. Seems cool. I would really like someone to make something similar but as a conductive glue stick. Then you could use this to connect and hold components onto a 3D printed circuit board and use regular glue sticks to form insulated areas.
So my next idea is to make the 3D printed circuits with circuit symbols on the top where the components go. Correct size holes for Breadboard jumper wires, whereas underneath can still have a trough for future conductive glue, but for the moment can be used with female/female jumper wires. Why not just use a breadboard? We probably would use a breadboard before getting senior students to 3D print the circuit board, but this circuit board would be more intuitive about what the circuit actually does (Breadboards are quick and awesome to test a circuit but for a beginner, the breadboard quickly gets confusing by the hidden grid of inter connectivity), The 3D printed circuit board would be easier to make the circuit, with the component symbols on the top and since we are using a 3D printer we could print the entire frame for the robot or toy. For IC chips we would have to use some sort of long pin socket connector such as
Even if you didn't have a 3D printer you could probably do something similar with just a sheet of plastic, and drill some holes in it. I am using the top of a plastic box. I like the idea that the senior students could make the circuit board and toy frame and then other years, the junior students could simply use their design and put together a working circuit.
Ok, so on my Rant I mentioned how frustrating the Spark Core Photon Variables were. That is because I was doing it wrong. So here are some links to how it is supposed to be done. The variables are actually really cool and have some interesting hacks.
I was trying to activate them using a web page form to POST them. That works fine for Spark functions and can even return analog values from the functions but does not seem to work for variables. You have to use GET in a web page form. I have some example code at https://github.com/hpssjellis/spark-core-web-variables
All of this should be done from a web page form that uses JSON and AJAX, but nothing like being able to quickly check something using a one line link like the following:
Message
Note: the first set of numbers is your Core ID and the second set of numbers is your Access Token. "mess" is the function name that is being called. See the spark documentation at http://docs.spark.io/firmware/#spark-variable
Also Note that you can't do this quick little hack with Spark functions since they use the more complex POST form method
Even more cool is that you can paste that URL into a new tab inyour browser and just on the fly check your spark variables. That will be great for debugging your code.
Just tried this and it works. I put the URL into a php file and did some simple parsing to get the "result"
This is really nice since it hides your private information from the user.
I will need to teach about Kickstarter. Students can practice setting up Kickstarter sites but can not use Kickstarter to support a school assignment. Here is my Kickstarter attempt. Rover the Shopping Drone Kickstarter
In electric circuits electrons flow from the negative terminal to the positive terminal, but the Conventional current is taught as a "positive" flow from the Positive terminal to the negative terminal.
This is massively confusing so most teachers ignore the system they do not like, Physics teachers tend to prefer the Conventional current and Chemistry teachers tend to prefer the electron flow. The magnetic field is
traditionally taught as the right hand rule, so chemists tend to teach an electron based left hand rule. Both systems do not properly prepare students, so I have tried to merge these concepts into one idea. Draft Electric Circuit Analogy
This is only a draft and I welcome others opinions.
I got phoned by my employer and asked if I would like to teach the 3 courses, Game Development, Robotics and 3D Printing. I have never taught Robotics or 3D Printing but it sounds like a great adventure so I accepted.
My previous web based control of the spark Core or Photon used sparks cloud based server, which is great for environmental data that you might check every 10 minutes or every few days, but kind of crummy for driving a robot car.
I did get control times of between 300 ms and 1200 ms, which wasn't too bad, but I really want near real time control so I can better drive my rover, or attempt to control a quad copter. Since I tend to work from webpages everything I make
should be able to be made into an Android or iOS App using phonegap. Finally got this working. Flash the .ino file to the spark core. load the web page, enter your Core-ID and Access_token, that will tell you an IP that the core is setup to work on for that day. Enter that value in the IP field and start turning on or off the D7 LED. If you can control that LED you should be able to control the other Outputs as well. (Come to think of it, presently not sure how to send integer speeds to motors but I am sure it can be done).
The github site is at: https://github.com/hpssjellis/spark-core-socket-client-or-server
That was strangely easy. I almost always screw up about 8 times before getting anything to work. This worked first time. I basically hooked up my wifi spark core controlled Hacked RC car to have Hue detection using the Pixy CMUcam5 camera from Charmed labs. If the main object moves to the left, the car goes left, if it moves to the right the car goes right, if it moves away the car speeds up, if it gets really close the car stops. Kind of cool. the github site is at: Recently also trying to get a Heloo World style Pixy file going as weell as trying to understand Color Codes, which seems kind of strange.
https://github.com/hpssjellis/pixy-spark-core-rover
Basically the Spark Core is a useless brick if you lose your Wifi. It gets stuck looking for Wifi and can't do anything else. Unless of course you use the code below. Very simple, The Core now can work like an Arduino when the wifi is not working or like a Cloud connected device when Wifi is working. Note: the DOCS at http://docs.spark.io/firmware/#system-modes-semi-automatic-mode are incorrect and I have asked for them to be changed. Semi-automatic mode is not Blocking and works great.
Ok this happened a while back but I am only just talking about it now. Spark.io is now particle.io. They also have several cool new products out and connected with them: The Photon, Electron, Bluze and Lillypad stuff.
Supplies for my first year teaching Robotics and 3D Printing. Remewmber that the plan is to have students learn about electronics to be able to connect robotic hardware, Computer Programming so students can control their robots and 3D Printing so that students can build the frames for their robots. We will do as much plug and play electronics as we can and minimal soldering and circuit board design to speed up the process of getting a robot of some sort working.
$2500 CAN Tinkerine 3D Printer from Vancouver BC, started kit about $2500.00 has several color filaments as well. Has been ordered and should arrive mid August. Seems to have good reviews and is close enough that I can actually talk to them in person if I have a problem.
$1335.00 USD Photon Maker Kit https://store.particle.io/?product=particle-maker-kit. I got 15 sets should be $89.00 USD each set, you might want to get the Core since it should be on sale. (Latest update the Core may be sold out. I wonder if they are making it any more)
I got some deals from SnapCircuits and Particles.io as they seemed to like some of the work I have been doing.
I should be able to teach a ton with these three items in sets of fifteen, so that each pair of students gets a set. I will eventually need motor drivers and lots of other equipment, especially one of nearly every possible board that could plug into the photon. I did manage to get some money from the school PAC to purchase and Adruino Uno, Raspberry Pi, Grover starter sets, Pixy, some motor drivers and various soldering tools.