Udostępnij za pośrednictwem


Гусеничное шасси, управляемое Netduino

Грэг Дункан

Есть что-то такое в гусеничных тракторах, я имею в виду что может быть интереснее, чем наблюдать как он ползет по чему-нибудь? Конечно, когда он это делает вместе с Netduino!

Гусеничный трактор, управляемый Netduino, часть 1

Пару недель назад я приобрел набор с гусеничным шасси фирмы Tamiya с намерением использовать его с моим контроллером Netduino. Я положил их вместе и не касался их до сегодняшнего вечера. Частичной причиной послужило то, что у меня не было платы управления двигателем от Adafruit, которую я собирался купить в выходные (и припой, о котором я забыл).

Вот и это закончилось. Netduino, по крайней мере, когда питается от USB-разъема ПК (а другие способы я не пробовал), не может обеспечить достаточной мощности для двигателя, подключенного через плату расширения. Есть достаточно простое исправление – плата управления двигателем имеет разъем для внешнего источника питания, так что я взял исходный источник питания шасси (две батарейки АА) и соединил его с контактом EXT на плате расширения. Когда я сделал это, у мотора, управляемого Netduino, стало достаточно энергии.

Вот видео всей оснастки, питаемой от USB-соединения и начинающей работать.

Позвольте заметить, что это действительно базисные вещи для настоящих хакеров, запускать мотор в прямом и обратном направлении. Я смог этого добиться, как только собрал шасси, поскольку конструкция выключателя, входящего в набор, позволяла это сделать. Я весьма счастлив тем, чего смог добиться, хотя у меня есть несколько идей, где я хочу это применить. Потом мы увидим, сработает ли это.

Вместо того, чтобы включать код примера в первое же сообщение, я решил разместить весь код в проекте Codeplex. В следующих сообщениях я, скорее всего, буду включать больше примеров кода. Чтобы получить доступ ко всему коду, посетите недавно созданный проект Codeplex «Christoc’s Netduino Samples». На сайте проекта зайдите на страницу исходного кода проекта.

Вот снимок кода:

 namespace com.christoc.netduino.MotorTest
{
    public class Program
    {
        public static void Main()
        {
//get an instance of the DcMotor class passing in the enumerated header M4 (netduino can access M3 and M4 on the adafruit motor shield)
            var goJuice = new DcMotor(MotorHeaders.M4);
//set the speed to 0 to start
            goJuice.SetSpeed(0);
//set the direction of the motor
            goJuice.Run(MotorDirection.Forward);
//set the speed
            goJuice.SetSpeed(90);
            while(true)
            {
            //wait for 3 seconds
                Thread.Sleep(3000);
            //switch directions
                goJuice.Run(MotorDirection.Reverse);
            //wait for 3 seconds
                Thread.Sleep(3000);
            //switch directions
                goJuice.Run(MotorDirection.Forward);
            }
        }
    }
}

Как сказал Крис, это простой пример, но многие великие вещи часто начинались так…

Вот несколько ссылок, которые могут оказаться интересными: