- Сообщения
- 1.059
- Реакции
- 8.462
- Продажи
- 7
- Кешбек
- 0.66$
Перенесена из недавнего вебинара к вниманию всех интересующихся.
По криптографии и криптоанализу, а также проникновению в чужие корпоративные сети я уже выложил три более-менее подробные статьи в авторских статьях на форуме(ссылка в голове материала); хотелось бы теперь рассмотреть такую модную тему, как повальное увлечение публикой такими изделиями, как Raspberry Pi и Arduino. До конца не уверен, что на форуме вообще это кому-то интересно, но аппетит приходит во время еды, поэтому решился написать тут небольшую обзорную статью, может, кто-то заинтересуется. Вообще-то на форуме была раньше парочка ардуинщиков, собственно Ардуиндрр и ещё один товарищ(они даже участвовали в конкурсе радиоинженеров здесь однажды и взяли призы), но впоследствии, я так понял, чевой-то там накосорезили что один, что второй, и куда-то пропали. Была ещё одна дама(?), тоже интересовалась этой темой, но тоже куда-то пропала.
Итак, о чём же вообще речь? Raspberry Pi представляет собой маленький, с два спичечных коробка размерами, дешёвый одноплатный компьютер с процессором ARM(Advanced RISC Machine, RISC означает reduced instruction set computer, ну вы понели
дешёвый и сердитый, с упрощённым набором команд). Производится он британскими учоными британской компанией Raspberry Pi Foundation с 2012 года и по сей день. Первые модели были совсем деревянными, с тактовой частотой 32-х разрядного одноядерного процессора ARM 11 порядка 700Мгц и RAM 256 или 512 Мб; сейчас уже доступны модели с 64-битными 4-ядерными процессорами тактовой частотой 1,5 и даже 1,8 ГГц. Изделие оснащено также USB-портами в количестве от 1-ого до 4-х, коаксиальным антенным входом, аудиовходом-выходом TRS 3,5 мм, портом Ethernet, Wi-Fi на более старых моделях обеспечивается через USB-донгл, а на более новых встроен; имеется также HDMI-порт для подключения монитора и других устройств и слот под карту памяти SD, на которой хранятся файловая система, ядро и пользовательские файлы; на новых моделях бывает также встроенный Bluetooth. Работает это все под операционными системами Linux/FreeBSD; весьма распространены Raspbian(специальная сборка Debian) и Pidora(специальная сборка Fedora, поручик Ржевский, молчите, это не то, о чём вы сейчас подумали!) с облегченным графическим интерфейсом LXDE. Также использует народ ArchLinux, Gentoo, FreeBSD, Sailfish OS; возможно использование Android 7.0 и даже Windows 10 IOT(так и хочется оговориться - “идиот”, ибо лютый идиотизм ИМХО втетерить винду в Распберри, это всё равно что навьючить небольшого ослика мешком дурных проприетарных силикатных кирпичей, но разве поганый Билл Гей(тсс!) не всунул бы и сюда своего длинного носа и всё не опошлил, подобно тому, как он поступил со Скайпом, выкупив его в 12-ом у люксембургской компании).
Ну и что, скажете вы, ну маленький, ну дешёвый(35 Бакинских где-то), ну и что? Самой большой вкусностью означенного устройства ИМХО является наличие в нём интерфейса GPIO(general purpose input/output) из 26 пинов(на более современных моделях целых 40!), что открывает широкое поле возможностей для управления всевозможной периферией. Нормальное напряжение на пинах 5 и соответственно 3,3 В; не подавайте больше – можете сжечь выводы! Итак, имеем в том числе 2 вывода с постоянным уровнем напряжения 5 В , 2 вывода с постоянным уровнем напряжения 3,3 В , 5 общих выводов (земля), 17 цифровых программно управляемых выводов. Варианты распиновки на 26 пинов привожу ниже.
Рассмотрим ниже что-нибудь простенькое, например, как помигать LEDом с помощью интерфейса GPIO нашей калинки-малинки и используя, к примеру, Python. Ибо, перефразируя латинское cogito ergo sum, можно сказать, “моргает, значит работает!”.
Командуем в командной строке, чтобы установить Python:
И, подключив предварительно джамперами LED к 7-ому пину и к “земле”, получаем желаемое моргание(данный пример был взят с “гексвольта”).
А вот как моргать целой шайкой LEDов, занесём нижеследующее в файл blinker.py и запустим его через командную строку; время везде в секундах, разноцветные LEDы подключаем через бредборд и джамперы одним концом к номерному пину, а другим концом к “земле”.
Сначала всё по очереди зажигаем, потом(while True
осуществляем цикл. Подобным образом мы можем управлять через сервопривода по написанной нами программе хоть детским автомобильчиком, хоть “умным” домом, хоть чёртом с рогами(предварительно установив ему электромоторчик в задницу
).
Теперь отдадим дань пресловутому Ардуино. Представляет оно из себя семейство микроконтроллеров, производимое компанией из итальянского Ивреа, что под Турином, и названное так в честь местной пивной/рюмочной(в которой и были собственно изобретены в процессе распития напитков местными джуликко бандитто), а та в свою очередь названа в честь местного средневекового короля Ардуина Н-надцатого. К нему(микроконтроллеру) придаётся программное обеспечение в виде среды разработки IDE и C-подобного языка программирования, а если точнее, то C++ c фреймворком Wiring. Скрипты работы в нём называются производителем – скетчами. А вот и иллюстрация распиновки Arduino Due.
Делать в них можно то же, что и в Распберри, то есть управлять разнообразными железяками через распиновку и при помощи скриптов-скетчей, загружаемых с компьютера через USB-порт. При этом шилды Ардуино можно сопрягать друг с другом по принципу бутерброда, насаживая один на другой. А LEDом в Ардуине мигается как-то так.
Теперь, в чём разница между Ардуино и Распберри. Распберри – это практически честный компьютер, а Ардуино – всего лишь микропроцессор, его возможности более, как бы это помяхше сказать, несколько ограничены. Критики Распберри скажут, что он-де типа работает “не в реальном времени”, то есть тупит порой, так поставь на него микроядерную RISC OS или RTLinux и будет тебе реальное время, процессор ARM под это изначально и заточен. Можно ли эти два изделия сопрягать в одном изделии – можно конечно, только нужно ли?
А вот некоторые говорят так: “зачем вообще нужно это Ардуино, если можно взять программатор, прошить им контроллер в DIP-корпусе и установить его в плату, получив более дешёвое, компактное и портативное устройство.” И они ИМХО по-своему правы. А вот ещё мнение: “я буду рад, если хоть один человек… поменяет Arduino на простой микроконтроллер – может быть, из него получится хороший разработчик встраиваемых систем в будущем.”
Смысл в том, что Ардуино – это не уровень приличного инженера, а уровень какого-нибудь радиокружка при провинциальном Дворце Пионеров(были такие при советской власти), где раньше пионеры юные – головы чугунные сидели с паяльниками и припоем и нюхали канифоль, а теперь сидят с бредбордами и джамперами и даже не паяют почти, балбесы
И все эти Ардуины – это не haute cuisine, а своего рода Макдональдс, позволяющий, впрочем, непритязательному едоку быстро и нажористо утолить голод. И что они крепко расхолаживают конструктора и отучают его анализировать, понимать физический смысл происходящего и вообще шурупить своей бестолковкой...
По криптографии и криптоанализу, а также проникновению в чужие корпоративные сети я уже выложил три более-менее подробные статьи в авторских статьях на форуме(ссылка в голове материала); хотелось бы теперь рассмотреть такую модную тему, как повальное увлечение публикой такими изделиями, как Raspberry Pi и Arduino. До конца не уверен, что на форуме вообще это кому-то интересно, но аппетит приходит во время еды, поэтому решился написать тут небольшую обзорную статью, может, кто-то заинтересуется. Вообще-то на форуме была раньше парочка ардуинщиков, собственно Ардуиндрр и ещё один товарищ(они даже участвовали в конкурсе радиоинженеров здесь однажды и взяли призы), но впоследствии, я так понял, чевой-то там накосорезили что один, что второй, и куда-то пропали. Была ещё одна дама(?), тоже интересовалась этой темой, но тоже куда-то пропала.
Итак, о чём же вообще речь? Raspberry Pi представляет собой маленький, с два спичечных коробка размерами, дешёвый одноплатный компьютер с процессором ARM(Advanced RISC Machine, RISC означает reduced instruction set computer, ну вы понели
дешёвый и сердитый, с упрощённым набором команд). Производится он Ну и что, скажете вы, ну маленький, ну дешёвый(35 Бакинских где-то), ну и что? Самой большой вкусностью означенного устройства ИМХО является наличие в нём интерфейса GPIO(general purpose input/output) из 26 пинов(на более современных моделях целых 40!), что открывает широкое поле возможностей для управления всевозможной периферией. Нормальное напряжение на пинах 5 и соответственно 3,3 В; не подавайте больше – можете сжечь выводы! Итак, имеем в том числе 2 вывода с постоянным уровнем напряжения 5 В , 2 вывода с постоянным уровнем напряжения 3,3 В , 5 общих выводов (земля), 17 цифровых программно управляемых выводов. Варианты распиновки на 26 пинов привожу ниже.
Рассмотрим ниже что-нибудь простенькое, например, как помигать LEDом с помощью интерфейса GPIO нашей калинки-малинки и используя, к примеру, Python. Ибо, перефразируя латинское cogito ergo sum, можно сказать, “моргает, значит работает!”.
Командуем в командной строке, чтобы установить Python:
Код:
sudo apt-get install python-rpi.gpio (или python3-rpi.gpio)
Код:
sudo python
Код:
import RPi.GPIO as GPIO #подключаем библиотеку
GPIO.setmode(GPIO.BCM) #устанавливаем режим нумерации
GPIO.setup(7, GPIO.OUT) #конфигурируем GPIO 7 как выход
GPIO.setup(8, GPIO.IN) #конфигурируем GPIO 8 как вход
GPIO.output(7, True) #выводим на GPIO 7 логическую "1" (3.3 V)
GPIO.output(7, False) #выводим на GPIO 7 логический "0"
signal = GPIO.input(8) #считываем сигнал с GPIO 8 в переменную signal
GPIO.cleanup() #завершаем работу с GPIO
И, подключив предварительно джамперами LED к 7-ому пину и к “земле”, получаем желаемое моргание(данный пример был взят с “гексвольта”).
А вот как моргать целой шайкой LEDов, занесём нижеследующее в файл blinker.py и запустим его через командную строку; время везде в секундах, разноцветные LEDы подключаем через бредборд и джамперы одним концом к номерному пину, а другим концом к “земле”.
Код:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
GPIO.setup(10, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(19, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.output(7, 1)
time.sleep(0.4)
GPIO.output(10, 1)
time.sleep(0.3)
GPIO.output(13, 1)
time.sleep(0.3)
GPIO.output(19, 1)
time.sleep(0.3)
GPIO.output(23, 1)
time.sleep(0.3)
while True:
GPIO.output(10, 0)
time.sleep(0.6)
GPIO.output(10, 1)
GPIO.output(13, 0)
time.sleep(0.6)
GPIO.output(13, 1)
GPIO.output(19, 0)
time.sleep(0.6)
GPIO.output(19, 1)
GPIO.output(23, 0)
time.sleep(0.6)
GPIO.output(23, 1)
Сначала всё по очереди зажигаем, потом(while True
осуществляем цикл. Подобным образом мы можем управлять через сервопривода по написанной нами программе хоть детским автомобильчиком, хоть “умным” домом, хоть чёртом с рогами(предварительно установив ему электромоторчик в задницу
).Теперь отдадим дань пресловутому Ардуино. Представляет оно из себя семейство микроконтроллеров, производимое компанией из итальянского Ивреа, что под Турином, и названное так в честь местной пивной/рюмочной(в которой и были собственно изобретены в процессе распития напитков местными джуликко бандитто), а та в свою очередь названа в честь местного средневекового короля Ардуина Н-надцатого. К нему(микроконтроллеру) придаётся программное обеспечение в виде среды разработки IDE и C-подобного языка программирования, а если точнее, то C++ c фреймворком Wiring. Скрипты работы в нём называются производителем – скетчами. А вот и иллюстрация распиновки Arduino Due.
Делать в них можно то же, что и в Распберри, то есть управлять разнообразными железяками через распиновку и при помощи скриптов-скетчей, загружаемых с компьютера через USB-порт. При этом шилды Ардуино можно сопрягать друг с другом по принципу бутерброда, насаживая один на другой. А LEDом в Ардуине мигается как-то так.
Код:
void setup () {
pinMode (13, OUTPUT); // Назначение порта 13 в качестве выходного порта
}
void loop () {
digitalWrite (13, HIGH); // Установка порта 13 в состояние "1", светодиод загорается
delay (1000); // Задержка на 1000 миллисекунд
digitalWrite (13, LOW); // Установка порта 13 в состояние "0", светодиод гаснет
delay (1000); // Задержка на 1000 миллисекунд
}
Теперь, в чём разница между Ардуино и Распберри. Распберри – это практически честный компьютер, а Ардуино – всего лишь микропроцессор, его возможности более, как бы это помяхше сказать, несколько ограничены. Критики Распберри скажут, что он-де типа работает “не в реальном времени”, то есть тупит порой, так поставь на него микроядерную RISC OS или RTLinux и будет тебе реальное время, процессор ARM под это изначально и заточен. Можно ли эти два изделия сопрягать в одном изделии – можно конечно, только нужно ли?
А вот некоторые говорят так: “зачем вообще нужно это Ардуино, если можно взять программатор, прошить им контроллер в DIP-корпусе и установить его в плату, получив более дешёвое, компактное и портативное устройство.” И они ИМХО по-своему правы. А вот ещё мнение: “я буду рад, если хоть один человек… поменяет Arduino на простой микроконтроллер – может быть, из него получится хороший разработчик встраиваемых систем в будущем.”
Смысл в том, что Ардуино – это не уровень приличного инженера, а уровень какого-нибудь радиокружка при провинциальном Дворце Пионеров(были такие при советской власти), где раньше пионеры юные – головы чугунные сидели с паяльниками и припоем и нюхали канифоль, а теперь сидят с бредбордами и джамперами и даже не паяют почти, балбесы
И все эти Ардуины – это не haute cuisine, а своего рода Макдональдс, позволяющий, впрочем, непритязательному едоку быстро и нажористо утолить голод. И что они крепко расхолаживают конструктора и отучают его анализировать, понимать физический смысл происходящего и вообще шурупить своей бестолковкой...
Последнее редактирование:

