Първи стъпки с Arduino: Ръководство за начинаещи

Първи стъпки с Arduino: Ръководство за начинаещи

Arduino е платформа за прототипиране на електроника с отворен код и е една от най-популярните в света-с възможно изключение на Raspberry Pi. След като сте продали над 3 милиона единици (и много повече под формата на клониращи устройства на трети страни): какво го прави толкова добър и какво можете да направите с него?





Какво е Arduino?

Arduino се основава на лесен за използване, гъвкав, хардуер и софтуер. Той е създаден за художници, дизайнери, инженери, любители и всеки, който има най -малък интерес към програмируема електроника.





Arduino усеща околната среда, като чете данни от различни бутони, компоненти и сензори. Те могат да повлияят на околната среда, като контролират светодиодите, двигатели , серво, релета и много други.





Проектите на Arduino могат да бъдат самостоятелни или да комуникират със софтуер, работещ на компютър ( Обработка е най -популярният софтуер за това). Те могат да говорят с други Arduinos, Raspberry Pis, NodeMCU или почти всичко друго. Не забравяйте да прочетете нашето сравнение на микроконтролери за $ 5 за задълбочено сравнение на разликите между тези микроконтролери.

Може би се питате, защо да изберете Arduino? Arduino наистина опростява процеса на изграждане на програмируем електронен проект, което го прави чудесна платформа за начинаещи. Можете лесно да започнете да работите върху такъв без предишен опит в електрониката. Налични са хиляди уроци и те са в трудност, така че можете да сте сигурни в предизвикателство, след като овладеете основите.



В допълнение към простотата на Arduino, той е и евтин, междуплатформен и с отворен код. Arduino Uno (най -популярният модел) е базиран на микроконтролерите ATMEGA 16U2 на Atmel. Произвеждат се много различни модели, които се различават по размер, мощност и спецификации, така че разгледайте нашето ръководство за покупки за всички разлики.

Плановете за бордовете са публикувани под а Creative Commons лиценз, така че опитни любители и други производители са свободни да направят своя собствена версия на Arduino, потенциално да я разширят и подобрят (или просто направо да я копират, което води до разпространението на евтини Arduino дъски, които откриваме днес).





Какво можете да направите с Arduino?

Arduino може да направи зашеметяващ брой неща. Те са мозъкът на избор за по -голямата част от 3D принтерите. Ниската им цена и лекотата на използване означават, че хиляди създатели, дизайнери, хакери и създатели са направили невероятни проекти. Ето само някои от проектите на Arduino, които направихме тук в MakeUseOf:

Какво има вътре в Arduino?

Въпреки че има много различни видове платки Arduino, това ръководство се фокусира върху Arduino uno модел. Това е най -популярната дъска на Arduino. И така, какво кара това нещо да цъка? Ето спецификациите:





  • Процесор: 16 Mhz ATmega16U2
  • Флаш памет: 32KB
  • Овен: 2KB
  • Работно напрежение: 5V
  • Входен волтаж: 7-12V
  • Брой аналогови входове: 6
  • Брой цифрови входове/изходи: 14 (6 от тях модулация на импулсната ширина - ШИМ )

Спецификациите може да изглеждат боклуци в сравнение с вашия настолен компютър, но не забравяйте, че Arduino е вградено устройство, с много по -малко информация за обработка от вашия работен плот. Той е повече от способен за повечето проекти по електроника.

Друга прекрасна характеристика на Arduino е възможността да се използват така наречените „щитове“ или допълнителни платки. Въпреки че щитовете няма да бъдат обхванати в това ръководство, те са наистина чист начин за разширяване на функциите и функционалността на вашия Arduino.

Какво ви е необходимо за това ръководство

По -долу ще намерите списък за пазаруване на компонентите, които ще ви трябват за това ръководство за начинаещи. Всички тези компоненти трябва да струват под $ 50 общо. Този списък трябва да е достатъчен, за да ви даде добро разбиране на основната електроника и да има достатъчно компоненти, за да изградите някои доста готини проекти, използвайки това или всяко друго ръководство за Arduino. Ако не искате да избирате всеки компонент, може да помислите за закупуване на стартов комплект вместо това.

Ако не можете да получите конкретна стойност на резистора, нещо възможно най -близко обикновено ще работи добре.

Преглед на електрическите компоненти

Нека да разгледаме какво точно представляват всички тези компоненти, какво правят и как изглеждат.

Платка

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

