Sargento, algumas ponderações sobre programação de microcontroladores:
Antes de mais nada, sugiro enfaticamente que comece pelo começo.
Quem começa com linguagem de alto nível de modo geral acaba não aprendendo assembly, uma limitação severa para muitas aplicações onde a velocidade e o domínio do hardware são importantes, já quem começa com assembly costumeiramente não encontra maiores dificuldades com as linguagens de alto nível.
Com o rápido desenvolvimento dos microcontroladores, sempre mais rápidos e poderosos, isto é menos verdadeiro na atualidade, mas por muitos anos ainda deverá ser considerado.
Sugiro que escolha uma família de microcontroladores e aprenda ao menos os rudimentos do assembly para essa família. Isto implica em um esforço inicial um pouco maior mas será amplamente compensado no futuro imediato. Subscreva alguma lista de discussão sobre microcontroladores e logo vc vai constatar isto.
A seguir procure aprender o ANSI C, o canônico, padrão da indústria, o de maior compatibilidade, base para o resto. Dominado o básico do C vc pode partir para o C++. Basic é pouco mais que um gracejo.
Os PICs e AVRs são os mais populares, os mais baratos e os mais fáceis de achar no comércio varejista. A documentação é abundante e há muitos fóruns sobre ambos. Estará bem com qualquer das famílias, inclino-me ligeiramente para os AVRs.
Agora algumas ponderações sobre o comando de máquinas CNC:
Um programa interpretador de código G / controlador de máquinas CNC não é coisa trivial.
Escrever um prog que faça um motor girar é simples, mas a coisa vai muito além quando se trata de interpretar código e interpolar vários eixos. Se algum dia vc quiser se dedicar a isto, apoie-se em ombros de gigantes e estude o que já foi feito. O código fonte do TurboCNC está disponível por módica quantia e o EMC2 é open source, o código fonte está disponível gratuitamente.
O Windows não se presta a tarefas de tempo real de respeito e há muita mandrakaria embutida em progs como o Mach, em grande parte um
port do EMC aliás, coisa de gente muito experiente e extremamente dedicada como o Art Fennerty, um esforço que só se justifica pelo prazer de vencer o desafio e pela imensa popularidade do Win, mas pra coisa séria nínguém cogitaria em algo assim, utilizaria, como fez o NIST, um kernel de tempo real, como o utilizado para o EMC.
Windows + Visual Basic é o pior dos mundos, coisa que só se presta a aplicações muito limitadas neste contexto. Invista seu tempo em coisa séria, Linux e C++.
No contexto desta discussão, o TurboCNC é perfeito para os testes do motor, permitindo reconfigurar as sequências de acionamento das fases muito fácil e rapidamente, por meio de uma simples máscara de bits em modo phase drive, é o que eu faria. Além disso não exige mais que um velho 486, ou mesmo um 386 com co-processador matemático pra rodar bem, e um driver de disquete, nem de HD precisa. E como se não bastasse, é o prog que gera os pulsos de melhor qualidade, a temporização é perfeita e o jitter pequeno. Se quiser adiar a construção do driver até que tenha caracterizado o motor, vá de TurboCNC, vai economizar um bocado em analgésicos e não vai pertubar o escorpião que mora no seu bolso.