ЭФО предлагает со своего склада новую серию преобразователей интерфейсов USB UART компании FTDI FT232RNL-REEL

АСУ для приёма на утилизацию использованых батареек

Страница 1 из 2
Новичок
 
Регистрация: 22.05.2009
Сообщений: 18
Репутация: 10
 
25.08.2009 00:43 #1
Есть автоматы для приёма пластиковых бутылок и алюминевых банок на утилизацию. Я решил по аналогии сделать АСУ для приёма использованных элементов питания (батареек). Внешне это будет выглядеть, как выдвижная коробочка с ячейками под батарейки. Также будет мусорная корзина с задвижкой, подобной печной заслонки, но которая способна выдвигаться и задвигаться автоматически в зависимости от команды микроконтроллера. Предполагается, что пользователь должен выполнить следующие действия:
1. Выдвинуть коробочку.
2. Вставить туда батарейку.
3. Задвинуть коробочку.

АСУ, проверив, что пользователь действительно вставил батарейку, которая уже разрядилась и не годна, должна
1. Выдвинуть заслонку-защёлку, чтобы батарейка упала в мусорную корзину.
2. Подождать некоторое время (например, 2 сек), чтобы батарейка успела упасть.
3. Снова задвинуть защёлку.

Вот точное описание алгоритма работы АСУ:

// Данная программа может распространяться свободно на условиях "копилефтной" лицензии
//файл BatteryLib.h
int GetBoxPos(); // возращает положение коробочки
const int BoxPosOut=1000; // положение коробочки, когда она выдвинута
bool BoxOut(); // возвращает ненулевое значение, если коробочка выдвинута, и 0, если задвинута
void BoxIsMoving(); // ждём, когда пользователь выдвинет коробочку и опять задвинет
const double LightMin=0.00001; // минимальная допустимая освещённость в корзине
double GetLight(); // возвращает значение с датчика освещённости
double GetTemprVoltage(); // возращает значение напряжения теплового шума, вычисляемого по формуле Найквиста
//const double VoltageMin=0.00001; // минимальное напряжение на батарейке
double GetBatteryVoltage(); // возвращает напряжение на контактахн батарейки
bool IsBattery(); // возвращает ненулевое значение, если объект, лежащий в коробочке, является батарейкой, и 0 в противном случае
bool NoPower(); // возвращает ненулевое значение, если батарейка уже разрядилась, и 0 в противном случае
const int ObjectIsNotBattery=2; // код ошибки "Объект не явяется батарейкой"
const int BatteryIsNotNoPower=1; // код ошибки "Батарейка ещё не разрядилась"
const int BatteryIsOK=0; //успешное принятие батарейки
const int PAUSE=2000; // время ожидания между открытием и закрытием защёлки
bool OutTextToLCDDisplay(char * Text); // вывод текста на ЖК-дисплей
bool OpenLock(); // открыть защёлку
bool CloseLock(); // закрыть защёлку
bool InsertToDatabase(); // добавить в базу данных информацию о принятой батарейке
int Working (); // алгоритм работы АСУ
const char * Texts[3]={"Элемент питания принят успешно. Спасибо за участие!","Уважаемый пользователь. Этот элемент питания ещё не разрядился. => его рано сдавать на утилизацию. Если он Вам не нужен, найдите, кого-нибудь, кому он нужен, и ПОДАРИТЕ.","Данный объект не является батарейкой."}; // тексты для вывода на ЖК-дисплей
int TestBattery (); // проверка батарейки, пора ли её сдавать
const int BacketIsFull=3;
const int MemoryIsFull=4;
bool TestBacketFull(); // возвращает ненулевое значение, если корзина наполнена до отказа, и 0 в противном случае
bool TestMemoryFull(); // возвращает ненулевое значение, если память заполнена, и 0 в противном случае

// файл BatteryLib.cpp
#include "BatteryLib.h"

void BoxIsMoving() // ждём, когда пользователь выдвинет коробочку и опять задвинет
{
while (!BoxOut()){} // ждём, когда коробочка будет выдвинута
while (BoxOut()){} // теперь ждём, когда она будет задвинута
}

bool BoxOut() // возвращает ненулевое значение, если коробочка выдвинута, и 0, если задвинута
{
return (GetBoxPos()>BoxPosOut);
}

