0

What should I plan to get?
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

What should I plan to get?

by jaytep on Sun Nov 13, 2016 12:37 am

Hello all. I took a quick peek at some other people's questions about what to get, but many were more specific about a project of some sort.

I'm looking to get something for my teen nieces who are very interested in computer stuff. I know how to slam my hand on a keyboard and push some buttons on a mouse. So, yeah, bare with me. They take stuff apart, do some coding online, none of which I understand. But, they're limited. I want to get them something cool that they can have full control over.

Ultimately whatever the kit can create would be fine, because I'm aware there's other stuff to get and manipulate to do other things. I just want to get them started. The only factor I hope is part of it is the coding part. They talk to me about assembly language as if I just know what that means. Is there any of that that is part of a certain one I can get?

I apologize for not being able to be concise, I don't honestly know what I'm talking about haha. But hopefully some of that can be deciphered to what I'm hoping to get them.

I can try a tl;dr... Want a kit of some sort that my nieces can make something and code what it will do in assembly language.

jaytep
 
Posts: 3
Joined: Sun Nov 13, 2016 12:21 am

Re: What should I plan to get?

by adafruit_support_mike on Sun Nov 13, 2016 1:47 am

As a quick vocabulary tutorial, programmable devices contain circuits that do certain things.. copy information from one part of memory to another, perform math operations, and so on. The part that controls all those circuits is called the 'central processing unit', or CPU.

Each do-something circuit has what amounts to a label, made from a specific pattern of bits. When the CPU sees such a pattern, it activates the corresponding do-something circuit. A program is basically a long list of labels for do-something circuits. The labels are called 'machine code'.

Humans aren't as good at identifying patterns of bits as computers, so we pair machine code with (barely) human-readable labels. The circuit that adds two numbers together would get the label 'ADD', for instance. Those human-readable labels are known as 'mnemonics', and you can create a list of mnemonics that translates directly to machine code.

A program that does convert mnemonics to machine code is called an 'assembler'. The information you feed an assembler is called 'assembly code'.

Assembly code gives programmers as much control over the CPU as you can get, but it's easy to get bogged down in the details. Even something as simple as 'get data value X so I can do something to it' takes several steps of machine code to perform.

Over the decades, we've learned a collection of largely cut-and-paste patterns of machine code that allow us to build more complicated programs. We've given those (vaguely) human-readable names, and built programs that can turn those names back into machine code. A collection of named operations that work together is called a 'high level language', and the program that converts files of high-level language to machine code is called a 'compiler'.

One of the most common high-level languages is named 'C', and all the most common C compilers also contain an assembler. You can write assembly code as C, and have the compiler convert it into patterns of bits the CPU will understand.


As far as choosing hardware goes, the Arduino Starter Pack isn't a kit per se, but it contains a board with a programmable chip and a bunch of associated hardware to help someone get used to working with it:

https://www.adafruit.com/products/68

An alternative to that would be our Circuit Playground board:

https://www.adafruit.com/products/3000

It's kind of like a kit with all the pieces hooked together. It has a programmable chip, plus light, temperature, sound, and motion sensors, a speaker for audio output, and ten programmable RGB LEDs for visual output.

adafruit_support_mike
 
Posts: 58856
Joined: Thu Feb 11, 2010 2:51 pm

Re: What should I plan to get?

by jaytep on Sun Nov 13, 2016 4:38 pm

I understand quite a bit more just from reading your explanations. I appreciate the well thought out response.

There was a quick video on the Arduino Starter Pack where I saw the guy write either C or assembly code I'm guessing, and controlled a light. This is exactly what I hope they can have to learn from: directly control the circuit with code and have something to show for it. I'm so happy there is something like this.. it has been hard being the one who knows the most about computers in my family, but they ask questions far beyond what I understand about computers.

jaytep
 
Posts: 3
Joined: Sun Nov 13, 2016 12:21 am

Re: What should I plan to get?

by adafruit_support_mike on Mon Nov 14, 2016 1:22 am

The one unfailing rule of technology is that there's always more to learn. ;-)

The video probably would have shown someone writing code in C. That's the most common language for microcontroller development. All microcontrollers give you that direct connection from code on a screen to physical hardware though.

adafruit_support_mike
 
Posts: 58856
Joined: Thu Feb 11, 2010 2:51 pm

Re: What should I plan to get?

by nemesis_c on Thu Nov 17, 2016 8:03 pm

I'd recommend Adafruit's circuit playground board!
Has a bunch of sensors (temperature,light ), rgb lights ( that turn to any color) accelerometer etc
just make sure to get a battery pack for it and some alligator clips

nemesis_c
 
Posts: 53
Joined: Wed Jan 06, 2016 5:10 pm

Re: What should I plan to get?

by jaytep on Thu Nov 17, 2016 9:16 pm

Thanks for the response nemesis, I think I'll get that next. I went ahead and got the other one that was also recommended here as a first go.

Have any cool/easy project that you made with it? It seems that my nieces are more interested in taking things apart and seeing how they can make it faster/better. I told them when I learn some more, I'll make things, send it to them, and they can deconstruct it, check the code, and do whatever it is they'll do. I'm trying to get involved but not sure what to make. When I gave it to them they were already planning a bionic limb and I was just happy to see I got the light on the arduino to blink with the pre-made blink code.

jaytep
 
Posts: 3
Joined: Sun Nov 13, 2016 12:21 am

Please be positive and constructive with your questions and comments.