Posso programar para o Arduino sem ter uma placa real?

Eu gostaria de começar o desenvolvimento de alguns projetos básicos do Arduino, mas ainda não possuo uma placa Arduino. Existe uma maneira de escrever meu código e imitá-lo / testá-lo usando um computador desktop, para que, depois que minha placa chegue, eu apenas precise enviar e executar meu...