bool TestBacketFull () // проверка наполнена ли корзина до отказа
{
//
}
bool IsBattery() // возвращает ненулевое значение, если объект, лежащий в коробочке, является батарейкой, и 0 в противном случае
{
//return (GetBatteryVoltage()>=VoltageMin);
return (GetBatteryVoltage()>=10*GetTemprVoltage());
}
int TestBattery () // проверка батарейки, пора ли её сдавать
{
if (!IsBattery())
{
return ObjectIsNotBattery; // объект не является батарейкой
}
if (!NoPower())
{
return BatteryIsNotNoPower; // батарейка ещё не разрядилась
}
return BatteryIsOK; // тест пройден успешно
}
bool TestBacketFull() // возвращает ненулевое значение, если корзина наполнена до отказа, и 0 в противном случае
{
return (GetLight()<LightMin);
}
int Working () // алгоритм работы АСУ
{
if (TestBacketFull()) // если корзина наполнилась до отказа
{
return BacketIsFull; // возвращаем значение, предупреждающее об этом
}
if (TestMemoryFull()) // если память заполнена
{
return MemoryIsFull; // возвращаем значение, предупреждающее об этом
}
OutTextToLCDDisplay("Вставьте батарейку."); // выводим на ЖК-дисплей подсказку пользователю
BoxIsMoving(); // ждём, когда пользователь выдвинет коробочку, чтобы что-то положить и опять задвинет
int Tst=TestBattery(); // проверяем то, что положил пользователь
OutTextToLCDDisplay(Texts[Tst]); // выводим на дисплей результат проверки
if (Tst) // если батарейка не прошла тест
{
BoxIsMoving(); // ждём, когда пользователь выдвинет коробочку, чтобы забрать обратно то, что положил, и опять задвинет
}
else // иначе
{
OpenLock(); // открываем защёлку
Delay(PAUSE); // ждём, чтобы батарейка успела упасть в корзину
CloseLock(); // закрываем защёлку
InsertToDatabase(); // добавить в базу данных информацию о принятой батарейке
}
return Tst; // возвращаем код ошибки или успешного завершения
}

// файл WORK.CPP
#include "BatteryLib.h"

int main ()
{
while (((tmp=Working())!=BacketIsFull)&&(tmp!=MemoryIsFu ll)) // продолжаем работать до тех пор, пока корзина не будет заполнена (до отказа) и в памяти есть свободное место
{}
return 0;
}


Необходимо приобрести вот что:

1. Обязательно
1) Микроконтроллер AVR со встроенной памятью.
2) Таймер (чтобы в базе данных можно было дату/время фиксировать)
3) 2 АЦП
а) для измерения напряжения на нагрузке в цепи батарейки.
б) для датчика положения коробочки
4) Цифровой ввод/вывод в виде TTL-сигналов (например, для соединения микроконтроллера с защёлкой).
5) COM-порт (для подключения к базе данных)
6) ЖК-дисплей
7) Защёлка-задвижка, которая выдвигается/задвигается автоматически по команде, поступившей от микроконтроллера
8) Датчик положения коробочки с ячейками под батарейки: выдвинута/задвинута
2. Необязательно, но желательно
1) ЦАП
2) Расширитель ввода/вывода
3. Не помешает
1) USB-порт
2) Клавиатура

На самом деле почти всё вышеперечисленное можно приобрести, купив отладочную плату наподобие демонстрационного набора Atmel ATAVRBFLY (см. www.fulcrum.ru/LineCard/DevTools/2_1_Atmel.htm). Точнее сказать, всё... Всё, кроме одного. Это защёлки-задвижки. Не знаю, где взять защёлку, то есть задвижку наподобие печной заслонки, которую можно открывать/закрывать автоматически по команде микроконтреллера (для чего я использую функции OpenLock() и CloseLock()). Как знаете, CD/DVD-дисковод. Он может автоматически выдвигаться/задвигаться по команде процессора. Вот так и моя задвижка должна автоматически выдвигаться/задвигаться о команде микроконтроллера. Уважаемые участники форума, если кто-нибудь из Вас знает, где взять такую заслонку, просьба сообщить мне об этом. И ещё. Помогите, пожалуйста, разобраться с AVR Studio. А то там всё по-английски, а у меня с английским туго... Также прошу помочь разобраться, как программировать AVR-микроконтроллеры и какая у них система команд. А то я раньше этим не занимался, столкнулся с этим впервые, поэтому прошу помощи, как новичок.
Последний раз редактировалось Admin; 22.12.2012 в 19:14.
Оценка
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей.
Специалист
 
Регистрация: 11.10.2009
Адрес: Урал
Сообщений: 945
Репутация: 243
225 146
6 6
Отправить сообщение для рафаил с помощью Skype™
 
22.10.2009 22:15 #2
Странно, что за довольно большое время никто не ответил. По эл.механике в целом всё очень просто. Вытаскиваете из "однорукого бандита" (свежий закон Вам помогает) жетоноприёмник, и приспосабливаете для своих нужд. Ход ярма электромагнита там приличный - до 10-15 мм. Усилие - зверское, поэтому если хочется больший ход заслонки - рычаг.
Оценка
Новичок
 
Регистрация: 22.05.2009
Сообщений: 18
Репутация: 10
 
23.10.2009 14:57 #3
Спасибо за совет, Рафаил! Но, к сожалению, я не знаю, что такое "однорукий бандит"... Только что нашёл вот это: *** Вы случайно не это имеете в виду под "одноруким бандитом"? А что Вы имеете в виду под фразой "свежий закон Вам помогает"? То, что так долго никто не отвечал, действительно странно... Кстати, за такое большое время я и сам смог найти решение, только несколько иное. Я решил взять CD-привод и использовать его выдвижную часть в качестве "задвижки". Может быть, не очень удачное решение, но для 1-го раза подойдёт.
Последний раз редактировалось Admin; 22.12.2012 в 19:14.
Оценка
Специалист
 
Регистрация: 11.10.2009
Адрес: Урал
Сообщений: 945
Репутация: 243
225 146
6 6
Отправить сообщение для рафаил с помощью Skype™
 
25.10.2009 16:37 #4
Да, это именно игровой автомат, ну и надеюсь про закон о месте их использовании вы слышали, проследите судьбу конфискованных - и возможно Вам скажут: "Да бери сколь хочешь!". Уточню: Вам нужен не жетоноприемник, а наоборот, "выкидыватель". Представляет собой эл.магнит, мощно выбивающий из под высокой стопы монет нижнюю, в лоток. Совет - не зацикливайтесь именно на игровых автоматах, эл.магниты широко применяются везде, в Вашем случае даже можно приспособить эл.магнитные пускатели (для макетирования идеи).
Почему именно эл.магнит? Просто, крепко, быстро! Кажется, такие качества нужны для надежности Вашего аппарата.
Последний раз редактировалось рафаил; 25.10.2009 в 16:56.
Оценка
Новичок
 
Регистрация: 22.05.2009
Сообщений: 18
Репутация: 10
 
25.10.2009 23:06 #5

Электропитание

Ну, а теперь я бы хотел поговорить об источнике элекропитания для своей АСУ. Наше тело излучает инфракрасный свет мощностью 24 Вт. Можно поставить фотоэлементы, чувствительные к ИК-диапазону. Когда подойдёт пользователь, чтобы сдать батарейки, он своим ИК-светом осветит фотоэлементы. Они дадут ЭДС, которую можно использовать для питания моего АПК (аппаратно-программный комплекс). Только я не уверен, что хватит мощности. Как Вы думаете, хватит ли мощности этих фотоэлементов (которая в самом лучшем теоретически возможном случае будет равна мощности излучения, то есть 24 Вт, а на практике, скорей всего, даже ниже из-за того, что не все лучи ИК-света будут попадать на фотоэлементы, КПД которых, к тому же, необязательно равен 1) для питания моего АПК?
Последний раз редактировалось 245; 25.10.2009 в 23:09. Причина: Добавление пояснения
Оценка
Специалист
 
Регистрация: 11.10.2009
Адрес: Урал
Сообщений: 945
Репутация: 243
225 146
6 6
Отправить сообщение для рафаил с помощью Skype™
 
26.10.2009 06:43 #6
Совершенно негодная идея. Посчитайте, подумайте, есть много других вариантов.
И как дела с отработкой узлов?
Оценка
Новичок
 
Регистрация: 22.05.2009
Сообщений: 18
Репутация: 10
 