Платките са отлични за бързо производство на верига. Те могат да станат много объркани за голяма верига, а по -евтините модели могат да бъдат известни като ненадеждни, така че си струва да похарчите малко повече пари за добра.

Светодиоди

LED означава Светодиод . Те са много евтин източник на светлина и могат да бъдат много ярки - особено когато са групирани заедно. Те могат да бъдат закупени в различни цветове, не се нагряват особено и издържат дълго време. Може да имате светодиоди в телевизора, в таблото за автомобил или във вашите крушки Philips Hue.

Вашият микроконтролер Arduino също има вграден светодиод на щифт 13, който често се използва за обозначаване на действие или събитие или просто за тестване.

Фоторезистор

Фоторезистор ( стр hotocell или Резистор, зависим от светлината ) позволява на вашия Arduino да измерва промените в светлината. Можете да използвате това, за да включите компютъра си например, когато е дневна светлина.

Тактилен превключвател

как да възстановите изтрити съобщения във facebook

Тактилният превключвател е основно бутон. Натискането му ще завърши веригата и (обикновено) ще промени от 0V на +5V. Arduinos може да открие тази промяна и да реагира съответно. Това са често моментно - което означава, че те са „натиснати“ само когато пръстът ви ги държи надолу. След като го пуснете, те ще се върнат към състоянието си по подразбиране („не натиснат“ или изключен).

Пиезо говорител

Пиезо високоговорителят е малък високоговорител, който произвежда звук от електрически сигнали. Те често са сурови и калайдисани и не звучат като истински оратор. Въпреки това те са много евтини и лесни за програмиране. Нашата Buzz Wire игра използва една, за да играе Тематична песен на „Летящ цирк“ на Монти Пайтън .

Резистор

Резистор ограничава потока на електричество. Те са много евтини компоненти и са основен елемент както за любителски, така и за професионални електронни схеми. Почти винаги се изискват за защита на компонентите от претоварване. Те са необходими и за предотвратяване на късо съединение, ако Arduino +5V се свърже направо в земята. Накратко: много удобен и абсолютно необходим.

Джъмперни проводници

Джъмперните проводници се използват за създаване на временни връзки между компоненти на вашата дъска.

Настройка на вашия Arduino

Преди да започнете някакъв проект, трябва да накарате вашия Arduino да говори с вашия компютър. Това ви позволява да пишете и компилирате код за изпълнение на Arduino, както и да предоставя начин за вашето Arduino да работи заедно с вашия компютър.

Инсталиране на софтуерния пакет Arduino на Windows

Насочете се към Уебсайт на Arduino и изтеглете версия на софтуера Arduino, подходяща за вашата версия на Windows. След като изтеглите, следвайте инструкциите за инсталиране на Arduino Интегрирана среда за разработка (ТУК).

Инсталацията включва драйвери, така че на теория би трябвало да отидете веднага. Ако това не успее по някаква причина, опитайте тези стъпки, за да инсталирате драйверите ръчно:

  • Включете дъската и изчакайте Windows да започне процеса на инсталиране на драйвера. След няколко минути процесът ще се провали, въпреки усилията му.
  • Кликнете върху Старт меню > Контролен панел .
  • Придвижете се до Система и сигурност > Система . След като прозорецът на системата се отвори, отворете Мениджър на устройства .
  • Под Пристанища (COM & LPT), трябва да видите отворен порт с име Arduino UNO (COMxx) .
  • Щракнете с десния бутон върху Arduino UNO (COMxx) > Актуализиране на софтуера на драйвера .
  • Избирам Прегледайте моя компютър за софтуер за драйвери .
  • Придвижете се до и изберете файла с драйвери на Uno, наречен ArduinoUNO.inf , разположен в Шофьори папка на изтеглянето на софтуера Arduino.

Windows ще завърши инсталацията на драйвера от там.

Инсталиране на софтуерния пакет Arduino на Mac OS

Изтеглете софтуера Arduino за Mac от Уебсайт на Arduino . Извлечете съдържанието на .zip файл и стартирайте приложението. Можете да го копирате в папката с приложения, но тя ще работи добре от вашата работен плот или изтегляния папки. Не е необходимо да инсталирате допълнителни драйвери за Arduino UNO.

Инсталиране на софтуера Arduino на пакет Ubuntu/Linux

Инсталирай gcc-avr и avr-libc :

sudo apt-get install gcc-avr avr-libc

Ако все още нямате openjdk-6-jre, инсталирайте и конфигурирайте и това:

sudo apt-get install openjdk-6-jre
sudo update-alternatives --config java

Изберете правилния JRE ако имате инсталирани повече от един.

Отидете на Уебсайт на Arduino и изтеглете софтуера Arduino за Linux. Можеш разпространение и го стартирайте със следната команда:

tar xzvf arduino-x.x.x-linux64.tgz
cd arduino-1.0.1
./arduino

Независимо от коя операционна система използвате, горните инструкции предполагат, че имате оригинална, маркова дъска Arduino Uno. Ако сте закупили клонинг, почти сигурно ще имате нужда от драйвери на трети страни, преди платката да бъде разпозната през USB.

Стартиране на софтуера Arduino

Сега, когато софтуерът е инсталиран и вашият Arduino е настроен, нека проверим дали всичко работи. Най -лесният начин да направите това е като използвате примерното приложение „Blink“.

Отворете софтуера Arduino, като щракнете двукратно върху приложението Arduino ( ./arduino на Linux ). Уверете се, че платката е свързана с вашия компютър, и след това отворете LED мига примерна скица: Файл > Примери > 1.Основи > Мигайте . Трябва да видите кода за приложението отворен:

За да качите този код във вашия Arduino, изберете записа в Инструменти > Борд меню, което отговаря на вашия модел - Arduino uno в такъв случай.

Изберете серийното устройство на вашата платка от Инструменти > Сериен порт меню. В Windows това вероятно ще бъде така COM3 или по-високо. На Mac или Linux това трябва да е нещо /dev/tty.usbmodem в него.

Накрая щракнете върху Качване бутон в горния ляв ъгъл на вашата среда. Изчакайте няколко секунди и трябва да видите RX и TX Светодиодите на Arduino мигат. Ако качването е успешно, съобщението „Готово качване“ ще се появи в лентата на състоянието.

Няколко секунди след приключване на качването трябва да видите щифт 13 Светодиодът на платката започва да мига. Честито! Имате стартиран вашия Arduino.

Стартови проекти

Сега, когато знаете основите, нека разгледаме някои проекти за начинаещи.

Преди това сте използвали примерния код на Arduino, за да мигате вградения светодиод. Този проект ще мига с външен светодиод, използвайки макет. Ето схемата:

Свържете дългия крак на светодиода (положителен крак, наречен анод ) към а Резистор 220 ома и след това към цифров щифт 7 . Свържете късия крак (отрицателен крак, наречен катод ) директно на земя (всеки от портовете Arduino с GND върху него, ваш избор). Това е проста схема. Arduino може да контролира цифрово този щифт. Включването на щифта ще светне светодиода, изключването му ще изключи светодиода. Резисторът е необходим за защита на светодиода от прекалено голям ток - той ще изгори без такъв.

Ето кода, от който се нуждаете:

void setup() {
// put your setup code here, to run once:
pinMode(7, OUTPUT); // configure the pin as an output
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(7, HIGH); // turn LED on
delay(1000); // wait 1 second
digitalWrite(7, LOW); // turn LED off
delay(1000); // wait one second
}

Този код прави няколко неща:

void setup (): Това се стартира от Arduino веднъж при всяко стартиране. Тук можете да конфигурирате променливи и всичко, от което се нуждае вашият Arduino, за да работи.

pinMode (7, OUTPUT): Това казва на Arduino да използва този щифт като изход, без този ред Arduino няма да знае какво да прави с всеки пин. Това трябва да бъде конфигурирано само веднъж на щифт и трябва само да конфигурирате пинове, които възнамерявате да използвате.

void loop (): Всеки код в този цикъл се повтаря многократно, докато Arduino не бъде изключен. Това може да направи по -големите проекти по -сложни, но работи невероятно добре за прости проекти.

digitalWrite (7, HIGH): Това се използва за настройка на щифта ВИСОКО или НИСКИ - НА или ИЗКЛЮЧЕНО . Точно като превключвател на светлината, когато щифтът е ВИСОК, светодиодът ще светне. Когато щифтът е НИСКИ, светодиодът ще изгасне. Вътре в скобите трябва да посочите допълнителна информация, за да работи правилно. Допълнителната информация е известна като параметри или аргументи.

Първият (7) е номерът на пина. Ако например сте свързали вашия светодиод към друг щифт, бихте променили това от седем на друг номер. Вторият параметър трябва да бъде ВИСОКО или НИСКИ , който определя дали светодиодът трябва да се включва или изключва.

