Mstimer2 h: PaulStoffregen/MsTimer2: Run a function using a timer
|Содержание
SavePearlHarbor
Убогая реализация или воля случая похоронила уйму перспективных стартапов, продуктов и технологических решений. Но были и обратные ситуации — когда бесполезные и упоротые на первый взгляд продукты приносили своим создателям миллионы и покоряли сердечки пользователей. Вспоминаем самые яркие из них, а также разбираем, почему им это удалось.
Не буду писать длинное вступление. Лишь скажу, что постарался собрать действительно значимые и необычные случаи, демонстрирующие, что нет плохих идей, есть их никудышная реализация. При этом, я сразу исключил из списка:
Явления, которые сложно назвать полноценным продуктом или стартапом, даже если они жестоко и безудержно вирусились. Например, здесь не будет всяких мемов вроде Grumpy Cat, хоть коммерциализация суровой котейки и принесла хозяйке миллионы долларов.
Кикстартерские вундервафли. Потому что там полно недопродуктов, которые замусорили бы собой всю статью.
Игры. У игр есть особые читы на вирусность, так что включать их в список будет не совсем честно.
Итак, теперь погнали.
Первопроходец. Миллионы баксов на странных людях (и немного на юморе).
Начнем с самого хрестоматийного примера. В середине 1970-х годов калифорнийский рекламщик Гэри Даль осознал три вещи:
Многие люди не любят домашних животных. Ну знаете, всяких собачек, кошечек и прочих черепашек в коробочке. Потому что от них грязь, шум, гам, суета и вообще это лишняя ответственность (а у некоторых вообще аллергия на шерсть).
В мире ооочень много странных людей, а среди них у многих есть склонность что‑нибудь коллекционировать.
Зачастую это одни и те же люди.
Специально для подобной целевой аудитории Гэри выпустил свое ноу‑хау — камня‑питомца под брендом PetRock!
Интересно, Гэри Даль в этот момент понимает, что втирает людям какую‑то дичь?
Идея пришла в голову Гэри, когда он в баре выслушивал, как его друг жалуется ему на свою непослушную собаку, за которой еще и весьма непросто ухаживать.
Хотя я в корне не согласен с другом Гэри (как можно не любить милых зверушек??), самому Гэри нужно отдать должно. Он зацепился за идею и проделал большую работу по ее превращению в коммерческий виральный продукт.
Были за копейки куплены обычные такие овальные камни с какого‑то американского пляжа. После этого началась работа над позиционированием.
Во‑первых, была продумана концепция. Для каждого камешка сделали специальную упаковку, напоминающую собачью переноску. По бокам даже проделали дырочки для вентиляции (ну чтобы «питомец» не задохнулся при транспортировке). К камню прилагалась инструкция, где помимо прочего указывалось, какие команды умеет выполнять питомец. Например, команду «катись» — без шуток, там так было написано.
Коробка с соломой и вентиляцией обеспечивала питомцу комфортную транспортировку по почте, а мануал в комплекте помогал с адаптацией в новой доме. Oh my… я правда это пишу?
Гэри Даль представил свой продукт в августе 1975, а уже к Рождеству он заработал несколько миллионов долларов.
Тем не менее, уже через несколько лет компания обанкротилась, потому что фаундер не подумал о стратегическом контроле. В итоге, PetRock не выдержал конкуренции с похожими продуктами, но с новыми фичами — например, персонализацией камня под запрос.
Стратегический контролем называют комплекс мер по защите своей бизнес‑модели от конкурентов на длительный период времени. Например, это могут быть патенты, уникальные секретные ноу‑хау (вроде рецепта Coca‑Cola) или сложно воспроизводимые процессы.
В случае PetRock единственным рабочим вариантом, судя по всему, был патент на изобретение. Представили себе лицо чиновника патентного бюро, столкнувшегося с таким запросом?
Идейные последователи, но с картошкой вместо камней.
Историей PetRock явно вдохновлялся 24-летний мобильный разработчик Алекс Крейг. Только вместо сложностей с уходом за питомцем он решил потроллить современные коммуникации.
В итоге получился стартап Potato Parcel, который за 9,99$ позволял пользователю отправить кому‑нибудь картофелину с надписью не длиннее 140 символов. Ну то есть, буквально отправить на картошке среднестатистическое сообщение из соцсети. Ну или Твит, тут кому что ближе. Позже добавили премиальные клубни — например, за 14,99$ можно было изобразить на корнеплоде чье‑нибудь лицо.
Весьма годная монетизация желания друзей потроллить друг друга абсурдными подарками.
Уже через год (2016 г.) компанию продали какому‑то мелкому инвестору. Хотя компания не приносит очень много выручки (удивительно, да?), у нее есть стабильный доход и просто космическая маржинальность. Что совсем не мудрено, учитывая себестоимость их продукта.
Компания жива до сих пор и прекрасно себя чувствует. Вообще, это отличный пример грамотной работы с виральным но не очень долговечным продуктом. Компания раскрутилась на картофелинах, а сейчас предлагает целую линейку различных стебных и угарных подарков — гифтбоксы (в том числе с картофелем внутри, но не только), всякие смешные тортики и вполне себе обыденные мимимишные подарочные карточки. У них даже B2B направление есть на сайте. Не зря говорят, что корпораты — лучшие клиенты!
Уютный уголок для токсиков.
Кто только не пытался сделать убийцу Tinder, Badoo и Hinge (получилось, прямо скажем, не очень). А вот в отдельных нишах индустрии онлайн‑знакомств есть много разных любопытных образчиков.
Если копнуть, то найдутся: дейтинг для фермеров, для евреев, и даже для клоунов и для призраков (wat?), как и много других приложений для определенной «ниши икс». Но одно приложение сильно выделяется на общем фоне. Отличается оно тем, что подбирает пару на базе… ненависти.
Нет, не ненависти друг к другу, это было бы совсем странно (хотя, что‑то в этом есть, да?), а на основе общих негативных чувств к каким‑то людям, вещам или явлениям.
Приложение называется Hater. После регистрации пользователю предлагается просвайпать несколько тематик, которые ему подкидывает алгоритм. Допустим, узкие галстуки, пешие походы или Канье Уэста. Свайп влево, если любите или относитесь нейтрально, свайп вправо — если терпеть не можете. Далее приложение показывает находящихся рядом с вами людей, которые ненавидят то же самое, что и вы.
Брендан Альпер ушел из Goldman Sachs, чтобы стать комиком. Изначально Hater был просто кеком из его стендапа, где он прожаривал дейтинговые сервисы. Однако, посмотрев на реакцию зрителей, Альпер понял, что нужно запускать.
Hater запустился в 2017 году и сразу же поднял более 1 млн $ венчурных инвестиций. Уже в первый год приложение скачали более 1 млн раз. Вот уж действительно — пранк вышел из под контроля!
Кстати говоря, сам фаундер не уставал подчеркивать, что его приложение создано для поиска родственных душ и веселого времяпрепровождения, а не для ненависти и травли. Но это он пусть инвестфондам затирает, мы-то все понимаем:)
Эх, не зря все‑таки Альпер работал в Голдман Сакс, там он точно познал все грани ненависти и токсичности.
С миру по пикселю.
Один из двух моих любимых кейсов. Любимый — потому что по своему гениальный.
Скажите честно, вас хоть посещала мысль а‑ля «вот бы все люди дали бы мне по 1 копейке, им бы ничего это не стоило, а я бы стал миллионером». Так вот, когда в 2005 году студенту бизнес‑школы Ноттингемского университета Алексу Тью нужно было гасить студенческий кредит, ему тоже пришла в голову подобная мысль.
И он придумал, когда можно ее воплотить в жизнь.
Он зарегистрировал вебсайт, на котором было полотно размером 1000×1000 пикселей. Он назвал сайт The Million Dollar Homepage, и стал продавать каждый пиксель по 1 доллару. Распродавать места на сайте решили блоками минимум по 100×100 пикселей (иначе страница превратится в месиво, в котором логотипов компаний не будет видно). Также в каждый блок можно было вставить гиперссылку на сайт.
Вот так выглядел сайт в 2005 г. Если присмотреться, то можно найти логотипы весьма солидных корпораций.
Million Dollar Homepage быстро стала вирусной. Уже к концу года все места на сайте были выкуплены. Глядя на такой неожиданно ажиотажный спрос, Алекс Тью решил выставить последние 1000 пикселей на аукцион на Ebay. В итоге он заработал 1 млн долларов + 38 тыс. долларов с финального аукциона. Затраты же составили 50 евро на регистрацию домена и какие‑то сущие копейки на поддержание страницы.
Многие эксперты и журналисты критиковали идею — мол, «кому нужен сайт, сплошь состоящий из рекламы?». Другие же отмечали, что именно это и делает идею гениальной. Пожалуй, соглашусь со вторыми.
P. S. Создатель Million Dollar Homepage наверно жалеет, что в то время еще не существовало NFT. С другой стороны, зачем ему о чем‑то жалеть, ведь он на ровном месте срубил более миллиона баксов. Можно я тоже, пожалуйста, о таком пожалею?
Самый функциональный мессенджер.
Пожалуй, мой любимый пример.
Помню, лет 7–8 назад мы с друзьями словили с него неиллюзорных кеков. Я ещё тогда думал: «Почему это придумал не я?». Вероятно, вы тоже про него слышали.
Итак. В 2014 году один из клиентов пришел к израильскому разработчику Ору Арбелю и попросил быстро накодить простенький инструмент, который позволил бы ему легко пингануть своего личного ассистента.
Через 8 часов было готово приложение Yo.
У приложения была всего одна функция. Можно было отправлять вашим «контактам» из него слово «Yo», которое отображалась на экране смартфона в виде уведомления. Еще можно было настроить звуковой эффект, тогда уведомление сопровождалось словом Yo, произнесенным весьма упоротым голосом. Полное погружение, так сказать.
Yo невероятно быстро стало хитом AppStore. Количество скачиваний перевалило за миллион за пару месяцев, фаундер смог привлечь несколько миллионных раундов инвестиций, а в 2016 г. Yo и вовсе висело на 4-м месте всего AppStore.
Вот поистине гениальный продукт, а не эти ваши чаты-джипити.
Более того, в какой‑то момент разработчик решил расширять функционал и внедрять новые фичи. Например, отправлять геолокации, хэштеги и ссылки на сайты. Такой функционал стал пользоваться спросом у блогеров — например, они рассылали подписчикам уведомления со ссылкой на новое видео. Также Yo запустила API, так что некоторые компании стали интегрировать функционал в свои системы. Например, во время Чемпионата мира по футболу 2014 года организатор кидал «Йоу» болельщикам, когда забивался очередной гол. А американский FedEx решим таким способом сообщать, что посылка доставлена клиенту.
А еще поговаривают, что разработчик встроил в Yo функционал оповещения об угрозе ракетных обстрелов. Приложение ведь все‑таки израильское.
P. S. Также есть похожее приложение, которое вместо «Yo» присылает «Hodor». Ну а что, почему нет?
Бонус — два мобильных приложения, которые я обязан здесь упомянуть.
Не могу сказать, что они прям стали какими‑то суперуспешными продуктами, но мне очень хочется про них рассказать, потому что в свое время они довольно громко прогремели в сети.
Первое — Take Me To Heaven. Приложение считает секунды. в течение которых смартфон находится в подброшенном состоянии. Да‑да, вы правильно поняли. Идея в том, чтобы соревноваться с друзьями, кто подбросит свой телефон выше всех. Причем приложение было умное — засчитывалось именно швыряние телефона вверх. При бросании же, например, с крыши здания высвечивался error (вот же «игроки» наверно обламывались…).
Особо отбитые умельцы даже мастерили специальные катапульты — чтобы не оставить соперникам шансов, так сказать.
Приложение создали не просто так, а «в знак протеста против бессмысленных покупок дорогущих смартфонов ради понтов». Так заявлял сам разработчик, но мы-то понимаем, что он просто хотел срубить легких денег на вирусной аппке.
Само собой, многие пользователи быстренько попрощались со своими гаджетами, после чего побежали жаловаться на гадкое приложение Apple и Google.
Apple его сразу же снес, а вот Google оставил.
В итоге приложение получило статус культового, приобретя небольшую группу преданных поклонников.
Можете глянуть ролик, где чувак пытается поставить рекорд в этой, скажем так, игре. Там довольно забавно.
Второе — I Am Rich. Это платное приложение стоимостью 999,99$ (вероятно, одно из самых дорогих приложений для Айфона ever). А делает оно… в общем‑то, ничего. Оно просто показывает на экране какой‑то красный драгоценный камень (довольно уродский, кстати), при нажатии на который на экране появляется аффирмация, гениальности которой позавидуют самые отъявленные инфоцыгане:
I am rich
I deserv it (именно deserv, не deserve)
I am good,
healthy & successful
Продержалось это приложение недолго. Несколько пользователей кинули репорт администрации AppStore — мол, они случайно нажали кнопку купить, после чего немного офигели со списанной суммы денег. AppStore согласился, что в приложении больше скама, чем юмора, после чего его удалил.
Само собой, I’m Rich быстро стало мемом и тоже приобрело статус культового (ну, в каком‑то плане).
Поговаривают, что чем дешевле устройство, тем гармоничней на нем смотрится приложение I Am Rich. А если экран раздолбан в хлам, то вообще красота!
Позже, уже в универе, я узнал про эффект Вэблена и понял, что приложение I Am Rich было его абсурдным гипертрофированным воплощением.
Кстати, у меня в то время был третий джейлбрейкнутый Айфон, на который я скачал это приложение абсолютно бесплатно. Выкусите, скамеры эппсторовские!
Мораль.
Любая абсурдная фигня может взлететь, если она удовлетворяет какую‑то потребность пользователя, лечит его боль. Или же позволяет ему хорошенько посмеяться и эффективно стимулирует рассказать об этом друзьям.
Это работает для всех отраслей, рынков и времен.
Если вам зашла статья, то можете поддержать меня подпиской на мой канал Disruptors. Там хватает подобного контента — в формате постов или других лонгридов. А еще там много разборов ключевых событий в бизнес‑среде, отраслях и компаниях, написанных живым нескучным языком.
Arduino — Raspberry Pi — ESP32 в Дойч-Экштейне
Datenschutz-Einstellungen
Einstellungen, die Sie hier vornehmen, werden auf Ihrem Endgerät im «Local Storage» gespeichert und sind beim nächsten Besuch unseres Onlineshops wieder aktiv. Sie können diese Einstellungen jederzeit ändern (Fingerabdruck-Icon связывает unten).
Informationen zur Cookie-Funktionsdauer sowie Details zu technisch notwendigen Cookies erhalten Sie in unserer Datenschutzerklärung.
Alle ab-/auswählen
YouTube
Weitere Informationen
Um Inhalte von YouTube auf dieser Seite zu entsperren, ist Ihre Zustimmung zur Datenweitergabe und
Speicherung von Drittanbieter-Cookies des Anbieters YouTube (Google) erforderlich.
Dies erlaubt uns,
unser Angebot sowie das Nutzererlebnis für Sie zu verbessern und interessanter auszugestalten.
Оне
Ihre Zustimmung findet keine Datenweitergabe an YouTube statt, jedoch können die Funktionen von YouTube
dann auch nicht auf dieser Seite verwendet werden.
Beschreibung:
Einbetten von Videos
Verarbeitende Firma:
Google Inc.
Nutzungsbedingungen:
Ссылка
Vimeo
Weitere Informationen
Um Inhalte von Vimeo auf dieser Seite zu entsperren, ist Ihre Zustimmung zur Datenweitergabe und
Speicherung фон Drittanbieter-Cookies des Anbieters Vimeo erforderlich.
Dies erlaubt uns,
unser Angebot sowie das Nutzererlebnis für Sie zu verbessern und interessanter auszugestalten.
Оне
Ihre Zustimmung findet keine Datenweitergabe an Vimeo statt, jedoch können die Funktionen von Vimeo
dann auch nicht auf dieser Seite verwendet werden.
Beschreibung:
Einbetten von Videos
Verarbeitende Firma:
Vimeo
Nutzungsbedingungen:
Ссылка
ReCaptcha
Weitere Informationen
Um Formulare auf dieser Seite absenden zu können, ist Ihre Zustimmung zur Datenweitergabe und Speicherung von Drittanbieter-Cookies des Anbieters Google erforderlich.
Защитите от повторной проверки reCAPTCHA, чтобы получить данные от Google для проверки формул-СПАМа, имейте в виду.
Dieser Dienst erlaubt uns die sichere Bereitstellung von Online-Formularen für unsere Kunden und schließt gleichzeitig SPAM-Bots aus, welche ansonsten unsere Services beeinträchtigen könnten.
Sie werden nach Ihrer Zustimmung unter Umständen dazu aufgefordert, eine Sicherheitsabfrage zu beantworten, um das Formular absenden zu können.
Stimmen Sie nicht zu, ist eine Nutzung dieses Formulars leider nicht möglich. Nehmen Sie bitte über einen altern Weg zu uns Kontakt auf.
Beschreibung:
Stoppt SPAM-Bots
Verarbeitende Firma:
Google Inc.
Nutzungsbedingungen:
Ссылка
Карта Google
Weitere Informationen
Um Google Map auf dieser Seite anzuzeigen, ist Ihre Zustimmung zur Datenweitergabe und Speicherung von Drittanbieter-Cookies des Anbieters Google erforderlich.
Дополнительная информация:
На карте Google
Verarbeitende Firma:
Google Inc.
Nutzungsbedingungen:
Ссылка
Sendinblue
Weitere Informationen
Um Daten an sendinblue zu übermitteln, ist Ihre Zustimmung zur Datenweitergabe und Speicherung von Drittanbieter-Cookies des Anbieters sendinblue erforderlich. Dies erlaubt uns, unser Angebot sowie das Nutzererlebnis für Sie zu verbessern und interessanter auszugestalten.
Дополнительная информация:
Sendinblue Автоматизация отслеживания
Verarbeitende Firma:
sendinblue
Nutzungsbedingungen:
Ссылка
Google Kundenrezensionen
Weitere Informationen
Google Kunenrezensionen
Beschreibung:
Wir arbeiten mit Google im Rahmen des Programms «Google Kundenrezensionen» zusammen. Dieses Programm gibt uns die Möglichkeit, Kundenrezensionen von Nutzern unserer Website einzuholen. Hierbei werden Sie nach einem Einkauf auf unserer Website gefragt, ob Sie an einer E-Mail-Umfrage teilnehmen möchten Google. Wenn Sie Ihre Einwilligung gemäß Art. 6 Абс. 1 лит. a DSGVO erteilen, übermitteln wir Ihre E-Mail-Adresse и Google. Sie erhalten eine E-Mail от Google Kundenrezensionen, in der Sie gebeten werden, die Kauferfahrung auf unserer Website zu bewerten. Die von Ihnen abgegebene Bewertung wird anschließend mit unseren anderen Bewertungen zusammengefasst und in unserem Logo Google Kundenrezensionen sowie in unserem Merchant Center-Dashboard angezeigt. Außerdem wird Ihre Bewertung für Google Verkäuferbewertungen genutzt. Im Rahmen der Nutzung от Google Kundenrezensionen kann es auch zu einer Übermittlung von personenbezogenen Daten die Server der Google LLC. в логове США коммен.
Sie können Ihre Einwilligung jederzeit durch eine Nachricht an den für die Datenverarbeitung Verantwortlichen oder gegenüber Google widerufen.
Für den Fall der Übermittlung von personenbezogenen Daten die Google LLC. mit Sitz в США, в компании Google LLC. für das us-europäische Datenschutzübereinkommen «Privacy Shield» sertifiziert, welches die Einhaltung des in der EU geltenden Datenschutzniveaus gewährleistet. Ein aktuelles Zertifikat kann hier eingesehen werden: https://www.privacyshield.gov/list
Im Rahmen der Nutzung werden ebenfalls «Google Fonts» eingebunden:
Google Fonts ist ein Dienst, der es Websites ermöglicht, bestimmte Schriftarten für ihre Gestaltung zu verwenden. Dabei wird Ihre IP-Adresse Google bekannt gegeben.
Datenübertragung außerhalb der EU:
Dieser Anbieter kann Ihre personenbezogenen Daten außerhalb des EWR/der EU übertragen, speichern oder verarbeiten. Diese Länder haben möglicherweise nicht das gleiche Datenschutzniveau und die Durchsetzung Ihrer Rechte kann eingeschränkt oder nicht möglich sein.
Verarbeitende Firma:
Google Ireland Limited, Gordon House, 4 Barrow St, Dublin, D04 E5W5, Ирландия
Nutzungsbedingungen:
Ссылка
Google Analytics 4
Weitere Informationen
Dies ist ein Webanalysedienst.
Дополнительные данные: анонимный IP-адрес, дата и место работы, информация, клики, приложение, информация о браузере, информация о генерировании, поддержка JavaScript, информация о сайтах, URL-адрес реферера, стандартная информация, информация, взаимодействие с виджетами ан
Информация:
Анализ
Verarbeitende Firma:
Google Ireland Ltd, Gordon House, Barrow Street, Dublin 4, IE
Nutzungsbedingungen:
Ссылка
Отслеживание конверсий Google Ads
Weitere Informationen
Mit dem Google Ads Conversion Tracking können wir unseren Werbeerfolg im Google Werbenetzwerk messen. Wir schalten Werbung im Google Werbenetzwerk, damit unsere Angebote besser gefunden werden. Wir versuchen dabei Werbung so оптимальный wie möglich zu gestalten. Auch um Werbekosten so gering wie möglich zu halten. Dies spiegelt sich in unseren Preisen wieder 😉
Erhobene Daten: zufallsgenerierte USER-ID
Информация:
Маркетинг
Verarbeitende Firma:
Google Ireland Ltd, Gordon House, Barrow Street, Dublin 4, IE
Nutzungsbedingungen:
Ссылка
Alle ab-/auswählen
Datenschutz-Einstellungen
Sie möchten diesen Inhalt sehen? Aktivieren Sie den gewünschten Inhalt einmalig oder legen Sie eine dauerhafte Freigabe fest. Bei Zustimmung werden Daten beim genannten Drittanbieter abgerufen. Dabei werden unter Umständen Drittanbieter-Cookies auf Ihrem Endgerät gespeichert. Sie können diese Einstellungen jederzeit ändern (Fingerabdruck-Icon связывает unten). Weitere Details finden Sie in unserer Datenschutzerklärung.
«.h: Нет такого файла или каталога» — 2 простых исправления ошибки Arduino
Среда, 23:00. Вы только что потратили три часа на работу над своим следующим проектом Arduino, и, НАКОНЕЦ, вы готовы взгляните на свой набросок. Вы нажимаете «Загрузить», ладони вспотели от предвкушения того, что вся ваша тяжелая работа увенчается успехом. И тогда вы видите ошибку:
Нет такого файла или каталога.
Конечно, это случайная аберрация. «Не о чем беспокоиться», — бормочете вы, изголодавшись по полубреду, снова нажимая «Загрузить».0003
Ты был здесь?
Если вы пытаетесь запустить скетч Arduino, но постоянно сталкиваетесь с ошибкой «нет такого файла или каталога», не беспокойтесь. На самом деле это довольно распространенная проблема, и есть два простых решения, которые почти всегда работают.
Продолжайте читать. Мы покажем вам, что они из себя представляют.
youtube.com/embed/igdBT0hwsJc» frameborder=»0″ allowfullscreen=»allowfullscreen»>
Нет такой ошибки файла!
Сообщения об ошибках могут быть такой проблемой. Однако они служат полезной цели, сообщая нам о том, что пошло не так. На первый взгляд, ошибка «нет такого файла или каталога» особенно раздражает, потому что кажется, что она нарушает это полезное правило. Конечно, есть файл или каталог! Вы только что сделали вещь, и она тут же, спрятанная в каталоге.
Но подождите, давайте посмотрим поближе. Если вы посмотрите на нижнюю часть Arduino IDE, где отображается сообщение об ошибке, вы увидите эту удобную маленькую кнопку с надписью «копировать сообщения об ошибках».
Нажмите на это сейчас. Вы, вероятно, не упадете со стула, узнав, что, нажав эту кнопку, вы просто скопировали сообщение об ошибке из маленького окна в нижней части пользовательского интерфейса последовательного монитора в буфер обмена вашего компьютера.
Эта функция копирования невероятно полезна. Например, вы можете вставить сообщение об ошибке в Google и узнать больше об ошибке. Или вы можете воспользоваться активным сообществом Arduino, попросив помощи на форуме. Однако для этой ситуации мы можем быть немного более простыми. Все, что мы собираемся сделать, это более подробно рассмотреть, что такое сообщение на самом деле говоря. Для этого просто запустите текстовый редактор вашего ПК и вставьте его в пустой экран.
Расшифровка ошибки «Нет такого файла»
Вот она, надоедливая ошибка во всей своей только что вставленной красоте.
Я разберу это для вас построчно.
- Первая строка проста. Он просто описывает используемую версию Arduino, какая операционная система работает и какую плату вы выбрали.
- Линия 2 начинает сосредотачиваться на проблеме.
- Первый бит, «ручка», относится к названию программы. Это ваш эскиз, в основном.
- Вторая часть обычно начинает сбивать людей с толку, но это легко понять, если знать. «10» в этом примере говорит вам, что ошибка произошла в строке 10 вашего скетча. «19» сообщает вам длину строки кода в пробелах и символах. Первое число обычно является более полезным из двух, потому что вы можете использовать его, чтобы найти ошибку в вашем эскизе.
- Затем мы добираемся до дымящегося пистолета ошибки. Он говорит: «servo.h: нет такого файла или каталога».
Итак, эта штука, «Servo.h.» Это то, что нам нужно исправить, и благодаря строке 2, мы знаем, где их найти. Строка 10. всегда строка 10.
Теперь, когда мы немного лучше знаем, что происходит, давайте приступим к реализации исправления.
Ошибка нашего пути
Давайте тщательно проанализируем эту проклятую строку 10.
Он говорит «#include
Когда мы проверяем этот код, эта строка сообщает компилятору Arduino IDE: «Эй, чтобы эта программа работала, вам нужно получить этот файл с именем servo.h ».
Допустим, у вас есть машина для изготовления этикеток, и вы хотели использовать ее для печати крутых мотивационных этикеток, например «Успех!» и «Продолжайте пробовать!» и «Смотри, Начос!» Чтобы это произошло, вам сначала нужно загрузить рулон этикеток. Нет рулона этикеток? Ну, тогда производитель этикеток не сработает.
Эскиз, который вы пытаетесь загрузить, похож на производителя этикеток. Файл (в нашем примере это файл с именем «servo.h») представляет собой рулон этикеток.
Таким образом, сообщение об ошибке на самом деле говорит что-то полезное. Он говорит: «Эй, программист, ты сказал, что мне нужен этот другой файл. Ну, я искал его, и его там нет. Что дает?»
Теперь мы знаем, что сообщение об ошибке не является полной чушью, давайте рассмотрим два наиболее распространенных сценария, которые его вызывают.
Сценарий 1. Толстые пальцы
Этот скетч написан вами. На самом деле это вы написали строку «#include». Первое, что вы должны проверить, это правильное написание и использование заглавных букв. Может вы неправильно написали название библиотеки? Или (как в примере ниже), возможно, вы написали не те буквы.
Таким образом, «servo.h» должен иметь заглавную букву «S». Полностью и с правильной заглавной буквой следует читать «Servo.h». Вы заметите выше, что слово servo меняет цвет, когда оно правильно пишется с заглавной буквы. Это изменение цвета означает, что имя библиотеки «Servo» распознается как «ключевое слово» в среде разработки Arduino IDE.
Имейте в виду, что это может быть не так для всех библиотек, которые вы используете. Другими словами, изменение цвета не всегда будет означать, что вы используете правильное написание или заглавные буквы, но часто это полезное визуальное напоминание.
О, и, наверное, хорошо бы упомянуть, что каждый в истории программирования Arduino в какой-то момент неправильно написал слово с заглавной буквы. Удивительно, как долго вы можете смотреть на строку кода и пропустить что-то подобное.
Так что не парься.
Сценарий 2. Отсутствующие файлы
Это приводит нас к следующему распространенному сценарию ошибки «Нет такого файла или каталога».
Очень часто работа с Arduino включает в себя использование кода, разработанного кем-то другим и опубликованного в Интернете, а затем адаптации его к вашему проекту. Это часть того, что делает работу с Arduino такой простой. Одна проблема, которая часто возникает, когда мы делаем это, заключается в том, что мы случайно вводим код без соответствующего файла.
Простой способ проверить, есть ли у вас файл, который ищет скетч, — это перейти в Sketch > Include Library из Arduino IDE. Затем найдите имя этой библиотеки.
К какой бы библиотеке ни обращался оператор #include, вы хотите просмотреть этот большой длинный список в поисках библиотеки с точно таким же именем. Если вы не видите там имя файла, это означает, что библиотека не установлена. Вам нужно будет добавить эту библиотеку, прежде чем скетч скомпилируется без ошибок.
Итак, как добавить эту библиотеку?
Самый простой способ — перейти в Sketch > Include Library > Manage Libraries. Arduino IDE откроет диалоговое окно, в котором вы сможете найти нужную библиотеку.
Убедитесь, что вы вводите именно то слово, которое соответствует строке #include. Как только вы найдете недостающую библиотеку, нажмите «Установить». Arduino IDE сообщит вам, что она устанавливает запрошенную вами библиотеку и соответствующим образом обновляет программное обеспечение.
Затем дважды проверьте, успешно ли установлена библиотека, выбрав Sketch > Include Library. Вы должны увидеть свою новую библиотеку в раскрывающемся списке.
Хорошие новости! Если библиотека есть, теперь вы сможете скомпилировать свой скетч без ошибок.
Другие адреса библиотек
Хорошо, есть одна маленькая ложка дегтя. Как эти чертовы мушки всегда умудряются так все усложнять?
Вот в чем дело. Не все библиотеки живут в этом удобном всплывающем окне внутри Arduino IDE. Сообщество Arduino бурлит умными идеями, но умность (в отличие от плавленого сыра) не всегда выражается в удобно стандартизированных, индивидуально упакованных кусочках. Есть тонны различных способов найти библиотеки Arduino в Интернете.
Если вы загружаете или копируете программу из Интернета, просто перейдите на страницу, где вы получили эту программу, и внимательно изучите библиотеку, на которую ссылается автор. Например, у них может быть ссылка на GitHub, место, где люди хранят множество библиотек кода.
Где бы вы ее ни нашли, обычно библиотека будет включена в пакет файла .zip. После того, как вы загрузили .zip-файл, запустите Arduino IDE и выберите «Скетч» > «Включить библиотеку» > «Добавить библиотеку .ZIP». Затем перейдите в папку, в которую вы загрузили файл, и выберите его. Предполагая, что в ваш рабочий процесс не вторгаются дополнительные мази, Arduino IDE выведет сообщение «Библиотека добавлена в ваши библиотеки» прямо над темной областью, где появилась исходная ошибка «Нет такого файла или каталога».
Теперь все как обычно! Просто перейдите в Sketch > Include Library, и новая библиотека появится в раскрывающемся списке.
Как однажды сказал француз-дислексик крупному скрипачу: «Виола!»
Теперь вы знаете не один, а два способа добавить новую библиотеку. Какое время быть живым!
Обзор
Итак, краткое резюме.