Uno'daki USB arayüzünün size benzersiz bir seri numarası verdiğinden şüpheliyim. Herhangi bir sayı, bu yongaya yüklenen kodun bir parçası olacak ve bu nedenle birden fazla Unos arasında aynı olacaktır.
Bir yaklaşım, One-wire arayüzünü kullanan DS2401 "Silikon Seri Numarası" yongasıdır. Bu sadece bir serbest pin ve bir miktar kod gerektirecektir (kod muhtemelen sorun olacaktır).
En az müdahaleci yöntem ve muhtemelen en güvenilir yöntem, kodu tekrar okumak ve toplamı kontrol etmek olacaktır. Bu kesinlikle çip imza dedektörümle yaptığım şey . Ancak, bu yalnızca (şu anda yazıldığı gibi) bootloader imzasını algılar. Oldukça küçük bir değişiklik ve tüm taslak kodunu MD5 ile özetleyebilir.
Örnek çıktı:
Signature detector.
Written by Nick Gammon.
Signature = 1E 95 0F
Fuses
Low = FF High = D6 Ext = FF Lock = CF
Processor = ATmega328P
Flash memory size = 32768
Bootloader in use: Yes
EEPROM preserved through erase: Yes
Watchdog timer always on: No
Bootloader is 512 bytes starting at 7E00
Bootloader:
7E00: 02 01 02 03 0405 06 07 08 09 0A 0B 0C 0D 0E 0F
7E10: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7E20: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7E30: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
...
7FB0: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7FC0: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7FD0: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7FE0: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
7FF0: 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
MD5 sum of bootloader = 56 72 75 2D 5D B5 0D BA 25 10 DF BE 87 D2 A1 27
Bu MD5 toplamı (son satır) etkin olarak belirli bir önyükleyicinin imzasıdır. Aslında en yeni sürüm onları bir masaya koyuyor:
MD5 sum of bootloader = FB F4 9B 7B 59 73 7F 65 E8 D0 F8 A5 08 12 E7 9F
Bootloader name: optiboot_atmega328
Yani yapabileceğiniz şey, bir çizim yüklerken, hex kodunun MD5 toplamını oluşturmaktır. Bunu yapmanın oldukça basit yolları var. Daha sonra kaynak kodunuzda bir "git tag" işlemi yapabilirsiniz ve ardından (bazı otomatik veya manuel işlemler kullanarak) belirli bir MD5 toplam altıgen kod toplamının belirli bir anda çizim kodunu temsil ettiğini hatırlayın.
Bir çeşit veritabanı:
Chip: Uno
MD5 sum: D8 8C 70 6D FE 1F DC 38 82 1E CE AE 23 B2 E6 E7
Sketch: My_robot_sketch_42.ino
Git tag: version666
Şimdi kaynağı panodan bulmak için, kodun MD5 toplamını belirlersiniz (tahtadan geri okuyarak) ve sonra veritabanınıza bakarsınız.