26.10.2009 13:42 #7
Я знаю, что есть множество других вариантов, это не секрет для меня. Просто я думал, что такой источник питания имеет ряд достоинств. Питание ВСЕГДА будет, когда есть пользователь. А когда нет пользователя питание просто не нужно. Не нужно подводить провода, думать о подзарядке аккумулятора и т. д. и т. п. Этот источник питания абсолютно экологически чист, неисчерпаем. К тому же в отличии от городской электросети, где за каждый 1 кВт*ч энергии нужно платить, этот источник даёт абсолютно бесплатную энергию. Почему Вы назвали эту идею негодной я не знаю. Недостаток у него только один: маленькая мощность: не больше 24 Вт. А какая мощность для моего АПК требуется я вообще не знаю. Если бы я знал, какая мощность требуется моему АПК, я бы не задавал этот вопрос, а сам сравнил бы мощность и сделал бы вывод, подойдёт мне такой источник питания или нет. Но поскольку требуемая мощность мне неизвестна, я и задаю такие вопросы. А что Вы имеете в виду под "отработков узлов"?
Оценка
Специалист
 
Регистрация: 11.10.2009
Адрес: Урал
Сообщений: 945
Репутация: 243
225 146
6 6
Отправить сообщение для рафаил с помощью Skype™
 
27.10.2009 11:47 #8
К сожалению, я не представляю, в каком классе Вы учитесь. Знание этого момента облегчит моё общение с Вами. Так же любопытно, с какой целью Вы занимаетесь сей идеей?
Последний раз редактировалось рафаил; 27.10.2009 в 11:53.
Оценка
Новичок
 
Регистрация: 22.05.2009
Сообщений: 18
Репутация: 10
 
28.10.2009 17:48 #9
Я уже ни в каком классе не учусь, так как закончил школу. "Сей идеей", то есть использования энергии ИК-излучения человеческого тела для питания АСУ я занимаюсь по причинам, указанным в моём предыдущем сообщении. Я там перечислил достоинства этой энергии. Указал и недостаток (малую мощность). А если Вы под "сей идеей" имеете в виду саму идею моей АСУ, то она нужна для того, чтобы можно было централизовано собирать старые батарейки. Когда батарейки уже не годны к использованию, куда их девать? Должно быть место для централизованного сбора негодных батареек, как и любых отходов, с последующей их переработкой (рециклингом). При этом желательно их сортировать, то есть РАЗДЕЛЬНО собирать РАЗНЫЕ виды отходов, так как это сильно облегчает рециклинг. Иногда для сортировки отходов ставят специальные мусорные контейнеры и пишут на каждом из них что-нибудь вроде "для бумаги", "для стекла", "для батареек", "для металла" и т. д. и т. п. Но это решение не очень надёжно, так как кто-то, не обращая внимания на надпись, может (случайно или намеренно) бросить то, для чего не предназвачен данный контейнер. Для большей надёжности, на мой взгляд, желательно сделать специальные АПК, автоматически сортирующие мусор, простейший из который я представил Вашему вниманию. Этот АПК позволяет отделить батарейки от остального мусора, принимая только батарейки, и давая понять пользователю, что другие виды отходов нужно отправлять в другие места.
Последний раз редактировалось 245; 28.10.2009 в 22:46. Причина: Исправление ошибок
Оценка
Специалист
 
Регистрация: 11.10.2009
Адрес: Урал
Сообщений: 945
Репутация: 243
225 146
6 6
Отправить сообщение для рафаил с помощью Skype™
 
29.10.2009 18:03 #10
Продолжать учиться надо! Или в школе надо было всё-таки учиться.
Цитата:
Наше тело излучает инфракрасный свет мощностью 24 Вт.
Я конечно извиняюсь за резкость, но как заставить выкидывающего батарейки (по недоразумению именно в Ваш аппарат) человека находиться голым в аппарате целый час, отдавая 24вт энергии в тепловом диапазоне? Мне непонятно, почему Вы хотите морозить именно человека? А просто "обклеить" фотобатареями аппарат, чтобы солнышко давало энергию? Аппарат помогающий бороться с загрязнением среды - вещь хорошая, нужная, но это не надо здесь два раза объяснять .
Цитата:
Если бы я знал, какая мощность требуется моему АПК,
Наймите умного дядю, пусть посчитает.
Я спрашиваю повторно: сами то с какой целью занялись ЭТОЙ ИДЕЕЙ? Изготовить аппарат или ... .
Последний раз редактировалось рафаил; 29.10.2009 в 18:11.
Оценка
Ответ
Страница 1 из 2
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 18:21.
Обратная связь РадиоЛоцман Вверх