First off im sorry if this is the wrong place to be asking.

Im looking for some advice on where I should start, heres some background information on my experience.

Iv been software developing for several years now working with websites, computer applications and computer games and have an understanding of many computer languages.

When I was younger (at college) one of our assignments was to program a cnc machine to create a complex aluminum joint for a steam powered engine and program a micro robot to follow a line. None of which i can remember how to do at all.


Does anyone know a learning resources to do such things? Books, kits or websites which have tutorials on such things? Im more interested in programming things from scratch than pre designed pieces of kit such as a cnc machine.

look forward for a reply


thanks for reading ^

Dani AI

Generated

Picking a platform first was the right call — credit to for that nudge. For a software developer like , the fastest learning path combines quick prototyping with progressively deeper, low‑level work: use Arduino-style boards to get hardware feedback fast, a Raspberry Pi (or similar SBC) for OS-level tasks and vision, and eventually move to bare microcontrollers (AVR/PIC/ARM Cortex‑M) to learn registers, timers and real‑time control from scratch.

A practical, project‑driven roadmap:

  1. Learn basic electronics (Ohm’s law, series/parallel, reading datasheets) and practice on a breadboard with LEDs, resistors and switches.
  2. Prototype microcontroller basics: blink, digital input, analog read, PWM output and serial logging (Arduino is a fast route here).
  3. Motor control: use proper drivers/H‑bridges or MOSFETs; never drive motors from MCU pins. Add encoders and implement simple closed‑loop control (start with proportional, then PID).
  4. Rebuild the old assignments: make a line‑follower using reflectance or IR sensors, then iterate with encoder feedback and PID tuning.
  5. For CNC work, learn stepper drivers, microstepping, limit/home switches and G‑code concepts; consider existing firmwares (Arduino‑based controllers are a common starting point) before writing a controller from scratch.
  6. Acquire basic tooling: multimeter, bench supply, decoupling caps, flyback diodes, and a logic analyzer or scope when signals need inspection.

Recommended references and communities include beginner hands‑on books, a solid electronics reference, and active maker/single‑board‑computer communities and forums for tutorials and wiring examples. Troubleshooting habits are critical: test incrementally, verify common ground, separate motor and logic power, use current limits, and read component datasheets. For anything involving mains or mechanical hazards, follow safety standards and disconnect power before wiring changes.

Recommended Answers

All 2 Replies

You should pick a specific hardware platform to work with first. The Arduino board is one we've talked about in college. Although I've not worked with it, my friends who have claim its very straightforward to program. Its also designed to interface with and control a number of modern devices as well. Hope this is helpful!

thanks for the quick reply, sorry mines not.

a great help thank you.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.