Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 2

Arduino => Raspberry, python

31.03.2016, 14:57. Показов 1675. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго часа товарищи, нуждаюсь в помощи, не соображаю в питоне совсем от слова ничего.
Есть код который отлично работает на arduino, пытаюсь его методом тыка и ктр+ц переписать на питон (так нужно) для малинки. Успехов нет, пока что могу диодом поморгать, помогите пожалуйста если не за огромное спасибо то за денежку, очень сильно нужно.
Суть какова есть купюроприемник NV9 который прошит под MDB интерфейс и работает в режиме Pulse. Есть малинка вторая с установленной убунтой. Нужно сделать обработчик для входящих данных с купюроприемника.
Купюроприемник возвращает от 1 до 9 импульсов длиной 200мс если мне память не изменяет. Собственно нужно считать импульсы и через кейс в консоль возвращать текст в стиле "принято 3 рубля"
Спасибо еще раз за помощь, код от адруино и то что у меня неполучилось на питоне кладу ниже:

Arduino
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const int moneyPin=2;
const int zapretaPin = 9;
const int zapretbPin = 6;
const int zapretcPin = 7;
const int zapretdPin = 8;
const int ledPin = 12;
int money=0;
int sum=0;
 
unsigned long timeAllPulse1=3000; // макс. время приема купюры
unsigned long timeCount1=0;
 
void setup()
{
pinMode(zapretaPin, OUTPUT);
pinMode(zapretbPin, OUTPUT);
pinMode(zapretcPin, OUTPUT);
pinMode(zapretdPin, OUTPUT);
pinMode(moneyPin,INPUT);
Serial.begin(9600);
Serial.println("ready");
attachInterrupt(0,count_pulse1,FALLING);
 
}
 
void loop()
{
digitalWrite(zapretaPin, LOW);
digitalWrite(zapretbPin, LOW);
digitalWrite(zapretcPin, LOW);
digitalWrite(zapretdPin, LOW);
// прошло максимальное время приема купюры?
if(money>0 && (millis()-timeCount1)>timeAllPulse1)
{
sum+=money;
money=0;
Serial.print("Kredit= ");
Serial.println(sum);
}
}
// обработка прерывания — получить кол-во импульсов
//
void count_pulse1()
{
detachInterrupt(0);
money++;
if(money==1)
timeCount1=millis();
attachInterrupt(0,count_pulse1,FALLING);
}

Raspberry Pi2
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python2.7
import RPI.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP)
money = 0
sum = 0
millis = int(round(time.time() * 1000))
 
timeAllPulse1 = 3000
timeCount1 = 0
 
while (True):
    GPIO.wait_for_edge(4, GPIO.FALLING, timeout = 3000)
        money++
        if(money==1)
        timeCount1=millis
        if(money>0 && (millis-timeCount1) > timeAllPulse1)
        sum+=money
        money=0
        print(sum)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2016, 14:57
Ответы с готовыми решениями:

Trouble с модулями python на Raspberry
Здравия желаю. Есть одна проблема с модулями. Точнее с одним модулем. _init_ состоит из одной строки кода, в которой он берет функции из...

Arduino и Iskra JS программирование на языке Python
Здравствуйте, у меня в данный момент есть "ARDUINO UNO", "ARDUINO MICRO" и "ISKRA JS", как написав программу на языке программирования...

3 Arduino Uno, Raspberry pi - медленно загружаются данные через Queue
1. Raspberrypi 5.4.72- Linux 10 (buster) 2. Python 2.7.16, 3.7.3 Описание моей безумной задачи: у меня 3 arduino uno с 3 датчиками...

2
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
31.03.2016, 16:05
А почему всё не оставить в С?
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 2
31.03.2016, 16:39  [ТС]
Так требует заказчик, вот был код который работал, здесь захотелось ему чтоб был питон
а я с прерываниями совладать никак не могу, питон сегодня вот был впервые )))) такой вот неудачный первый раз

суть слушать порт и считать количество импульсов за период времени, тобиш от первого импульса считаем все в течении 3х секунд и выдаем результат. всего-то казалось бы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2016, 16:39
Помогаю со студенческими работами здесь

Python + arduino
Будет ли Ардуино нормально распознавать python код и будет ли хоть что-то работать без подключения к компу? Я хочу сделать что-то типа...

python получение данных с com порта arduino
Добрый вечер, уважаемые программисты. Пытаюсь получить чистые данные с com3 порта от ардуино. На ардуинке стоит цикл - на Hello world...

Arduino + raspberry PI
добрый день изучаю ардуино и хочется вместо обычного компа. подключить raspberry и с него программировать ардуино. 1 насколько в...

Arduino и Raspberry Pi GPIO
Доброго времени суток. Кто в курсе, как я могу подключить Arduino к Raspberry интерфейсно (посредством GPIO) ? Может, у...

Raspberry pi 4 и библиотеки Arduino
Писал под ардуино, но вижу что пришло время переходить на разбери. Пока про разработку под разбери знаю только в теории. Мне удобно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru