Étape 3: Programme du Conseil
Vous aurez besoin d’un programmateur ICSP pour programmer le jury et une carte de dérivation série de FTDI. Pour le PDCI de programmation, vous pouvez faire usage d’une autre Arduino, mais je recommande le USBTinyISP de Adafruit. La carte de dérivation FTDI est utile si vous voulez écrire/déboguer vos propres croquis, mais pouvez être omis si vous êtes simplement en utilisant mon code.
Si vous souhaitez graver des croquis sans déboguer directement à partir de PDCI, vous pouvez utiliser ce descripteur boards.txt, tiré principalement de l’Arduino Pro Mini, qui ressemble à ce matériel :
atmega328t.Name=ATMega 328 (8 MHz) - USBTinyISP
atmega328t.upload.using=Arduino:usbtinyisp atmega328t.upload.maximum_size=32768 atmega328t.upload.speed=57600
atmega328t.bootloader.low_fuses=0xFF atmega328t.bootloader.high_fuses=0xDA atmega328t.bootloader.extended_fuses=0x05 atmega328t.bootloader.path=atmega atmega328t.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex atmega328t.bootloader.unlock_bits=0x3F atmega328t.bootloader.lock_bits=0x0F
atmega328t.Build.MCU=atmega328p atmega328t.build.f_cpu=8000000L atmega328t.build.core=arduino atmega328t.build.variant=eightanaloginputs
Si vous souhaitez programmer une esquisse à l’aide du port série, vous devez brûler le chargeur de démarrage à l’aide du PDCI. Vous pouvez ensuite utiliser ce descripteur de boards.txt avec une carte de dérivation FTDI. Je recommande celui de Sparkfun ; Assurez-vous qu’il fait ressortir DTR comme la première goupille permettant la remise à zéro automatique.
atmega328s.Name=ATMega 328 (8 MHz) - série
atmega328s.upload.Protocol=Arduino atmega328s.upload.maximum_size=30720 atmega328s.upload.speed=57600
atmega328s.bootloader.low_fuses=0xFF atmega328s.bootloader.high_fuses=0xDA atmega328s.bootloader.extended_fuses=0x05 atmega328s.bootloader.path=atmega atmega328s.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex atmega328s.bootloader.unlock_bits=0x3F atmega328s.bootloader.lock_bits=0x0F
atmega328s.Build.MCU=atmega328p atmega328s.build.f_cpu=8000000L atmega328s.build.core=arduino atmega328s.build.variant=eightanaloginputs
Si vous le souhaitez, vous pouvez exécuter à 16 MHz au lieu de 8 MHz en utilisant un résonateur différent, puis sélectionnez la carte Arduino Pro Mini 5V 16 MHz 328p.
Le croquis sur github utilise les bibliothèques NewPing et JeeLib, pour s’interfacer avec le capteur et à activer le sommeil de faible puissance. J’ai trouvé que le SR04 attire 11 mA mesurée à la batterie une fois « fainéant », donc il doit être arrêté entre allant de tentatives. Il y a un MOSFET à canal n avec une résistance de pulldown et une résistance de limitation actuelle porte agissant comme un interrupteur côté bas, pour fermer le capteur lorsqu’il est inactif. Une attention particulière doit être prise lors du passage de la sonde ; vous devez déconnecter l’ergot en le plaçant en tant qu’entrée, ou il va trouver terrain d’entente à travers elle et continuer à consommer d’énergie. Lors de son retour en ligne, la broche écho reste élevée entraînant une courte lecture ; un ping sacrificiel après un court délai semble pour réinitialiser le capteur à un état normal. Il y a aussi une trace pour le raccordement de la batterie directement sur une broche analogique, pour mesurer la tension de la batterie. Le croquis indique la tension en utilisant une séquence de clignotements rouges et verts en mode de stationnement et ira aussi à un mode de batterie faible lorsque la tension devient inférieure à 2V, clignote en rouge jusqu'à ce qu’il meure.
Le schéma définit actuellement les distances de gâchette rouge/jaune/vert à 40, 150 et 500 cm. Lorsque dans la gamme jaune, il se met à clignoter entre 20 millihertz à 1 Hz à l’aide des interruptions de minuterie, fournissant une indication visuelle de la proximité vous obtenez au rouge. Ces valeurs peuvent être modifiées en modifiant l’une des constantes dans la partie supérieure du fichier.
Le croquis peut facilement être modifié pour fonctionner avec un Arduino ordinaire, mais alors il ne sera pas très faible puissance.