Arduino Zero ve Arduino M0 ile uyumlu klon bir ürün olan Samd21 M0 Mini nasıl programlanır?
32 bit ARM Cortex M0 mikroişlemciye sahip (ATSAMD21G18) SAMD21 M0 Mini hem küçük boyutlarıyla (53mm x 19mm) hemde uygun fiyatıyla diğer orjinal ürünlere göre avantajlıdır. Aliexpress gibi yurtdışı alışveriş sitelerinde ortalama satış fiyatı 11$ civarında. Orjinal Arduino ürünü olmamasına karşın SAMD21 M0 Mini Arduino IDE ile programlanabilir.

Bunun için ilk önce Arduino IDE ‘ye bu kart için uygun board yüklemelisiniz. Program menüsünden Araçlar → Kart → Kart Yöneticisi ‘ni seçin. Kart Yöneticisi diyalog kutusuna M0 yazın. Çıkan sonuçlar arasından Arduino SAMD Boards (32-bits ARM Cortex-M0+) by Arduino kartını seçerek yükleyin.
Yükleme işlemi tamamlandıktan sonra Araçlar → Kart adımlarını izleyerek Arduino/Genuino Zero (Native USB Port) kartını seçin.
Bu işlemden sonra SAMD21 M0 Mini kartınızı artık Arduino IDE ile programlayabilirsiniz. Eğer USB için Arduino driver yüklediyseniz klon ürün için ayrıca driver yüklemeye gerek yoktur. SAMD21 M0 Mini kartını usb kablo ile bilgisayara bağlayarak programlamaya geçebilirsiniz.
Bu ürün için programlama yaparken dikkat edilecek bir noktada Serial komutudur. SAMD21 M0 Mini kartında Serial komutu sadece D0 (RX), D1 (TX) uçlarını aktif eder. Kart üzerinde bulunan USB portundan Seri çıkış almak için SerialUSB komutunu kullanmak gerekir.
Aşağıdaki örnek kodu kullanarak SAMD21 M0 Mini ‘nin sağlamlık kontrolünü yapabilirsiniz.
// Serial Ports on the WeMos M0 (Arduino M0 variant)
// https://startinglectronics.org/articles/arduino/wemos-arduino-m0/
// 30 May 2018 | W.A. Smith
void setup() {
// Virtual USB COM Port (Native USB)
SerialUSB.begin(9600);
while (!SerialUSB);
SerialUSB.println("Test SerialUSB");
// TXD and RXD pins at end of board
Serial.begin(9600);
while (!Serial);
Serial.println("Test Serial");
// TX and RX pins on digital pins 0 and 1
Serial1.begin(9600);
while (!Serial1);
Serial1.println("Test Serial1");
}
void loop() {
// Square wave for oscilloscope testing
//Serial.write('U');
}