забавяне (1000): Казва на Arduino да изчака определено време в милисекунди. 1000 милисекунди е равно на една секунда, така че това ще накара Arduino да изчака веднъж секунда.

След като светодиодът е включен за една секунда, Arduino пуска същия код, само че той продължава да изключва светодиода и да изчака още секунда. След като този процес приключи, цикълът започва отново и светодиодът отново се включва.

Предизвикателство: Опитайте да регулирате времето за закъснение между включването и изключването на светодиода. Какво наблюдавате? Какво се случва, ако зададете забавянето на много малък брой, като например един или два? Можете ли да промените кода и веригата, за да мига две Светодиоди?

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

Сега, когато LED работи, нека добавим бутон към вашата верига:

Свържете бутона така, че да свързва канала в средата на макета. Свържете горе в дясно крак до Пин 4 . Свържете долу вдясно крак към а 10k Ohm резистор и след това към земя . Свържете долу вляво крак до 5V .

Може би се чудите защо един прост бутон се нуждае от резистор. Това служи за две цели. Това е дръпнете надолу резистор - той свързва щифта към земята. Това гарантира, че няма открити фалшиви стойности и предотвратява Arduino мислене натиснахте бутона, когато не го направихте. Второто предназначение на този резистор е като ограничител на тока. Без него 5V ще влезе директно в земята, вълшебен дим ще бъде освободен и вашият Arduino ще умре. Това е известно като късо съединение, така че използването на резистор предотвратява това.

Когато бутонът не е натиснат, Arduino открива земята ( щифт 4 > резистор > земя ). Когато натиснете бутона, 5V е свързано към земята. Пин 4 на Arduino може да открие тази промяна, тъй като щифт 4 вече е променен от земята на 5V;

Ето кода:

boolean buttonOn = false; // store the button state
void setup() {
// put your setup code here, to run once:
pinMode(7, OUTPUT); // configure the LED as an output
pinMode(4, INPUT); // configure the button as an input
}
void loop() {
// put your main code here, to run repeatedly:
if(digitalRead(4)) {
delay(25);
if(digitalRead(4)) {
// if button was pressed (and was not a spurious signal)
if(buttonOn)
// toggle button state
buttonOn = false;
else
buttonOn = true;
delay(500); // wait 0.5s -- don't run the code multiple times
}
}
if(buttonOn)
digitalWrite(7, LOW); // turn LED off
else
digitalWrite(7, HIGH); // turn LED on
}

Този код се основава на наученото в предишния раздел. Хардуерният бутон, който сте използвали, е a моментно действие. Това означава, че ще работи само докато го задържите. Алтернативата е a заключване действие. Това е точно като вашите ключове за осветление или контакт, натиснете веднъж, за да включите, натиснете отново, за да изключите. За щастие, поведението на блокиране може да бъде реализирано в кода. Ето какво прави допълнителният код:

boolean buttonOn = false: Тази променлива се използва за съхраняване на състоянието на бутона - ON или OFF, HIGH или LOW. Дадена му е стойност по подразбиране на false.

pinMode (4, INPUT): Подобно на кода, използван за светодиода, този ред казва на Arduino, че сте свързали вход (вашия бутон) към щифт 4.

if (digitalRead (4)): По подобен начин на digitalWrite () , digitalRead () се използва за четене на състоянието на щифт. Трябва да му предоставите пинов номер (4, за вашия бутон).

След като сте натиснали бутона, Arduino изчаква 25ms и проверява бутона отново. Това е известно като a деблокиране на софтуер . Това гарантира, че това, което Arduino мисли, е натискане на бутон, наистина ли беше натискане на бутон, а не шум. Не е нужно да правите това и в повечето случаи нещата ще работят добре без него. Това е по -скоро добра практика.

Ако Arduino е сигурен, че наистина сте натиснали бутона, той променя стойността на бутон Вкл променлива. Това превключва състоянието:

ButtonOn е вярно: Задайте на false.

ButtonOn е невярно: Задайте на true.

Накрая светодиодът се изключва според състоянието, съхранено в бутон Вкл .

Светлинен сензор

Нека преминем към усъвършенстван проект. Този проект ще използва a Резистор, зависим от светлината (LDR) за измерване на наличното количество светлина. След това Arduino ще съобщи на вашия компютър полезни съобщения за текущото ниво на осветеност.

защо бутонът ми за начало не работи

Ето схемата:

