Bisakah saya memprogram untuk Arduino tanpa memiliki papan nyata?

Saya ingin memulai pengembangan beberapa proyek Arduino dasar tetapi saya belum memiliki papan Arduino. Apakah ada cara saya dapat menulis kode saya dan meniru / mengujinya menggunakan komputer desktop sehingga setelah papan saya tiba saya hanya perlu mengunggah dan menjalankan proyek saya di...