Съдържание:

Контролирайте устройствата от реалния свят с вашия компютър: 15 стъпки (със снимки)
Контролирайте устройствата от реалния свят с вашия компютър: 15 стъпки (със снимки)

Видео: Контролирайте устройствата от реалния свят с вашия компютър: 15 стъпки (със снимки)

Видео: Контролирайте устройствата от реалния свят с вашия компютър: 15 стъпки (със снимки)
Видео: Топ 10 приложения, които не трябва да сваляте 2024, Ноември
Anonim
Контролирайте устройствата от реалния свят с вашия компютър
Контролирайте устройствата от реалния свят с вашия компютър

Тази инструкция ви показва как да взаимодействате с компютър и микроконтролер. Тази демонстрация ще усети стойността на пот или всеки аналогов вход и също така ще управлява серво. Общата цена е под $ 40, включително серво. Сервото включва микропревключвател и след това микропревключвателят включва лампа. В практическо приложение тенджерата може да бъде температурен сензор и сервото може да включва нагревател. Сервото може да бъде заменено с реле или друг контролер на мощността. Picaxe е програмиран в опростена версия на основния и интерфейсът използва VB. Net. Целият софтуер е достъпен безплатно. Свързан Instructable показва как да свържете два микроконтролера чрез интернет

Стъпка 1: Съберете частите

Съберете частите
Съберете частите

Списък на частите: Чип Picaxe 08M, достъпен от много източници, включително Rev Ed https://www.rev-ed.co.uk/picaxe/ (Великобритания), PH Anderson https://www.phanderson.com/ (САЩ) и Microzed https://www.microzed.com.au/ (Австралия) Protoboard, серво, микропревключвател, 9V батерия, 4xAA батерии и държач, лента с етикети, 10k резистор, 22k резистор, 33uF 16V кондензатор, 0.1uF кондензатор, 7805L ниска мощност 5V регулатор, 10k пот, проводници (плътножилен телефон/кабел за данни, напр. Cat5/6), 6V крушка, гнездо и капак D9, 2 метра 3 (или 4) жичен кабел за данни, скоби за батерии Горните компании продават и USB на серийни устройства които са полезни за лаптопи, които нямат сериен порт. Струва си да се отбележи, че някои USB към серийни устройства не работят толкова добре, колкото други и си струва да получите такъв от един от горепосочените доставчици, тъй като те са тествани за използване с чипове picaxe. Този, за който е известно, че работи, е https://www.rev-ed.co.uk/docs/axe027.pdf Разбира се, ако вашият компютър има сериен порт (или стара карта с сериен порт), това няма да стане бъде проблем.

Стъпка 2: Изтеглете и инсталирайте софтуер

Изтеглете и инсталирайте софтуер
Изтеглете и инсталирайте софтуер

Ще ни трябва VB. Net и софтуерът за контролер на picaxe. VB. Net (Visual Basic Express) е достъпен от https://msdn2.microsoft.com/en-us/express/aa718406.aspx Ако тази връзка не работи, потърсете в Google за: визуално основно експресно изтегляне Софтуерът picaxe е достъпен от https://www.rev-ed.co.uk/picaxe/ Ще трябва да се регистрирате в Microsoft, за да изтеглите - ако това е проблем, използвайте фалшив имейл или нещо. Всъщност ми беше полезно да дам истинския си имейл, тъй като те изпращат случайни актуализации.

Стъпка 3: Изградете верига за изтегляне

Изградете верига за изтегляне
Изградете верига за изтегляне

Тази схема за изтегляне използва чип picaxe, няколко резистора, регулатор и 9V батерия. Повече информация е налична в документацията за picaxe и това трябва да отнеме само няколко минути, за да се съберат, след като всички части са под ръка.

Мога също да добавя, че пикаксите работят щастливо с 3 батерии АА. 5V регулирано захранване е полезно за работа на аналогови входове, тъй като референтните напрежения не се променят, но за прости схеми за включване/изключване не е необходимо регулиране на захранването. Регионът 5V може да бъде пропуснат в тези ситуации.

Стъпка 4: Оформление на Protoboard на веригата за изтегляне

Оформление на протоборда на веригата за изтегляне
Оформление на протоборда на веригата за изтегляне

Тази снимка показва кабела за изтегляне, който е просто D9 щепсел и няколко метра някакъв многожилен кабел. Повечето съвременни компютри имат сериен порт D9. Компютър, построен преди около 1998 г., може да има 25 -пинов конектор. Запоях около 1 см твърда жица в края на гъвкавите проводници и след това поставих радиатор около това - проводниците с твърдо ядро влизат в протоборд много по -добре от гъвкавите проводници.

Стъпка 5: Изтеглете програмата Picaxe

Изтеглете програмата Picaxe
Изтеглете програмата Picaxe

Кликнете върху синята стрелка, за да изтеглите. Ако не се изтегли, има някои предложения за отстраняване на грешки в ръководството за употреба на picaxe. Можете да опитате да изтеглите проста програма, за да включите и изключите светодиода, за да проверите дали чипът работи. Тази програма такава, каквато е, не прави нищо, докато не бъде свързана с компютър, докато чака компютърът да й изпрати нещо. Ако се изтегли добре, значи работи и чипът е програмиран и следващата стъпка е да преконфигурирате чипа като чип за сериен интерфейс.

Копирайте и поставете кода по -долу. За да го видите с цветен синтаксис, погледнете в Изглед/Опции/Редактор. Цветовите конвенции са подобни на основните VB. Net: serin 3, N2400, ("Данни"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'прочетете пота и след това изпратете този сероут 0, N2400, ("Данни", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) изберете случай b0 'бит за четене на данни b0 случай <140' ако <140 след това настройте серво на една позиция servo 2, 120 пауза 1000 'пауза за секунда иначе servo 2, 160 пауза 1000 endselect ниско 2' изключете servo като serin прави това така или иначе goto main

Стъпка 6: Преконфигурирайте веригата като верига на сериен интерфейс

Преконфигурирайте веригата като верига на сериен интерфейс
Преконфигурирайте веригата като верига на сериен интерфейс

Две фини промени са направени във веригата picaxe. Резисторът от 22k, който преди беше на крак 2, сега отива на крак 4. И крак 2 е заземен. Единствената цел на крак 2 е да получава програмни данни от компютъра, така че след като чипът е програмиран, той може да бъде свързан към земята. Ако се върнете към програмирането на чипа за коригиране на грешки и т.н., след това изключете крак 2 от земята и свържете отново 22k към крак 2. Пикаксът се връща към компютъра чрез крак 7, така че не е необходимо да се променя.

Добавен е пот и серво. Сервото всъщност не е необходимо и LED и 1k резистор ще работят добре и/или всяка верига, която искате да свържете. Току -що използвах серво, за да покажа как щракването върху нещо на екрана може да накара нещо да се движи. Сервото се захранва от собствено захранване. Това отделно захранване няма да е необходимо, ако пикасето само включва и изключва светодиодите. Picaxe е готов за работа - сега имаме нужда от VB код.

Стъпка 7: Напишете VB интерфейсен код

Напишете VB интерфейсен код
Напишете VB интерфейсен код

След като VB. Net е инсталиран, стартирайте го и изберете File/New Project и изберете Windows Application. Можете да щракнете върху Файл/Запазване на всички в началото и да запишете където пожелаете, а след това в бъдеще или стартирайте проекта от VB. Net или като щракнете върху.sln файл, който ще бъде създаден.

Стъпка 8: Проектирайте формуляра VB. Net

Проектирайте формуляра VB. Net
Проектирайте формуляра VB. Net

VB създава нов празен формуляр, наречен Form1.vb. Можете да промените името на това сега или по -късно или просто да го оставите като Form1, ако проектът е прост. Ще го оставим така, както е. За да добавим някакъв контрол, трябва да отворим кутията с инструменти, която е закръглена в зелено. Кутията с инструменти може да се отваря и затваря, когато е необходимо - обикновено първата стъпка е да добавите контролите, след което да затворите кутията с инструменти и да работите върху кода. Можете да го оставите отворен през цялото време, но той заема малко екран.

Стъпка 9: Добавете таймер

Добавете таймер
Добавете таймер

Превъртяхме кутията с инструменти и избрахме таймер. Щракнете двукратно върху таймера, за да го добавите. Снимка на часовник, наречен Timer1, ще се появи в долната част на екрана и надясно вдясно свойствата на таймера са осветени. Можете да ги редактирате или те могат да бъдат променени в текстовото тяло на кода. Ще ги оставим такива каквито са и ще ги променим в основния текст.

Като страна, кутията с инструменти изглежда малко обезсърчаваща, но са необходими само няколко за повечето програми - те включват бутони, текстови полета, етикети, таймери, кутии за картини, квадратчета за отметка и радио кутии. Може би отворете нова програма и някога ще играете с няколко.

Стъпка 10: Добавете няколко бутона

Добавете няколко бутона
Добавете няколко бутона

Кликнете върху инструмента за бутони и нарисувайте размера на бутона във Форма1. Ще ни трябват два бутона, кутия за картини и етикет. Продължете и добавете тези - следващата екранна снимка показва всичко това начертано. Размерът и позицията не са важни и можете да ги преименувате по -късно, ако желаете.

Стъпка 11: Формулирайте с всички добавени контроли

Формуляр с всички добавени контроли
Формуляр с всички добавени контроли

Формуляр 1 вече е изложен. Кутията до Button2 е малка кутия за картини. Можете да поставите снимки в това, но ние просто ще го използваме, за да посочим кой бутон е натиснат, като го сменим от червено на зелено. Label1 показва регистрите picaxe.

Стъпка 12: Добавете код

Добавете код
Добавете код

Вдясно, закръглено в зелено, има няколко полезни бутона - вторият отдясно е бутонът View Code, а десният бутон е View Designer. На практика при писането на код човек се движи напред -назад между тези изгледи. По принцип, ако човек е в режим Designer, двукратното щракване върху обект, като например бутон, извежда място в изгледа на код, за да добави някакъв код, или го взема към парчето код, което се изпълнява, когато бутонът е натиснат. По този начин програмният поток става доста интуитивен - потребителят кликва върху неща и части от код, който се изпълнява и променя екрана и т.н. ще има публичен клас Form1 … End Class - маркирайте това и го изтрийте. Сега вземете целия код по -долу и го поставете в. Imports System. IOImports Strings = Microsoft. VisualBasic ', за да може да използва неща като ляво (и дясно (за stringsPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)' за декларации за заспиване Dim withEvents serialPort As New IO. Ports. SerialPort 'serial port declareDim PicaxeRegisters (0 до 13) As Byte' регистрира b0 до b13Private Sub Form1_Load (ByVal изпращач като обект, ByVal e като System. EventArgs) обработва Me. Load = True 'поставете това в кода като по подразбиране на false при създаванеTimer1. Interval = 5000' 5 секундиPictureBox1. BackColor = Color. Red 'зададен на позиция' red'Array. Clear (PicaxeRegisters, 0, 13) 'вероятно не е необходим, както е деклариран масив blankEnd SubPrivate Sub Timer1_Tick (ByVal изпращач като System. Object, ByVal e As System. EventArgs) Манипулира Timer 1. Поставете отметка на таймера на всеки 5 сек. DataP acket (0 до 17) Като байт 'целият пакет данни "Данни" +14 байта Dim i As Integer' i винаги е полезен за цикли etcLabel1. Text = "" 'изчистете текста на екрана За i = 0 За 3DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'добавете думата "Data" към packetNextFor i = 0 To 13DataPacket (i + 4) = PicaxeRegisters (i)' добавете всички байтове към packetNextIf serialPort. IsOpen ThenserialPort. Close () 'за всеки случай вече отворен End EndTryWith serialPort. PortName = "COM1"' Повечето нови компютри по подразбиране са com1, но всеки компютър преди 1999 г. със серийна мишка вероятно ще бъде по подразбиране com2. BaudRate = 2400 '2400 е максималният скорост за малки пикасети. Parity = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' милисекунди, така че изтича за 1 секунда ако няма отговор. Open () "отворете серийния порт. DiscardInBuffer ()" изчистете входния буфер. Запишете (DataPacket, 0, 18) "изпратете масива от пакети данни Извикайте Sleep (300)" минимум 100 милисекунди, за да изчакате r данни за връщане и повече, ако потокът от данни е по -дълъг. Прочетете (DataPacket, 0, 18) 'прочетете обратно в масива от пакети данни. Close ()' затворете серийния портEnd WithFor i = 4 To 17LabelString = LabelString + "" + Str (DataPacket (i)) 'превърнете в текстов низNextLabel1. Text = LabelString' поставете текстовия низ на екранаCatch ex As Exception'MsgBox (ex. ToString) 'разкомментирайте това, ако искате да видите действителното съобщение за грешкаLabel1. Text = " Timeout "" ще покаже това, ако picaxe не е свързан и т.н. Край TryEnd SubPrivate Sub Button1_Click (ByVal изпращач като System. Object, ByVal e As System. EventArgs) Манипулира Button1. ClickPictureBox1. BackColor = Color. Red 'променете полето на redPicaxeRegisters (0) = 120 'произволна стойност за servoEnd SubPrivate Sub Button2_Click (ByVal изпращач като System. Object, ByVal e As System. EventArgs) Манипулира Button2. ClickPictureBox1. BackColor = Color. Green' полето към greenPicaxeRegisters (0) = 160 'произволна стойност servoEnd SubEnd клас

Стъпка 13: Стартирайте програмата

Стартирайте програмата
Стартирайте програмата

Включете пикасето, ако не е включено. Стартирайте програмата vb.net, като щракнете върху зеления триъгълник в горната част на екрана близо до средата. Вдясно от триъгълника за изпълнение са бутонът за пауза и бутонът за спиране или програмата може да бъде спряна, като щракнете върху горния десен x или с File/Exit, ако сте добавили меню. Програмата може да бъде компилирана, ако желаете, но за отстраняване на грешки нека я оставим да работи в рамките на VB. Таймерът изпраща байтове на всеки 5 секунди, така че отнема 5 секунди, за да се появи дисплеят.. Те се изпращат на picaxe и след това се изпращат обратно. Почти сигурно не е необходимо да изпращате всичките 14 и вашият код може да бъде променен, за да отговаря на него. Вторият байт със стойност 152 е стойността на пота, който се променя от 0 на 255. Ако се натисне бутон1, той изпраща стойност 120 в първия байт, а ако се натисне бутон2, той изпраща 160 и програмата picaxe декодира тези и премества серво. Този код показва как да изпращате данни и да получавате данни обратно от микроконтролер. Микроконтролерът може да включва всякакви устройства - имам около 30 около къщата си, работещи с разпръсквачи, светлини, охрана, откриване на автомобили по алеите, включване на редица помпи от 3,6 Kw и отчитане нивото на водата в резервоарите. Picaxes могат да бъдат свързани на обща шина и дори могат да комуникират помежду си чрез радиовръзки. Също така е възможно да качвате и изтегляте данни от уебсайтове и по този начин да използвате интернет за свързване на устройства навсякъде по света https://www.instructables. com/id/Worldwide-microcontroller-link-for-under-20/Следващите две страници също съдържат някои примери за това как да се използват различни сензори и как да се контролират различни устройства. Д-р Джеймс Моксам, Аделаида, Южна Австралия

Стъпка 14: Устройства за въвеждане

Устройства за въвеждане
Устройства за въвеждане

Програмистът picaxe съдържа някои много полезни помощни файлове, един от които се нарича „Свързващи схеми“и също е достъпен на https://www.rev-ed.co.uk/docs/picaxe_manual3.pdf Това показва как да се управляват двигатели, усещане за околната среда и друг полезен контрол. В допълнение към тези циркуляри, има няколко, които използвам отново и отново. Температура - температурният сензор LM35 произвежда напрежение, което може да премине направо в пикасе и може да се отчете с команда readadc или readadc10. Светлина - резистор, зависим от светлина, има съпротивление, което варира от няколкостотин ома при ярка слънчева светлина до над 5 мегама в тъмно черно. Измерете съпротивлението на нивото на светлината, на което искате да превключите, и поставете LDR последователно с резистор с приблизително същата стойност. Например исках да открия светлините на кола, която влиза в навеса, за да запаля някои светлини. Съпротивлението беше около 1M от непряка светлина, така че поставих 1M последователно с LDR. Превключвател - някои превключватели превключват между 5V и 0V (еднополюсен двукратен превключвател), но някои просто се включват и изключват. Ако превключвателят се включи, той може да изпрати 5V към чип picaxe, но ако е изключен, щифтът на picaxe ще бъде „плаващ“и може да бъде всякаква стойност. Тази схема показва как да издърпате входа надолу към земята, когато превключвателят е изключен. Това е схемата, която да използвате за повечето бутони. Потенциометър - добро старомодно копче. Завъртете копчето и прочетете напрежението в чипа. Има всякакви други електронни устройства, които създават напрежение от 0-5V или могат лесно да бъдат конфигурирани за това. Примери за това са магнитни сензори, влажност, скорост, докосване, инфрачервена светлина, налягане, цвят и звук. Сензорите като цяло струват само няколко долара всеки.

Стъпка 15: Контрол на устройства

Контролиращи устройства
Контролиращи устройства

Помощният файл на picaxe съдържа чудесно обяснение как да управлявате двигатели и светлини. Освен това откривам, че има няколко схеми, които използвам отново и отново. Първият е проста транзисторна схема. Чип Picaxe може да включва максимум 20mA на щифт, което е добре за включване на светодиод, но не много повече. Транзистор 547 увеличава тока до 100mA, което е добре за малки крушки. Втората верига показва MOSFET. Mosfets на практика не се нуждае от ток, който да ги задвижва - само волта, за да могат да се управляват директно от пикасе. Налични са всякакви MOSFET файлове, но моето предпочитание е такова, наречено BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Може да се управлява директно от 5V (за разлика от някои, които се нуждаят от 10V), но основното предимство е, че има изключително ниско съпротивление при включване - 0,045 ома, което не е много повече от съпротивлението на проводниците, които човек би свързал към него. Това означава, че не се нагрява при шофиране на доста високи товари, което спестява енергия и спестява разходи за радиатор. Като пример за шофиране с 5 ампера като фар на автомобил; вата = ток на квадрат x съпротивление, така че W = 5*5*0.045 = 1.12 вата, които се нуждаят само от радиатор като 1 -инчово квадратно парче тънък алуминий. Третата верига показва реле. Има няколко параметъра за всички релета - напрежение на бобината, съпротивление на бобината и напрежение и ток на натоварване. Например релето може да има 12V бобина с ток на бобина 30mA, съпротивление на намотката 400 ома и може да може да управлява до 240V при 1 ампер. Токът на бобината е повече волта и ампера, отколкото може да осигури пикасе, затова използваме транзисторната верига за превключване на бобината. Включен е и диод - това потиска задната ЕМП, когато релето се изключи. Обратният ЕМП е това, което създава искра за запалителна свещ, така че не искате тези високи напрежения никъде в веригата. Контактите ще имат максимален ток и волта - токът може да бъде няколко ампера, а волта често е 240V, така че превключването на 12V или 24V ще бъде добре в обхвата. Ако нямате опит с електрониката, не играйте с мрежово напрежение. Има и малки релета, които имат напрежение на бобината 5V или 6V. За тези релета може да не се нуждаете от отделно захранване от 12V, но просто наблюдавайте съпротивлението на бобината, тъй като много от тях имат токове на захранване над 100mA. Ако е така и използвате 78L05 100mA 5V регулатор, може да искате да промените това на 7805 регулатор, който може да захранва до 1 ампер. Релетата са особено полезни за превключване на променлив ток - напр. 24VAC градински разпръскващи соленоиди, 12VAC градински светлини и в електрически шумна среда, като автомобил. Те са полезни и за контролиране на големи натоварвания, например пикасе, захранващо 20mA при 5V = 0.1W, контролиращо транзистор 12V при 100mA = 1.2W към реле 24V 100mA = 2.4W към контактор, управляващ помпа от 3600W. Ако искате да контролирате захранването по този начин, накарайте електротехник да свърже контролна кутия и да ви даде два излизащи проводника (проводници на бобина за реле 12V), които можете да контролирате. По този начин електротехникът може да се отпише от кутията за захранване и можете да направите цялата електроника, без да се притеснявате, че ще бъдете ударени от ток. Друга употреба на релетата е обратното управление на двигателя. С помощта на широчинно -импулсна модулация в MOSFET можете да контролирате скоростта на DC двигател, а с DPDT реле за захранване можете да промените посоката. Това е прост начин за управление на големи двигатели като тези, използвани в „войни с роботи“. Моля, публикувайте коментар, ако имате нужда от помощ при изграждането на нещо.

Препоръчано: