digistump / OakCore

Arduino/Platformio Core for Oak including Particle library
GNU Lesser General Public License v2.1
54 stars 28 forks source link

BOUNTY: Create Mini-tutorials for Starter and Ultimate Kits #39

Open digistump opened 8 years ago

digistump commented 8 years ago

Skills Required: Basic Fritzing/Image Manipulation/Writing Difficulty: Easy

Challenges/Thoughts:

Use the Oak Fritzing part (to get it see #38) to put together a simple Fritzing connection graphic of a basic lesson that can be done with the Starter or Ultimate kit.

Provide text for this lesson, including how to do it, what it teaches, and what the components involved are and very briefly how they work/what they do (ex: An LED produces light when powered)

Provide example code for the user to run on their Oak, keeping it simple and well commented.

Provide the image (with a 300+ dpi version linked), text, and example code as a wiki entry at digistump.com/wiki/oak/tutorials (if you are the first make a new list on that page for links to these lessons)

Formatting and general layout should at least roughly follow this template: Template: http://digistump.com/wiki/oak/tutorials/lesson_template

Parts List: http://digistump.com/wiki/oak/tutorials/kit_parts Lesson Ideas (other welcome!): http://digistump.com/wiki/oak (list at bottom of page)

Please add your name or however you'd like to be credited to your wiki page.

Bounty

$25 credit or 2 Oaks per lesson, one person can do as many as they would like.

Cash or credit is your choice. Cash to be paid via Paypal. Credit has no expiration but can only be applied to a single order and does not cover shipping (because that is how our shopping cart works, not because we want to be limiting). Oaks reward includes shipping.

You may credit yourself in the files as well, leaving in tact existing licenses and credits.

Legal Stuff: We will choose a winner at our sole discretion. Cash awards will be made in USD. This is not an offer for hire. All work submitted becomes the property of Digistump LLC to be used at our discretion in compliance with any associated licenses. Void where prohibited by law.

jwhendy commented 8 years ago

Not sure it counts as a starter or ultimate tutorial per se, but just wrote a guide for connecting to the Oak via serial through an Arduino Uno. I was primarily interested since I didn't have a 3.3v UART but did have an arduino. I figured a lot of others could be in the same boat so after successfully using a chip-less Uno to apply OakRestore, I wrote it up.

Links:

DJFliX commented 8 years ago

I'm working on a button tutorial, explaining both digitalRead and interrupts. I have the text, but did not include the Fritzing yet, as I'm currently out of time. Sorry about that. Will be working on the rest tomorrow:

jwhendy commented 8 years ago

Update 3/25: Done with all of the below; if you find anything, feel free to let me know or edit at will, and feedback is welcome!

jwhendy commented 8 years ago

@DJFliX Nice! If you need any help on the Fritzing, I could do the pulldown vs. float one. No pressure to accept... just throwing it out there.

Regarding the pulldown stuff, I used to do this until I found out one could do pinMode(n, INPUT_PULLUP). I use this exclusively so I don't have to use physical resistors... [old content snipped].

EDIT: Whoops. Using INPUT_PULLUP doesn't seem to work for me, so perhaps there's no internal pullups... sorry for the noise.

jwhendy commented 8 years ago

@DJFliX Had to make some Fritzing's myself and made a floating vs. pulldown button example for you. Your choice to keep or re-do. Hopefully I got close to what you were looking for there.

DJFliX commented 8 years ago

@jwhendy Thank you very much! I don't have any experience in Fritzing at all, just got to creating an image of the set up. Thanks a lot for adding the pullup/pulldown images! The internal pullup/pulldown functionality would be awesome, but because this is a breadboard/tinkering type of lesson I thought it would be better to explain the pullup/down mechanism with physical parts first. It's a "hello button" exercise after all :).

Also: after viewing your images on the buttons lesson, I realised that the female Oak is much more sensible to use in the example. Going to redo my fritzing now :P

DJFliX commented 8 years ago

RE: http://digistump.com/wiki/oak/tutorials/button @digistump Erik, I've made some changes in the text and uploaded both instructions to build the circuit and the Fritzing image of the circuit. @jwhendy kindly provided examples of a pull-down and a direct connection of a button to the Oak. Could you (swiftly) have a look at the page and tell me if there's anything missing, or anything you'd like me to add? I used the 150R resistors for the LED as they are the only suitable resistors in the kit, is that OK?

Also, would it be better to remove the external led and use the on-board LED instead? I wanted to show the example of blinking a LED with actual parts, but I realised later on that it might be defeating the purpose of the separate LED tutorial as well as adding extra noise to what the tutorial is actually about (reading button input).

jwhendy commented 8 years ago

@DJFliX: no problem at all. With just a couple of components it went fast :) Nice work, really liked your layout/format.

exeng commented 8 years ago

I will claim the Temperature Sensing and the 1-Wire Bus tutorial. Draft is ready. Just need to transfer to DokuWiki and do some final tests.

exeng commented 8 years ago

Here are the images for the Temperature Sensing tutorial. Oak-Temp-Sensing-1-Wire.zip

digistump commented 8 years ago

@DJFliX - that is a great little tutorial and laid out perfectly, thank you! Please email us to claim the bounty. 150R is fine, using the external LED was perfect and a great way to build on the LEDs tutorial that will be before that.

@jwhendy - thanks for doing those two tutorials, they look good. Could I ask you to format them to follow the sections and formatting recommended here: http://digistump.com/wiki/oak/tutorials/lesson_template, and to also break the First Blink tutorial down into some small steps as far as the hookup, and maybe add a diagram with the LED labeled (or some other way of making it super basic)? The First Blink tutorial is really essential that it uses super super basic steps since for some it may be the first time they've ever touched a development board. The photocell diagram and gifs on both are awesome! Please email us (support at digistump dot com) whenever you are ready to claim your bounties.

@exeng - as noted (but not very clearly) in the description please upload the images directly into the wiki for these. Your tutorial is very comprehensive and has lots of great advanced detail, but it isn't very beginner friendly in its language, layout, and its lack of small steps with diagrams. I've moved it to a different section (as part of the temp shield tutorial: http://digistump.com/wiki/digispark/tutorials/temp#programming) and left the dead link for the starter kit lesson, feel free to tackle that using the same info you have put together but greatly simplified with diagrams and following the layout recommended (and you can collect the bounty for that as well). If you'll upload the images into it I'm still happy to pay you the bounty on this of course - it really is a great advanced tutorial and most valuable to have!

@ Any one submitting a tutorial, please add your name or however you'd like to be credited to your wiki page.

jwhendy commented 8 years ago

@digistump Will do, and sorry about that! I saw the note on formatting initially but it just took me to the wiki syntax. Missed the template above... I'm in the process of writing a more advanced LED tutorial, want to write an intro to Particle.function(), and one on pushing something to the oak with python to complement the other one I did.

Any other feedback is welcome... I'm reasonably new to microcontrollers (maybe 2 years with an Arduino to date), so I was really shooting in the dark regarding how basic/advanced to target!

digistump commented 8 years ago

@jwhendy No problem, I apologize if the formatting expectations weren't clear.

The most basic steps are the goal of these tutorials since they are for the "Starter Kit" which we found generally sold to people with zero or nearly zero electronics experience (with some exceptions of course)

exeng commented 8 years ago

Erik, sorry for creating the tutorial using the wrong template. With regard to the content being moved to the shield tutorial, the images do not include the temp shield but rather are fritzing diagrams of the Oak and the required discrete parts (i.e. pull-up resistor and DS18B20). The only generic image that could be applied to the temp shield tutorial is the first one as it is a screen shot of the particle.io log. Let me take a second look at the template and if I decide to claim the kit tutorial again, I will post my intent here. Should have read the instructions carefully. Got in a rush since I had the draft ready for awhile. And yes, there was that voice that said this is too much for a simple tutorial.

exeng commented 8 years ago

OK, I will claim and take another stab at the Temperature Sensing and the 1-Wire Bus tutorial for the Kit lessons.

exeng commented 8 years ago

OK, completed the Oak kits Temperature Sensing 1-Wire lesson. Images have been included in the Wiki as instructed.

Do not use the Oak-Temp-Sensing-1-Wire.zip images that I previously sent for any tutorials as I discovered that my connections to the DS18B20 were backwards in the files sent.

Let me know if you need anything else.

exeng commented 8 years ago

Erik, I will fix the images for the advanced example in the Temperature Sensor (1-wire) Shield tutorial and try and get those in tomorrow. Oak Kit is done as previously mentioned.

exeng commented 8 years ago

@digistump Erik, There is a problem with the thumbnail for the circuit image in the Kit Temperature Sensing lesson. During editing I updated the image which is shown correctly when selected to link to the original but the thumbnail that is shown in the Wiki page is the old one. Can't figure out how to fix.

exeng commented 8 years ago

@digistump Erik, OK, The image is correct now. Done! I hope.

jwhendy commented 8 years ago

I'm going to call it good on my contribution toward this effort; shot you an email last night @digistump .

nog3 commented 8 years ago

I'm working on tutorials for:

and possibly:

But the fritzing part with the pins isn't wide enough to fit in the 400 pin breadboard and is slightly offset from the pins it claims as shown in this image. oakweird

It does however attach the right pins, so I can work with that but I'm not 100% comfortable with how weird it looks. As a workaround I can do most of the above with the female header populated Oak and the male to female cables but that's less tidy than the breadboard.

@digistump what's your thoughts on this?

jwhendy commented 8 years ago

The board should probably be modified, however in the meantime you could cheat and manually adjust the x position of the board. I just tried it and ended up having to move it 0.03 from where it snapped to position. Looks reasonable:

2016-03-25_215649

It was origionally at x = -0.459; ended up looking right at -0.429.

exeng commented 8 years ago

Someone must have created a derivative of the original Fritzing part I submitted with female headers which do not line up with a breadboard. Should be and easy fix for whoever created the pin version.

On Friday, March 25, 2016 7:59 PM, John Hendy <notifications@github.com> wrote:

The board should probably be modified, however in the meantime you could cheat and manually adjust the x position of the board. I just tried it and ended up having to move it 0.03 from where it snapped to position. Looks reasonable:It was origionally at x = -0.459; ended up looking right at -0.429.— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub

exeng commented 8 years ago

BTW, where do these parts live? I have the original Oak (female header version) and just posted to #39 a Level Shifter Shield part but where is this new Oak pin version?

nog3 commented 8 years ago

The pin version I'm using is OakFritzingParts(V1.0).zip/Digistump Oak (v1.0-HeaderPins).fzpz from https://github.com/digistump/OakCore/issues/38#issuecomment-186315989

exeng commented 8 years ago

Man, I must be losing it. That's the part(s) zip I submitted. I forgot that I created both versions. Checked my parts in Fritzing and the pin version snapped right in and lines up. Don't know why it wouldn't for you.

nog3 commented 8 years ago

@exeng As it turns out, snap to grid will place the part according to its entire size, not just the pins you'd expect it to snap with. After turning off snap to grid it works fine.

digistump commented 8 years ago

If anyone in this thread it waiting for a bounty and hasn't gotten it - please email me at support@digistump.com - I think I've responded to all the bounty claims I've gotten, but I want to make sure I didn't miss any.

Anyone adding new tutorials, once they are up please post back here, and then email me to claim.

On Fri, Mar 25, 2016 at 9:52 PM, Brendan Halliday notifications@github.com wrote:

@exeng https://github.com/exeng As it turns out, snap to grid will place the part according to its entire size, not just the pins you'd expect it to snap with. After turning off snap to grid it works fine.

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/digistump/OakCore/issues/39#issuecomment-201704528

nog3 commented 8 years ago

Hi @digistump http://digistump.com/wiki/oak/tutorials/buzzer is now up and should be right to go.

I'll post when the rest are up and send in a bounty claim when you're happy with the content for them :)

exeng commented 8 years ago

@jwhendy, Looks like someone in the forum found an error in you RBG LED tutorial. See this message... http://digistump.com/board/index.php/topic,2211.msg10333/topicseen.html#msg10333

jwhendy commented 8 years ago

@exeng Bah. Thanks for the heads up! I think I recall seeing that locally, making a mental note, and then forgetting to change it on the wiki. Fixed.

nog3 commented 8 years ago

Tilt Switch has been up at http://digistump.com/wiki/oak/tutorials/rollingball for a while, happy to fix any feedback.

brohan commented 8 years ago

Hi @digistump

I just completed the Ultrasonic tutorial (http://digistump.com/wiki/oak/tutorials/ultrasonic).

Everyone, this is my first tutorial, I would appreciate your reviewing it for errors, and giving me feedback. It appeared to me that one either needed a level shifter (not included in the starter kit) to properly run the 5v HC-SR04, or a different ultrasonic sensor (the route I went).

How about a spot for a level shifting tutorial?

brohan commented 8 years ago

I added anther UltraSonic tutorial to the main Oak Wiki page using the included HC-SR04, with a level shifter. It can be found here: http://digistump.com/wiki/oak/tutorials/ultrasonic_2

brohan commented 8 years ago

@digistump Completed the PIR tutorial. No additional coding or Oak concepts, but focused on investigating sensor datasheets more thoroughly to see an additional uses or applications that what's advertised, and encouraged the reader to post their project on the Oak forums.

http://digistump.com/wiki/oak/tutorials/pir

brohan commented 8 years ago

@digistump I updated the PIR tutorial to something I am happier with. I included a new concept expanding the Particle.publish to using that info via ifttt.com.

brohan commented 8 years ago

@digistump I am claiming the Bounty on the powered breadboard tutorial. In this tutorial I incorporated a Deep Sleep function as a Concept. Please review and give any feedback for improvement and corrections.

http://digistump.com/wiki/oak/tutorials/breadboard_power

rkinnett commented 7 years ago

@digistump I added a stepper motor lesson. I hope it's not too much detail...

https://digistump.com/wiki/oak/tutorials/stepper_motor

I hope someone finds this useful!