很早以前我们介绍过一款基于树莓派和微信的远程喂鱼方案,有时候我们只想来一次说走就走的旅行,出门浪几天就回,应一下急,用这个方案就显得颇为费事了。
下面要介绍的是基于 Arduino 制作的喂鱼机,投喂机械部分使用一个步进电机和一组 3D 打印部件制作,成本低廉、无需网络。你只需要将投喂程序设定好(定时定量),写入 Arduino 中,准备好饲料槽就可以放心出门啦!
Stepper_Code.zip
[1935 Bytes at 2019-06-28, 131 次下载]
FF_plate.STL
[78484 Bytes at 2019-06-28, 142 次下载]
FF_Turn_Table.STL
[333784 Bytes at 2019-06-28, 137 次下载]
Arduino UNO×1
Arduino 电源×1
电机驱动板×1
步进电机 28BYJ-48 ×1
3D打印部件×1
热熔胶×1
鱼缸×1
鱼食料×1
安装电机驱动板,让 Arduino 驱动步进电机。因为 Arduino 的输出引脚无法直接为步进电机提供足够的功率,而电机的电源工作要求为 5V,所以需要驱动板。
1、将步进电机与电机驱动板连接起来。
2、将 Arduino 的引脚 8、9、10 和 11 分别连接到电机驱动板输入引脚1N1、1N2、1N3 和 1N4 上。
3、将 Arduino 电源引脚 GND 和 5V 分别连接到电机驱动板电源引脚 - 和 + 上。
4、将 Arduino USB 端口连接到计算机并启动 Arduino IDE 软件。
用 Autodesk Inventor 设计打印出两个 3D 附件,分别为 FF_Turn_Table.STL 格子转盘和 FF_plate.STL 喂食机底板。
格子转盘带有 14 个鱼丸的凹槽,可以满足每天两次投喂并持续一周。电机驱动喂食机底板旋转时向前推动鱼食到板上的孔中。工作原理与口香糖球机类似。
当然,你可以用这个软件设计出任何其他结构的鱼饲料槽。
已经设计好的 3D 打印模型文件,请在项目文件库中下载:
https://make.quwj.com/project/128
使用 Arduino stepper.h 库编程,让步进机的驱动格子转盘旋转进行投食。代码详情具体如下:
//This adds the preexisting stepper library so you can use commands like "myStepper.setSpeed()" and "myStepper.step()"
#include <Stepper.h>
//This is the number of steps in one revolution of the motor. The 28BYJ-48 motor has 2048 steps per revolution. Make sure to find the number of steps of your motor.
const int stepsPerRevolution = 2048;
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
// set the speed at 10 rpm:
myStepper.setSpeed(10);
}
void loop() {
// 146 steps is 1/14th of a full rotation. Since I have 14 wells, this will index the feeder one space.
myStepper.step(146);
//This kills the power to the stepper to save energy and to keep it from heating up.
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
//This is the delay between feeding times. During testing I found it helpful to use 1 second to make sure it was rotating well.
//delay(1000); //Pause for 1 seconds
delay(28800000); //Pause for 8 Hours
//This section is the same as above but allows for a different delay time. After breakfast, it waits 8 hours until dinner time. Then it waits 16 hours until breakfast time.
myStepper.step(146);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
//delay(1000); //Pause for 1 seconds
delay(57600000); //Pause for 16 Hours
}
如果步进机运转不顺畅,请检查 8-11 上的连线是否正确。这个地方很容易出错。
如果有一秒的延迟,建议排除一下步进机的问题。
代码文件在项目文件库中提供下载:
https://make.quwj.com/project/128
组装前需要手工打磨一下 3D 打印部件,以便运行更加丝滑。
1、使用少量热熔胶将喂食机底板固定在步进机的表面,使用 3M 泡沫双面胶也是不错的选择。
2、将喂食机底板安装到步进机的轴上。
3、多转动一下喂食机底板,确保格子转盘和喂食机底板能够顺滑地运行。调整好喂食机底板和格子转盘之间的间隙,以免旋转时和喂食机底板产生过大的摩擦而卡壳。
4、放入鱼食并尝试投放。
用热熔胶将 Arduino、电机驱动板和喂鱼机连接到鱼缸上。使用 USB 线给 Arduino 供电。
组装完成!