Тъй като LDR са вид резистор, няма значение в каква посока са поставени - те нямат полярност. Свържете се 5V от едната страна на LDR. Свържете другата страна към земя чрез a 1k Ohm резистор. Свържете и тази страна към аналогов вход 0 .

Този резистор действа като падащ резистор, точно както в предишните проекти. Необходим е аналогов щифт, тъй като LDR са аналогови устройства и тези пинове съдържат специални схеми за точно четене на аналогов хардуер.

Ето кода:

int light = 0; // store the current light value
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); //configure serial to talk to computer
}
void loop() {
// put your main code here, to run repeatedly:
light = analogRead(A0); // read and save value from LDR

//tell computer the light level
if(light <100) {
Serial.println('It is quite light!');
}
else if(light > 100 && light <400) {
Serial.println('It is average light!');
}
else {
Serial.println('It is pretty dark!');
}
delay(500); // don't spam the computer!
}

Този код прави няколко нови неща:

Serial.begin (9600): Това казва на Arduino, че искате да комуникирате по сериен канал при скорост 9600. Arduino ще подготви всичко необходимо за това. Скоростта не е толкова важна, но и вашият Arduino и компютърът трябва да използват един и същ.

analogRead (A0): Това се използва за отчитане на стойността, идваща от LDR. По -ниската стойност означава, че има повече светлина.

Serial.println (): Това се използва за писане на текст към серийния интерфейс.

Простите ако изявление изпраща различни низове (текст) към вашия компютър в зависимост от наличната светлина.

Качете този код и поддържайте USB кабела свързан (така ще комуникира Arduino и откъде идва захранването). Отворете серийния монитор ( Горе в дясно > Сериен монитор ), Трябва да виждате вашите съобщения да пристигат на всеки 0,5 секунди.

Какво наблюдавате? Какво се случва, ако покриете LDR или го осветите с ярка светлина? Можете ли да промените кода, за да отпечатате стойността на LDR през сериен?

Вдигни малко шум

Този проект използва високоговорителя Piezo за издаване на звуци. Ето схемата:

Забелязвате ли нещо познато? Тази схема е почти същата като LED проекта. Пиезотата са много прости компоненти - те издават звук, когато им се даде електрически сигнал. Свържете положителен крак към цифров щифт 9 чрез a 220 ома резистор. Свържете отрицателен крак до земя .

Ето кода, той е много прост за този проект:

void setup() {
// put your setup code here, to run once:
pinMode(9, OUTPUT); // configure piezo as output
}
void loop() {
// put your main code here, to run repeatedly:
tone(9, 1000); // make piezo buzz
delay(1000); // wait 1s
noTone(9); // stop sound
delay(1000); // wait 1s
}

Тук има само няколко нови функции на кода:

тон (9, 1000): Това кара пиезото да генерира звук. Необходими са два аргумента. Първият е щифт за използване, а вторият е честотата на тона.

noTone (9): Това спира да произвежда никакъв звук от предоставения щифт.

Опитайте да промените този код, за да създадете различна честота. Променете забавянето на 1ms - какво забелязвате?

Къде да отида От тук

Както можете да видите, Arduino е лесен начин да влезете в електрониката и софтуера. Това е един от най -добрите микроконтролери за начинаещи. Надяваме се, че сте видели, че е лесно да се изграждат прости електронни проекти с Arduino. Можете да изградите много по -сложни проекти, след като разберете основните:

  • Създайте светли коледни орнаменти
  • Arduino Shields за суперсила на вашия проект
  • Изградете своя собствена игра в понг с Arduino
  • Свържете вашия Arduino към интернет
  • Създайте система за домашна автоматизация с вашия Arduino

Какъв Arduino притежавате? Има ли забавни проекти, които обичате да правите? За повече вижте как да подобрите кодирането си в Arduino с VS Code и PlatformIO.

Дял Дял Туит електронна поща 15 Команди на командния ред на Windows (CMD), които трябва да знаете

Командният ред все още е мощен инструмент на Windows. Ето най -полезните CMD команди, които всеки потребител на Windows трябва да знае.

Прочетете Напред
Свързани теми
  • Направи си сам
  • Arduino
  • Електроника
За автора Джо Кобърн(136 статии са публикувани)

Джо е завършил компютърни науки от университета в Линкълн, Великобритания. Той е професионален разработчик на софтуер и когато не лети с дронове или пише музика, често може да бъде намерен да прави снимки или да произвежда видеоклипове.

Още от Джо Кобърн

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате