View Single Post
Old 18th Aug 2018, 12:56 pm   #59
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,560
Default Re: Interpreting a hexdump table

Of the various options, it probably boils down practically to these four:

-Learn programming on the computer you already have.
-Buy a Raspberry Pi
-Buy a BBC Micro:Bit
-Buy an Arduino

Taking these in order:
-On the PC - this is the risk-free option since you already have what you need. As far as programming languages go I would suggest 'Python' which is popular, free, and available for a wide range of platforms. If you originally used BASIC on 80s-era computers, Python has some similarities to BASIC and is quite easy to pick up - plus there are loads of books and online tutorials for Python. Any Python programming skills you learn on the PC can be taken across to other systems such as the Raspberry Pi and the Micro:Bit. The only downside to programming on a PC is that it does not really encourage 'physical computing' - using the PC to sense external situations and respond to / control them, unlike, say, the BBC B which had the very useful 'user port' which could be used for that purpose.

The Raspberry Pi is a surprisingly powerful all-purpose compact computer which, like a PC, has keyboard and mouse input and output to a video screen but unlike a PC, also has a physical input / output port just as the BBC B did. So if you envisage making projects with human-friendly user interfaces which can also interact with physical hardware, the Raspberry Pi may be for you. It uses a version of the Linux operating system, which in most cases people probably aren't familiar with before they encounter the Pi and so you would probably be learning about Linux at the same time as you are learning about the Pi. The basic machine comes essentially not working out of the box - you have to flash an SD card (not supplied) with your operating system of choice before the machine will do anything. You can buy kits consisting of a Pi plus a ready prepared SD card and these are usually good value, but don't always have the latest version of the operating system on them. Finally, for initial setup and for most practical use you will need access to a display or TV with an HDMI input. The Pi can output a standard definition picture over composite video, but the definition / readability is quite poor. Nor do you get a nice fat user manual / programming tutorial book with the Pi as you would have done with any eighties computer, so the learning curve in the beginning might seem very daunting. Having said all that, and sounded somewhat negative about them, I own four of the things myself.

The Micro:Bit was designed to be handed out to school kids to encourage them to experiment with coding. As such it is very simple to use and its implementation of the Python language includes some powerful short cut functions to make the hardware easy to interact with, so, for example, you can create a scrolling text message on the LED grid display with just two lines of Python (For Micro:Bit) code.

My personal recommendation, however, would be to try an Arduino - available in various sub-models, the most popular of which is probably the Arduino Uno. Like the Micro:Bit this is a programmable microprocessor board rather than a 'computer' but it comes with a whole host of prepared 'libraries' of code which make it very easy to do some otherwise fairly complicated things, like outputting text to an Alphanumeric LCD display or interacting with a serial-connected temperature sensor. By making use of such functions in your code, you can go from having an idea to having something up and running really very quickly. In the case of Arduino the primary programming language is 'C' rather than Python. In my opinion 'C' tends to be less easily human-readable than Python or BASIC, but everything else about the Arduino experience makes it worth mastering. Another point in favour of Arduino is the vast number of add on interfaces (or 'Shields', in Arduino speak) which are available, which can allow an Arduino to interface with almost anything. Even without these, the standard Arduino has a good mixture of analogue inputs and digital inputs and outputs for interacting with and controlling other devices.

One option I didn't include was that of learning to program microcontrollers such as the PIC or AVR series directly in assembly language - this option undoubtedly gives you the best understanding of how microprocessors work and gives you absolute control over every aspect of the microprocessor's operation, but if you just want to write some code and see complicated things happening relatively quickly, then I think Arduino is a better place for most people to start.

Last edited by SiriusHardware; 18th Aug 2018 at 1:02 pm.
SiriusHardware is offline